网络层IP协议(网络层IP协议的作用)

作者:电脑培训网 2024-04-27 18:23:49 587

网络层:IP协议这篇博文分享了网络层的IP协议。分析并分享了IP协议的基本概念和协议格式。

IP协议的基本概念

网络层IP协议(网络层IP协议的作用)

与讨论TCP/UDP时只讨论通信主机之间的关系不同,讨论IP协议时会加上主机之间的网络进行讨论和分析。

主机:一般都有IP地址,路由器一般也有IP地址,可以进行路由控制。节点是主机和路由器的统称。

IP协议不提供可靠性

对于IP来说,是主机号和网络号的组合,即IP=主机号+网络号。在网络协议栈中,TCP负责决策,IP负责执行。即IP有能力通过网络将数据从主机A发送到主机B。通过这种能力,我们知道IP协议不提供可靠性。

IP协议格式

无论我们是学习UDP协议、TCP协议还是IP协议,我们首先要解决的问题就是如何封装和分离数据,以及如何分离。

首先我们来了解一下IP协议格式:

4位版本号:指定IP协议的版本。对于IPv4,该值为4。

4位头长度:IP头有多少个32位长度,即长度*4的字节数。4位表示最大数量为15,因此IP头的最大长度IP标头为60字节。

封装和分离就是将IP协议数据包分开,取出前20个字节的数据,即把报头和数据分开,封装则相反。

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

通过上层协议的类型,可以知道上层使用的是UDP还是TCP,这样就可以进行区分。

8位服务类型:3位优先级字段、4位TOS字段和1位保留字段。

4位TOS分别代表:的最小延迟、最大吞吐量、最大可靠性和最小成本。这四者互相冲突,只能选其一。对于ssh/telnet等应用程序,最小延迟更为重要。对于像ftp这样的程序,最大吞吐量更为重要。

16位总长度(totallength):整个IP数据报占用多少字节?

8位生存时间(TTL):数据报到达目的地的最大消息跳数。一般为64。每经过一条路由,TTL-=1,如果减为0,尚未到达,则丢弃。该字段主要用于防止路由环路。

分片问题

在IP协议中,有一个13位的分片偏移量,表示分片相对于原始IP报文开头的偏移量。

13位分片偏移:分片相对于原始IP报文开头的偏移量。事实上,它指示了当前片段在原始消息中的位置。通过该值*8得到实际的字节偏移量。因此,除了最后一条消息外,其他消息的长度都必须是8的整数倍。

分片的情况

在IP中,大多数情况下分段不是一种操作。之所以需要分片,是因为数据链路层一次发送的数据大小是有限的,通常是1500字节,称为MTU。而如果IP报文超过1500字节,就需要进行分片。

分片操作

如果我们有一个2000字节的数据包,则需要对其进行分片,然后数据链路层才能将其发送出去。

在这个2000字节的数据包中,20字节是报头,1800字节是数据。分片后,需要为每个分片数据添加相同的头。也就是说分片数据的最大尺寸是1480字节,然后加上20字节的头!

因此,我们将1800个数据分成1480和320,然后给分开的数据包加上头,分别加到1480和320数据上,形成一个数据包。此时,这个2000字节的数据包被分层为两部分,一部分是1500字节,另一部分是340字节。

分片的操作者

在网络层进行分片,分片后传输到数据链路层。就像我们通过快递寄送一台完整的台式电脑时,需要将其拆开才能寄出。寄出时,快递公司不会负责拆装,因为如果拆装后出现问题,快递公司将是客户的责任,所以客户自己拆开,然后交给快递公司。快递公司。快递公司只负责送货。

传输层在分片中的角色扮演

对于分片操作,传输层实际上并不知道也不需要知道该操作。但!是否需要分片是由传输层决定的!

分片的弊端

我们都知道发送数据时有丢包的概率。如果一个数据包被分片成多个数据包,丢包的风险就会增加。

因此,一般来说,为了减少不必要的风险,减少分片操作,需要TCP/UDP控制单条报文的大小!

组装

3位标志:第一位保留。第二位为1,表示禁止分片。此时,如果报文长度超过MTU,IP模块将丢弃该报文。第三位标识更多的数据包。

分片后发送到接收端,接收端需要进行组装。

首先,16位标识符将需要组装在一起的数据包分组,13位片偏移将这些数据包组装在一起。因为对于不同的没有分片的数据包,它们的16位标识符是不同的。对于分片数据包,它们的16位标识符是相同的。

同时,13位的切片偏移量代表某个消息的净荷的偏移量,即原始消息的净荷的偏移量。即分片消息的分片偏移==前一条消息的分片偏移+前一条消息本身的字节大小。

