IP协议的相关特性、数据链路层相关内容讲解

本文详细介绍了IP协议的头部结构,包括版本、头部长度、服务类型、总长度等关键字段。接着讨论了IP地址的管理,提出了NAT机制解决地址不足的问题,解释了内网和外网IP的概念。此外,还探讨了路由选择的重要性以及数据链路层的以太网帧结构和MTU(最大传输单元)的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IP协议相关特性

在这里插入图片描述
首先我们来认识一下IP协议的报头:
4位版本号:指定IP协议的版本,对于IPv4就是4.

4位头部长度:IP头部的长度是多少个32bit,也就length*4的字节数,4bit表示的最大数据是15,因此IP头部最大长度是60个字节。

8位服务类型:用于分配优先级、延迟、吞吐量以及可靠性;前3位是优先级,后面4位成为服务类型,最后1位没有定义。

16位总长度:IP数据报整体占多少个字节。

16位标识:唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每个片里面1这个id都是相同的。

3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。

13位分片偏移:是分片相对于原始IP报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。用于重组源数据。

8位生存时间:数据报到达目的地的最大报文跳数,一般为64,每次经过一个路由,TTL -= 1,一直减到0还没有到达,那么就丢弃了,可以防止出现路由循环。

8位协议:表示上层协议的类型。

16位头部校验和:使用CRC进行校验,用来甄别头部是否损坏。

32位源地址和32位目的地址:表示发送端和接收端。

地址管理

从上述的IP数据报头可以看出来,IP地址是一个4字节,32位的整数。但是我们通常会把这个32位的整数转换成点分10进制的表示方法
在这里插入图片描述
这样一串东西就是我的IP地址,三个点把整数分成了4个部分,每一个部分就是一个字节,每个部分的取值范围位0-255。

我们可以尝试着计算一下一个32位的整数可以产生多少不同的地址呢?42亿9千万个,在过去的互联网环境下,42亿9千万个IP地址绝对够我们使用,可是互联网飞速发展,这个地址数量已经不够用了,如何解决这个问题呢?

有两个解决方法:
一个是动态分配IP地址:只给正在上网的设备分配地址,没有上网的设备不给分配地址。

另一个就是NAT机制

NAT机制

NAT机制将IP地址分为了两大类,一类我们称为内网,一类称为外网。

内网IP:10.* 172.16.* - 172.32.1.*192.168.* 内网IP可以重复出现。

外网IP:剩下的所有IP 外网IP必须唯一

在这里插入图片描述
类似于上面这样的结构,当我要在哔哩哔哩上搜索IP协议讲解,此时我的电脑就会找到路由器,告诉路由器我要干什么,路由器此时就会针对源IP进行替换,替换成路由器自己的IP之后将数据报发送给哔哩哔哩服务器,此时哔哩哔哩的服务器接认为收到的这是数据来自于1.2.3.4这个IP,而不是192.168.0.79这个IP。因为外网设备是无法直接访问内网的设备的

此时我的舍友也在哔哩哔哩上搜索小姐姐跳舞,同样要经过路由器进行IP替换后发送给哔哩哔哩的服务器。那么问题来了服务器返回数据时,目的IP都是路由器的IP,如何区分那个数据报是给哪一个主机的呢?路由器做了IP替换,他也会记得是谁替换了谁。

NAT背景下如何通信:
1、外网设备 >> 外网设备,可以直接通信
2、内网设备 >> 其他内网设备, 不允许
3、外网设备 >> 内网设备, 不允许
4、内网设备 >> 外网设备,对应的内网设备的路由器,触发NAT机制进行IP替换,此时就会给这个网络数据报的源IP替换成路由器自己的IP。

IP地址的组成

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

网络号:标识网段,保证相互连接的两个网段具有不同的标识。
主机号: 标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

下面我来通过画图说明一下网络号和主机号的规则,一般家里的局域网由路由器连接,路由器一般都会有两个口一个Wan口用于连接广域网,一个Lan扣用于连接局域网,有时候Wan口并非真正意义的广域网。

在这里插入图片描述
此时路由器就连接了两个相邻的局域网,在我的电脑所在的局域网中,网络号为192.168.0.,同时在这个局域网中的各个设备的主机号不能重复。家用电视所在的局域网中网络号为192.168.1.,同样这个局域网中的各个设备的主机号也不能重复,同时因为这个路由器将两个局域网连接在一起了,这两个局域网就被成为相邻的局域网,这个时候两个局域网的网络号也不能重复

那么问题又来了,如何区分网络号和主机号呢?是不是前三个字节一定是主机号而后一个字节一定是网络号呢?不是的,对于网络号主机号的划分是有两种分类方法的:1、IP地址类型(ABCDE)2、子网掩码

IP地址类型(ABCDE)
在这里插入图片描述
用前缀来区分类别,每个类别有固定的网络号位和主机号位。

子网掩码
在这里插入图片描述
子网掩码站在二进制的角度看,左侧都为1右侧都为0,为1的部分有几位,就有几位网络号,剩下的就是主机号了。

特殊的IP地址

主机号全部为0的
例如:192.169.0.0 这个就是一个网络号,局域网中不存在某个主机的主机号为0。

主机号全部为1的
192.168.0.255 这是一个广播地址。

ip为127.*开头的我们成为环回IP

主机号为1的,一般作为网关IP,这个不是绝对的。

路由选择

传输层关注的端到端,而网络层关注的是究竟选择哪一条路实现端到端,因为互联网中的设备非常之多,所以这条路存在了大量的冗余,如何筛选路径,这个就是路由选择需要做的事情了。

类似于高德地图导航,当我们知道出发地和目的地后,有很多条路都可以到达目的地,但是高德地图会选择一条最近的路,网络上也是一样,区别在于,高德地图可以记住所有的路,而在网络中路由器的能力有限,他只能记住自己周围的设备并且生成一个路由表来记录,我们进行路由选择时没到达一个路由器就会“问路”,但是有可能该路由器的路由表中没有这个目的IP,此时路由器会指出一条默认的路径(路由表中的“吓一跳表项”),这个路由器更高一级,所以更见多识广,反复这样问路最后找到目的IP,规划出来了一条路径,这就是路由选择

数据链路层相关内容

以太网

首先我们先来认识一下以太网帧
在这里插入图片描述
数据链路层关注的是相邻节点的传输,所以有mac地址,占6个字节,相比于IPv4的4字节大了很多,所以当前的每个设备都有唯一的mac地址。

类型为0800的是用来传输数据的以太网帧,类型为0806和8035的是特殊的以太网帧。

值得注意的是,以太网帧的最大载荷为1500,那么如果IP数据报内容大于这个最大载荷怎么办呢?

MTU

一般我们把数据链路层的数据帧的最大载荷成为MTU,如果承载的数据长度超过这个MTU,那么就会在IP层进行分包,是每个数据帧都在MTU的范围之内。

在之前的IP协议的报头我们需要关注三个内容:

1、16位标识:一个大的IP数据报,拆成对各小的报之后,这个标识都是一样的。

2、3位标志位:有1位不用,1位表示是否分包了,还有1位表示当前这个分包是否是最后一个(结束标志)。

3、13位片偏移:简单来说就是表示了每个小的数据报的先后顺序,用来组包的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悲伤猪小猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值