传统协议大比拼之IP协议

news2024/7/6 19:35:02

文章目录

  • 一、引言
  • 二、IP协议的基本特点
    • 2.1 IP协议的作用和基本功能
    • 2.2 地址管理
      • 手动分配IP
      • 动态主机配置协议(DHCP)
      • 网络地址转换(NAT)
      • IPv6
    • 2.2 路由选择
      • RIP(距离向量型的协议)
      • OSPF(链路状态类型协议)
      • BGP(边界网关协议)
    • 2.3 IP协议的特点:
  • 三、IP地址的组成
    • 3.1 IP地址的分类
      • 1. 按A/B/C类
      • 2.按照子网掩码分类
      • 3.CIDR 与VLSM
      • 4.全局地址与私有地址
    • 3.2 特殊的IP地址
    • 环回地址
    • 广播地址
    • 网关
  • 四、IP协议的工作过程
    • IP数据包的传输流程
    • IP数据包的封装和解封装过程
    • IP协议的路由选择和转发过程


一、引言

其实我为什么要介绍这个ip协议呢.想来大家也不会陌生,IP协议属于网络层的内容,我之所以拿出来讲,是因为ip协议网络层非常重要的一环,它对我们实际的生活产生了非常重要的作用,至于它有什么神奇的,我接下来会慢慢的解释其中的原因.

二、IP协议的基本特点

2.1 IP协议的作用和基本功能

基本功能:IP协议是互联网协议族中最基础的协议之一,其作用是在Internet上实现数据包的传输。
至于它的基本功能就是地址管理和路由选择
地址管理:地址管理就是给每个网络的设备分配一个地址,这个地址是唯一的
路由选择:具体就是网络中的传输,要走哪条路线的

2.2 地址管理

其实针对地址管理,我们可以想象一下ip地址是怎么去给每个设备分配ip地址的,这里我们就需要看一下ip数据包的格式,来分析了.
在这里插入图片描述
综合以上图示,我们可以看到我们有32位源ip地址和32位目的IP地址.32位的ip地址代表这2^32=4,294,967,296,这么多ip地址,怎么去分配呢?实际上我们分配ip地址的方式也是经历了几个变化的.具体经历了哪些分配方式,我一一列举一下.


手动分配IP

最初,IP地址是手动分配的,即由管理员为每个主机分配唯一的IP地址,这种方式需要高度的人工干预,管理成本高,也不够灵活。
为什么一开始采用这种方式呢?谁也没想到,计算机会发展到今天,每一个人都有多个设备,多个设备都需要一个ip地址.突然有一天,发现ip地址突然不够用了,自然我们就要改变策略了.

动态主机配置协议(DHCP)

为了简化IP地址的管理,动态主机配置协议(DHCP)被引入。DHCP是一种自动分配IP地址的协议,允许主机在连接到网络时自动获取一个IP地址、子网掩码、默认网关和其他配置参数。DHCP服务器会在网络上动态分配IP地址,使得管理员只需要维护DHCP服务器即可,大大降低了管理成本。
使用一个简单的话就是,上网的时候才分配ip,不上网就不分配ip,但是这依然没有解决ip地址不够的问题,试问在当今互联网发展的时代,你真的能离开网络一分钟吗?恐怕几秒钟都不行吧

网络地址转换(NAT)

随着互联网的迅猛发展,IPv4地址的枯竭成为一个严重的问题。网络地址转换(NAT)被发明,以解决IPv4地址不足的问题。NAT是一种在IP数据包通过路由器或防火墙时重新写入源地址或目标地址的技术。它允许多台主机共享一个公共IP地址,并且增强了网络的安全性。
这段话估计有些抽象,我们简单来说,我们这个NAT机制就是划分了内网和外网,中间有一个设备把这个ip地址转换了而已,我画个示意图,大家就明白了.
在这里插入图片描述
另外的话,再举一个例子,来说明,具体的流程就如下.
在这里插入图片描述

IPv6

