网络原理之IP协议(网络层)

news2024/12/25 0:19:08

目录

前言

什么是IP协议?

IP协议的协议头格式

16位总长度(字节数) 

16位标识、3位标志位和13位片偏移

8位生存时间

IP地址管理

1.动态分配IP

2.NAT机制(网络地址转换)

NAT机制是如何工作的

NAT机制的优缺点

3.IPV6

为什么国家要大力推进普及IPv6?

网段划分 

子网掩码

无类域间路由选择(CIRD)

特殊IP地址

路由选择


前言

在前面,我们学习了在传输层的TCP和UDP协议,今天将为大家讲解在网络层中的比较常见的IP协议。

前面学的TCP协议,主要是保证了数据的可靠传输,但TCP提供的数据传输的策略,真正负责数据传输的则是在传输层之下的网络层和数据链路层、物理层。

网络层主要负责路径规划,为数据的传输规划好最优路径,而数据链路层则是负责真正意义上的传输数据,例如,网卡,交换机。对于物理层,则是通过双绞线、同轴电缆、光纤等。

什么是IP协议?

IP协议(Internet Protocol,网络互连协议)是互联网协议簇的核心协议之一,主要用于在不同的网络之间进行数据包的路由选择和传输。网络层保证了数据可靠的从一台主机传输到另一台主机的前提。网络层解决的是从主机到主机的问题。

IP协议的协议头格式

  • 4位版本:表示该IP协议是哪个版本的,现有能够使用的是IPV4IPV6.
  • 4位首部长度:跟TCP中的4位首位长度是一样的,这里表示IP头部的长度最长为15*4=60字节
  • 8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须设置为0)。4位TOS分别表示:最小延时、最小吞吐量、最高可靠性、最小成本,这四者是相互冲突的,只能选择一个。
  • 16位总长度(total length):IP数据报整体占多少个字节。
  • 16位标识 (id):唯一的标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每一片里面的这个id都是相同的。
  • 3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为1表示禁止分段,这时候如果报文长度超过MTU,IP模块就会丢弃报文,第三位表示“更多分片”,如果分片了的话,最后一个分片的位置为1,其他为0,类似于一个结束标记。
  • 13位分片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值*8得到的,因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)
  • 8位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数。一般是64,每次经过一个路由器,TTL-=1,一直减到0还没到达,那么就丢弃掉,这个字段主要是用于防止出现路由循环
  • 8位协议:表示上层协议的类型。用来判断使用的是TCP还是UDP协议,或者是其他的协议。
  • 16位校验和:使用CRC进行校验,来鉴别头部是否损坏.
  • 32位源地址和32位目标地址:表示发送端和接收端。这两个是IP协议头中最关键的信息。采用点分十进制的形式来表示,分为四组,一组8位。例如1.2.3.4
  • 选项字段(不定长,最多40个字节) 

16位总长度(字节数) 

16位总长度说明IP数据包最多只能容纳64kb,跟UDP一样可存储的最大长度,那么会不会跟UDP一样出现问题呢?虽然IP能传输的数量最大为64kb,但是IP数据包支持拆包组包操作,IP协议会自动把大的数据包拆除多个IP数据报携带传输,在传输到接收方后再进行组包。

16位标识、3位标志位和13位片偏移

这些被拆分的数据包是通过IP协议头中的16位标识来判断这些数据包时由哪一个数据包拆分的,同一个数据包拆分的IP数据包的16位标识是相同的。

13位片偏移则是用来判断同一个数据包下的IP数据包在组包时所处的位置

在IP协议头中的三位标志位,其中第一位是保留位,还未使用第二位是用来标识当前的数据包是否可以拆分,1的话表示该数据包不可以被拆分,0的话表示该数据包可被拆分第三位是用来表示当前的数据包是否是拆分的数据包中的最后一个数据包,类似于一个结束标志

8位生存时间

