运输层多路复用与多路分解

一--- 导读

我们现在来看这样一个案例,张三家很有钱,川普是张三家的老管家。张三有两个儿子,大三和二三,一个女儿,姗姗。李四也是富豪,李四的管家叫巴马,李四也有两个儿子一个女儿。大李,二李,和莉莉。

现在两家因为是亲戚,所以子女间会有书信往来,大三,二三,莉莉写完信以后,交给管家川普去封装,写上张三家的地址还有各自所在的房间门牌号。于是把信交给邮递员。另一边,邮递员到达李四家以后,李四 的管家 巴马开始收信,然后检查信上的目的房间,如果是大李的就送到大李那里去,是莉莉的就送到莉莉那里。邮递员相当于网络层,两个管家相当于运输层。门相当于套接字。门牌号就是端口号,川普收信的过程相当于多路复用,而巴马分发信的过程相当于多路分解。儿子女儿就相当于应用层的进程。

二---多路复用与多路分解的种类 

  正如我们所猜测的那样,多路复用与多路分解分为有连接的和无连接的,因为运输层协议分为可靠的 ,面向连接的TCP协议和不可靠不面向连接的UDP协议,这里想象成两个管家,一个靠谱一个不靠谱即可

A:无连接的多路复用与多路分解技术

进程(少爷或小姐)需要发送UDP数据报时,首先要创建一个UDP套接字(少爷或小姐的门),然后应用层通过这个UDP套接字将数据传递到运输层(管家),运输层为数据加上源端口号(房间门牌号)以及目的端口号,封装成数据报后交给网络层(邮递员),网络层再为数据报封装上源IP(张三家地址)以及目的IP(李四家地址)。由于UDP协议仅仅只是将数据发出,所以对于UDP报文来说,最重要的就是目的地址的所在。一个UDP套接字的标识就是目的IP+目的端口号(张三家地址,莉莉的房间门牌号)。因此对于多个不同的UDP数据报,只要它们的目的IP+端口号相同,就算源地址不同,也会在目的主机中被定向到同一个UDP套接字中,被同一个进程所接收。目的IP决定了数据报将要发送到哪台主机,而目的端口号为运输层的的分解提供了标识。

B:有连接的多路复用与多路分解技术

既然有无连接的实现,自然就有连接的实现。运输层乃至整个计算机网络最著名的协议——TCP协议,就是一个面向连接的协议。TCP是一个面向连接,可靠的运输层协议。既然面向连接,那它就需要关注两个方面:源地址和目的地址,因为TCP的传输,需要两边协作完成。正因为TCP的特性,导致TCP的套接字和UDP也有所区别。TCP套接字的标识是一个四元组,即源IP+源端口+目的IP+目的端口UDP是目的IP+目的端口)

三--实例演示

当我们在浏览器中请求一个页面时,将经历以下过程:

  1. Web服务器监听80端口,等待客户端的连接;(也叫做欢迎套接字)
  2. 用户在浏览器输入一个URL,回车后,浏览器进程创建一个套接字,此套接字由服务器IP,服务器80端口,本地IP,本地进程端口,四部分标识;
  3. 浏览器进程将数据通过此套接字从应用层传入运输层,运输层为TCP报文加上首部(包括源端口和目的端口)后,交给网络层,网络层为其加上网络层首部(包括源IP和目的IP)传输传输到Web服务器;
  4. Web服务器接收到此数据报后,检测到数据报请求的是端口80,于是检测80端口正在运行,且允许连接,则创建一个新的套接字(把门打开),此套接字由服务器IP,服务器80端口,源IP,源端口,这四部分标识;
  5. 此后到达的Web服务器的数据报,若以上四部分完全相等,则将进入此套接字中;

posted on 2021-01-01 14:51  Love&Share  阅读(375)  评论(0编辑  收藏  举报

导航