【网络原理】网络层IP协议 | IP报文格式 | IP地址 | 地址管理 | 路由选择

news2025/1/11 9:01:22

文章目录

  • 网络层
    • 一、IP协议
      • 1.IP协议报文格式
      • 2.地址管理
        • IP地址不够用的解决方法:
          • 1.动态分配IP:过渡方案,目前仍广泛存在。
          • 2.NAT机制(网络地址转换)
            • 1.内网IP(局域网IP)
            • 2.外网IP(广域网IP)
          • 3.IPv6
          • 4.网段划分
          • 5.子网掩码
          • 6.特殊的IP地址
      • 3.路由选择


网络层

  • 在复杂的网络环境中确定一个合适的路径

网络层主要做的事情有两方面:

  • 1.地址管理 : 指定一系列的规则,通过地址,描述出网络上一个设备的位置。
  • 2.路由选择 :网络环境是比较复杂的,从一个节点,到另一个节点之间存在很多条不同的路径。就需要通过这种方式,筛选/规划出更合适的路径进行数据的传输。

一、IP协议

1.IP协议报文格式

在这里插入图片描述

  • 四位版本号:4->ipv4 ; 6->ipv6 当前大规模使用的两个版本
  • 四位首部长度:IP协议的报头,也是变长的 (0~0xf 也就是0-15)在此基础上*4 = 0~ 60 个字节
  • 8位服务类型(TOS):能够让IP协议切换形态。3位已被弃用。只有4位TOS字段有效,这四个位彼此是冲突的,只有一位能设为1 ,不同的位设为1表示IP协议不同的形态。还有1位保留字段(必须设为0)。

四个状态:最小延时、最大吞吐量、最高可靠性、最小成本

  • 16位总长度(字节数):描述了IP数据包最长是多长。IP协议也存在64KB大小的限制,但是IP协议自身支持“拆包组包”功能。

  • 16位标识、3位标志位、13位片偏移:依靠这三个属性来实现“拆包组包”

    16位标识:如果一个大的IP数据包需要拆分成多个小的。拆出来的这些小包的16位标识的数值就是相同的

    13位片偏移:描述当前每个小的数据报(分片)的相对位置。片偏移越小,这个数据分片就越靠前。

    3位标志位 :有一位表示是否允许拆包,还有一位表示是否是最后一个包,剩下的一个是保留位。

  • 8位生存时间(TTL):描述了当前这个数据包,在网络上还能存活多久。TTL的单位是次数。数据包构造出来的时候,TTL会被设置成一个初始值(32、64、128…)数据报在转发的过程中,每次经过一个路由器转发,TTL就会-1。换句话说,就是描述这个数据包,能够经过多少个路由器。如果这个数据报,把TTL耗尽了都没有到达,就会被丢弃掉。

    对网络进行了兜底。如果存在一个不存在的地址,耗尽TTL后,就不会再网络上一直传递

  • 8位协议:描述的是,IP数据包的载荷部分是UDP数据包,还是TCP数据包(传输层是哪个协议)

  • 16位首部校验和:这个校验和只校验IP协议的头部,不管IP的载荷。(载荷就TCP/UDP,本身就有校验和)

  • 32位源IP地址、32位目的IP地址 (IP数据报中最关键的内容):IP地址本质上就是一个32位的整数。为了方便理解,会写作 点分十进制的方式。

2.地址管理

IP地址,是一个32位的整数。0~2^32 ,42亿9千万。

地址理论上来说,是不应该重复的,所以这个数远远不够需求

IP地址不够用的解决方法:
1.动态分配IP:过渡方案,目前仍广泛存在。

​ 治标不治本,只是提高了IP地址的利用率,并没有增加IP地址的数目

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

​ 本质上,让一个IP地址,来代表一批设备。

把IP地址分成两个大类:

1.内网IP(局域网IP)

​ 如果一个地址,是以10.* 或者172.16.* ~ 172.31.* 或者 192.168.* 就是内网IP

​ 在同一个局域网之间,内网IP之间是不能重复的。

​ 在不同的局域网中,内网IP之间是可以重复的。

2.外网IP(广域网IP)

​ 剩下的IP就是外网IP,是唯一的,不能重复。

局域网使用一个外网IP,一个外网IP就代表了成千上万个设备

例如快递的地址,是公用一个快递驿站

​ 内网IP无法在广域网上使用,在经过运营商路由器时(也是一个NAT设备),就会对数据包报头的源IP地址进行替换,转换成外网IP。站在服务器的视角,看到的发送方IP就是局域网对应的外网IP。运营商路由器内部,会记录一个映射关系,记录内网IP和外网IP的转换。当报文返回后,就需要把IP再替换回去。

​ NAT设备(运营商路由器)就相当于是一个中转站,发送和接收经过时都会替换IP地址。

