[网络层]-IP协议相关特性

news2024/12/29 9:10:39

IP协议

基本概念

  • 主机 : 配有IP地址,但是不进行路由控制的设备
  • 路由器 : 既配有IP地址,又能进行路由控制
  • 节点: 主机和路由器的统称

协议头格式

  1. 4位版本(version):占四位,用于指定IP协议的版本,例如,使用IPv4,该字段就为4
  2. 4位首部长度: 表示IP协议首部的长度,以32位bit (4字节) 为单位,最大长度为 60 字节
  3. 8位服务类型: 用于指示对数据包的服务质量要求,包括优先级、延迟、吞吐量、可靠性等信息。前 3 位表示优先级(Precedence),用于指示数据包的重要性级别,取值范围从 0(普通优先级)到 7(网络控制优先级)。接下来的 4 位分别对应延迟(D)、吞吐量(T)、可靠性(R)和成本(C),四者互相冲突,只能选择一个。最后 1 位未使用。
  4. 16位总长度: IP数据报整体占多少字节
  5. 16位标识: 用于标识属于同一个数据报的各个分片,同一个数据报的所有分片具有相同的标识值。
  6. 3位标志: 第一位保留,DF(Don't Fragment)位表示是否允许分片,MF(More Fragments)位表示是否还有后续分片
  7. 13位片偏移: 指出该分片在原始数据报中的相对位置,单位为 8 字节
  8. 8位生存时间: 数据包在网络中可以经过的最大跳数,每经过一个路由器 TTL 值减 1,当 TTL 值为 0 时数据包被丢弃。
  9. 8位协议: 指出此数据包携带的数据使用的是哪种上层协议,如 TCP 对应的值为 6,UDP 对应的值为 17 等。
  10. 16位首部校验和: 用于校验 IP 首部的完整性,在每个路由器上都会重新计算
  11. 32位源 IP 地址: 表示发送方的 IP 地址
  12. 32位目的 IP 地址: 表示接收方的 IP 地址
  13. 选项: 长度可变。用于提供一些额外的功能,如源路由选择、时间戳等,但不是所有数据包都包含选项。

地址管理

网段划分

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

网络号: 网络号用于标识一个特定的网络。在网络通信中,当数据包在不同网络之间传输时,路由器根据 IP 地址中的网络号来决定数据包的转发路径。

主机号: 主机号用于标识网络中的特定主机。在同一个网络中,每台主机都有一个唯一的主机号

不同的子网就是把网络号相同的主机放在一起, 如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致,但是主机号不能和其他主机的主机号重复,通过合理的设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同

手动配置子网IP是非常复杂的一件事情.

DHCP:

DHCP 是一个应用层协议,用于在 IP 网络中自动为网络设备分配 IP 地址、子网掩码、默认网关、DNS 服务器等网络配置参数. 一般的路由器都带有DHCP功能, 因此路由器也可以看做一个DHCP服务器.

IPv4 地址主要分为以下几种类别:

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 - 255.255.255.255。

这种按类别划分网络地址的方式具有局限性,导致许多IP地址被浪费掉

针对这种情况,提出了新的划分方案,称为CIDR(Classless Inter-Domain Routing)

  • CIDR 是一种用于给 IP 地址进行分类和分配的方法,它摒弃了传统的 A、B、C 类 IP 地址的分类方式,采用可变长子网掩码(VLSM)来灵活地划分网络,提高IP地址利用率。
  • 子网掩码是一个32位的正整数,使用 IP 地址和网络前缀长度来表示一个网络,格式为 “IP 地址 / 网络前缀长度”。例如,192.168.1.0/24,表示网络前缀长度为 24 位,即前 24 位是网络号,后 8 位是主机号。
  • 将IP地址与子网掩码进行 "按位与" 操作,得到的结果就是网络号
  • CIDR 允许将多个连续的网络聚合为一个路由条目,大大简化了路由表,提高了路由器的处理效率。

特殊的IP地址

  • 网络地址: 在一个网段中,主机号全为 0 的 IP 地址表示网络本身,称为网络地址。
  • 广播地址: 主机号全为 1 的 IP 地址用于在特定网络中向所有主机发送广播消息,称为广播地址
  • 回环地址: IPv4 的回环地址是 127.0.0.1,它用于本地设备上的软件测试和进程间通信。当数据发送到回环地址时,不会离开设备,而是直接由网络协议栈内部进行处理,返回给自己
  • 0.0.0.0 地址
    • 在不同的场景下有不同的含义。在服务器配置中,0.0.0.0 可以表示服务器监听所有的网络接口,即接受来自任何 IP 地址的连接请求。
    • 在路由表中,0.0.0.0/0 表示默认路由,当一个数据包的目的地址在路由表中没有找到匹配的具体路由条目时,就会按照默认路由进行转发。

IP地址数量限制

IPv4是一个四字节32位的正整数,一共只有2的三十二次方,大概四十三亿,由于互联网快速发展,并且TCP/IP协议规定,每个主机都有一个IP地址,四十三亿这个数字在当今来说已经是不够的了,那么如何解决这个问题呢?

1. 高效利用现有地址资源的技术

  • CIDR(无类域间路由)
    • 原理:打破传统 A、B、C 类 IP 地址的固定划分方式,采用可变长子网掩码(VLSM),根据实际需求灵活分配网络前缀长度,将多个连续的网络合并或划分子网,提高 IP 地址利用率,减少地址浪费。
    • 举例:原本多个 C 类网络地址范围较小,通过 CIDR 可以将它们聚合为一个较大的网络,使路由表中的条目减少,降低了路由器的处理负担,同时也更合理地利用了 IP 地址空间。
  • 动态分配 IP 地址(DHCP)
    • 原理:当设备接入网络时,从可用的 IP 地址池中动态分配一个 IP 地址给该设备,设备使用完毕下线后,该 IP 地址被释放回地址池,可供其他设备使用。这样可以避免为那些不常在线或暂时不需要 IP 地址的设备长期占用 IP 地址资源。
    • 举例:在企业网络中,员工的办公电脑在上班时间开机接入网络时,DHCP 服务器为其分配 IP 地址,下班后关机,IP 地址被回收,第二天上班重新分配,提高了 IP 地址的复用率。

2. 网络地址转换(NAT)

  • 原理:在局域网内部使用私有 IP 地址,当内部设备需要访问外部网络时,通过 NAT 设备将私有 IP 地址转换为公有 IP 地址,多个内部设备可以共用一个或少数几个公有 IP 地址与外部通信,从而减少对公网 IP 地址的需求。
  • 类型
    • 静态 NAT:将内部本地地址和外部全局地址进行一对一的固定映射,常用于需要对外提供固定服务的服务器。例如,企业内部的 Web 服务器,使用静态 NAT 将其私有 IP 地址转换为公有 IP 地址,供外部用户访问。
    • 动态 NAT:建立一个公有 IP 地址池,当内部设备需要访问外部网络时,从地址池中动态选择一个公有 IP 地址进行转换。当设备通信结束后,释放该公有 IP 地址,供其他设备使用。
    • 端口地址转换(PAT):是最常用的一种 NAT 方式,它不仅可以转换 IP 地址,还可以转换传输层的端口号。通过将多个内部设备的 IP 地址和端口号映射到一个公有 IP 地址的不同端口上,实现多个内部设备同时使用一个公有 IP 地址与外部通信。

3. 升级到 IPv6

  • 优势
    • 地址空间巨大:IPv6 采用 128 位地址,理论上可提供的地址数量为 2的128次方 个,能够满足未来很长一段时间内全球互联网设备连接的需求,彻底解决 IPv4 地址不足的问题。
    • 简化网络配置:IPv6 支持自动配置功能,设备可以自动获取 IP 地址和网络参数,减少了网络管理员的配置工作量,提高了网络部署的效率。
    • 增强的安全性和性能:IPv6 在协议设计上提供了更好的安全性,如内置的 IPsec 支持,为网络通信提供了加密和认证功能;同时,其包头结构更加优化,提高了网络传输效率。

私有IP地址和公网IP地址

私有IP地址:私有 IP 地址是在特定的私有网络内部使用的 IP 地址。这些地址不会在互联网上被直接路由,它们被保留用于在企业、家庭、学校等内部网络中分配给设备。

  • A 类私有地址:10.0.0.0 - 10.255.255.255。
  • B 类私有地址:172.16.0.0 - 172.31.255.255。
  • C 类私有地址:192.168.0.0 - 192.168.255.255。

公网IP地址: 公网 IP 地址是由互联网服务提供商(ISP)分配给用户或组织的全球唯一的 IP 地址,这些地址可以在互联网上被直接路由和访问。

路由选择

  1. 静态路由
    • 配置方式:由网络管理员手动配置路由表信息。例如,管理员在路由器上输入命令 “ip route 192.168.2.0 255.255.255.0 192.168.1.1”,表示到达 192.168.2.0/24 网络的数据包下一跳地址是 192.168.1.1。
    • 优缺点:静态路由配置简单、稳定,适用于小型网络或网络拓扑结构相对固定的环境。但在大型网络中,手动配置工作量大,且缺乏灵活性,当网络拓扑发生变化时,需要管理员手动修改路由表。
  2. 动态路由
    • 工作原理:动态路由协议允许路由器之间相互交换路由信息,自动构建和更新路由表。常见的动态路由协议有 RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)和 BGP(Border Gateway Protocol)等。
    • 举例:在一个使用 RIP 协议的网络中,路由器会定期向相邻路由器广播自己的路由表信息,相邻路由器收到信息后,根据一定的算法(如距离向量算法)更新自己的路由表。如果网络中的某条链路出现故障,相关路由器会自动调整路由表,将数据包重新路由到其他可用路径。