8位生存时间(TTL)表示该数据包可以在网络上的生存时间,单位是,一般是64.每经过一个路由器,TTL就会-1.(经过交换机不会-1)。当TTL减为0时,在网上传输的数据包就会消失,这个机制可以防止在由于某个数据包的IP地址不存在,而导致数据包一直在网络上传输。

那么有没有可能在数据包到达目的IP之前,TTL就已经减为0了呢?其实是不会的,只要目的IP正确,那么数据包在网络上就可以传输到目的IP。TTL的最大取值可以是255,但推荐使用的是64、128.不知道大家有没有听过“六度空间理论”,六度空间理论认为,你和任何一个陌生人之间所间隔的人不会超过五个,也就是说,最多通过五个中间人你就能够认识任何一个陌生人,这个理论也叫小世界理论。那么对于数据包在网络上传输到目的IP也是这样的,在网络上传输255次一定能过达到对方。

IP地址管理

在IP协议中,IP地址是32位,可以表示最大值为40多亿,这个数据看起来很大,但是对于现在的我们来说,其实是不够用的,世界上的人口已经有73亿多了,而且一个人还不止只有一个IP地址,只要是需要联网的设备,都需要用到IP地址。那么怎么解决IP地址不够用的情况呢?

1.动态分配IP

在这种形式下,如果有一个设备连接到网络时,就会被分配到一个临时的IP地址。当设备断开连接时,该IP地址就会被释放回收,以便后续给其他人使用。简单的来说,就是有设备连接网络时,就给它分配IP地址,断开网络时就把IP地址给回收释放。

但是这个方案治标不治本,没有从根本上解决IP地址不够用的问题。虽然现在还在广泛使用。

2.NAT机制(网络地址转换)

NAT(Network Address Transiation,网络地址转换)是一种在传输层上实现的IP地址转换的技术。在NAT中,路由器通过修改传输数据包中的源IP地址和目的IP地址来实现地址转换。这种转换在不同的网络中常用于解决IP地址冲突、扩大私有网络数量并增强其安全性等问题。简单的来说,NAT其实就是将内网IP转换为公网IP,实现内部网络和外部网络的通信。

通过在路由器上维护一个地址映射表,这个表记录了内部私有IP地址和外部公有IP地址之间的映射关系。当内部网络中的设备需要与外部网络进行通信时,NAT就会将局域网内数据包的IP地址转换成公有IP地址。(若端口号相同,就会在映射时改变映射的端口号来区分不同的)

NAT机制下IP地址分为两类:内网IP(私网IP)和外网(公网IP)。如果一个IP地址是以10.*或者172.16.*-172.31.*或者192.168.*,那么其就是内网IP,否则就是公网IP。

在不同的局域网中,公网IP是唯一的,但是私网IP是允许重复的。

我们打开cmd.exe输入ipconfig进行查看.

  • 同一个局域网内,主机A访问主机B,不会涉及到NAT机制
  • 公网上的设备A访问公网上的设备B,也不会涉及到NAT机制
  • 一个局域网中的主机A访问另一个局域网的主机B,在NAT机制中是不允许的,
  • 局域网内部的主机A访问公网上的设备B,NAT就会生效.

NAT机制简单来说呢,公网IP地址其实就类似学校的菜鸟驿站,学校的每个人(私有IP地址)在填写收货地址的时候,直接填写学校的地址(公网IP)即可,每个人根据自己的收件码就可以取快递,这样就大大提高了快递员的送货效率了,不用一个一个送。

NAT机制是如何工作的

假设我们现在要访问QQ的服务器,那么我们的主机就先构造一个IP数据报,在访问的时候,中间就会经过很多路由器,到达我们的运营商路由器,运营商理由器有一个公网IP,当我们的数据包传输到运营商路由器后,数据报中的私有IP就会转换为公有IP,再去传输到QQ的服务器进行访问。当QQ的服务器接收到数据报后,看到的是公网的IP,而不是私网的IP。

 当QQ的服务器接收到IP数据报后,就会做出相应的响应,构造一个数据报,根据目的IP传输回去,当到达运营商路由器后,会进行NAT网络地址转换,再根据私有IP地址返回。

 在网络通信的过程中,其实不止有IP地址,还有主机上的端口号,端口号是用来区分同一个主机上不同的应用程序的,在NAT中,就可以用来区分不同主机上的不同程序。

