Internet Protocol(一)

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: Internet Protocol

IP: Internet Protocol

互联网中的网络层

主机,路由器中的网络层功能:

8de46aa0d2a277a4efaa88ffa8b0e549_1691820850682-97ccd5ae-1c9c-488d-bc59-207fe31ccd1c.png

ip协议主要规定了 数据平面的转发功能

ICMP协议:


对于网络的信号,报错等的规定

路由器信令。

**ping应用程序的的本质: **


形成ICMP分组, 发给目标节点

目标节点反转回来形成ping的request的对应的respose

然后就可以知道目标ip是活跃的。

ip数据报格式

8b995c5d8edc6bb1f0469a3fb5d0659f_1691820916561-09e6c4cf-cb20-475b-9d63-f5595ca7b9ee.png

头部是可变长的,20字节的固定长度+ 选项部分

IP数据报的载荷部分(body): 也就是数据部分。

16bit identifier: id表示 ; flgs ;fragment offset; 中间这三个字段是分片用的

ttl(time to live):最大剩余段数,每经过一个路由器减一。

upper layer :将载荷部分交给上层的哪个协议(TCP/)

Internet CheckSum : 校验和 ,校验数据报的头部

Options 经过路由器的时候,交换节点会将option打在ip之中


分片和重组

** 网络链路有MTU (最大传输单元) -链路层帧所携带的最大数据长度 **


不同的链路类型

不同的MTU

** 大的IP数据报在网络上被分片 (“fragmented”) **


一个数据报超过了最大载荷量(1500bit) 所以就需要进行分片传输, 按照不同的id、偏移量等等


一个数据报被分割成若干个小 的数据报

相同的ID

不同的偏移量

最后一个分片标记为0

** “重组”只在最终的目标主机 进行 (最后到了目标主机,就会重组之前切分的部分)**

**IP头部的信息被用于标识,排序相关分片 **

分片的细节:

例子 : 4000 字节数据报 有20字节头部 、 3980字节数据


** MTU = 1500 bytes **


e600efd73e535fa151a4e700da8aa675_1691823389419-c35d922c-62d6-4f7f-b087-49995c8edc40.png


第一片:20字节头部+1480字 节数据 【 偏移量:0 】

第二片:20字节头部+1480字 节数据(1480字节应用数据) 【 偏移量:1480/8=185 】

第三片:20字节头部+1020字 节数据(应用数据) 【 偏移量:2960/8=370 】

路由器将每片都当成独立的分组进行转发, 最后所有的信息都到目标主机, ,到了目标主机之后就会进行重组(根据数据报的头部, 及其偏移量进行排序重组 ; fragflag=0就是最后一片)


IPv4地址

**IP地址: 32位标示(对设备进行标识),对主机或者路由器的接口 编址 **

0096b17db16fe4c1d1ef01a7a005a700_1691823714304-4a8b2d56-d816-417d-9311-7a6543cd44e8.png

接口: 主机/路由器和物理链路的连接处(223.1.3.27)


路由器通常拥有多个接口 (多个路由器之间进行转发)

主机也有可能有多个接口(多个网卡进行虚拟ip转发)

IP地址和每一个接口关联

** 一个IP地址和一个接口相关联 ,一个接口(接口)和多个IP相连**


子网

什么是子网(subnet) ?


一个子网内的节点(主 机或者路由器)它们的** IP地址的高位部分相同 **,这些节点构成的网络 的一部分叫做子网


**无需路由器介入,子网 内各主机可以在物理上 相互直接到达 **【在一个子网的内部,ip之间是一跳可达的。(具体的在链路层实现)】

58c6707c231cc0befdb52f20e3d0825b_1691824268183-06eceebd-4e85-47fd-a9f3-3d21d2827241.png


包括三个子网网络


**IP地址: **


**子网部分(高位bits) **

**主机部分(地位bits) **

判断是否为子网的方法:

要判断一个子网, 将每一个接口从主机或者路由器上分开,构成了一个个网络的孤岛

**每一个孤岛(网络)都是一个都可以被称之为subnet(子网). **

子网掩码:11111111 11111111 11111111 00000000

Subnet mask: /24

20cb2b8fd8e24aea256fca9534d80dd7_1691824774246-a36381b2-75a5-434c-900e-d87c085a6bc8.png

图中有6个子网

子网孤岛: 几个主机构成的一个网络孤岛(相当于欧盟,对外就是一个整体),网络的传输跳过了路由器。


IP地址分类

