概述
传输层的功能
- 提供进程和进程之间的逻辑通信
- 复用和分用
- 对收到的报文进行差错检测
TCP和UDP
TCP:面向连接的传输控制协议
可靠,面向连接,时延大,适用于大文件
UDP:无连接的用户数据报协议
不可靠,无连接,时延小,使用于小文件
分用和复用
复用:应用层所有的应用进程都可以通过传输层在传输到网络层
分用:传输层从网络层收到数据后交付指明的应用进程
端口的长度为16bit,能表示65536个不同的端口号
套接字Socket = (主机IP地址, 端口号)
UDP
主要特点:
- 无连接,减少开销和发送数据之前的实验
- 使用最大努力交付,即不保证可靠交付
- 面向报文,适合一次性传输少量数据的网络应用
- 无拥塞控制,适合很多实时应用
- 首部开销少,只有
8 Byte
,TCP20 Byte
首部格式:
UDP校验:
TCP
特点:
- 面向连接(虚连接)的传输层协议
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
- TCP提供可靠可交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
- 提供全双工 -> 发送缓存 接收缓存
- 面向字节流 -> 无结构的字节流
首部格式:
六个控制位
窗口:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量
检验和:检验首部+数据,检验时要加上12B胃受不,第四个字段为6
紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数
选项:最大报文段长度MSS、窗口扩大、时间戳、选择确认...
TCP连接管理
三个阶段:连接建立->数据传送->连接释放
连接建立:
连接释放:
可靠传输
重传
确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。->超时重传
TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)
冗余ACK:每当比期望序号大的时序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号 -> 快速重传
流量控制
TCP使用滑动窗口机制实现流量控制
在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(Receiver Window接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd(Congestion Window)的最小值
拥塞控制
网络中有许多资源同时呈现供应不足->网络性能变差->网络吞吐量将随输入负荷增大而下降
拥塞控制是全局性问题
慢开始和拥塞避免
快重传和快恢复
评论