那么如果我此时我和我的朋友同时想要访问QQ的服务器,那么会怎么样呢?如果我们两个此时恰好端口号相同又应该怎么办?

我们想要访问QQ的服务器时,首先我们会在我们的主机上构造一个IP数据报 ,中间经过广域网,到达运营商路由器,在到达运营商路由器之后,路由器的NAT网络地址转换机制就会把IP数据报上的IP地址转换为公网IP地址,接着再去访问QQ的服务器。

NAT机制内部会通过维护一个地址映射表,来保证数据包的正确传输。在IP地址替换时,会记录地址映射关系。

那么当QQ的服务器构造完IP响应数据包后,就会根据传过来的IP数据报中的IP地址和端口号,传输回去。同理的,在经过运营商路由器时,会根据地址映射表来修改IP数据报的IP地址和端口号。传输给对应的主机。

那么如果此时恰好我和朋友的端口号相同怎么办?

此时在NAT机制下,如果有端口号相同,那么NAT机制就将后一个重复的端口号替换成不重复的端口号。来保证数据报的正确传输。

 其实两个主机的端口号相同的概率是非常小的,只有1/60000。

NAT机制的优缺点

优点

  • 节省IP地址:NAT机制允许一个公网IP地址对应多个私有IP地址,可以节省IP地址的使用;
  • 提高网络性能:NAT机制可以避免IP地址冲突;
  • 网络发生变化时,避免重新编址

NAT节省了大量的IP资源。

缺点:

  • IP地址转换表的生成和销毁都需要额外的开销;
  • 难以进行监测和管理,NAT设备会改变网络传输的源地址。
  • 有些应用程序需要用到固定的IP地址或者特定的端口,使用NAT后可能会导致应用程序失效。

虽然NAT机制能够解决IP地址不够的问题,但是没有从根本上解决问题,所以,有了IPV6,IPV6是解决IP地址不够用的根本解决办法。

3.IPV6

IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPV4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。由于IPv4最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍 。

IPv6能表示的字节是16个字节,即可以表示2^128个IP地址。这个数其实是非常大的,比IPv4能表示的IP地址数要多上很多倍。这个数字是非常庞大的,除非人类走出地球,否则肯定是够用的。

为什么国家要大力推进普及IPv6?

目前,在我国IPv6的活跃用户已经达到了7.94亿。在全体网民总数中的比例由2017年初的0.51%提高至72.70%。这样的增长速度是非常惊人的,这主要是与中美贸易争端_百度百科 (baidu.com)有关,IPv4的分配权在米国人手中,虽然负责分配的组织是一个“第三方组织”,但是背后的投资人有美国军方的人,一旦美国人制裁,不给我们中国分配公网IP,那就会对中国的互联网发展带来毁灭性打击。

所以,IPv6的发展就是用来绕开美国人限制中国发展的一个重要手段,虽然我们国家目前IPv6的普及度已经到了70%以上,但是实际上上网的时候,仍然走的是IPv4协议(IPv4和IPv6共存),如果直接切换,还是有风险的,所以只要把IPv6准备好了,就不怕制裁。

网段划分 

网段划分也是IP协议中比较重要的一个。IP地址一般会分为两部分:网络号和主机号。网络号是IP地址中用于识别设备所属网络的部分,而主机号则表示该主机在网络总的位置。

注意

  • 同一个局域网内的设备的网络号必须相同,主机号必须不同;
  • 两个相邻的局域网的网络号不能相同。

