IP包头详解

注:图片来自于网络,文章来自于课本总结(TCP/IP详解第一卷),我写这个文章的目的算是一种笔记的途径,里面大部分内容摘自此书.

 

IP包头详解_职场 

版本(Version):标识了数据包的IP版本号,这个4位字段设置为0100表示IPV4,设置为0110表示IPV6

报头长度(header length):字段长度为4位.报头长度因为数据包的可选项的大小会发生变化,最小的报头长度为20个八位组,最大可以扩展到60个八位组

服务类型(Type of Service ToS):字段长度为8位,用来指定特殊数据包的处理方式.ToS允许按照吞吐量,延时,可靠性,cost选择传输服务.ToS通常不用,最近几年已经作为区分服务(Diffserv)架构的一部分重新定义了
路由器可以根据数据的分类使用不同的优先级对数据包进行排序和转发,每一个排序和转发处理成为Per-Hop Behavior (PHB),虽然DIffserv定义了这个架构或体系,但是这个机制本身成为区分服务类别或者简单的称为服务类别CoS
ToS重新定位后,前6位为DSCP(区分代码点),我们可以使用任意数值或者根据在区分服务体系结构中预定义服务类别,最多可以定义64个不同的服务类别,并可整理在后PHB中,后2位则为ECN(显示拥塞通知Explicit Congestion Notification)

总长度(Total Length):接受者用IP数据包总长度减去IP报头长度,就可以确定数据报数据有效载荷的大小,因为为16位,所以IP数据包的最大长度为65535

标识符(Identifier):通常与标记字段和分段便宜字段一起用于数据包的分段.在数据包大于MTU时,数据要被分段,然后路由器在每片数据包的标识字段上打上相同的标记,以便于接受设备可以识别出属于一个数据包的分段

标记字段(Flag):共3位,第一位没用,第二位是DF(不分段位)DF为1时表示路由器不能对数据包进行分段处理,如果路由器因为不能分段而未被转发,则会丢弃改包并向向源发送错误信息第三位则为MF(更多分段位),当路由器对数据包进行分段时,除了最后一个MF设置为0外,其他所有的分段MF位均设置为1,直到接受者收到MF为0的分段为止.

分段偏移(Fragment offest):字段长度13位,用于知名分段起始点相对于报头起始点的偏移量,分段便宜字段可也使接受者按照正确的顺序重组数据包

生存时间(TTL Time To Live):8位不解释

协议(Protocol):8位,差不多有100多个不同的协议号,例如协议号1:ICMP 2:IGMP 6:TCP 17:UDP等等

报头校验和(Header Checksum):是针对IP报头的就错字段

源地址和目的地址(Source and Destination Address)

可选项:
1.松散路由选择(Loose SOurce Routing):允许跳过多台路由
2.严格路由选择(Strict Source Routing):不允许跳过多台路由
3:记录路由(Record Route):数据包离开时为每台路由器提供空间记录数据包的出站接口地址,以便于保存数据包经过的所有路由器的记录,类似于路由追踪,但是不同点在于记录了双向路径上的出站接口信息
4:时间戳(Timestamp):可以记录到达时间