路由选择算法

  1. 距离向量算法
    • 工作机制:每个路由器维护一个到其他网络的距离向量表,表中记录了到达每个目的网络的距离(通常以跳数为度量)和下一跳路由器。路由器根据相邻路由器发送过来的距离向量信息来更新自己的距离向量表。
    • 示例:在一个简单的网络中,路由器 A 收到路由器 B 发送的信息,得知通过路由器 B 可以到达网络 X,距离为 3 跳。如果路由器 A 到路由器 B 的距离为 1 跳,那么路由器 A 就会更新自己的距离向量表,记录到达网络 X 的距离为 4 跳,下一跳为路由器 B。
  2. 链路状态算法
    • 工作机制:每个路由器通过与其他路由器交换链路状态信息,构建整个网络的拓扑图。然后,根据这个拓扑图使用最短路径算法(如 Dijkstra 算法)计算出到其他节点的最短路径,生成路由表。
    • 示例:在一个网络中,路由器通过发送链路状态通告(LSA)来告知其他路由器自己与相邻路由器之间的链路状态(如链路是否可用、链路的开销等)。每个路由器收集到所有的 LSA 后,构建出网络的拓扑结构,再计算出到各个目的节点的最短路径,从而确定路由表。

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

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

相关文章

秋招突击——9/10、9\11——算法练习——携程笔试练习——2024年秋招第一批笔试