我们看图中,192.168.12就是网络号,而最后的5,7表示的就是主机号。

那么我们如何判断IP地址中哪一部分是网络号,哪一部分是主机号?那这就得需要借助到子网掩码。

子网掩码

子网眼马甲又叫网络编码、地址编码、子网络遮罩,是指明一个 IP地址 的哪些位标识的是 主机 所在的子网,以及哪些位标识的是主机的位掩码。 子网掩码不能单独存在,它必须结合IP地址一起使用。 子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在 局域网上,还是在 广域网上。

子网掩码也是用四个字节来表示的,与IP一样,1个字节(8给比特位)为一组,采用点分十进制。

子网掩码的前半部分必须全为1,后部分必须全为0,不能出现1和0交叉出现的情况

假设现有一个IP地址为192.168.11.5,子网掩码是255.255.255.0,那就说明192.168.11是网络号,而5是主机号。

下面我们来看一下远古时期的网段划分方式,现在已经很少使用了。

无类域间路由选择(CIRD)

CIDR(Classless Inter-Domain Routing,无类域间路由选择)它消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。它可以将好几个IP网络结合在一起,使用一种无类别的域际路由选择算法,使它们合并成一条路由从而较少路由表中的路由条目减轻Internet路由器的负担。 

CIDR 还使用“斜线记法”,它又称为CIDR记法,即在IP地址后面加上一个斜线“/”,然后写上网络前缀所占的比特数(这个数值对应于三级编址中子网掩码中比特1的个数)。 

特殊IP地址

在IP地址中,也有一些特殊的IP地址存在。

  1. 如果主机号全为0,说明这个IP是网络号,不能分配给任何一个具体的主机。
  2. 如果主机号全为1,说明这个IP地址是一个广播地址,通过这个IP地址发送的数据报,该局域网内的所有主机都能够接收到数据报,同样,这个IP地址也不能分配给任何一个具体的主机。什么时候可以用到广播IP呢?我们在手机看视频的时候,可能会想要投屏到电视上看,那么在手机视频上其实有一个投屏按钮(TV),当我们点击按钮,就会列出一个设备列表,选择投屏到哪个设备上。这个功能其实就是利用到了广播IP,在点击按钮后,会往对于的广播IP发送一个数据包(UDP),具有投屏功能的设备就会返回响应,告诉自己的IP以及是什么设备,反之,没有投屏功能的就不用返回响应。
  3. 环回IP回环地址是一种特殊的IP地址,通常为127.0.0.1或主机名localhost。它允许计算机的软件组件在本地主机上进行网络通信,用于调试、测试网络软件,或在本地计算机上运行服务器软件。回环地址不会被发送到其他计算机或网络,只在本机内部完成通信。这个IP一般用于一些测试工作,可以避免网络干扰等因素。

路由选择

IP地址的路由选择是指互联网协议(IP)在确定数据包在网络传输中的最佳路径的过程。在IP数据包中,存在源IP和目的IP,那么接收到数据包的路由器,就需要决定这个数据包要从哪个接口转发出去,以便数据包能到达目的IP。

但网络是一个非常复杂的环境,我们想要将数据包传输到目的IP,中间隔着很多歌路由器,那么路由器又是怎么知道接下来要往哪里转发呢?

网络中的路由器并不能够知道数据包到达目的IP的全部路线,它只知道和自己相连的路由器的路径,所以在传输的时候,就会类似于问路的方式,从而到达目的IP。

路由选择主要是基于目的IP和路由表来进行的。在路由器内部,存在着一个非常非常重要的数据结构,那就是路由表

路由表类似于hash表一样,key相当于IP地址(网络号),而value就是对应的网络接口(往哪个方向走)。

当IP地址达到路由器后,就需要进行查表操作,看目的IP是否在表中存在,如果存在,就按照对应的接口继续转发即可。若没有查找到,路由表就会进行一个“默认的表项”(下一跳),往一个更高层级的路由器去,若在跳后依旧没有找到,就继续跳。当找到后,就按照路由表中对应的接口继续转发即可。