IPv6是下一代互联网协议,与IPv4相比,它具有更大的地址空间,更好的安全性和可扩展性。IPv6地址长度为128位,相对于IPv4的32位地址,IPv6能够提供约340万亿亿亿亿个IP地址,可以解决IPv4地址不足的问题。同时,IPv6还提供了更好的安全性和可扩展性,支持更多的协议和服务。
在这里插入图片描述
IPv6相对于IPV4从原来的32位变成了128位,可分配地址多了,自然就解决麻烦了,据说IPv6能为地球上的每一粒啥子分配IP地址.从跟本上解决了地址不足的问题.


2.2 路由选择

IP路由选择的功能是决定数据包从源地址到目的地址的传输路径
其实就是决定一个东西到另一个地方去.实际上我们发送数据要经历的过程.在实际的网络过程中,我们也有可能堵车,所以我们才有了路由选择协议.
在这里插入图片描述

RIP(距离向量型的协议)

  • 距离矢量路由协议,通过交换跳数信息构建路由表
  • 最大跳数限制为15,超过15跳视为不可达,用于小型网络
  • 收敛速度慢,网络拓扑变化时需要较长时间重新收敛
  • 简单易实现,适用于小型网络

OSPF(链路状态类型协议)

  • 链路状态路由协议,通过广播链路状态更新信息构建完整的网络拓扑图,然后使用Dijkstra算法计算最短路径
  • 支持网络分区和路径冗余,用于中大型网络,可支持数万台路由器
  • 收敛速度快,网络变化时可以快速重新收敛新的最短路径
  • 配置和实现较为复杂

BGP(边界网关协议)

  • 路径矢量路由协议,通过与相邻路由器交换路径信息更新路由表
  • 主要用于连接不同的自治系统网络,实现自治系统间的路由选择
  • 通过AS路径属性避免路由循环,每个AS只出现一次
  • 支持手动配置路由策略,实现路由选择的灵活控制
  • 全球公用互联网上部署最广的路由协议

这里我们知识简单的解释一下路由选择协议,这并不是我必须要去解释的,大家感兴趣,可以去了解一下.

2.3 IP协议的特点:

无连接、不可靠、分组交换、最大传输单元(MTU)等。

  1. 无连接:IP协议是无连接的,它不在发送方和接收方之间建立和维护连接状态。每个数据包的传输是独立的。

    2.面向数据包:IP协议面向数据包提供服务,它不保证数据包的有序到达,也不提供差错控制和流量控制。这简化了协议,并使其适用于几乎任何类型的网络。
    3.可变长度:IP数据包的长度是可变的,可以在40~65515字节之间。这使得IP有足够的灵活性来运行各种网络应用。

    4.无路由的:IP协议本身并不定义具体路由过程,只定义了路由选择的接口和相关信息。实际路由过程由路由协议如RIP、OSPF和BGP来定义。这使得IP协议本身保持简单,可以根据不同的网络采用不同的路由协议。

    5.提供最佳努力的交付:IP协议不保证数据能够被如期交付,它只是尽最大努力完成数据交付。拥塞和错误是可以接受的。需要更强可靠性的应用可以使用上层TCP协议。
    6.通过TTL实现数据报文生存期控制:每个IP数据报文都有一个生存期字段,通常称为Time to Live(TTL)。它用于在数据报文的生存期到期之前丢弃该数据报文,并通知发送方。这可以防止数据报文无限期循环。

    7.提供片段化与重组:为了适应不同网络中的最大传输单元(MTU),IP协议提供数据报文的分片与重组功能。这使得IP可以在具有不同MTU的异构网络中工作。

三、IP地址的组成

一般来说,IP地址由网络号和主机号组成.
网络号:标识网段,保证相互连接具有不同的标识
主机号:标识主机,同一个网络段内,主机之间具有相同的网络号,但是必须有不同的主机号.
大概是怎么一回事呢,我们在实际网络中,我们可以看一下下图.
在这里插入图片描述

3.1 IP地址的分类

1. 按A/B/C类

大概如下图所示
在这里插入图片描述