当服务器返回数据之后,路由器如何决定这个数据要交给哪个设备?

  • 通过端口号来进行区分,端口号不仅可以区分同一台主机的不同进程,也可以区分不同主机的不同进程。

快递驿站通过电话号,进行具体的区分

  • 如果两个设备的分配的源端口号一样,路由器也会主动把相同的端口,替换成不同的端口

当前的网络环境,就是以NAT+动态分配的方式来解决IP地址不够用的情况。NAT机制最大的优势,就是“纯软件方案”。

3.IPv6

IPv6使用16个字节来表示IP地址。IP地址数量成指数增长,解决了IP不够用的问题。

IPv4是4个字节 :2^32

IPv6是16个字节:2^128 = 2^32 *2^32 * 2^32 * 2^32

4.网段划分

​ 把一个IP地址分成两个部分:

​ 网络号(标识了一个局域网)+ 主机号(标识了局域网中的一个设备)

  • 同一个局域网的设备IP,网络号必须相同,主机号必须不同。
  • 通过一个路由器连接的两个局域网,网络号不能相同
5.子网掩码
255.255.255.0
11111111 11111111 11111111 00000000

子网掩码用来区分网络号

也是一个32位的整数。左侧都是1,右侧都是0。不会10交替。

被标记为1的部分,就是网络号。这里的1不一定是24个,可以根据网络环境进行配置。

6.特殊的IP地址

如果一个IP地址,主机号全0,当前这个IP就表示“网络号”,代表当前的局域网,不能划分给主机

192.168.100.0
255.255.255.0

如果一个IP地址,主机号全1,表示当前这个IP就是一个“广播地址,同样不能给主机分配

192.168.100.255
255.255.255.0

​ 之前提到,UDP天然支持广播,使用UDP socket给这个地址发送UDP数据报,此时局域网内所有的设备,都能收到这个设备。TCP则无法和这个地址建立连接。

如果一个IP地址是127开头的,这个IP就是"环回IP" (loopback)

127.0.0.1

​ 设备自己发给自己,本质上是操作系统提供了一个特殊的“虚拟网卡”,关联到了这个IP上。主要的用途,进行一些测试性工作。能排除网络不通的因素,方便排查代码的问题。

3.路由选择

  • 描述了IP协议(IP数据报)转发的过程

A->B中间可能会有很多条可行的路径,具体该怎么走。

​ IP数据报转发的时候,每个路由器都是无法知道网络的“全貌”的,只知道一些局部信息(一个路由器能够知道哪些设备和它是相连的)。这就意味着,IP数据报在转发过程中,是“探索式”的过程。很难得到“最优解”,只能是“较优解”

​ 一个网络层的数据报,每到达一个路由器,都会进行“问路”。每个路由器每部都有一个数据结构叫“路由表”,根据数据报当中的目的IP,查路由表。如果查到了 ,就直接按照表给的方向(从哪个网络接口进行转发)继续准发。如果没查到,路由表里有一个“默认的表项”(下一跳地址),按照默认的表项进行转发。

点击移步博客主页,欢迎光临~

偷cyk的图

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

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

相关文章