路由选择中,其实可以使用多种算法的,例如:

  • 最短路径算法:两种常用的最短路径算法是Dijkstra算法和Floyd-Warshall算法。Dijkstra算法通过指定起点,逐步计算最短路径,使用两个数组S和U来记录已求出和未求出最短路径的顶点。Floyd-Warshall算法则通过动态规划计算所有顶点之间的最短路径。
  • 距离向量算法:该算法将网络视为一个图,通过记录到达目标节点的距离和下一跳节点的信息,选择距离最短的路径将数据包传输到目标节点。
  • 链路状态算法:该算法将网络视为一个图,通过记录每个节点的邻居节点信息和到达目标节点的路径信息,计算每个节点到目标节点的最短路径,选择最短路径将数据包传输到目标节点。

当然,IP协议中还支持多种路由协议,例如静态路由协议和动态路由协议。动态路由协议根据网络拓扑的变化自动更新路由表,而静态路由协议需要手动配置路由表。


以上就是IP协议的所有笔记~

若有不足,欢迎指正~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2164441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

监控易监测对象及指标之:全面监控Oracle ODBC数据库

在数字化时代,数据库作为存储和管理企业核心数据的基石,其稳定性和性能直接关系到业务的连续性和效率。Oracle数据库以其强大的功能和稳定性,广泛应用于各行各业。为了确保Oracle数据库的稳定运行和高效性能,对其进行全面监控显得…

阴影的基本原理

1、现实中阴影的产生规则 如图所示,现实中的阴影产生规则是,在不考虑光线反射的前提下,当一个光源发射的一条光线遇到一个不透明物体A时,这条光线就不能够再继续照亮其他物体了(物体B的一部分)&#xff0c…

ChatGPT 向更多用户推出高级语音模式:支持 50 种语言;字节发布两款新视频生成大模型丨 RTE 开发者日报

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

AutosarMCAL开发——基于EB MCU驱动

