传输层
两个主要协议:
- TCP,传输控制协议
- UDP,用户数据报协议
UDP协议(数据格式、校验和)
- UDP是无连接的,减少了建立和释放连接的开销
- UDP尽最大能力交付,不保证可靠交付
- 因此不需要维护一些复杂的参数,首部只要8个字节(TCP首部至少20个字节)
UDP-校验和(checksum)
- 校验和的计算内容:伪首部(含源IP、目标IP)+首部+数据
- 伪首部:仅在计算校验和时起作用,不会传递给网络层
TCP协议
- 几个要点
- 可靠传输
- 流量控制
- 阻塞控制
- 连接管理(建立连接、释放连接)
- TCP首部长度为20字节~60字节
- 数据偏移
- 占4位,取值范围(5~15)
- 首部长度= 数据偏移*4
UDP首部中有个16位字段记录了UDP报文段的长度(首部+数据)
TCP只记录了TCP首部的长度
- 分析
- UDP首部中占16位的长度字段完全是冗余的,纯粹为了保证首部是32bit对齐
- TCP\UDP的数据长度,其实完全可以由IP数据包的首部推断出
TCP-校验和
- 同UDP一样,TCP的校验和的计算内容:伪首部+首部+数据