一份菜单

图说明了IP协议标头基础知识

通过 Himanshu Arora 2012年3月26日

IP协议是TCP / IP堆栈中的主要协议之一。

所有TCP,UDP,ICMP和IGMP数据都以IP数据报的形式在网络上传输。

IP是连接少且不可靠的协议。从意义上说,连接较少,即在源或目标端均未维护与IP数据报相关的状态,并且在不能保证IP数据报将被传递至目标或不传递的意义上,这种连接是不可靠的。

如果IP数据报在目标或某个中间主机(从源到目标的传输)中遇到某些错误,则通常会丢弃IP数据报,并将ICMP错误消息发送回源。

TCP / IP套件中的IP层

从上图可以看出,IP协议位于TCP / IP协议套件的第2层,即Internet层。此处需要注意的另一点是如何在TCP / IP套件中打包数据。如果我们分析上面的图,我们会看到:

  • 应用层将数据(要传输到远程目标)发送到传输层。
  • 传输层将其标头放在开头,然后将完整的数据包(TCP标头+应用程序数据)发送到IP层。
  • 在同一行上,IP层将其标头放在从TCP接收的数据的前面(请注意,从TCP接收的数据= TCP-header + app-data)。
  • 因此,现在IP数据报的结构变为IP头+ TCP头+应用数据。
  • 这个IP数据报被传递到以太网层,在同一行上,它在IP数据报上添加自己的报头,然后整个数据包通过网络传输。

在目标主机上,将执行相反的过程。这意味着每一层都在数据包中读取其自己的标头,然后剥离标头,以便最终应用程序接收到应用程序数据。

IP头

  • 协议版本(4位) :这是协议标头中的第一个字段。该字段占4位。这表示当前使用的IP协议版本。使用的IP协议最常见的版本是版本4,而版本6已不在市场上并迅速流行。
  • 标头长度(4位) : 该字段提供IP标头的长度。标头的长度以32位字表示。该长度还包括IP选项(如果有)。由于此字段为4位,因此允许的最大标头长度为60个字节。通常,当不存在任何选项时,此字段的值为5。此处5表示五个32位字,即5 * 4 = 20字节。
  • 服务类型(8位) :此字段的前三位称为优先级位,从今天开始被忽略。接下来的4位代表服务类型,最后一位未使用。代表TOS的4位是:最小化延迟,最大通过量,最大可靠性和最小化金钱成本。
  • 总长度(16位):表示IP数据报的总长度,以字节为单位。由于标题长度(如上所述)给出了标题的长度,而该字段给出了总长度,因此可以使用这两个字段轻松计算数据的长度及其起点。由于这是一个16位字段,它表示IP数据报的长度,因此IP数据报的最大大小可以为65535字节。当IP分段通过网络发生时,该字段的值也会更改。在某些情况下,IP数据报的长度非常小,但是某些数据链路(如以太网)会将这些小帧填充为最小长度,即46个字节。因此,要知道在以太网填充的情况下IP标头的确切长度,此字段非常有用。
  • 识别(16位):此字段用于唯一标识IP数据报。每当IP数据报从源发送到目标时,此值都会增加。该字段在重组碎片IP数据报文时非常有用。
  • 标志(3位):该字段由三位组成。尽管到目前为止保留了第一位,但后两位具有其重要性。第二位代表‘Don’t Fragment’一点。设置此位后,IP数据报将永远不会被分段,如果出现分段需求,则将其丢弃。第三位代表‘More Fragment’一点。如果该位置1,则表示分段的IP数据报,此数据报之后具有更多的片段。如果是IP数据报的最后一个片段,则不会设置此位,表示这是特定IP数据报的最后一个片段。
  • 片段偏移(13位):如果IP数据报碎片,则该字段包含距IP数据报开头的偏移量(以8字节为单位)。同样,此字段用于重组分段的IP数据报。
  • 生存时间(8位) :此值表示IP数据报在丢弃之前将经历的跳数。此字段的值在开始时设置为32或64(让我们说),但是在网络上的每一跳上,此字段都会减一。当该字段变为零时,数据报被丢弃。因此,我们看到该字段从字面上意味着网络上数据报的有效寿命。
  • 协议(8位) :此字段表示将数据移交给IP层的传输层协议。当在目的地对数据进行多路分解时,此字段会派上用场,因为在这种情况下,IP将需要知道将数据切换到哪个协议。
  •  标头校验和(16位) :此字段表示一个值,该值是使用覆盖标头中所有字段的算法计算得出的(假定此字段为零)。当IP数据报从源发送到目标时,将计算此值并将其存储在标头中,并且在目标端,将再次计算此校验和并针对标头中存在的校验和进行验证。如果值相同,则数据报未损坏,否则假定接收到数据报已损坏。因此,此字段用于检查IP数据报的完整性。
  • 源IP和目的IP(各32位) :这些字段分别存储源地址和目标地址。由于这些字段的大小均为32位,因此可以使用IP地址的最大长度为32位。因此,我们看到这限制了可以使用的IP地址的数量。为了解决这个问题,引入了IP V6,它增加了该容量。
  • 选项(可变长度) :此字段表示对特定IP数据报有效的选项列表。这是一个可选字段,可能存在也可能不存在。如果标题中存在任何选项,则第一个字节表示如下:

0 1 2 3 4 5 6 7
复制标志 期权类别 选项编号

  • 在上面的描述中,‘copy flag’意味着在此IP数据报被分段的情况下,将此选项复制到所有分段。的‘option 类’代表以下值:0-> control, 1-> reserved, 2 ->调试和测量,以及3->保留。下面列出了一些选项:

长度 描述
0 0 选项列表末尾
0 1 无操作
0 2 11 安全
0 3 变种 松散的源路由
0 9 变种 严格的源路由
0 7 变种 记录路线
0 8 4 流ID
2 4 变种 互联网时间戳

  • 数据:此字段包含来自协议层的数据,该数据已移交给IP层。通常,此数据字段包含传输层协议的标头和数据。请注意,在源主机的情况下,每个TCP / IP层协议在从其他层接收的数据的开头都附加有自己的标头,在源主机的情况下,每个协议都剥离自己的标头,并将其余数据发送到下一层。

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 19 评论… 加一 }

  • 注销 2012年3月26日,上午3:04

    重要的是IP是由IETF在RFC 2460(http://tools.ietf.org/html/rfc2460)

  • Himanshu Arora 2012年3月26日,上午10:23

    @注销
    感谢您的宝贵意见!

  • 拉杰什·库马尔v 2012年4月23日,晚上8:14

    很好的解释..hats offf

  • 毗湿奴 2013年8月19日,上午10:57

    咕一…

  • 阿米特·萨克塞纳(Amit Saxena) 2013年8月26日,上午5:23

    如果我在2004年知道这篇文章/网站,那我将成为班上的佼佼者!
    真的很棒,而且语言很简单。

    我爱您的网站。

    阿米特·萨克塞纳(Amit Saxena)

  • 阿莫尔·帕蒂尔 2013年9月5日,晚上11:08

    这是有关IP的足够信息。

  • 阿米尔 2013年10月9日,上午12:53

    清晰而有帮助

    谢谢

  • 索米亚 2014年3月20日,晚上10:50

    明确说明…Nice

  • 里沙卜 2015年3月23日,上午7:09

    如果IP版本是IPv6,那么IP数据报的结构应该是什么样子(我是指在源IP和目标IP的情况下,明显大于32位)。 ?
    谢谢

  • Mallikarjun 2015年3月26日,上午8:43

    其清晰而优美的解释…

    谢谢….

  • 标记 2015年4月11日,上午4:45

    在tcp / ip套件图的下方,线路状态ip位于l2。这是错的 。 ip位于l3。我想这只是一个错字。请更正。

  • 匿名 2015年5月25日,上午9:03

    非常描述

    苏拉杰·帕尔

  • 匿名 2015年6月18日,上午5:41

    尼斯

  • 助剂 2015年12月15日,晚上11:30

    清楚地解释。

  • rakesh 2016年1月19日,上午12:55

    真的很好…。对于所有网络主题,我都需要这种链接,以便轻松理解。 ðŸ™,

  • 匿名 2016年12月7日,下午12:25

    精细

  • 索米亚.v 2017年2月11日,上午4:41

    好啊 explanation

  • 琳达 2017年3月14日,上午3:18

    不错的解释比….

  • 匿名 2017年5月3日,上午2:45

    谢谢

发表评论

下一篇:

上一篇:

的RSS  |  电子邮件  |  推特  |  脸书  |  Google+



电子书

热门帖子

版权© 2008–2020 拉梅什·纳塔拉詹(Ramesh Natarajan)。版权所有| 服务条款