IP协议报文详解

前言
之前一直在纠结要不要写这个,因为网上已经有很多较棒的文章,后来想想还是写一下吧,主要用来加深自己的印象,毕竟已经忘了很多次

IP报文

在这里插入图片描述

Version(版本)

标识目前采用的 IP 协议的版本号。一般的值为 0100(IPv4),0110(IPv6)

IHL(Internet Header Length IP表头的长度)

  1. IHL指IP首部占32bit字节的数目(可以按照上图理解为占了几行)。另外首部长度本身为4位,能表示的二进制最大数为1111,换算成十进制为15,而且因为上图每一行是4个字节,所以IHL最大长度为15*4=60个字节
  2. 在上图中因为除了Options和Pading部分其他都是必须的,所以IHL最小长度为5*4=20个字节

Type of Service(服务类型)

共八位,由3位优先权字段(现已被忽略) + 4位TOS字段 + 1位保留字段(须为0)组成。4位TOS字段分别表示最小延时、最大吞吐量、最高可靠性、最小费用,其中最多有一个能置为1。应用程序根据实际需要来设置 TOS值,如ssh和telnet这样的登录程序需要的是最小延时的服务,文件传输ftp需要的是最大吞吐量的服务。 字段解析如下:
PPP:表示此IP封包的优先度,目前很少使用
D:若为 0 表示一般延迟(delay),若为 1 表示为低延迟;
T:若为 0 表示为一般传输量 (throughput),若为 1 表示为高传输量;
R:若为 0 表示为一般可靠度(reliability),若为 1 表示高可靠度。
M: 传输成本:0:普通,1:成本尽量小
O: 最后一位被保留,恒定为 0

Total Length(总长度)

指这个 IP 封包的总容量,包括表头与内容 (Data) 部分。最大可达 65535 bytes

Identification(标识符)

因为IP是无可靠服务,报文不可以按序接收(TCP可以实现按序接收),但当报文长度超过MTU而必须分片时,这字段来标识多个分片是否属于同一个报文,比如A报文被分成A1和A2,那么A1和A2的Identification是相同的。该字段Flags和Fragment Offest 结合实现在接受端组合分片报文

Flag(分片标志)

这个地方的内容为『0DM』,其意义为:
0: 不可用
D:若为 0 表示可以分片,若为 1 表示不可分片
M:若为 0 表示此 IP 为最后分片,若为 1 表示非最后分片。

Fragment Offset(片偏移)

表示该 IP 包在该组分片包中位置,接收端靠此来组装还原 IP 包

Time To Live(生存周期)

表示这个 IP 封包的存活时间,范围为 0-255。当这个 IP 封包通过一个路由器时, TTL 就会减一,当 TTL 为 0 时,这个封包将会被直接丢弃。说实在的,要让 IP 封包通过 255 个路由器,还挺难的

Protocol

通过协议号标识上层使用的是哪一层协议,常用的协议号有:TCP=6,UDP=17,ICMP=1

Header Checksum

报头检验码,检查报头的正确性,checksum这种校验非常弱,规则都是透明的,所以不要相信这个校验和可以帮你防止恶意篡改,它仅仅用来应对网络传输中的干扰信号

Source Address

源IP地址,指的是公网地址

Destination Adress

目标IP地址,指的也是公网地址

Options (其他参数)

这个是额外的功能,提供包括安全处理机制、路由纪录、时间戳、严格与宽松之来源路由等。

Padding(补齐项目)

Options和Padding一共有32位,由于Options字段不是固定的,所以需要Padding 字段来加以补齐

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值