2.按照子网掩码分类

  • 255.0.0.0:A类地址,8位网络号,24位主机号
  • 255.255.0.0:B类地址,16位网络号,16位主机号
  • 255.255.255.0:C类地址,24位网络号,8位主机号
  • 255.255.255.224:27位网络号,5位主机号,用于划分小型子网
    在这里插入图片描述

3.CIDR 与VLSM

  • CIDR:无类别域间路由选择,使用从1到32的自然数表示子网掩码中当前有多少个网络号位,如/24表示24位网络号,/30表示30位网络号。
  • VLSM:可变长子网掩码,允许不同子网使用不同长度的子网掩码,实现更加灵活的地址划分,提高地址利用效率。

4.全局地址与私有地址

  • 全局地址:由ICANN统一分配的网络号,用于互联网,如A/B/C类地址和大部分CIDR地址。
  • 私有地址:用于专用网络,不可直接访问互联网。如:
    10.0.0.0 - 10.255.255.255
    172.16.0.0 - 172.31.255.255
    192.168.0.0 - 192.168.255.255

3.2 特殊的IP地址

环回地址

  1. 这是一个IPv4地址,属于A类地址,但其网络号全部为127,不属于任何一类常规地址范围。
  2. 这个地址指向本地主机,发送到这个地址的数据包会直接回送给本地主机。
  3. 这个地址通常用于测试网络协议和网络应用是否已正确安装和运行。如可以Ping 127.0.0.1来测试ICMP协议栈是否正常工作。
  4. 这个地址允许网络应用在本地主机上进行通信,就如同在网络上一样。这是很多网络应用在单机上运行的基础。
  5. 这个地址不可以用于主机之间的通信,只适用于本地主机上进程间或应用间的通信。
  6. 这个地址通常也被写成 localhost,这是一个域名而非Address。但会被自动解析为127.0.0.1地址。
  7. 127.0.0.1 对应的子网掩码为 255.0.0.0,但这个地址不参与任何子网划分,其全部位全为网络号。

广播地址

  1. 广播地址为网络或子网的全部主机位全为1,如Subnet 255.255.255.0的广播地址为255.255.255.255。
  2. 发送到广播地址的数据包会被网络或子网内的所有主机接收和处理。这使得一台主机可以快速地与网络或子网中的所有其他主机通信。
  3. 广播数据通常不会被路由器转发,只在本地网络或子网内传播。
  4. 由于所有主机都需要处理广播数据包,因此过多的广播流量会导致网络性能下降。所以,广播地址应谨慎使用。
  5. 一些协议如ARP、DHCP、NetBIOS等使用广播地址来实现局域网内的主机发现、地址分配等功能。
  6. 大多数路由器和交换机默认都会对广播流量进行限制以减少对网络性能的影响。部分设备也提供广播风暴控制功能。
  7. 广播地址是IP地址空间中比较特殊的一种地址,是所有主机的集合地址。但它又不具备唯一对应的物理网络接口。
    在这里插入图片描述

网关

  • 默认网关是主机进行数据包转发的第一个跳跃点。当主机要访问不在本地子网的网络时,它会将数据包转发到默认网关。
  • 默认网关通常是一个连接多个网络的路由器接口地址。它提供了主机访问外部网络的通道。
  • 主机的默认网关由系统管理员手动配置,或通过DHCP自动获取。
  • 在主机的IP配置中,默认网关是必要的参数之一。如果没有指定默认网关,主机将无法访问外部网络。
  • 同一个物理网络上的主机默认网关地址通常相同,指向连接它们的上级路由器。

在这里插入图片描述
这个网关就是局域网的出入口.


四、IP协议的工作过程

IP数据包的传输流程

  • 源主机将要传输的数据进行IP封装,形成IP数据包
  • 源主机将IP数据包发送到默认网关(默认路由)
  • 默认网关检查目的IP地址,进行路由选择决定数据包的转发路径
  • IP数据包沿着转发路径经过网络内各节点(路由器),直到到达目的主机
  • 目的主机进行IP解封装,取出原始数据

IP数据包的封装和解封装过程

  • IP封装:在网络层,源主机获取上层传输下来的报文段,加上IP头部形成IP数据包。IP头部包含源/目的IP地址,TTL,协议类型等信息。
  • IP解封装:在目的主机网络层,去除IP数据包的IP头部,提取出原始的报文段,提交给上层协议处理。

