「网络原理」IP 协议

🎇个人主页:Ice_Sugar_7
🎇所属专栏:计网
🎇欢迎点赞收藏加关注哦!

IP 协议

  • 🍉报头结构
  • 🍉地址管理
    • 🍌动态分配 IP 地址
    • 🍌NAT 机制(网络地址映射)
    • 🍌IPv6
  • 路由选择

🍉报头结构

TCP/IP 协议族是整个网络体系中最核心的协议,类似于 TCP,IP 所包含的内容也很复杂
IP 协议主要完成两方面的工作

  1. 地址管理:使用一套地址体系来描述互联网上每个设备所处的位置
  2. 路由选择:为一个数据包规划如何从网络中某个地址传输到另一个地址

先来认识一下 IP 协议报头

在这里插入图片描述

“16 位总长度” 描述了一个 IP 数据报的长度(包括报头和载荷),虽然 IP 自身有长度限制,但是 IP 也提供了拆包和组包这样的操作,所以载荷很大也没关系,因为在 IP 这一层会自动拆成多个 IP 数据报,每个数据报携带一部分载荷

拆包后该如何组包呢?这就涉及到下面三个属性

在这里插入图片描述

在这里插入图片描述


🍉地址管理

设定 IP 地址的目的就是为了区分网络上不同的设备。但是 IP 地址本质是一个 32 位整数,由于网络设备越来越多,IP 地址不够用就成了上世纪 90 年代一个非常严峻的问题
对于这个问题,有三种解决方案

🍌动态分配 IP 地址

因为全世界的设备不是同时上网,所以就只给正在上网的设备分配一个 IP 地址就 ok 了。不过这并没有从根本解决问题

🍌NAT 机制(网络地址映射)

IP 地址分为两类

  1. 私网 IP / 局域网 IP
    形如 10.,172.16-172.31.,192.168.* 的地址都是私网 IP
  2. 公网 IP / 广域网 IP
    不是局域网的 IP 就是公网 IP

公网上的设备对应的公网 IP 都必须是唯一的;但是私网上 / 局域网上的设备,它们使用私网 IP,只要保证在当前局域网内部的 IP 不重复就 ok 了,不同局域网之间的 IP 是允许重复的
这个设定就会带来一些限制:

  • 公网设备可以直接访问其他公网设备
  • 同一局域网中的不同设备之间可以相互访问
  • 不同局域网中的设备之间不能访问
  • 局域网设备如果要访问公网设备,那就需要先对局域网 IP 进行转换
  • 公网设备不能主动访问局域网设备

这里第四点需要单独拎出来说一下
为了方便解释,这里就只考虑主机经过一个路由器之后就可以把数据转入公网,最终到达服务器,如下图:

在这里插入图片描述

所以发送数据报的流程如下:

在这里插入图片描述

上述的替换过程,本质上是让一个公网 IP 能够对应到多个设备,从而节省 IP 地址

路由器在 NAT 的时候会把这次通信的相关信息记录下来,比如源 IP、目的 IP。
如果局域网各个设备访问的服务器互不相同,那么路由器就可以通过服务器 IP 来区分是哪个设备,只需通过查表就可以把目的 IP 还原为之前的局域网 IP
如果访问的是同个服务器,可以通过端口号来区分,如下图,目的 IP 都是 5.6.7.8:

在这里插入图片描述

端口号可以用来区分同一主机的不同进程,也可以区分不同主机的不同进程,因为客户端的端口号是系统随机分配的,两台主机之间的端口大概率不同。路由器收到响应之后就可以查询传输层中的目的端口,看这里的端口是 2000 还是 3000,从而确定要把响应转发给哪个客户端
不过也有巧合,比如局域网中两台设备的端口恰好相同,那么此时路由器就会对端口号进行映射

在这里插入图片描述
比如对于第一个客户端:

在这里插入图片描述


🍌IPv6