Class A:126 networks ,16 million hosts

Class B:16382networks ,64 K hosts

Class C:2 million networks ,254 host

Class D:multicast

Class E:reserved for future


7a933505959574a6f36e045feec7cfbe_1691825024645-87423cf8-fbe1-44a6-86ce-8563511be53a.png

以A类为例解释:

地址的最高位为0;第一个字节的其他七个bit代表网络号 ; 后面三个字节的24个bit代表主机号

A类地址一共2的7次方 - 2= 126个网络(减少的2个是全0 和全1 的网络号不用)。每个网络有2的24次方 - 2 个主机。

同理 B类网络有 2的14次方 - 2 ; 主机有 2的16次方 -2

依次类比


C类IP地址有 200多万个网络, 一般我们获取到网络都是C类地址网络。(A、B类的都被分配完了)

D类部分是组波(具体有点不太明白,但是就是)

E类都是预留的


特殊IP地址:

一些约定:


子网部分: 全为 0—本网络

主机部分: 全为0—本主机

主机部分: 全为1–广播地址,这个网络的所有 主机

所以全0 和 全1不被分配


**特殊IP地址: **


e3e5292d1de2a32b1ad192a931595c49_1691825485660-0d64b49b-3c60-485a-870c-2c3c82c124c7.png

内网(专用)IP地址

专用地址:地址空间的一部份供专用地址使用

永远不会被当做公用地址来分配, 不会与公用地址重复

只在局部网络中有意义,区分不同的设备

路由器不对目标地址是专用地址的分组进行转发

**专用地址范围 **


Class A 10.0.0.0-10.255.255.255 MASK 255.0.0.0

Class B 172.16.0.0-172.31.255.255 MASK 255.255.0.0

Class C 192.168.0.0-192.168.255.255 MASK 255.255.255.0

IP 编址: CIDR&& 子网掩码

** CIDR: Classless InterDomain Routing(无类域间路由) **


子网部分可以在任意的位置

**地址格式: a.b.c.d/x, 其中 x 是 地址中子网号的长度 **

8c3f332a13bc4c53298039083a5ba687_1691826358777-b4c06cb6-f0f7-492d-85e8-fe9c515050df.png

可以自己分配机构的子网掩码


子网掩码(subnet mask)

** 32bits , 0 or 1 in each bit **


1: bit位置表示子网部分 (代表网络号部分)

0:bit位置表示主机部分(代表主机号部分)

原始的A、B、C类网络的子网掩码分别是


A类:255.0.0.0 :11111111 00000000 0000000 00000000

B类:255.255.0.0:11111111 11111111 0000000 00000000

C类:255.255.255.0:11111111 11111111 11111111 00000000

** CIDR下的子网掩码例子:11111111 11111111 11111100 00000000

** 另外的一种表示子网掩码的表达方式 : /#

例:/22:表示前面22个bit为子网部分


转发表和转发算法

09e9ecf7596d176d512966c602cc3281_1691827399655-4e3f0b12-d976-4531-8819-6e5a1e34026a.png


图中的端口改为接口


**获得IP数据报的目标地址(IP DesAddress) **

**对于转发表中的每一个表项 **


如 (IP Des addr) & (mask)== destination 得到的是网号, 则按照表项对应的接口匹配并 转发该数据报

如果都没有找到,则使用默认表项转发数据报

如何获得一个IP地址

主机如何获得一个IP地址?

系统管理员将地址配置在一个文件中


Wintel: control-panel->network- >configuration->tcp/ip->properties

UNIX: /etc/rc.config


** DHCP: Dynamic Host Configuration Protocol: 从服务器中动态获得一个IP地址 **

“plug-and-play”—> 动态主机配置协议

**对于一个机构(ISP)怎么获取IP地址 ? **


首先某个机构会获取相对的一大块ip地址(前面若干位为网络号;后面的为主机号)

就假设前20位为网络号, 后面的12位为主机号

将后面的12位进行分割范围【前3位再表示网络号;后9位表示子网号】

这样就有23位为网络号。 9位子网号。 然后再对9位进行分割

分成2位为网络号,7为子网号

…..

按照这样进行无限的套娃, 最后得到的就是某个具体的IP地址。

总的来说就是你的老大从国家那里申请了一个完整的蛋糕, 你想要拥有这块蛋糕的一部分,他人也想要,那就只能从这个老大那里去切了。除非你也能从国家那里获取最初的那块完整的蛋糕


ISP’s block 11001000 00010111 00010000 00000000 200.23.16.0/20


Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23

Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23

Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23