IP协议的路由选择和转发过程

  • 源主机默认路由器收到IP数据包后,检查目的IP地址,在自己的路由表中寻找最佳匹配路由条目。
  • 如果找到了匹配路由,则根据该路由的出接口转发IP数据包;如果没有找到匹配路由,则丢弃数据包
  • 中间各级路由器同样进行路由选择,直到IP数据包到达目的主机所在的网络。
  • 选择路由时,路由器会考虑路由的网络前缀,子网掩码及其它路由属性,选择最具体匹配的路由。
  • 路由表中的路由可以来自静态配置也可以来自动态路由协议。

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

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

相关文章

kong(6):身份认证

1 Basic Auth身份认证配置 Basic Auth插件 # 在服务上配置插件 curl -X POST http://127.0.0.1:8001/services/{service}/plugins --data "namebasic-auth" --data "config.hide_credentialstrue"#在路由上配置插件 curl -X POST http://127.0.0.1:8001/…

上海亚商投顾:沪指全天震荡微跌 新能源赛道股集体反弹

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 大小指数今日走势分化,沪指探底回升小幅下跌,创业板指盘中涨超2%,午后涨幅有所…

基于centos7:Harbor-2.7.2部署和安装教程

基于centos7:Harbor-2.7.2部署和安装教程 1、软件资源介绍 Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry…

数据结构3:栈和队列

目录 1.栈 1.1栈的概念及结构 ​1.2栈的实现 2.队列 2.1队列的概念及结构 2.2队列的实现 2.3循环队列 ​3.栈和队列的面试题 4.概念选择题 1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据…

深入探讨Linux驱动开发:驱动介绍与hello驱动实例

文章目录 前言一、Linux驱动介绍1.用户态和内核态2.内核功能介绍3.驱动程序介绍 二、驱动程序分类与注意事项1.驱动程序分类2.内核驱动开发注意事项 三、hello驱动开发1.驱动模块2.模块加载和卸载函数3.编写hello模块4.Makefile 四、运行测试总结 前言 通过之前对于IGKBoard开…

Python操作PostgreSQL数据库

个人简介:一个从会计转行数据分析师的三旬老汉 擅长领域:数据分析、数据仓库、大数据 博客内容:平时会将自己工作中遇到的问题进行归纳总结,分享给各位小伙伴,意在帮助大家少加班、不掉发,让我们相互学习&a…

Timer0/1设置时钟计算中断时间

时钟一般分为外部晶振时钟和内部时钟,相对而说,外部晶振时钟的精准度比内部系统时钟高,时间计算的更准。除非产品需要一般都不会用外部晶振时钟,因为好的东西贵啊,成本高。 本文主要介绍如何利用时钟设置Timer0/1&…

0603基础使用(二)-react路由-react

文章目录 3 NavLink简单封装4 switch的使用5 解决样式丢失问题6 路由的模糊匹配和严格匹配7 Redirect结语 3 NavLink简单封装 在之前使用NavLink标签时&#xff0c;只有2个&#xff0c;代码如下&#xff1a; <NavLink activeClassName"g2zh" classNamelist-grou…

C#:如何用分部类将一个大文件改为多个小文件?

很多时候我们会发现&#xff0c;写来写去&#xff0c;一个文件慢慢就变得很大了&#xff0c;行数过千基本上就维护比较困难。 将公共代码模块化&#xff0c;可以减少一些代码&#xff0c;也是非常有效的。 那还有其它办法吗&#xff1f; 用 分部类 可以解决。 下面是简单的…

eBPF的发展演进---从石器时代到成为神(三)

4. 内在驱动 由以上简要的回顾和梳理可见&#xff0c;内核开发者们所不断寻找的是一种充分表达能力的动态机制&#xff0c;进而打破内核和用户态的壁垒&#xff08;至少在逻辑层面&#xff09;&#xff0c;从而实现一种自由、直接的需求实现。技术成为内核开发者们锋利的工具&…

UE4/5 行为树使用教程

