传输层包含两个重要协议: 传输控制协议TCP——适用于面向连接服务 用户数据报服务UDP——适用于无连接服务 TCP(Transmission Control Protocol):提供进程间端到端的可靠的全双工数据通信,是一种面向连接的服务,对通信子网的可靠度没有要求,采用捎带应答方式工作。 一、TCP协议功能特点 1.提供面向连接的服务:通信双方分别用SOCKET原语创建一个连接端点。 2.面向数据流:将从高层接收和向高层送交的数据视为无结构的字节流。 3.缓冲传输:将高层数据缓存起来,由TCP软件将字节流分成数据片后传送。 4.提供可靠性:TCP采用带重传的肯定确认来进行差错控制和流量控制。 5.全双工连接:TCP允许在两个方向上同时进行传送。
二、TCP协议 伪头格式 数据片(segment):TCP所传输的TPDU,用来传输控制信息和数据,传输数据和确认置于同一数据片中。 数据片格式:含报头部分、数据部分。
三、TCP连接管理——包括建立连接和释放连接 1.建立连接——采用三次握手操作,连接是在双方机器的端口号上实现的。 通常是服务器一方被动的等待连接请求的到来,而客户方执行CONNECT原语主动请求连接,同时说明要连接的IP地址、端口号、能接收的最大数据片等参数。 例如:假设右图中A是客户方,B是服务器,采用三次握手法建立连接。 2.释放连接 当通信一方A的应用进程向TCP软件通知释放连接时,TCP软件把剩余的数据片发送完毕,然后发一个释放连接数据片,对方B接到释放连接数据片后,发出确认,通知应用进程,此时只释放连接的一半,即A到B的连接,另一方向B到A可以继续流动,直到
四、TCP数据传输 TCP数据传输:TCP软件将应用层用户交付的数据视为字节流,为每个字节编号,序号以232为模,每个数据片都含有该片数据中第一个字节的序号。 1.超时重传 自适应算法:用来确定重发时间,记录每一个数据片发出的时间和收到相应确认的时间,这两个时间之差即往返传输时间(round trip time),将各个数据片的往返时延样本加权平均,得到报文段的平均往返时间T,每测得一个新的往返时延,逐渐改变这个平均值: T=α(旧往返时延T)+(l-α)(新的往返时延) 其中:系数α的值为0≤α<1。通常α选得比较接近1。 定时器设置的重发时间应略大于计算出的T。 2.流量控制 TCP协议采用可变滑动窗口尺寸来进行流量控制。 另一方向释放为止,整个连接才全部释放。
TCP实现端对端的流量控制,接收端在所发送的数据片中对已收到多少字节进行确认,同时用窗口字段说明还准备接收的字节数,即接收方当前可用缓冲器大小的说明;根据改变窗口的通知,发送方调整自己的发送窗口。 3.拥塞控制 拥塞的可能产生来源: 接收方的容量问题,通过滑动窗口实现的端–端流量控制解决; 网络内部容量问题,通过拥塞窗口来解决。 发送方实际采用的窗口大小:以接收方通知的窗口值为最大值,选用滑动窗口和拥塞窗口中的最小的一个。 不发生拥塞时:拥塞窗口 = 接收窗口; 出现拥塞时:拥塞窗口 = 1/2原拥塞窗口; 拥塞消除后:线性增加拥塞窗口值,直到产生新的拥塞。
|