[网络]TCP/IP协议 之 网络层IP协议(3)

news2024/9/23 23:25:09

文章目录

  • 网络层
    • IP协议
    • NAT机制

网络层

网络层主要做的事情:
1.路径规划(路由器选择)
2.地址管理

IP协议

在这里插入图片描述
1)4位版本
指定IP协议的版本, 4 => ipv4 , 6 => ipv6

2)4位首部长度
4位bit能表示0-15, 单位也是4字节, 所以IP报头最长60字节, 最短20字节

3)8位服务类型(TOS)
type of service, 3位优先权字段(已经弃⽤), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表示: 最⼩延时, 最⼤吞吐量, 最⾼可靠性, 最⼩成本. 这四者相互冲突, 只能选择⼀个.只能有一个置为0

  1. 16位总长度
    整个IP数据包的长度, 报头 + 载荷, 最大64KB
    但是TCP协议是不限制数据包大小的, 所以IP自身实现了拆包组包这样的功能, 如果携带的载荷超出长度上限, IP就会自动拆分成多个数据包, 每个数据包携带一部分, 发送到对方之后, 再拼接好
    (IP并不关心传输的内容是啥应该怎么分, 只是粗暴地分成多份)
    在这里插入图片描述

在这里插入图片描述
IP数据包会根据上述三个属性进行拆包组包
16位标识: 用来区分哪些数据包要合并, 用来区分哪些数据包是一组的
3位标志位: 只有两个位有效
一个用来表示, 该数据包是否触发了拆包, 是否需要组包
另一个用来表示, 结束标记, 当前包就是最后一个需要组包的部分
13位片偏移: 若干个要拼接数据包的先后顺序

6)8位生存时间(TTL)
IP数据包要在网络上转发, 但是转发的次数是受限的
一个IP数据包, 初始情况下, 有一个TTL的值(32/64/128…这样的整数)
这个次数每经过一个路由器的转发, 就要 -1, 减到0, 这个数据包就会被丢弃

7)8位协议
这里就描述了载荷部分, 是哪种协议的数据包, 再分用的时候, 要交给上层的哪个协议, 都是有明确声明的

传输层 => 应用层: 端口号区分
网络层 => 传输层: 报头中有这个 8位协议 字段, 不同的取值就对应不同的传输层协议
数据链路层 => 网络层: 报头中的类型字段, 用来区分是IP数据包, 还是其他的

8)16位首部校验和
只针对IP首部进行校验, 载荷部分不关心

9)在这里插入图片描述
一个IP地址, 是一个32位的整数, 能表示的范围是 0-42亿6千万

NAT机制

原则上来说, 不同的设备, IP地址应该是唯一的, 显然这个数字, 在移动互联网的时代, 是不够用的
IP地址不够有, 有两个方案:

方案一: 动态分配IP地址
某个设备, 上网就分配IP, 不上网就不分配IP
这样的办法, 没法从根本上解决问题

方案二: NAT机制, 网络地址映射
首先, 把IP地址, 分成两大类:
公网IP(广域网使用的) 和 私网IP(局域网内部使用的)

私网IP:
10.*
172.16-172.31.*
192.168.*

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

那么设备之间的通信就分成了下述几种情况:
1)同一个局域网内部, 设备之间通信
由于一个局域网内部设备之间的IP是不能重复的, 此时这些数倍都能正常相互交互

2)广域网设备和广域网设备之间通信
要求广域网中的设备IP本身就是唯一的

3)局域网1中的设备A尝试访问局域网2中的设备B
这种情况是不允许访问的!!

如果需要进行上述操作, 往往需要搭配广域网中的服务器, 进行数据转发

4)广域网设备主动访问局域网设备
这种情况是不允许访问的!!

5)局域网中的设备主动访问广域网设备
这个过程中, NAT机制就开始发挥作用了
(我们为了简化过程, 省去了中间结点)
在这里插入图片描述

此时的运营商路由器, 就可以认为是一个NAT设备, 它就会对中间经过的数据包, 进行网络地址转换
当内网设备经过运营商路由器访问外网的时候, 就会把IP数据包中的源IP, 替换成他自己的IP
目的就是让自己的外网IP, 取代之间的内网IP
在这里插入图片描述

此时这个数据包到达cctalk服务器之后, cctalk就会看到一个5.6.7.8这样的设备给他发的一个请求, 但是cctalk对于我的电脑的内网ip,是一无所知的
这样的一个运营商路由器, 一般是按片区的, 这个运营商服务器的局域网中的几千台内网设备, 都是通过同一个外网IP, 在公网上进行传输的
你的电脑插到哪个路由器上, 你的私网IP就是由哪个路由器给你分配的