使用行为树首先需要保证目标蓝图是继承自Character基类。然后根据本文下面的流程操作即可。 1.创建AIController 首先需要在角色自身蓝图之外创建一个新的蓝图&#xff0c;继承自AIController&#xff1a; 2.挂载AIController 找到角色自身蓝图类设置中的Pawn一栏&#xf…

云LIS系统是什么?云LIS系统的功能有哪些?

云LIS系统源码 C#医学检验云LIS平台源码 云LIS系统是什么&#xff1f; 云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序&#xff0c;可协助区域内所有临床实验室相互协调并完成日常检验工作&#xff0c;对区域内的检验数据进行集中管理和共享&#xff0c;通过对质量…

C#探索之路(7):初探LitJson库并了解其中json的解析原理与处理报错

C#探索之路(7)&#xff1a;使用LitJson库解析数据抛出的异常错误修复指南与途径Tips 对Json格式的了解程度一定程度上影响了解决JSON相关问题的效率&#xff1b; 文章目录 C#探索之路(7)&#xff1a;使用LitJson库解析数据抛出的异常错误修复指南与途径Tips1、初步较为系统的去…

TryHackMe-Mnemonic(boot2root)

Mnemonic I hope you have fun. 端口扫描 循例nmap FTP枚举 尝试anonymous Web枚举 进80 gobuster扫 对着webmasters再扫一下 对着backups继续扫 下载zip文件&#xff0c;发现有密码 zip2john john直接爆 查看note.txt, 给出了ftpuser hydra直接爆ftp 进到ftp 用wget下载所…

VR全景图片,探究VR全景图片为何如此受欢迎?

随着科技的不断进步&#xff0c;虚拟现实技术逐渐渗透到我们的日常生活中&#xff0c;为我们带来了许多前所未有的体验和乐趣。而其中&#xff0c;VR全景图片作为一种基于虚拟现实技术的图片展示形式&#xff0c;不仅在旅游、房地产、教育等领域得到了广泛的应用&#xff0c;也…

【Java基础】语法基础

本文适合有编程基础或是需要Java语言复习的家人们食用~ 一、Java语言介绍 本篇文章使用的JDK版本是1.8&#xff08;即JDK 8&#xff09;Java语言是运行在JVM上的&#xff0c;有了JVM&#xff0c;Java语言得以在不同操作系统上运行垃圾回收机制&#xff1a;Java语言提供了一种…

文献阅读 Meta transfer learning-based super-resolution infrared imaging

题目 Meta transfer learning-based super-resolution infrared imaging 基于元迁移学习的超分辨率红外成像 摘要 我们提出了一种具有元迁移学习和轻量级网络的红外图像超分辨率方法。我们设计了一个轻量级网络来学习低分辨率和高分辨率红外图像之间的映射。我们使用外部数据…

科大讯飞版ChatGPT开始内测《讯飞星火》

科大讯飞版ChatGPT产品&#xff0c;提前交卷了&#xff01; 就在昨夜&#xff0c;讯飞骤然向开发者提供了内测通道&#xff0c;取名为讯飞星火认知大模型对外开启内测。 还有个神奇的英文名字Spark Desk&#xff0c;据说有“火花桌面智能助手”的意思。 申请的过程很简单。用…

Speech and Language Processing-之文本规范化

在对文本进行几乎任何自然语言处理之前&#xff0c;都必须对文本进行规范化。至少有三个任务通常作为任何规范化过程的一部分: 1. 分词 2. 规范化词格式 3. 句子分段 让我们从一个简单的(如果有点幼稚的话)单词标记化和非malization(以及频率计算)版本开始&#xff0c;它可以…

CIC 滤波器——不同长度的单级CIC滤波器的频谱特性

CIC 滤波器 % 多速率信号处理过程的关键是设计满足要求的抗混叠滤波器&#xff1a; % 第一&#xff1a;滤波器在有用信号频段内的纹波系数满足要求&#xff1b; % 第二&#xff1a;抽取或内插处理后&#xff0c;在有用信号频段内不产生频谱混叠&#xff1b; % 第三&#xf…