IP协议详细解读

IP协议

IP数据包包含报头数据两个部分,这里讲的就是报头部分包含的信息。报头最大可以是60个字节(下面会讲为什么),其中固体部分长度为20字节。

IP协议报头

为了方便结构化记忆,可以将报头每四个字节作为一部分,固定报头则有20/4 = 5块。

  1. 1-4字节:
    • 0-3(4bits): version 版本号 IP版本号,4表示IPv4, 6表示IPv6。
    • 4-7(4bits): IHL ip报头长度,4bits因此最大为15,所以能表示的报头最长为15*4 = 60字节。
    • 8-15位(8位): Type of Service 服务类型, 3位优先权,4位TOS子字段,最后1位必须为0。
    • 16-31(16位): Total Length IP包整体长度
  2. 5-8字节 :
    • 0-15 (16位):Identification 标识号,唯一确定主机发送的每一份数据报。当数据报长度大于MTU(最大传输单元)时,要将数据包分割,分割后的标识号不变。
    • 16-18(3位): Flags 标志,用来表明当前ip报文的分割类型,依次为R DF MF。R保留位;DF为1不分片,DF为0分片;MF为0最后一片,MF为1还有下一片。
    • 19-31(15位):Fragments Offset 片位移,本分片相对于原始数据报文首位的偏移,只有DF为0时有效。
  3. 9-12字节:
    • 0-7 (8位):TTL(Time-to-Live) 生存时长,表示可以经过路由的次数,每到下一级路由,该值减1。当该值为0时,丢弃数据包。
    • 8-15 (8位):Protocol 协议号,表示使用的协议号,常用TCP: 6; UDP: 17; ICMP: 1。其他可参考List of IP protocol numbers
    • 16-31 (16位):Header Checksum 首部校验和
  4. 13-16字节:32位 源IP地址
  5. 17-20字节:32位 目的IP地址

猜你喜欢

转载自www.cnblogs.com/ykli/p/9668115.html
今日推荐