通过16位标识符、13位偏移量和3位标志,可以确定哪些数据包需要组装以及组装顺序是什么。最后按照升序组装完成。

接收端如何区分哪些消息是独立的,哪些消息是分片的?下面的伪代码可以帮助理解:

if(morefragments==1||fragmentoffset0){//分片消息!Set();//组装}else{//常规消息}

网段划分

网络分段是指将一个大网络划分为多个小网络。网络中,每个设备节点都有唯一的IP地址,IP地址由网络号和主机号组成。大网络划分为小网络后,每个小网络都有自己的网络地址和主机地址范围,相应的IP就会在相应的小网络中,以方便网络管理。

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

主机号:在同一网段内,主机的网络号相同,但主机号必须不同。

同一网段内,网络号必须相同。当然,不同网段的网络号也可以相同,因为可以使用子网掩码来区分不同的子网,这将在后面讨论。现在我们从上图可以清楚地看到,不同网段的网络号是不同的,尤其是主机号。网络通信是通过路由器在网段之间进行的。而不同的子网实际上是将相同网络号的主机放在一起。如果子网中添加了一台新主机,则该主机的网络号将与子网的网络号相同,但该主机号不得与子网中其他主机的网络号相同。

划分网段后,如果需要在一个巨大的网络中查找中国广东省广州市某个小区的主机。然后就可以根据IP地址对应的划分网段找到中国,然后继续搜索找到广东的网段,找到广州的网段,最后找到目的主机。

DHCP

DHCP可以自动为子网中新的主机节点分配IP地址,避免了手动IP管理的不便。现在大多数路由器都配备了DHCP功能。因此,路由器也可以看作是一个DHCP服务器。

IP地址的分类

A级0.0.0.0至127.255.255.255

B类128.0.0.0至191.255.255.255

C类192.0.0.0至223.255.255.255

D类224.0.0.0至239.255.255.255

E类240.0.0.0至247.255.255.255

您可以通过IP的前一个或两个字符来判断IP类型。每个类别,由于其网络号和主机号的位数不同,意味着它可以生成的IP号码的数量也不同。

随着互联网的快速发展,这种IP划分方案的局限性很快就显现出来。大多数组织都申请B类网络地址,导致B类地址很快被分配,而A类地址则浪费了大量的地址。

例如,如果申请B类地址,理论上一个子网中可以允许超过65,000台主机。子网中具有A类地址的主机较多。然而,在实际的网络设置中,一个子网中不会有这么多主机。因此大量的IP地址被浪费了。

子网掩码

针对这种情况提出了一种新的划分方案,称为CIDR:

引入额外的子网掩码来区分网络号和主机号。子网掩码也是一个32位正整数。通常以一串“0”结尾。将IP地址和子网掩码进行“按位与”运算,结果就是网络号。网络号和主机号的划分与IP地址是A类、B类还是C类无关。

例子:

可见,通过IP地址和子网掩码的AND运算即可得到网络号。全0到全1的主机号就是子网的地址范围。IP地址和子网掩码还有更简洁的表示方式,如140.252.20.68/24,表示IP地址为140.252.20.68,子网掩码的高24位为1,即255.255.255.0。

当然,IP地址的网络号不仅可以划分为子网掩码,还可以进一步划分为其他掩码等。简单来说,IP地址中的网络号、主机的大小数量不是静态的。

特殊的IP地址

将IP地址中的所有主机地址设置为0,成为网络号,代表这个局域网。

将IP地址中的所有主机地址设置为1就成为广播地址,用于向同一链路上相互连接的所有主机发送数据包。

127.*的IP地址用于本地环回测试,通常为127.0.0.1。

私有IP地址和公网IP地址

私有IP和公共IP是指互联网上使用的IP地址类型。

私有IP地址是指在局域网中用于内部通信和管理的IP地址。私有IP地址范围是:

10.*,前8位是网络号,共有16,777,216个地址。

从172.16开始。到172.31.前12位是网络号,共有1,048,576个地址。

192.168.*,前16位是网络号,共有65536个地址。

包含在此范围内的成为私有IP,其余的称为全局IP。

私有IP地址无法直接从公网访问,需要通过网络地址转换等技术进行转换才能访问公网。

公有IP地址是指在Internet中用于公共网络通信和访问的IP地址。每台设备的公网IP地址都是唯一的,公网IP地址无需转换即可直接访问互联网。

私有IP地址和公有IP地址的区别

1、私有IP地址只能在局域网内使用,不能直接访问公网,而公有IP地址可以直接访问。

2.私有IP地址可以重复使用,但公有IP地址不能重复使用。每个公网IP地址只能分配给一台设备。

3.私有IP地址可以通过NAT技术转换来访问公网,但不需要公有IP地址。

WAN口IP/子网IP/NAT技术

观察上图:

每个网段或局域网都有一台路由器,局域网中每台主机的网络号都是相同的。在家庭/运营商路由器中,有两个IP地址,即子网IP和WAN口IP。

路由器LAN口连接的主机都属于当前路由器的子网。不同的路由器具有相同的子网IP。子网内的主机IP地址不能重复,但子网之间的主机IP地址可以重复。每个家庭路由器实际上是运营商路由器子网中的一个节点。这样的运营商路由器可以有很多级别。最外层运营商路由器的WAN口IP为公网IP。

NAT技术

假设子网内的一台主机需要与服务器通信,那么这台主机发送的数据就以源IP和目的IP开头!从主机开始到家庭路由器,历经千山万水到达运营商路由器,最后到达服务器。OK,这时候服务器需要给主机返回响应,但是发现很多主机的IP都是192.168.1.201。我现在应该怎么做?

事实上,当主机向路由器发送数据时,路由器会对其源IP进行转换,即将数据中的主机源IP替换为自己的WAN口IP。同样,当从一台路由器到达另一台路由器时,源IP也会发生转换。更换IP。这就是所谓的NAT技术。

路由

路由就是在复杂的网络结构中找到一条到达目的地的路由。路由过程是一个逐跳“问路”的过程。

IP数据包的传输过程与问路相同。当IP数据包到达路由器时,路由器首先会检查目的IP。路由器决定数据包是否可以直接发送到目的主机,或者是否需要发送到下一个路由器。重复此序列,直到到达目标IP地址。如何确定当前数据包应该发送到哪里?这依赖于每个节点内部维护一个路由表。

路由表

使用route命令查看路由表:

转发流程示例1:

如果要发送的数据包的目的地址是192.168.56.3,则与第一行的子网掩码进行与运算,得到192.168.56.0。如果它与第一行中的目标网络地址不匹配,则将其与第二行中的子网掩码一起添加。进行AND运算后,我们得到192.168.56.0,这是第二行的目的网络地址,因此是从eth1接口发送出去的。由于192.168.56.0/24是与eth1接口直连的网络,因此可以直接发送到目的主机,无需经过路由器转发。

转发流程示例2:

如果要发送的数据包的目的地址是202.10.1.2,与路由表中的前几项进行比较,发现均不匹配。根据默认路由表项,从eth0接口发出,发送到192.168.10.1路由器;192.168.10.1路由器根据其路由表确定下一跳地址。

相关推荐

  • 无锡品酒培训学校,无锡品酒培训学校地址

    无锡品酒培训学校,无锡品酒培训学校地址

    大家好,今天小编关注到一个比较有意思的话题,就是关于无锡品酒培训学校的问题,于是小编就整理了2个相关介绍无锡品酒培训学校的解答,让我们一起看看吧。五琼浆是哪里生…

    无锡品酒培训学校,无锡品酒培训学校地址 2024-05-09 12:52:39
  • 章丘楷书培训学校,章丘楷书培训学校地址

    章丘楷书培训学校,章丘楷书培训学校地址

    大家好,今天小编关注到一个比较有意思的话题,就是关于章丘楷书培训学校的问题,于是小编就整理了2个相关介绍章丘楷书培训学校的解答,让我们一起看看吧。祖籍是山东济南…

    章丘楷书培训学校,章丘楷书培训学校地址 2024-05-09 11:38:39
  • 华明镇培训学校,华明镇培训学校地址

    华明镇培训学校,华明镇培训学校地址

    大家好,今天小编关注到一个比较有意思的话题,就是关于华明镇培训学校的问题,于是小编就整理了3个相关介绍华明镇培训学校的解答,让我们一起看看吧。华明元服务中心是干…

    华明镇培训学校,华明镇培训学校地址 2024-05-09 07:31:04
  • 秀屿区公益培训学校,秀屿区公益培训学校地址

    秀屿区公益培训学校,秀屿区公益培训学校地址

    大家好,今天小编关注到一个比较有意思的话题,就是关于秀屿区公益培训学校的问题,于是小编就整理了1个相关介绍秀屿区公益培训学校的解答,让我们一起看看吧。福建避暑山…

    秀屿区公益培训学校,秀屿区公益培训学校地址 2024-05-09 05:04:26
  • 竹溪订单培训学校,竹溪订单培训学校地址

    竹溪订单培训学校,竹溪订单培训学校地址

    大家好,今天小编关注到一个比较有意思的话题,就是关于竹溪订单培训学校的问题,于是小编就整理了1个相关介绍竹溪订单培训学校的解答,让我们一起看看吧。未来餐饮行业哪…

    竹溪订单培训学校,竹溪订单培训学校地址 2024-05-09 04:48:28