我们上网上搜索IP查询, 查到的就是你公网ip地址, 就是你运营商服务器的ip地址
在这里插入图片描述

现在cctalk服务器要返回给我相应的数据, 此时cctalk构造的数据包:
在这里插入图片描述
这个数据包就会返回给运营商路由器
在运营商路由器内部, 维护了一个"映射关系"
记录当前这个对应的请求时从哪个内网设备发过来的
从而把目的IP替换回最初的内网IP
在这里插入图片描述
查询到结果后, 就把IP和端口替换过来了
在这里插入图片描述
如果此时, 我们家的另一台电脑B也要访问cctalk(和我的电脑A同一个运营商路由器)
在这里插入图片描述
此时路由器就会将私网IP改成公网IP
在这里插入图片描述

此时站在cctalk的角度, 虽然这两个数据包来自同一个IP, 但是是不同的端口号, 就能够根据端口号来区分要把数据交给哪个客户端
cctalk返回的数据包:
在这里插入图片描述
这时在运营商路由器中, 就会维护这样的表:
在这里插入图片描述
此时, 运营商根据表, 就能找到私网IP
在这里插入图片描述
这样, 数据就能找到对应的主机啦
如果碰巧A和B的cctalk端口号相同, 那么运营商就会在映射表中将端口号也进行修改, 修改成唯一的端口号, 为了让服务器进行区分

注意: 中间结点的路由器, 有可能也是没有公网IP的, 但是也可以NAT, 直到找到有公网IP的路由器, 才能访问服务器
我们的私网IP, 是路由器提供的, 路由器有一个功能DHCP, 可以分配IP地址

NAT机制, 一个公网ip就可以表示很多个主机, 一定程度上解决了IP不够用问题
但是, 也并未从根本上解决问题

方案三:ipv6
ipv6引入了更长的字节数来表示IP地址, 用16个字节, 128位来记录
可以表示的范围就超级超级大了
足以给地球上每一粒傻子分配唯一一个IP!!!

但是, 我们当前的版本ipv4和ipv6不兼容!!!
我们大家用的路由器, 交换机, 网卡…各种设备, 都支持ipv4
如果要升级成ipv6, 就要更换所有的设备
况且ipv6从来没有使用过, 存在一定的风险
谁都不愿意花钱冒险!!

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

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

相关文章

【Qt】Qt界面美化 | 绘画

文章目录 绘画概述绘制API1. 图形(1). 线段(2). 矩形(3). 圆形(4). 绘制文本 2. 工具(1). 画笔(2). 画刷 3. 绘制图片QPainter图片操作 绘图设备(1). QPixmap(2). QImage(3). QPicture 结束语 绘画概述 虽然 Qt 已经内置了很多的控件,但还是有很多时候需要“自定义…

源于AI绘画的爆火,尝试做了一个工具网站

这两天做了一个 网页 Demo,实现了一些 AI 图像处理功能,前端用的是 React,后端用的是 Django 现在 ,Demo 中已经实现的功能有两个: 1,人像分割:从图像中把人物分割出来,用一个透明…

Vue与React的Diff算法

虚拟DOM 定义 虚拟DOM是一种用于在前端开发中模拟真实DOM的技术。它是一种抽象的数据结构(简单来说就是一个Javascript对象),用于描述HTML或XML文档的结构和内容。通过将页面的状态和结构保存在内存中,而不是直接操作真实的DOM&am…

C++·io流

本节主要是了解为主,需要具体使用时可以查看文档。 io流操作指的是对各种流的操作,我们经常使用的cin和cout是对标准流的操作,实际上它还可以对文件流操作。 官网资料:Input/Output - C Reference 流输入和流提取功能的实现中有着…

鸿蒙交互事件开发04——手势事件

1 概 述 手势事件是移动应用开发中最常见的事件之一,鸿蒙提供了一些方法来绑定手势事件。通过给各个组件绑定不同的手势事件,并设计事件的响应方式,当手势识别成功时,ArkUI框架将通过事件回调通知组件手势识别的结果。 …

记录一款人气领先的开源国产 ERP 系统

推荐一款人气领先的国产ERP系统,目前在Gitee上有12.3k star,在github上面也有1.2k 管伊佳ERP(原名华夏ERP)基于SpringBoot框架和SaaS模式,立志为中小企业提供开源好用的ERP软件,目前仅支持进销存财务生产功…

2025年第八届计算机图形和虚拟国际会议(ICCGV 2025)即将召开!

