计算机网络架构中传输层位置
从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层
当网络边缘部分的两台主机使用网络的核心部分的功能进行端到端的通信时,只有主机的协议栈才有传输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。( 路由器只需要寻找目的主机,只有数据交付至具体应用进程才涉及复用/分用,及端口的概念)
传输层
IP协议能够将IP数据报由源主机交付至目的主机,那么,为什么还需要传输层呢?这是因为,从IP层来说,通信的两端是两个主机。IP数据报的首部明确地标志了这两个主机的IP地址。但是“两个主机之间的通信”这种说法还不够清楚,这是因为,真正进行通信的实体是在主机中的进程,是这个主机的一个进程和另外一个主机中的一个进程在交换数据。因此,严格来讲,两个主机进行通信就是两个主机中的应用进程互相通信
IP协议虽然将分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付主机中的应用进程。从传输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信是应用进程之间的通信
传输层为相互通信的应用进程提供逻辑通信,即所谓的“端“到”端“通信。并负责对收到的报文进行差错检验,消除网络间不可靠性,提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输
复用与分用的概念
传输层有一个很重要的功能——复用(multiplexing)和分用(demultiplexing)。这里的复用是指发送方不同的应用进程都可以使用同一个传输层协议传送数据(需要加适当首部),而分用是指接收方的传输层在剥去报文的首部后,可以将这些数据正确交付目的应用进程
例如,某用户在使用浏览器查找某网站的信息时,其主机的应用层运行浏览器客户进程。如果在浏览网页的同时,还要发送电子邮件给网站发送反馈意见,那么主机的应用层就还要运行电子邮件客户进程。如下图所示,主机A的应用进程AP1和B的应用进程AP3通信,此时,应用进程AP2也和对方的应用进程AP4通信
生活中快递邮寄站点,不同小区不同人群,共用一个快递点,向外邮寄快递,是复用过程。快递员对来自电商网站,或其他渠道的快递包拆分,依照联系方式分发给不同的用户,是一个分用的过程
逻辑通信的理解
逻辑通信的意思是:从应用层来看,只要把应用层报文交给下面的传输层,传输层就可以把这报文传送到对方的传输层(哪怕有几千公里的距离),好像这种通信就是沿水平方向直接传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接。数据的传送石沿图中虚线方向,经过多个层次传递的。“逻辑通信“的意思是,好像这样通信,但事实并非是这样
在网络各个层之间,是透明传输的(对其他层不可见),同样传输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、路由选择协议等),它使应用进程看见的就是好像在两个传输层实体之间有一条端到端的通信逻辑通信信道
这条逻辑通信信道对上层的表现却因传输层使用的不同协议而有很大差别。当传输层采用面向连接的TCP协议时,这种逻辑通信信道就相当于一条全双工的可靠信道。当采用面向无连接的UDP协议时,这条逻辑通信信道仍然是一条不可靠信道
传输层的两个主要协议TCP与UDP
TCP/IP 的传输层有两个不同的协议:
(1) 用户数据报协议 UDP (User Datagram Protocol)
(2) 传输控制协议 TCP (Transmission Control Protocol)
下图给出了这两种协议在协议栈中的位置
UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。UDP 不提供可靠交付
TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,也占用许多的处理机资源
(1)传输层的 UDP 用户数据报与网际层的IP数据报有很大区别。IP 数据报要经过互连网中许多路由器的存储转发,但 UDP用户数据报是在传输层的端到端抽象的逻辑信道中传送的。
(2)、TCP报文段是在传输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道却不知道究竟经过了哪些路由器,而这些路由器也根本不知道上面的传输层是否建立了 TCP 连接
总结
传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。引入传输层,增加复用和分用的功能、 消除网络层的不可靠性、 提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输