3.1 传输层服务
传输层提供的服务:进程和进程之间的以报文为单位的逻辑通信。
两种协议:
TCP:可靠,面向字节流。
UDP:不可靠,面向报文。
3.2 UDP协议
全称:User Datagram Protocol,用户数据报协议。
特点:
尽力而为的服务,不可靠,可能会丢失。
无连接
用于流媒体(如视频)、DNS、SNMP
虽然UDP不可靠,但我们可以在应用层增加可靠性、应用特定的差错恢复,变成可靠传输。
3.2.1 报文
报文分为两部分,头部和数据部分
头部:8个字节,包括源端口、目标端口、长度、校验和(判断报文是否出错)。
数据部分。
校验和例子,将32比特的报文拆成两部分。
回卷:将最高位的进位(即溢出的1)溢出的1加到最低位上。
3.2 TCP协议
报文段结构
TCP序号和确认号的简单场景
TCP是双工的,两边都能传数据。
- Seq是序号,表示发送的序号。
- ACK是确认号,表示希望收到的序号。
例如:
- 第一次A传数据给B:
- Seq=42,表示A发送给B的数据,到达A中数据的序号42(传输方向:A –> B);
- ACK=79,表示B给A发送的数据,到达B中数据的序号78,A希望B从79开始传送数据(传输方向:B –> A)。