IPv4 使用 4 个字节表示 IP 地址,取值范围为 0 - 2^32;而 IPv6 使用 16 个字节表示,范围为 0 - 2^128。通过增加 IP 地址的个数,从根本上解决问题。但是 IPv6 的报头结构和 IPv4 不兼容,引入 IPv6 就意味着当前的网络设备(路由器等)就需要更换为支持 IPv6 的设备


路由选择

路由选择就是路线规划,但是由于网络结构很复杂,每个路由器都无法掌握全局的信息,只了解一部分局部信息,因此路由器规划出来的路线,只是一个局部的最优解(听起来类似贪心)
每个路由器对网络环境(与它相邻的设备情况)有一定的了解,这样它就可以根据数据报中的目的 IP,告诉数据报下一步应该往哪个方向走
其中的原理为:路由器内部有一个数据结构——路由表,它记录目的 IP 的网段对应的网络接口(就是从路由器哪个口出),但由于路由器只了解局部的情况,所以数据报的目的 IP 在路由表中很可能不存在,此时路由表中的特殊表项(又称下一跳)就发挥了作用,它指向一个默认的网络接口,这个接口通常指向更上层的路由器

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AMD平台,5600X+6650XT,虚拟机安装macOS 14(2024年6月)

AMD平台安装macOS 14的麻烦,要比Intel平台多的多,由于macOS从13开始,对CPU寄存器的读取进行了改变,导致AMD平台只要安装完macOS 13及以后版本,开机后就报五国语言错误,不断重启。改vmx文件,被证…

VR虚拟仿真技术模拟还原给水厂内外部结构

在厂区的外围,我们采用VR全景拍摄加3D开发建模的方式,还原了每一处细节,让你仿佛置身于现场,感受那份宁静与庄重。 当你踏入厂区,我们为你精心策划了一条游览路线,从门口到各个重要场景,一一为…

2025年计算机毕业设计题目参考

今年最新计算机毕业设计题目参考 以下可以参考 springboot洗衣店订单管理系统 springboot美发门店管理系统 springboot课程答疑系统 springboot师生共评的作业管理系统 springboot平台的医疗病历交互系统 springboot购物推荐网站的设计与实现 springboot知识管理系统 springbo…

Pytorch深度解析:Transformer嵌入层源码逐行解读

前言 本部分博客需要先阅读博客: 《Transformer实现以及Pytorch源码解读(一)-数据输入篇》 作为知识储备。 Embedding使用方式 如下面的代码中所示,embedding一般是先实例化nn.Embedding(vocab_size, embedding_dim)。实例化的…

怎么给二维码添加文字或logo?快速美化二维码的使用技巧

怎么给已生成的二维码修改样式呢?目前常规生成的二维码大多是普通黑白色的,没有明显的标识不利于用户辨别。想要提升二维码的辨识度可以通过添加logo、添加文字的方式来改变二维码的样式,让用户看到二维码就知道是否是自己需要的内容&#xf…

智能制造uwb高精度定位系统模块,飞睿智能3厘米定位测距芯片,无人机高速传输

在科技日新月异的今天,定位技术已经渗透到我们生活的方方面面。从手机导航到自动驾驶,再到无人机定位,都离不开精准的定位系统。然而,随着应用场景的不断拓展,传统的定位技术如GPS、WiFi定位等,因其定位精度…

【AI基础】大模型部署工具之ollama的安装部署

ollama是大模型部署方案,对应docker,本质也是基于docker的容器化技术。 从前面的文章可以看到,部署大模型做的准备工作是比较繁琐的,包括各个环节的版本对应。ollama提供了一个很好的解决方案。 ollama主要针对主流的LLaMA架构的…

如何使用xurlfind3r查找目标域名的已知URL地址

关于xurlfind3r xurlfind3r是一款功能强大的URL地址查询工具,该工具本质上是一个CLI命令行工具,可以帮助广大研究人员从多种在线源来查询目标域名的已知URL地址。 功能介绍 1、从被动在线源获取URL地址以实现最大数量结果获取; 2、支持从Way…

可通过小球进行旋转的十字光标(vtkResliceCursor)