文章目录 引言笔试准备2024年秋招研发第一批第一题第二题第二次实现 第三题第四题第五题参考实现 总结 引言 准备全力冲携程,好好做算法,去线下面试!今天就好好做做携程往年的笔试! 笔试准备 2024年秋招研发第一批 第一题 imp…

<<编码>> 第 14 章 反馈与触发器(1)--振荡器 示例电路

继电器振荡器 info::操作说明 无需操作, 保持控制开关常闭以形成振荡 如需停止振荡, 则断开控制开关 注: 要看到灯闪烁的效果, 右上角 “仿真速度” 控制杆应设置为一个较低的位置(靠左侧) 另: 因继电器内部开关跳动动画效果耗时太长, 即便设置为较低的仿真速度也无法观察到开关…

有效的对嵌入式操作系统进行消毒处理

这篇论文的标题是《Effectively Sanitizing Embedded Operating Systems》,作者是 Jianzhong Liu, Yuheng Shen, Yiru Xu, Hao Sun, Heyuan Shi, Yu Jiang。论文主要研究了嵌入式操作系统的安全性问题,并提出了一种名为 EmbSan 的嵌入式系统消毒器&#…

计算机的错误计算(九十六)

摘要 探讨 的计算精度问题。 计算机的错误计算(五十五)与(七十八)分别列出了 IEEE 754-2019 中的一些函数与运算。下面再截图给出其另外3个运算。 例1. 已知 x-0.9999999999966 . 计算 不妨在Python下计算,则有&am…

TI DSP TMS320F280025 Note11:F280025时钟系统

