Linux--IP协议--0316-19
创始人
2025-05-31 09:32:08
0

目录

1. IP协议

1.1 协议头格式

 1.1.1 报头内容的详细理解

1.2 分片

分片是什么?

如何做到分片?

1.2.1 关于分片的认识

1.2.2 分片的具体过程

 1.2.3 分片的坏处

1.3网段划分   

1.3.1 CIDR (网络掩码)划分


1. IP协议

概念:IP层帮我们解决的是,从A主机送到B主机的能力。

1.1 协议头格式

 先解决两个问题,如何封装和解包?

报头的长度是固定的,而且有自描述字段(4位首部长度)。

有效载荷=16位总长度-首部长度*4

如何交付?

 在报头中有8位协议,可以用来表示这个数据是根据TCP协议还是UDP协议来的。在接收端向上交付的时候也需要保持一致。


 1.1.1 报头内容的详细理解

 4位版本号:

指定IP协议的版本,对于IPv4来说,就是4.

4位头部长度:

和TCP中的4位头部长度作用完全一样。表示带上选项的报头长度。可以表示0-15的数字,报头的长度最小20,最大60。

8位服务类型:

3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个。

16位总长度:

IP数据报整体占多少个字节。

8位生存时间:

数据报到达目的地的最大报文跳数,一般是64,每次经过一个路由,该值就会--,如果一直减到0还没有到达目的地。该数据报就会被丢弃。设置的目的是为了防止出现路由循环(成环了)。

16位头部校验和:

使用CRC进行校验, 来鉴别头部是否损坏.

32位源地址和32位目标地址:

表示发送端和接收端。

1.2 分片

在上述中我们没有介绍 16位标识 3位标志 和13位片偏移。这是因为这三个数据的评判与下一层链路层有关。链路层由于物理特征的原因,一般无法发送太大的数据,其具有一次可以转化到网络的报文大小的限制(默认是1500字节)。

如果网络层想要转发一个3000字节数据,就需要对数据进行分片。


分片是什么?

将一个比较大的IP报文,拆分成多个小的、满足条件的报文。这个行为是网络层做的,接收端在向上交付时,也需要将这些分片好的数据做组装。这样才可以保证无论收到时,还是发出时都是完整的数据,让其它层感觉不到这个行为。


如何做到分片?

16位标识

主机发送的报文彼此都不相同。但IP报文在数据链路层如果被分片了, 那么每一个片里面的这个id都是相同的。

3位标识符
第一位是保留位,还没想好怎么用。

第二位为1标识该IP报文禁止分片。如果链路层发送不了这个数据,就会丢弃!

第三位“表示更多分片”,如果分片了的话,除最后一个分片该位为0,其他分片该位为1.

13位片偏移

分片在原始数据中的偏移量。

1.2.1 关于分片的认识

一、分片行为不是主流。一般而言网络层不会进行数据分片。

二、可以根据16位的标识,区分不同的报文。

三、其必须具有识别报文是否被分片的能力

如果一个数据没有分片,它的特征是:

更多分片标志位为0,并且13位片偏移为0。

如果当前数据就是最后一个分片,他的特征是:

13位片偏移一定不为0。

四、具有识别出来哪些分片是开始,中间或者结尾

开始分片:更多分片标记为1,片偏移为0。

中间分片:更多分片标记为1,片偏移不为0。

结尾分片:更多分片标记为0,片偏移不为0。

五、具有异常处理的能力

如果任何一个分片丢失,都会导致组装失败。必须被识别出来。

中间报文有多个,如何保证收全了?

根据偏移量进行升序排序,结合偏移量+自身大小=下一个报文的偏移量。依次扫描整个报文!

1.2.2 分片的具体过程

首先回答一个问题,如果我们想用上述提到的异常处理的方式,分片之后,每个分片的IP报文是否具有自己的独立的报文?

是的。为了支持未来的组装,每一个分片都必须有自己的独立的报文。

 1.2.3 分片的坏处

在网络层进行分片和组装的过程,上层(传输层和)应用层是不知道的。而在数据传输过程中,丢包是有概率的,分片增加了丢包概率。

1.3网段划分   

首先先对网络号和主机号有一个大致的了解

IP地址分为两个部分,网络号和主机号。

网络号:保证互相连接的两个网段具有不同的标识。

主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

举个例子:学号 || 身份证号

学号当中,有好几个部分,比如年级,专业,...,班级中的学号组成。

这些帮助限制范围的称为网络号。因为年级不同或者专业不同这些数字是不一样的。即互相连接的两个网段具有不同的标识。

而范围缩小到了一个范围,就只剩下了一个确认的过程。

即在这个班级里面,我的学号是39。所以可以通过这个数字来找到该学生。这个数字就称为主机号,在同一个班级里面没有人会和我的这两位数字相同,即主机之间具有相同的网络号,但是必须有不同的主机号。

