ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

网络基础协议之IP

2021-03-13 21:35:46  阅读:242  来源: 互联网

标签:协议 字节 首部 ip 分片 网络 标识 IP


IP 协议的简单描述

  • IP是网络层协议
  • IP是不可靠传输协议
  • IP由两部分内容组成,分别由首部和数据组成
  • IP数据报最大支持65534字节的传输(因为我看书上写的是,数据包由总长度决定,总长度是2的16次方-1的总和大小)
  • IP数据报最大支持6万多个字节的传输,但是每次传输的最长大小由以太网协议II及互联网传输的大小决定,以太网II最大支持传输单元1500字节,互联网传输的默认大小是576字节,所以IP协议是支持分片处理的。

 

IP数据报首部格式

版本:ip报文中,版本占了4位,用来表示该协议采用的是那一个版本的ip,相同版本的ip才能进行通信。一般此处的值为4,表示ipv4

首部长度:指的是首部占32 bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。

Tos服务类型:服务类型(TOS)字段包括一个3bit的优先权子字段(现在已被忽略),4bit的TOS子字段和1bit未用位但必须置0。4bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit。如果所有4bit均为0,那么就意味着是一般服务。

下图列出了对不同应用建议的TOS值

 

总长度:该字段表示整个ip报文的长度,包含首部和数据,单位是1字节。能表示的最大字节为2^16-1=65535字节。不过由于链路层的MTU限制。超过1480字节后就会被分片(以太帧MTU为1500的情况下,除去20字节的包头)

标识:标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。

标志:该字段是与ip分片有关的。其中有三位,但只有两位是有效的,分别为MF,DF。MF标识后面是否还有分片,为1时表示后面还有分片,为0时表示这是若干数据包分片之后中的最后一个。DF标识是否能分片,只有为0表示可以分片。

分片偏移:该字段是与ip分片后,相应的ip片在总的ip片的位置。该字段的单位是8字节。比如,一个长度为4000字节的ip报文,到达路由器。这是超过了链路层的MTU,需要进行分片,4000字节中,20字节为包头,3980字节为数据,需要分成3个ip片(链路层MTU为1500),那么第一个分片的片偏移就是0,表示该分片在3980的第0位开始,第1479位结束。第二个ip片的片偏移为185(1480/8),表示该分片开始的位置在原来ip的第1480位,结束在2959。第三片的片偏移为370(2960/8),表示开始的时候是2960位,结束的时候在3979位。

TTL:该片表示生存周期,该值占8位。ip分片每经过一个路由器该值减一,它的出现是为了防止路由环路,浪费带宽的问题。比如,该ip在R1路由器发送到R2路由器。R2路由器又发给R1路由器。防止这种循环。window系统默认为128。但是之前的老版本反馈以经过路由器的条数/秒数进行描述。当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。

协议:该值标识上层的协议。占8位。其中1标识ICMP、2标识IGMP、6标识TCP、17标识UDP、89标识OSPF。

校验和:首部检验和字段是根据IP首部计算的检验和码。它不对首部后面的数据进行计算。ICMP、IGMP、UDP和TCP在它们各自的首部中均含有同时覆盖首部和数据检验和码。

源地址:发出数据报的主机IP地址

目的地址:接收数据报的主机IP地址

选项:保留作额外的IP 选项。它包含着源站选录和时间戳的一些选项。

数据:使用IP传递的实际数据。

 

问题记录

1、同网段数据包传输,TTL是否发生变化?
答:TTL 是用来标识一个数据包中间经过的路由节点变化的时间参数(注意是时间),同网段不需要跨网段通信,所以是不会发生改变的。

2、发送一个ICMP包3000字节的请求大小,为什么实际传输的过程中大小超过3000字节?
答:因为ICMP 属于IP网络的附属上层协议,传输的过程中最大默认仅支持1500字节的传输大小,所以需要拆包处理。但是拆出来的包实际还是需要包含底层需要自带的以太网协议及IP协议,纯粹的数据包是没办法直接传输的,所以大小必然超过3000字节。

3、实际ICMP包3000字节大小的传输,实际需要拆分成几次传输,每次大小应该是多少,为什么?
答:等了解完ICMP 协议再回来补充

4、发现一个小技巧,所有的网络上层包协议是由下层中声明的。
比如:IP网络层协议的判断,实际是由以太网协议II注明标识的,而TCP协议却是在IP协议层中进行指定

5、IP数据报首选格式中 "首部长度"的大小及描述

1、首选长度大小是4bit
2、首选长度的范围是0000 至 1111
3、首选长度表示的最小单位是32bit,即4字节。
4、首选长度表示的是整个IP数据报首部中固定格式大小;即:固定大小20字节 + 选项 + 数据。
5、举例:首选长度4bit表示的数字是1111,换算成十进制表示15,则表示首选固定长度大小是60字节(15*4,这里的4表示的就是最小单位32bit,而并非首选长度本身的大小)
6、IP报文长度不是4字节的整数倍时,数据传输时就需要对剩余的部分进行填充。注意:这里说的是IP报文长度,不是首选长度
7、常用的IP报文固定大小是不包含选项和数据的,大小20字节。所以首选长度表示0101,换算成10进制就是5的含义,这也是为什么抓包中表示的是数字5。
这个点真的是卡了我好久,我这种有强迫症的人,一个不确定的因素真的是能卡好久。

 

参考内容

  • https://www.cnblogs.com/jiangzhaowei/p/9273854.html
  • https://blog.csdn.net/qq_38314112/article/details/80737775
  • https://www.cnblogs.com/zhangbing12304/p/11016921.html

 

标签:协议,字节,首部,ip,分片,网络,标识,IP
来源: https://www.cnblogs.com/guge-94/p/14530447.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有