第一章 简介
1.网络层与链路层数据传输相关概念1.基本概念IP数据报IP datagram网络层实体间交换的协议数据单元PDU。IPv4数据报最大长度65,535字节。IPv6数据报最大长度65,575字节。帧frame链路层实体间交换的PDU长度取决于具体接口。2.IP数据报的封装与分片封装过程发送端IP将传输层消息如TCP分节完整封装为IP数据报。结构IP数据报 IP首部 传输层数据网络层的服务数据单元SDU。分片fragmentation当IP数据报过长无法被单个帧封装时需对其SDU进行分片。每个片段fragment添加新的IP首部封装到多个帧中。重组reassembly分片操作可能发生在源端或传输途中但重组仅发生在目的端。SCTP协议也采用类似的分片与重组机制处理过长记录。3.避免分片/重组的优化措施TCP/IP协议族的策略TCP通过MSS最大分节大小和MTU最大传输单元限制分节大小避免IP分片。SCTP根据MTU分片/重组记录并通过块捆绑chunk bundling提高传输效率避免IP分片。IPv4与IPv6的差异IPv6禁止途中分片依赖路径MTU发现功能。IPv4尽量避免途中分片操作。4.分组Packet的定义分组是IP传入链路层的SDU由链路层封装为帧。分组可能是完整的IP数据报。IP数据报的某个片段添加新IP首部后。5.接口属性区分MSS 是 TCP 层的概念限制的是 TCP 数据段的大小在三次握手时协商确定MTU 是链路层的概念限制的是整个 IP 数据包的大小两者的关系是MSS MTU - 40字节IP头TCP头典型值 1460 字节。理解这个关系对网络性能优化很重要比如避免 IP 分片导致的性能下降。2.TCP和UDP1.PDU协议数据单元类型应用层PDU名称应用数据application dataTCP应用进程间没有长度限制的单个双向字节流UDP应用进程间长度不超过UDP发送缓冲区大小的单个记录record传输层PDU通用名称消息messageTCP特有名称分节segment特点长度有限2. TCP传输层处理机制数据封装方式发送端TCP将应用进程的字节流数据按顺序分割后封装在各个分节中分节封装的数据可能包含发送端应用进程单次输出操作的结果连续数次输出操作的结果封装的数据完整性可能是完整的可能是不完整的分节大小决定因素对端通告的最大分节大小MSS外出接口的最大传输单元MTU外出路径的路径MTU如果网络层支持路径MTU发现如IPv6分节功能类型SYN分节建立连接FIN分节终止连接RST分节中止连接ACK分节确认数据接收PSH分节刷送待发数据URG分节携带紧急数据指针数据承载分节承载应用数据特点以上功能可以灵活组合3. UDP传输层处理机制处理方式相对简单封装机制发送端UDP将来自应用进程的单个记录整个封装在UDP消息中特点直接传送给接收端UDP3.网络层由IPv4和IPv6这两个协议处理,可以选择的传输层有TCP或UDP,将在第2章中讲述它们。TCP与UDP之间留有间隙,表明网络应用绕过传输层直接使用IPv4或IPv6是可能的。这就是所谓的原始套接字(raw socket),将在第28意中讨论