传输层

概述

  • 功能
    完成主机进程-主机进程之间的报文传输
  • 地位
    位于网络体系结构的中间, 作为数据通信和数据处理的分水岭, 具有承上启下的作用
  • 传输层要彻底解决网络通信问题, 使得应用层不必关心通信问题
  • 端对端的通信
    传输层协议在端主机上运行,路由器一般没有传输层
    传输层从主机层面上对网络层采取相应补救措施,可以提供更高质量的数据传输能力
    传输层独立于网络设备,可以提供标准的传输服务接口(原语)

传输层协议机制

传输协议数据单元

传输协议数据单元(TPDU) 是传输层的最小数据传输单位, 又称为“报文段”

TPDU类型

  • CR:连接请求
  • CC:连接确认, 对CR TPDU的确认
  • DR:断连请求
  • DC: 断连确认, 对DR TPDU的确认
  • DT:数据(高层数据)
  • AK:数据确认, 对DT TPDU的确认
  • REJ:拒绝接受请求, 或拒绝接受DT TPDU

传输地址

  • 传输地址唯一地标识主机进程
  • 传输地址=网络号+主机号+端口号, 端口号即传输服务访问点(TSAP), 用来标识应用进程;在IP网络, 传输地址= IP地址+端口号
    传输层

建立连接(三次握手)

传输层
建立传输连接过程比较复杂, 双方需进行反复协商, 通常采用“三次握手” , 其原因是:

  • 传输服务质量等参数进行多次协商, 有助于提高连接成功率
  • 网络层服务不可靠(如IP协议), “两次握手” 可能导致连接失败

建立传输连接过程

  • 发起方发出建立连接请求CR TPDU, 提出相关服务质量要求及其它参数与对方协商,包括吞吐量、TPDU的大小等
  • 接收方收到连接请求CR TPDU后
    若同意(或适当修改协商参数) , 返回连接确认CC TPDU
    若不同意, 则返回断连请求DR TPDU, 并附带原因参数
  • 发送方收到连接确认CC TPDU后
    发送第一个数据TPDU(DT TPDU) 确认连接建立;
    发送REJ TPDU拒绝连接。

释放连接(四次挥手)

传输层
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。