TMS320F280025 F280025时钟系统 ` 文章目录 TMS320F280025 F280025时钟系统TMS32F280025时钟系统框图**时钟系统框图分析**时钟源主内部振荡器(INTOSC2)用内部振荡器(INTOSC1)派生的时钟振荡器时钟(OSCCLK)系统锁相环输出时钟(PLLRAWCLK)设备时钟域系统时钟(PLLSYSCLK)CPU时钟(…

PyTorch 激活函数及非线性变换详解

激活函数是深度学习模型的重要组成部分,它们引入非线性,从而使模型能够更好地拟合复杂的数据模式。本文将详细介绍激活函数的作用、常见类型、经典应用示例,并比较它们的优缺点。 激活函数的作用 激活函数的主要作用是引入非线性变换&#…

12 Java文件处理之写入、读取:IO流(中):高级流(缓冲流、转换流、序列化流和反序列化流、打印流)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、缓冲流1 字节缓冲流(1)BufferedInputStream:字节缓冲输入流构造方法---- BufferedInputStream(InputStream in):创建一个使用默认缓冲区大小的缓冲输入流。---- BufferedInputStream(In…

算法题目复习(0909-0917)

1. 连续子序列和 pdd的算法题&#xff0c;根本不记得怎么做 给一个数组&#xff0c;有正数和负数&#xff0c;算出连续子序列的和最大为多少 int maxSubArraySum(vector<int>& nums) {int maxSoFar nums[0];int maxEndingHere nums[0];for (size_t i 1; i <…

说说几款耳机

从前&#xff0c;大约在戴森推出他们那款奇特的发明——戴森耳机与空气净化器组合一年后&#xff0c;人们仍对这个奇怪的产品感到困惑。这款穿戴式空气净化耳机更像是一个实验&#xff0c;缺乏实际用途。回想起那时的评测&#xff0c;大家一致认为这是有史以来最无意义的产品之…

IDEA 2024.3 EAP新特征早览!

0 前言 IntelliJ IDEA 2024.3 第一个 EAP 版本已发布&#xff0c;提前体验 下一个重大版本的一部分改进。 持续关注 EAP 更新&#xff0c;未来几周内将推出更多 IntelliJ IDEA 新功能。尝试这些新功能&#xff0c;分享您的反馈&#xff0c;共同完善 IDE。 1 AI 助手 1.1 内…

Web3入门指南:从基础概念到实际应用

Web3&#xff0c;即“去中心化的第三代互联网”&#xff0c;正在逐步改变我们对互联网的传统认知。从最初的静态网页&#xff08;Web1.0&#xff09;到互动平台和社交媒体为主的互联网&#xff08;Web2.0&#xff09;&#xff0c;Web3的目标是让用户重新掌握对数据和数字资产的…

比特币10年价格数据(2014-2024)分析(基础)

数据入口&#xff1a;【每周挑战】比特币10年价格数据可视化和量化分析 - Heywhale.com 本数据集包含 2014 - 2024 的比特币美元价格数据&#xff0c;具体包含比特币每日的开盘价、最高价、最低价、收盘价以及成交量等关键信息。数据说明如下&#xff1a; 字段说明Date日期&a…

PMP--一模--解题--151-160

文章目录 11.风险管理--规划风险应对--机会应对策略--上报151、 [单选] 早在执行阶段&#xff0c;项目经理就发现&#xff0c;事业环境因素&#xff08;EEF&#xff09;最近发生的变化将使实施成本大幅减少&#xff0c;而且还将缩减项目进度计划&#xff0c;项目经理该如何应对…

《沈阳体育学院学报》

《沈阳体育学院学报》创刊于1982年&#xff0c;是由沈阳体育学院主办&#xff0c;面向国内外公开发行的体育类学术期刊&#xff1b;国际标准刊号为ISSN 1004-0560&#xff0c;国内刊号为CN 21-1081/G8&#xff1b;双月刊&#xff0c;单月中旬出版。 《沈阳体育学院学报》是中文…

Django_Vue3_ElementUI_Release_004_使用nginx部署

1. nginx安装配置 1.1 下载nginx Download nginx 1.2 测试一下 1.3 进入nginx用命令操作 2. 部署 2.1 前端部署 2.1.1 修改nginx监听配置 …conf/nginx.conf http {... # 这里不进行修改server {listen 8010; # 监听 80 端口server_name 192.168.10.24; # 输入服务器 ip…

java进销存系统源码:管店云进销存解决方案

在当今数字化转型的大背景下&#xff0c;企业对高效、可靠的进销存管理系统的需求日益增长。Java作为一种广泛使用的编程语言&#xff0c;以其成熟的技术栈和强大的生态系统&#xff0c;成为了开发高性能进销存系统的首选语言之一。本文将介绍一款基于Java进销存系统源码的“管…

[乱码]确保命令行窗口与主流集成开发环境(IDE)统一采用UTF-8编码,以规避乱码问题

文章目录 一、前言二、命令行窗口修改编码为UTF-8三、Visual Studio 2022修改编码为UTF-8四、Eclipse修改编码为UTF-8五、DevCPP修改编码为UTF-8六、Sublime Text修改编码为UTF-8七、PyCharm、IDEA、VS Code及Python自带解释器修改编码为UTF-8 一、前言 在学习的征途中&#x…

AG32 MCU与内置FPGA的FLASH空间如何划分

AG32与内置FPGA的FLASH空间如何划分 关于芯片flash 大小&#xff1a; 不管所选型号的flash 是多大&#xff0c;请注意最后100K 是留给fpga 使用的。 如果使用的芯片是256K 的flash 空间&#xff0c;那么就是156K 程序100K fpga&#xff0c;用户程序不能 超过156K。如果超过1…

网络流之最大流(dinic算法模板+模板题)

dinic算法&#xff1a;时间复杂度O(), n 代表点的个数&#xff0c;m 代表边的个数。 const int N1e55; struct Edge{int to,w,next; }edge[N*2];//双向边 int head[N],d[N],cur[N]; int n,m,s,t,cnt1;// 从 2 , 3 开始配对 void add(int u,int v,int w){edge[cnt]{v,w,head[…

VirtualBox 7.1.0 发布下载 - 开源跨平台虚拟化软件

VirtualBox 7.1.0 (macOS, Linux, Windows) - 开源跨平台虚拟化软件 Oracle VM VirtualBox 7 请访问原文链接&#xff1a;https://sysin.org/blog/virtualbox-7/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 2024 年 9 月 …