IP协议提供不可靠、无连接的数据报传送服务。

  • 不可靠:尽力而为地传输,不保证IP数据报能成功到达目的地。
  • 无连接:每一个数据报之间相互独立地进行路由选择,可不按发送顺序接收。
IP首部格式例如以下:

以下就用这幅图结合Wireshark来分析个字段含义。

这次截取的是DNS数据报,它位于应用层。


首先看一下整个IP首部的内容:



相应的原始数据:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmVzdGxlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">


以下按字段分别进行说明。

4位版本号表示眼下的协议版本号号。这里使用的是IPv4,当然值就是4啦。


4为首部长度表示首部包括多少个4字节。相应Header length字段的20字节,但依据原始数据能够看出。这个字段实际值应该是5,也就是有5个4字节,共20字节。


8位服务类型包含最小延迟、最大吞吐量、最高可靠性等性能指标。

这里全为0表示一般服务。


16位总长度是指整个IP数据报的长度。以字节为单位。这里为514字节。

注意这一长度仅仅是包括在以太网帧中的IP数据报的长度,不包括以太网帧开头的目的地址(6字节)、源地址(6字节)、类型(2字节)。


16位标识唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就加1,这一字段主要用来分片和重组。

3位标识。在分片和重组时用到,这里暂不讨论。

13位片廉价。

在分片和重组时用到,这里暂不讨论。


8位生存时间表示该数据报能够经过的最多路由器数。经过一个路由器值减1。减到0则丢弃该数据报。并发送ICMP报文通知源主机。

8位协议域,分别有:
  • 1表示ICMP协议
  • 2表示IGMP协议
  • 6表示TCP协议
  • 17表示UDP协议
我们这里是UDP协议。从而能够知道。DNS协议执行于UDP之上。

16位首部检验和。详细怎样校验这里不讨论。当校验值有误时,IP层丢弃收到的数据报,但不生成差错报文,由上层去发现丢失的数据报并进行重传。


接下来就是32位的源IP加上32位的目的IP。这里没什么好说的。

最后的选项字段非常少被使用,这里就不讨论了。

參考:
《TCP/IP具体解释》 P24-P27.

IP数据报首部格式的更多相关文章

  1. IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  2. (网络层)IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  3. 网络层 IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  4. IP数据报首部解析

    IP数据报首部的格式,普通20字节. 4位版本号:当前4--IPv4. 4首部长度:首部长度 8位服务类型TOS: 3bits(优先权)+ 4bits(类型--最小延迟+最大吞吐量+最高可靠性+最小费 ...

  5. IP数据报的格式

    1. IP数据报首部的固定部分中的各字段 ①版本:占4位,指IP协议的版本.通信双方使用的 IP协议版本必须一致.日前广泛使用的 IP协议版本号为 4 (即 IPv4). IPv6 目前还处于起步阶段 ...

  6. IP数据报首部校验和算法

    当用google搜索IP数据报首部校验和算法的时候,总是看到的是代码,没有看到其过程,于是就有了此文,如有错误请指正.文章省略一点,呵呵   IP/ICMP/IGMP/TCP/UDP等协议的校验和算法 ...

  7. IP数据报首部checksum的计算

    IP数据报首部checksum的计算 2009年02月22日 23:23:00 zhangyang0402 阅读数:10897   一.首先区别下面两个概念:(1)one's complement:正 ...

  8. Linux - IP数据报报头及个字段的意义

    IP数据报的格式: IP 数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍. 对于IPv4 ,4位版本字段是4. (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致. ...

  9. IP数据包格式详解(转)

    摘自:http://blog.163.com/hlz_2599/blog/static/1423784742011112195857956/</> TCP/IP协议定义了一个在因特网上传输 ...

随机推荐

  1. 【JavaScript 6—基础知识点】:正则表达式(应用)

    导读:其实,我不像大家一样,从一开始就重视着正则表达式,我甚至都觉得好浪费时间浪费精力,都没用的.因为,如果我要判断是不是为数字,我可以使用Numberic()方法,如果要去空格的话,使用trim() ...

  2. iOS第三方地图-高德地图(导航sdk路径规划)

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  3. [luoguP3172] [CQOI2015]选数(递推+容斥原理)

    传送门 不会莫比乌斯反演,不会递推. 但是我会看题解. 先将区间[L,H]变成(L-1,H],这样方便处理 然后求这个区间内gcd为k的方案数 就是求区间((L-1)/k,H/k]中gcd为1的方案数 ...

  4. KD-Tree 的笔记

    声明: 蒟蒻对于 KD-Tree 的一点理解,写在博客里面作为笔记. 1.KD-Tree 的定义 1)关于 K-D KD-Tree 中的 D 即为 Dimension ,意思也就是维度. 所以 KD- ...

  5. P3799 妖梦拼木棒 (组合数学)

    题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法? 输入输出格式 输入格式: 第一行一个整数n 第二行n个整数 ...

  6. android开发里跳过的坑——camera调用setDisplayOrientation设置预览显示旋转无效

    问题原因,在surfaceview没有设置给camera之前调用了,所以,这个方法一定要在camera.setPreviewDisplay(surfaceHolder)这个之后,启动相机预览之前调用.

  7. linux的cpu性能评估

    linux的cpu性能评估 参考自:自学it网,http://www.zixue.it/. (1)利用vmstat命令监控系统CPU[test@localhost ~]$ vmstat 2 3 #每2 ...

  8. CSS3 伪类选择器 nth-child() 的用法

    伪类选择器 nth-child() 在IE6-8和FF3.0-浏览器不支持,CSS3中nth-of-type(n)(比如nth-of-type(1))这个特殊的类选择符可以样式更加个性的标题和段落等, ...

  9. shell高级-----初识sed和gawk

    sed编辑器 sed说明 sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增.删.改.查等操作,支持按行.按字段.按正则匹配文本内容,灵活方便,特别适合于大文件的编辑. 替换 ...

  10. InitializingBean

    org.springframework.beans.factory包下有一个接口是InitializingBean 只有一个方法: /**  * Invoked by a BeanFactory af ...