所以网络号表征的是不同区域,网络号在不同的查找过程中是不断变大(数值上),并且收敛的(缩小范围)。


1.3.1 CIDR (网络掩码)划分

网段划分

通过合理设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同。

为什么要进行网络划分呢?1.便于定位。2.提高查找效率


网络掩码

引入一个额外的子网掩码来区分网络号和主机号

子网掩码是一个32位的正整数,通常用一串“0”来结尾。将IP地址和子网掩码进行按位与操作,得到的结果就是网络号。

好处是可以给不同的路由配置不同位数的子网掩码,就可以看到不同的网络号!

因为不同的路由器一定要至少连接两个网络。每一个网络的网络号可能是不同的。所以每个路由器都要给自己直接连接的网络配置对应的子网掩码。

IP地址与子网掩码做与运算可以得到网络号, 主机号从全0到全1就是子网的地址范围。

相关内容

热门资讯

iPhone手机怎么玩安卓系统... 你有没有想过,你的iPhone手机竟然也能玩安卓系统?没错,就是那个一直以来让你觉得遥不可及的安卓世...
平板删安卓系统更新不了,原因及... 最近是不是你也遇到了这样的烦恼?平板电脑上的安卓系统更新不了,是不是让你头疼得要命?别急,今天就来给...
苹果组装机安卓系统卡,卡顿背后... 你有没有发现,最近用苹果手机的时候,有时候系统有点卡呢?这可真是让人头疼啊!你知道吗,其实这背后还有...
安卓系统原生浏览器,功能与体验... 你有没有发现,每次打开手机,那个小小的浏览器窗口总是默默无闻地在那里,陪你浏览网页、搜索信息、看视频...
安卓机如何上苹果系统,跨平台体... 你是不是也和我一样,对安卓机和苹果系统之间的切换充满了好奇?想象你的安卓手机里装满了各种应用,而苹果...
安卓导入系统证书失败,原因分析... 最近在使用安卓手机的时候,你是不是也遇到了一个让人头疼的问题——导入系统证书失败?别急,今天就来给你...
安卓原生系统有哪些手机,盘点搭... 你有没有想过,为什么有些手机用起来就是那么流畅,那么顺心呢?这背后可大有学问哦!今天,就让我带你一起...
安卓系统关机了怎么定位,安卓系... 手机突然关机了,是不是有点慌张呢?别担心,今天就来教你一招,让你的安卓手机即使关机了,也能轻松定位到...
安卓系统游戏加速器,畅享无延迟... 你有没有发现,手机游戏越来越好玩了?不过,有时候游戏体验可能并不那么顺畅,是不是因为手机性能不够强大...
安卓4系统天气功能,尽在掌握 安卓4系统天气功能大揭秘在当今这个数字化的世界里,手机已经不仅仅是一个通信工具,它更是一个集成了各种...
安卓系统如何玩碧蓝幻想,攻略与... 你有没有想过,在安卓系统上玩《碧蓝幻想》竟然可以这么酷炫?没错,就是那个让你沉迷其中的二次元大作!今...
安卓系统搜不到图朵,图朵生成之... 最近是不是你也遇到了这样的烦恼?手机里明明有那么多美美的图片,但是用安卓系统搜索的时候,却怎么也找不...
魁族8刷安卓系统,系统升级后的... 哇,你知道吗?最近在安卓系统圈子里,有一个话题可是引起了不小的轰动,那就是魁族8刷安卓系统。你是不是...
微信正版安装安卓系统,畅享沟通... 你有没有想过,你的微信是不是正版安装的安卓系统呢?这可不是一个小问题哦,它关系到你的微信使用体验和隐...
电视能刷安卓系统吗,电视也能刷... 电视能刷安卓系统吗?揭秘智能电视的无限可能想象你家的电视不再只是用来观看节目的工具,而是变成了一个功...
安卓系统开通通知功能,畅享智能... 你知道吗?最近安卓系统更新后,新增了一个超级实用的功能——开通通知功能!这可是个大喜事,让咱们的生活...
苹果系统安卓爱思助手,系统兼容... 你有没有发现,手机的世界里,苹果系统和安卓系统就像是一对欢喜冤家,总是各有各的粉丝,各有各的拥趸。而...
安卓系统占用很大内存,揭秘内存... 手机里的安卓系统是不是让你感觉内存不够用,就像你的房间堆满了杂物,总是找不到地方放新东西?别急,今天...
安卓系统p30,安卓系统下的摄... 你有没有发现,最近安卓系统P30在手机圈里可是火得一塌糊涂呢!这不,我就来给你好好扒一扒这款手机的那...
siri被安卓系统进入了,智能... 你知道吗?最近科技圈可是炸开了锅,因为一个大家伙——Siri,竟然悄悄地溜进了安卓系统!这可不是什么...