基于SSM的文物管理系统(含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的文物管理系统拥有俩种角色 管理员:个人信息管理、用户管理、分类管理、文物信息管理、文物外借管理、文物维修管理、留言板管理等 用户:登录注册、分类…

ECharts在网页中添加可视化图标-在网页中添加交互图表+option模块案列详解

一、引言 ECharts 是一个使用 JavaScript 编写的开源可视化库,它可以在浏览器中生成交互式的图表。无论是折线图、柱状图、散点图还是饼图,ECharts 都能轻松应对。本文将带领大家了解如何在网页中添加 ECharts 可视化图标。 本章可以直接跳到第五点完整…

alphassl ocsp通配符证书

AlphaSSL是GlobalSign旗下的一个子品牌,GlobalSign是知名度较高的正规SSL证书颁发机构,应用范围广泛,比如电子商务、在线支付、网上银行等网站,还可以兼容几乎99%的主流浏览器。AlphaSSL旗下的DV基础型通配符SSL证书,不…

Github查找代码项目高级语法(含科研项目查找案例)

基础搜索语法 1.搜索名字 in:name XXX 2.搜索描述 in:description XXX 3.搜索readme in:readme XXX 4.根据stars stars:>2000 5.根据fork fork:>3000 6.仓库大小搜索 size:>5000 [注意: 该处单位大小为 k] 7.根据更新时间 …

聚醚醚酮(Polyether Ether Ketone)PEEK在粘接使用时可以使用UV胶水吗?要注意哪些事项?

一般情况下,聚醚醚酮(Polyether Ether Ketone,PEEK)是一种难以黏附的高性能工程塑料,而UV胶水通常不是与PEEK进行粘接的首选方法。PEEK表面的化学性质和高温性能使得它对常规胶水的附着性较低。然而,有一些…

ChatGPT 网络安全秘籍(四)

原文:zh.annas-archive.org/md5/6b2705e0d6d24d8c113752f67b42d7d8 译者:飞龙 协议:CC BY-NC-SA 4.0 第八章:事故响应 事故响应是任何网络安全策略的关键组成部分,涉及确定、分析和缓解安全漏洞或攻击。 及时和有效地…

人形机器人狂潮来袭

奔跑、咖啡拉花、搬箱子、叠衣、分拣物品、吸尘清洁……曾存在于科幻电影中的人形机器人,正加速走进人类社会。 去年以来,伴随着AI大模型浪潮,被视为AI最佳载体的人形机器人似乎驶入了一条快车道,科技巨头纷纷入局,产…

音视频入门基础:像素格式专题(1)——RGB简介

一、像素格式简介 像素格式(pixel format)指像素色彩按分量的大小和排列。这种格式以每个像素所使用的总位数以及用于存储像素色彩的红、绿、蓝和 alpha 分量的位数指定。在音视频领域,常用的像素格式包括RGB格式和YUV格式,本文…

虚拟电表测试程序645MeterV2.7.1如何支持超过四个com口

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 这个虚拟电表测试程序是网上找…

【Excel】excel计算相关性系数R、纳什效率系数NSE、Kling-Gupta系数KGE

对于采用的数据: B2:B10958是观测值的所在范围 C2:C10958是模型计算值的所在范围 一、相关系数R是用来衡量两个变量之间线性关系强度和方向的统计量。在水文学和气象学中,常用的相关系数是皮尔逊相关系数(Pearson correlation coefficient&am…

Flutter笔记:Widgets Easier组件库(1)使用各式边框

Flutter笔记 Widgets Easier组件库(1):使用边框 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress o…

IoTDB 入门教程①——时序数据库为什么选IoTDB ?

文章目录 一、前文二、性能排行第一三、完全开源四、数据文件TsFile五、乱序数据高写入六、其他七、参考 一、前文 IoTDB入门教程——导读 关注博主的同学都知道,博主在物联网领域深耕多年。 时序数据库,博主已经用过很多,从最早的InfluxDB&a…

2024年北京市中小学生信息学能力测评活动BCSP-X小学低年级组初赛测试题(模拟题解析)

一、单项选择(共 15 题,每题 2 分,共计 30 分,每题有且仅有一个正确选项) 以下是题目和解析的完整格式: 不可以作为c中的变量名的是( )。 A. I以下loveChinaB. I_loveChinaC. I_love_ChinaD. i_…

SpringBoot+阿里云实现验证码登录注册及重置密码

开通阿里云短信服务 阿里云官网 创建API的Key 可以使用手机号或者刷脸来进行创建Key 创建成功 开通完成以后接下来实现代码请求阶段 配置maven依赖 <!-- 阿里云 oss 短信 依赖--><dependency><groupId>com.aliyun</groupId><artifactId>dysm…

Electron+Vue3+Vite+ElectronForge整合 - 一键启动两个服务 一键打包两个服务

说明 本文介绍一下 Electron Vue3 Vite Electron Forge 的高级整合操作。vue3 : 使用 TS 的语法开发&#xff1b; Electron : 使用 JS 的语法开发。本文将从项目初始化开始&#xff0c;一步一步的完成项目的启动、打包全流程的介绍。实现的效果是 &#xff1a; 1、一个正常…

Notes for the missing semester. Useful and basic knowledge about Linux.

The Shell Contents The first course is to introduce some simple commands. I’ll list some commands that I’m not familiar with: # --silent means dont give log info, # --head means we only want the http head. curl --head --silent bing.com.cn# cut --deli…

如何选择适合的美国站群服务器:经济实惠而可靠的选择

如何选择适合的美国站群服务器&#xff1a;经济实惠而可靠的选择 在今天的数字化时代&#xff0c;选择适合的服务器对于个人网站或企业来说至关重要。一台性能稳定、价格实惠的美国站群服务器能够为您的网站提供所需的支持&#xff0c;但在选择之前&#xff0c;有一些关键因素…

基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真。基于模糊PI控制算法的龙格-库塔&#xff08;Runge-Kutta, RK&#xff09;连续搅拌釜反应器&#xff08;Co…

Allegro如何给铜皮赋信号

如何给铜皮赋信号 第一步&#xff1a;选中铜皮 第二步&#xff1a;鼠标点击右键&#xff0c;点击“Assign Net”&#xff0c;然后点击对应的Net信号就可以了

案例分享:使用RabbitMQ消息队列和Redis缓存优化Spring Boot秒杀功能

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c…