一、TCP协议与网络模型
二、TCP建连
注:
(1)SYN=1 表示该报文不携带数据,但消耗一个序号 seq=x,seq=x是客户端的初始化序列号
(2)SYN=1 表示该报文不携带数据,但消耗一个序号 seq=y,seq=y是服务器的初始化序列号,ACK=1是一个确认号
ack=x+1,表示服务器下次接收到的序号希望是x+1。然后服务器进入到SYN-RCVD等待的状态
(3)ACK=1是一个确认号,seq=x+1是上一次服务器回应的序号要求,ack=y+1表示客户下一次接收到的序号希望是y+1
三、ICMP协议报文内容:
四、ipv4数据结构
五、ipv4
具体:1.4位版本号:指定IP协议的版本,对IPv4来说,为4
2.头部长度最长60
3.区分服务 TOS也被称为服务类型,占 8 位;
4.总长度
首部和数据之和,单位为字节;总长度字段为 16 位
5.标识 id
用来标识数据报,占 16 位;
IP 协议在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段;当数据报的长度超过网络的 MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中;具有相同的标识字段值的分片报文会被重组成原来的数据报 (如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id 都是相同的)
6.标志 flag占 3 位
第一位未使用,其值为 0;
第二位称为 DF(不分片),表示是否允许分片;取值为 0 时,表示允许分片;取值为 1 时,表示不允许分片;
第三位称为 MF(更多分片),表示是否还有分片正在传输,设置为 0 时,表示没有更多分片需要发送,或数据报没有分片
7.片偏移
占 13 位
当报文被分片后,该字段标记该分片在原报文中的相对位置
8.生存时间 TTL
表示数据报在网络中的寿命,占 8 位
路由器在转发数据报之前,先把 TTL 值减 1,若 TTL 值减少到 0,则丢弃这个数据报,不再转发;因此,TTL 指明数据报在网络中最多可经过多少个路由器;TTL 的最大数值为 255;若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送
9.协议
表示该数据报文所携带的数据所使用的协议类型,占 8 位
该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分,不同的协议有专门不同的协议号
10.头部校验和
用于校验数据报的首部,占 16 位
数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值
11.源地址
表示数据报的源 IP 地址,占 32 位
12.目的地址
表示数据报的目的 IP 地址,占 32 位