2025年第八届计算机图形和虚拟国际会议(ICCGV 2025)将于2025年2月21-23日在中国成都举行。随着信息技术的飞速发展,计算机图形学与虚拟现实技术正以前所未有的速度重塑着我们的认知世界与交互体验。从沉浸式游戏到精准医疗模拟,从…

气压测试实验(用IIC)

I2C: 如果没有I2c这类总线,连接方法可能会如下图: 单片机所有的通讯协议,无非是建立在引脚(高低电平的变换高低电平持续的时间)这二者的组合上,i2c 多了一个clock线,负责为数据传输打节拍。 (i2…

Unity3d中制作触发区域为圆形的按钮

一、常规矩形的Button制作 设置Highlighed Color为绿色。 此时当鼠标在button上方时会显示绿色: 二、圆形Button制作 在Button的Image中选择Source Image为Knob。 程序运行时,鼠标在矩形和圆形之间的区域,button还是会变成绿色。 所以&…

【时时三省】(C语言基础)指针进阶 例题5

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 abcdef是个常量字符串 把首地址a放在了p里面 第一个p 算的是指针变量的大小 它打印就是4或者8 第二个p1 p本来是a的地址 1就是b的地址 是地址就是打印四或者八 …

chapter14-集合——(List-LikedHashSet)——day18

目录 528-LikedHashSet介绍 529-LikedHashSet源码介绍 528-LikedHashSet课堂练习 528-LikedHashSet介绍 529-LikedHashSet源码介绍 528-LikedHashSet课堂练习

【计网】从零开始认识网络socket

优于别人,并不高贵, 真正的高贵应该是优于过去的自己。 --- 海明威 --- 从零开始认识网络socket 1 网络通信流程2 IP地址 VS MAC地址3 网络socket3.1 理解源 IP 地址和目的 IP 地址3.2 传输层的典型代表3.3 网络字节序3.4 socket编程基础 1 网络通信流…

高压直流接触器及使用注意事项

高压直流接触器及使用注意事项 1.概述2.接触器和继电器有什么区别3.节能线圈4.安装位置5.直流继电器线圈抑制6.高压继电器和接触器有哪些应用?7.线圈效率的决定因素是什么?对线圈驱动器有什么要求?8.负载极性对接触器的影响9.触点参数注意事项10.线圈供电要求1.概述 航空接…

基于单片机实现的的多点分布室内环境监测系统

基于STM32单片机为基础设计的一款室内环境监测系统程序源码 程序分为接收端和采集端两部分 接收端与采集端均以STM32单片机作为控制核心,两者通过ZigBee无线通信技术进行连接。接收端主要用于接收数据并将其实时显示以及报警。 采集端主要用于监测室内环境的各类数…

【Python工具】Python 装饰器实现统计函数执行时长

文章目录 1、背景2、轮子 1、背景 业务基本代码堆积完毕了,部分流程需要调优,想着在几个关键执行路径上进行时间记录,类似 SQL 慢日志一样的方法,方便进行性能问题发现。 了解了下,应该是采用装饰器实现是代码侵入最…

林草湿地址、导出echart为word

2.导出 // 导出exportDoc () {this.loading truelet arrRefs [this.$refs.endChart, this.$refs.processChart, this.$refs.officeEndChart]setTimeout(() > {Promise.all(arrRefs.map((canvasDom) > {return this.html2canvasHandle(canvasDom)})).then(res > {let…

如何让潜意识帮你实现你的目标

潜意识的力量是意识的3万倍以上 如果你有一个宏大的目标,怎么借助潜意识实现你的目标呢 比如,我的目标是:帮助100万人颠覆潜意识,实现人生蜕变,并且培养一万名潜意识开发导师 这么宏大的一个目标,怎么让…

B-树底层原理

一、B-树介绍 定义: B-树(B-Tree)是一种自平衡的树形数据结构,广泛应用于数据库和操作系统中。它的设计目标是减少搜索、顺序访问、插入和删除操作中比较次数和移动次数,特别适合于磁盘中数据的存储和检索。 性质&a…

运维团队日志管理策略参考

在运维工作中,日志管理是一项至关重要的任务。有效的日志管理不仅能够帮助运维团队实时监控系统状态、发现潜在问题,还能为故障排查和系统性能优化提供宝贵的数据支持。本文结合运维行业的实际需求,介绍了一套全面的日志管理策略,…

AutoDroid: LLM-powered Task Automation inAndroid论文学习

光看题目怎么和上一篇差不多?又是纯用LLM的? 当然还是有一点不一样的: 这里的最大特点是加上了UI领域知识,可以大幅增强LLM在处理UI方面的知识的能力。根据文章的说法,使用了这招他们的LLM可以吊打GPT4V,准…