前一段事件看到VTK的一个例子: 该案例是vtk.js写的,觉得很有意思,个人正好也要用到,于是萌生了用C修改VTK源码来实现该功能的想法。原本以为很简单,只需要修改一下vtkResliceCursor就可以了,加上小球&#…

【面试 - 页面优化举例】页面跳转卡顿问题解决 - 页面跳转速度优化

目录 为何要优化如何优化优化1 - 懒加载优化2 - el-tree 子节点默认不展开 为何要优化 页面A跳转到也页面B时,页面出现卡顿情况: 【问题】页面A → 页面B时,页面B进入到了 created 钩子后过了六七秒才进入到 mounted 钩子;【分析经…

遗传算法浅理解

1. 什么是遗传算法? ​ 遗传算法,又称为 Genetic algorithm(GA)Genetic algorithm(GA)。其主要思想就是模拟生物的遗传与变异。它的用途非常广泛,可以用于加速某些求最大或者最小值的算法(换句话说就是加速算法收敛,最…

PV180R1K1T1NMMC派克通轴传动结构柱塞泵

PV180R1K1T1NMMC派克通轴传动结构柱塞泵 派克柱塞泵的结构组成部分:柱塞、手把、斜盘、压盘、滑履、泵体、配油盘、传送轴。其优点如下: 1、结构紧凑耐用,具有灵活的安装接口 2、安静的工作 3、效率高 4、降低功耗和减少发热 5、具有“…

升级到tomcat10和Java 21后,idea控制台system.out.println输出中文乱码问题

最近一次性从tomcat 9升级到tomcat 10,同时Java sdk也从1.8升级到21。 升级过程中,当然会遇到很多问题,但是控制台输出中文乱码问题,着实折腾了很久。 1、尝试各种方法 网上说的很多通用方法都试过了,就是不生效。包…

编码在网络安全中的应用和原理

前言:现在的网站架构复杂,大多都有多个应用互相配合,不同应用之间往往需要数据交互,应用之间的编码不统一,编码自身的特性等都很有可能会被利用来绕过或配合一些策略,造成一些重大的漏洞。 什么是编码,为什…

别再这么起号了!TikTok小白起号误区,你中招了吗?

看过不少Tiktok新手的起号失败案例,总结下来就是以下这几个问题,今天结合一些个人起号心得给大家分享怎么成功在TK起号,希望对大家有所帮助。 手机/网络环境 首先我们要确保手机环境和网络环境没有问题,如果被TK判断出是非海外用户…

【YOLOv8改进[注意力]】在YOLOv8中添加ECA高效通道注意力(2020.4)的实践 + 含全部代码和详细修改方式 + 手撕结构图

本文将进行在YOLOv8中添加ECA高效通道注意力的实践,助力YOLOv8目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 ECA 二 在YOLOv8中添加ECA注意力

synchronized死锁

1、死锁案例 /*** descpription: 死锁案例* date 2024/6/17*/ public class DeadLockDemo {public static void main(String[] args) {Object objA new Object();Object objB new Object();new Thread(() ->{synchronized (objA){System.out.println(Thread.currentThrea…

【产品经理】ERP订单处理3-解密促销策略

由于订单到电商ERP系统中,订单金额已经不能支持改动,故电商前台端的优惠券活动、满减活动、支付优惠活动无法使用,故电商ERP只涉及赠品的活动。 一、订单金额阶梯送 顾名思义:订单金额在某个或者某几个金额范围内赠送商品。 字…

设备物联网关在实际生产中的作用解析-天拓四方

随着物联网技术的迅猛发展,设备物联网关作为连接物理世界与数字世界的核心组件,其应用已经渗透到工业、农业、医疗等多个领域。本案例将聚焦于设备物联网关在某制造企业中的应用,详细解析其在实际生产中的重要作用。 案例背景 某制造企业面…

Browserslist: caniuse-lite is outdated。浏览器列表:caniuse lite已经过时???

一、最近运行项目启动时提示 Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-dblatest Why you should do it regularly: https://github.com/browserslist/update-db#readme 这要是这一句,Browserslist: caniuse-lite is outdated.…