传输层:
传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”的连接
传输层的PDU被称为Segment
TCP和UDP的报文格式
源端口号:未知端口号,大于1023的端口都被认为未知端口号,源端口的取值随机产生
目标端口号:已知端口号,1-1023之间,通常分配给应用层的各种协议
TCP:面向连接,通信过程中需要有回馈机制保证报文的可靠传输,流量控制机制,保证数据的发送效率
UDP:无连接无回馈,即使有回馈也是数据的回馈
TCP的建立-三次握手
任何基于TCP的应用,在发送数据之前,都需要TCP进行“三次握手”建立双向的可靠的连接
在三次握手中,为了保证数据传输的可靠性,使用序列号=上一个报文的确认号,确认号=上一个报文的序列号+1
SYN:同步位,当同步位置位为1时,代表请求建立TCP连接
ACK:确认位,当确认位置位为1时,代表本报文有确认性质
ack:确认号,32bit,用于确认对方发来的最后一个TCP报文
在传输数据时,序列号=上一个报文的确认号,确认号=上一个报文的序列号+应用层字节数大小
TCP的关闭-四次挥手
但数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源
网络层:负责数据从一台主机到另外一台主机之间的传递
IPv4报文格式
标识符:用于区分不同数据包的分片
标志位: Rbit,保留
DFbit,当DF=1,代表不允许对该报文进行分片,当DF=9时代表允许分片
MFbit,当MF=1时,代表我是分片并且我不是最后一个。当MF=9时,代表我是最后一个分片
MF=1 偏移量=0 第一个分片
MF=1 偏移量≠0 分片报文,既不是第一个,也不是最后一个
MF=0 偏移量=0 非IP分片报文
MF=0 偏移量≠0 最后一个分片报文
只有一个分片才携带传输层字段,后续分片不携带传输层字段
偏移量:用于将分片报文重组
第一个分片的(传输层大小+PDU) /8=第二个分片的偏移量
(传输层大小+第一个分片的PDU+第二个分片的PDU) /8=第三个分片的偏移量
TTL值:生存时间,用于防止报文在网络中形成环路无限转发
Protocol: 8 bit,协议: 下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理
常见值:
· 1:ICMP,Internet Control Message;
· 2:IGMP,Internet Group Management;
· 6:TCP,Transmission Control Protocol;
· 17:UDP,User Datagram Protocol.