这里写目录标题 1.MCU模块的作用2.EB配置以及接口应用3.总结 1.MCU模块的作用 MCU模块主要分为三部分: McuGeneralConfiguration MCU通用配置(一般保持默认)McuHardwareResourceAllocationConf 硬件资源分配管理器(用于连接不同…

TEDxDUTH 使用 NocoBase 实现革新

作者:TEDxDUTH TEDxDUTH 是由德莫克里特大学的志愿者们组成的一个充满活力的团队。作为 TEDx 全球社区的一员,我们的使命简单而有力:传播能够激励和引发改变的思想。我们通过精心策划一系列活动,成功汇聚了众多思想家、创新家以及…

Module did not self-register: ‘drivelist.node‘报错解决

报错如下: node_modules/bindings/bindings.js:121throw e;^Error: Module did not self-register: xxxx/node_modules/drivelist/build/Release/drivelist.node.at process.func [as dlopen] (electron/js2c/asar.js:140:31)at Object.Module._extensions..node (…

探索 Python 中的 AI 魔法:markdownify 库的奥秘

文章目录 探索 Python 中的 AI 魔法:markdownify 库的奥秘背景:为何选择 markdownify?库简介:markdownify 是什么?安装指南:如何安装 markdownify?函数用法:markdownify 的五个简单函…

【Qwen2-VL】通义多模态新作速读

Qwen2-VL https://github.com/QwenLM/Qwen2-VL 结构: 整体:6.75 亿个参数的 Vision Transformer (ViT) (Dosovitskiy et al., 2021) Qwen2 预处理阶段: 朴素动态分辨率支持&…

工程车辆目标检测、工程车检测算法、工程车辆类型检测算法

工程车检测算法主要用于智能交通系统、建筑工地管理、矿山开采、物流运输等领域,通过图像识别技术来检测和识别工程车,以提高安全管理、交通流量管理和资源调度的效率。以下是关于工程车检测算法的技术实现、应用场景及优势的详细介绍。 一、技术实现 工…

VRP-SAM

不建议复现

uni-app - - - - - 小程序获取宿主语言

const systemInfo uni.getSystemInfoSync(); console.log(systemInfo);uni.showModal({title: 宿主语言,content: systemInfo.hostLanguage })官网地址:【uni-app getSystemInfoSync】

西圣Mike Pro无线麦克风强势上线!百元级实力口碑与销量双冠王!

随着音频技术的不断革新与飞跃,西圣XISEM再次以卓越的创新驱动力推出全新力作,近日,西圣品牌震撼发布全新专业无线麦克风——西圣Mike Pro。用行业领先的硬件配置,百元价格打造千元专业级麦克风专业体验,音质远超同价位…

1分钟学会BCT环境搭建和网络配置 (24年9月25日更新)

又开始弄AirPlay了,在之前基础上更新下如何配置BCT环境和网络 如何配置apple 路由器在之前的文章有教,在这里就不陈述了 传送门:【BCT认证】Bonjour Conformance Test教程 1、apple路由器怎么接? 2、命令怎么输入? IPv4 sudo ./BonjourConformanceTest -I en4 -L -DD -…

拆解一个有问题的索爱GK6蓝牙耳机,蓝牙连接中的一些软硬件问题

由来 经常带入耳式蓝牙,倒是耳朵有时候难受,无意间看见网上的夹耳式耳机,想要尝试一下。但毕竟好点儿的太贵,主要想了解内部结构,所以淘到两个电子垃圾 拆解充电仓 这个只能暴力一点儿,需要拆坏一个卡扣…

记某地级市护网的攻防演练行动

0x1 前言 哈喽,师傅们! 这次给师傅们分享的是上上个星期的地级市护网的攻防演练的两个案例,涉及到的知识点可能比较偏,下面我也会提前给师傅们拓展下改漏洞相关的知识点内容。护网攻防演练中,涉及到的很多敏感内容这…

古代经典名方目录数据库-支持经典名方检索!

"古代经典名方目录"是指一系列历史上流传下来的,被认为具有一定疗效的中药方剂的汇总。这些方剂多来源于历代医学典籍,经过长期临床实践的检验,部分已被收录于官方的目录之中,以便于现代医疗实践中的参考和应用。 目前…

安科瑞光伏发电并网柜防孤岛保护装置---微机保护测控装置

安科瑞戴婷 Acrel-Fanny 安科瑞光伏发电并网柜防孤岛保护装置微机保护测控装置(以下简称装置)集保护、控制、测量、通讯和监视功能于一体,资源丰富、配置完善、维护方便、性能稳定,适用于 35kV 及以下电压等级电力系统的保护和测…

投资气膜场馆:开启未来体育发展的新纪元—轻空间

随着对体育设施建设的重视,气膜场馆作为一种创新的体育设施,正日益成为投资的热门选择。气膜场馆凭借其独特的优势和多重好处,不仅能提升体育场馆的功能性和经济性,更为地方经济发展注入了新的活力。 成本效益显著 气膜场馆具有快…

闲盒支持的组网方式和注意事项

1. 直连光猫拨号​ 通过光猫拨号,设备直连光猫的设备,需要对光猫开启UPNP并关闭DMZ 如果只接一个盒子,建议直接针对盒子IP开dmz。 2. 直连路由器​ 通过路由器拨号,设备直连路由器的设备,需要对路由器开启UPNP并关闭…

如何在O2OA中使用ElementUI组件进行审批流程工作表单设计

本文主要介绍如何在O2OA中进行审批流程表单或者工作流表单设计,O2OA主要采用拖拽可视化开发的方式完成流程表单的设计和配置,不需要过多的代码编写,业务人员可以直接进行修改操作。 在流程表单设计界面,可以在左边的工具栏找到Ele…