网络层
IP协议
- 不可靠和无连接的理解
不可靠:不保证数据成功到达目的地,不保证数据无丢失
无连接:不维护数据报的后续信息 -> 不保证数据的有序性
- IP首部

总长度:IP首部 + IP数据部分 总长度
标识:IP在存储器中维持一个计数器,每产生一个数据报计数+1,数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中,等到重组的时候,相同标识符的值的数据报就会被重新组装成一个数据报。
标志:0 DF-是否分片 MF-后面是否还有数据报
片偏移:原来的数据报分片后,这一分片在数据报中位置
传输层
TCP协议
- TCP首部

序号:只考虑偏移量,序号表示“我发了多少”
确认号:只考虑偏移量,确认号表示“我接收了多少”
标志位需要占据一位
确认号同时表示我期望下次接受的序号,如果接受不到(中间某一次数据丢失导致的不连续),这一端的确认号会始终保持在同一值
举例:

关于序列号和确认号的理解:
- 3次握手与4次挥手
- 拥塞控制
慢开始、拥塞避免、快重传、快恢复
- 流量控制
- TCP如何保证可靠性
5.1 序列号,确认机制,超时重传
5.2 保持它首部和数据的校验和,保证数据的准确性
5.3 排序,保证数据有序性
UDP协议
- UDP首部

- UDP与TCP的对比
2.1 时间上不需要建立连接,没有建立连接的时延
2.2 空间上,TCP需要在端系统中维护连接状态,需要一定的开销。此连接装入包括接收和发送缓存,拥塞控制参数和序号与确认号的参数。UCP不维护连接状态,也不跟踪这些参数,开销小。空间和时间上都具有优势。
2.3 没有拥塞控制,网络拥塞不影响主机的发送速率
2.4 提供尽最大努力的交付,数据没有传送到对端不会返回错误信息
2.5 面向报文,在应用层和网络层之间只提供封装和解封装服务,报文不可分割,是UDP处理的最小数据单位