【面试】IP数据报格式分析

(除选项外的报头区总共20个字节)
1)版本:IPV4/IPV6
2)头长度:报头区长度,用于计算数据区的开始位置,比如头长度为6,代表报头区长度为6*4个字节,头长度的单位为4字节,所以报头区长度不为4字节的倍数时必须填充字节,满足倍数要求
3)服务类型TOS:

8位二进制,用于规定本数据报的处理方式
1.优先权(0-7):数字越大,表示该数据报的优先级越高,网络中的路由器可以使用优先级进行拥塞控制,如当网络发生堵塞时可以根据数据报的优先级来决定数据报的取舍
2.短延迟位D:该位为1代表数据报请求以短延迟信道传输,0表示正常延时
3.高吞吐量位T:该位为1代表数据报请求以高吞吐量信道传输,0表示普通
4.高可靠位R:该位置为1时代表数据报请求以高可靠信道传输,0表示普通
5.保留位:没有使用
下面是各网际协议的IP数据报的服务类型TOS的值:

从上表可以得到的结论:
对于与用户直接交换的,一般选用短延时
对于有大量数据传输的,一般选用高吞吐量
对于传输控制信息的,一般选用高可靠
4)总长度
IP数据报的总长度(报头区+数据区),总长度理论长度为2的16次方(65536)字节,但由于物理网络限制,远远达不到这个理论值
5)标识:相同的标识可以使得分片后的各数据报片最后能正确的重新组装成原来的数据报
6)标志:标志为1代表后面“还有分片”的数据报
7)片偏移:在较长的分组分片后,某片在原组中的相对位置,片偏移以8个字节为单位,也就是说每个分片的长度都是8的倍数
8)生存时间TTL:指定了IP数据报可以在网络中传输的最长时间,实际中设置为最大经过的路由器跳数,经过1个路由器,TTL就减去1,当TTL为0还没有到达目的地时就丢弃该IP数据报
TTL为1代表该数据报只能在本局域网中传输,TTL最大为2的8次方255
TTL存在的目的就是避免数据报在网络中不断的兜圈子,白白的消耗网络资源
9)上层协议:指明该IP数据报使用的是传输层的那种协议
10)首部校验和:采用反码求和的方式校验数据报的首部,路由器进行首部校验【不能绝对的保证首部不出问题,只能在绝大多数情况下保证
【面试】IP数据报格式分析的更多相关文章
- 以太网帧、TCP与UDP段以及IP数据报格式总结
传输层及其以下的机制由内核提供,是操作系统的一部分,应⽤层由⽤户进程提供应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装.不同的协议层对数据包有不同的称谓,在传 ...
- 以太网帧格式、IP数据报格式、TCP段格式+UDP段格式 详解
转载:http://www.cnblogs.com/lifan3a/articles/6649970.html 以太网帧格式.IP数据报格式.TCP段格式+UDP段格式 详解 1.ISO开放系统有 ...
- IP数据报格式和IP地址路由
一.IP数据报格式 IP数据报格式如下: 注:需要注意的是网络数据包以大端字节序传输,当然头部也得是大端字节序,也就是说: The most significant bit is numbered 0 ...
- 计算机网络(3)-----IP数据报格式
IP数据报(IP Datagram) 格式 解析 (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.目前广泛使用的IP协议版本号为4(即IPv4). (2)首部长度 占4位,可 ...
- IP数据报格式 及路由转发算法
ip数据报分首部和数据两部分组成: 首部分为固定部分和可变部分 版本--占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 首部长度--占 4 位,可表示的最大数值 是 ...
- IP数据报格式 及分组转发算法
ip数据报分首部和数据两部分组成: 首部分为固定部分和可变部分 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 首部长度——占 4 位,可表示的最大数值 是 ...
- 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 网络层协议 MAC帧、IP数据报、TCP报文 关系 IP地址与硬件地址 链路层与网络层
小结: 1. 网络层两种服务 虚电路服务 virtual circuit 电信网 网络层负责可靠交付 数据报服务 网络层不负责可靠交付 提供灵活的.无连接的.尽最大努力交付的数据报服务 不提供服务 ...
- tcp、udp、ip、icmp报文格式分析
TCP .UDP .IP. ICMP协议报文格式分析 Tcp报文格式: Wireshark抓包如图: 源端口/目的端口(16bit): 在TCP报文中包涵了源端口/目的端口,源端口标识了发送进程,目的 ...
- IP数据报首部格式
IP协议提供不可靠.无连接的数据报传送服务. 不可靠:尽力而为地传输,不保证IP数据报能成功到达目的地. 无连接:每一个数据报之间相互独立地进行路由选择,可不按发送顺序接收. IP首部格式例如以下: ...
随机推荐
- junit4的初级用法
junit4初级用法: 一:各个标签的意思 1.@Test用来标注测试函数 2.@Before用来标注此函数在每次测试函数运行之前运行(每执行一个@Test之前都要运行一遍@Before) 3.@Af ...
- Stability Analysis of Algorithms
算法(Algorithm)是指用来操作数据.解决程序问题的一组方法.对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消 ...
- Tips on Java
1.JAVA种数组的两种定义方式. int[] nums; int nums[]. 2.整型默认为int,如果需要long,须加l或L.小数默认double,d或D可省略,但如果需要float,须加f ...
- 2019-2020-1 20199302《Linux内核原理与分析》第十一周作业
缓冲区溢出 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况.这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段.这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢 ...
- LOJ P10004 智力大冲浪 题解
每日一题 day37 打卡 Analysis 经典的带限期和罚款的单位时间任务调度问题 将 val 从大到小排序,优先处理罚款多的,将任务尽量安排在期限之前,并且靠后,如果找不到,则放在最后面 #in ...
- 用Python操作MySQL(pymysql)
用python来操作MySQL,首先需要安装PyMySQL库(pip install pymysql). 连接MySQL: import pymysql connect=pymysql.connect ...
- element ui input 输入时触发事件
<el-form-item label="客户名" :label-width="labelWidth"> <el-input v-model= ...
- SSH框架整合1
======================web.xml======================= <?xml version="1.0" encoding=" ...
- Cannot read property '_withTask' of undefined
前言 Cannot read property '_withTask' of undefined 突然一下子,就报这个错了,刚刚还好好呢 Bug分析 1.是在template中调用了某个方法,但是你没 ...
- Hadoop(四)—— MapReduce
一.Hadoop版本特性 MRv1 第一代计算框架,由编程模型和运行时环境两部分组成. 编程模型是,将数据进行map操作,然后进行reduce操作,最后将计算结果存储到HDFS中. 运行时环境是,由J ...