… ….. …. ….

Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

最初的ip地址(蛋糕)可以到ICANN机构去申请(这是在中国的)


DHCP: Dynamic Host Configuration Protocol(协议)

**允许主机在加入网络的时候,动态地从服务器那里获得IP地址: **


可以更新对主机在用IP地址的租用期-租期快到了

重新启动时,允许重新使用以前用过的IP地址

支持移动用户加入到该网络(短期在网)

** DHCP工作概况: **


主机广播“DHCP discover” 报文[可选]

DHCP 服务器用 “DHCP offer”提供报文响应[可选]

主机请求IP地址:发送 “DHCP request” 报文

DHCP服务器发送地址:“DHCP ack” 报文

0fb4ee2235c425854c2d3da3551d2296_1691828051066-3e7fdaa3-4b87-44e0-8dbc-590c70c2bd56.png

**上述的详细解释: **




目录
相关文章
|
5月前
|
人工智能 小程序 数据安全/隐私保护
2026年零基础部署OpenClaw(Clawdbot)集成微信小程序保姆级教程
2026年,AI自动化工具已深度渗透到私域运营、个人办公、中小企业服务等各类场景,OpenClaw(前身为Clawdbot、Moltbot,三者为同一套AI网关系统的不同命名迭代,旧名相关操作命令完全兼容)凭借轻量化容器化架构、灵活的插件扩展能力、自然语言驱动的任务执行效率,以及对多平台的无缝适配特性,成为新手与中小企业打造专属AI助手的首选工具。微信小程序作为国民级轻应用载体,无需下载安装、触达便捷、覆盖全年龄段用户,且依托微信生态实现流量闭环,将OpenClaw与微信小程序深度对接,可快速解锁“小程序发指令、AI自动化执行、实时反馈结果”的核心体验,适配私域客户服务、智能咨询、办公提效、内
2385 2
|
7月前
|
数据采集 运维 供应链
RFID实现工业“智”造升级
在工业 4.0 与智能制造浪潮下,传统工业生产面临 “信息断层”“效率瓶颈”“质量追溯难” 等核心痛点。RFID技术凭借非接触式识别、多标签同时读取、抗恶劣环境、数据可读写等特性,成为打通生产全流程数据链路、实现 “人 - 机 - 料 - 法 - 环” 智能互联的关键技术,从底层数据采集到顶层决策优化,全面推动工业 “智” 造发展,RFID实现工业“智”造升级。
|
设计模式 数据采集 监控
Go语言并发模型与模式:Fan-out / Fan-in 模式
Fan-out/Fan-in 是一种经典的并发设计模式,用于任务分发与结果聚合。Fan-out 将任务分发给多个 worker 并发执行,Fan-in 将结果汇聚统一处理。适用于数据抓取、批量计算等“多产一收”场景。通过 goroutine 和 channel,可构建高效的数据处理流水线,具备高吞吐与扩展性。使用时需注意通道设计、异常处理及取消控制等问题。
|
存储 SQL 关系型数据库
OceanBase数据库常见问题之部署时提示需要ocp但是我已经安过了如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
缓存 安全 前端开发
Cloudflare
【7月更文挑战第13天】Cloudflare
1084 5
|
弹性计算 API Python
阿里云百炼应用之流程编排
阿里云通义百炼平台流程编排使用教程。
1369 2
|
JavaScript API
在Vue中,有哪些方法可以监听元素的状态变化?
在Vue中,有哪些方法可以监听元素的状态变化?
901 2
|
SQL 存储 监控
日志问题精要:分析与总结
该文档讲述了应用系统日志记录的重要性和规则。主要目的是记录操作轨迹、监控系统状态和回溯故障。日志记录点包括系统入口、调用其他模块、调用结束、出口和出错时。内容应遵循UTF-8编码,避免敏感信息,按INFO级别记录,及时、完整且安全。日志输出要控制频率和长度,不影响系统性能,并按策略备份和清理。日志等级分为DEBUG、INFO、WARN、ERROR和FATAL。日志文件应有明确目录结构,大小有限制,并定期清理。注意事项包括输出异常堆栈、避免打印对象实例的hashCode、选择合适的日志框架和格式,并支持动态修改日志级别。还要实现链路追踪,确保在多线程环境中正确记录日志。
417 0
|
存储 开发框架 前端开发
深入探索React:构建动态、交互式前端应用的终极指南
深入探索React:构建动态、交互式前端应用的终极指南
596 0