IP 协议的相关特性

网络层的目标:

  1. 地址管理:把网络上的每个节点(路由器/主机)描述出位置,即 IP地址
  2. 路由选择: 路径规划
  • 4位版本号:指定IP协议的版本,只有两个取值:ipv4 / ipv6(我们上网大概率用的是ipv4)
  • 4位首部长度:描述报头有多长(报头是变长的),单位是4字节,即IP头部的长度是多少个32bit,4bit表示最大的数字是15,因此IP头部最大长度是60字节
  • 16位总长度:表示IP数据报整体占多少个字节,最大长度64KB. 如果IP数据报,需要携带比较大的载荷(传输层数据包),自动触发拆包,接收方自动组包。类比:搬家时一车拉不下,分两车或更多 分别进行运送

面试题:UDP协议,如果需要在应用层实现拆包组包,如何做呢?照抄IP

  • 16位标识(id):标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的
  • 3位标志:知道是否为最后一个需要组的包
  • 13位片偏移:组包时的排序依据(网络传输中可能出现"后发先至")

此时这俩数据到达对方,对方就可以根据标识对它们进行组包(标识相同)


  • 8位生存时间:数据报到达目的地的最大报文跳数。表示 IP数据报 还能在网络上传输多久(不能无限传输)比如目的地址写错了,不可能到达。错误的包,不能无限传输,浪费资源。单位不是分或秒,而是 "次数"。TTL有一个初始值,32 / 64 / 128... (一般是64)每次IP数据报经过一个路由器 进行一次转发,TTL都会 -1,直到TTL减到0,此时这个数据就可以丢弃了。

++像 32/64 这样的值够用吗?甚至进行跨国通信呢?++ 在社会科学中有个六度空间理论,计算机中可以做到,"六层路由器",每个路由器都能感知到他相邻的设备的情况。我先把数据发给我的路由器,路由器再层层转发。

  • 8位协议:在传输层使用什么协议来对载荷部分进行解析
  • 16位首部校验和:只检验首部,载荷部分 TCP / UDP内置了校验和

IP协议中最重要的属性:

这个地址由IP协议设定的。32位整数,分成4个部分,中间通过 3个".号" 分隔 => 点分十进制,每个部分取值0-255

IP地址设计的初心,为了区分当前设备,期望每个设备都有和别人不同的IP地址。32位数字表示的范围:0-42亿9千万。移动物联网、物联网开始之后,这些IP地址就不够用了。

如何应对呢?

一. 动态分配IP地址

一个设备,需要上网分配,不需要上网不分配,此时就能节省 一大部分的设备 暂时不需要分配IP地址(如今已经在使用了,效果比较有限)

二. 【核心方案】 NAT网络地址转换

把IP地址分成两大类:

  1. 内网IP/私网IP 10.* 172.16-172.31.* 192.168.*
  2. 外网IP/公网IP 除上面之外 剩下的都是外网IP

约定不同局域网内,内网IP允许重复。比如,A的电脑在学校的局域网中,B的电脑在公司的局域网中,A和B的 ip地址 可以是一样的。大部分设备都是局域网中的,此时就可以使IP地址的利用率大幅度提高了。

++如果跨局域网访问,怎么办呢?++

  1. 同一个局域网内部的两个设备访问,可以访问

此时和NAT没有任何关系,根据不同IP区分不同设备 (家用设备)

  1. 两个带有外网IP的设备访问,可以访问

也和NAT没有任何关系,两个外网IP仍然是全局唯一的(服务器/运营商路由器,可能带有外网IP)

  1. 不同局域网中的两个设备,尝试访问对方,不允许访问

我的电脑上运行UDP服务器,你的电脑拿客户端能否访问?不能。

  1. 外网IP的设备,尝试访问内网IP的设备,不允许访问

(第3和第4点,网络层不允许,但应用层有办法实现,例如 todesk 远程控制)

  1. 内网IP设备,尝试访问外网IP设备,可以访问

会触发 "网络地址转换",NAT设备(路由器)对IP数据报 其中的 源IP 做出修改,修改成自己的IP,记录替换的映射关系。

A和B访问同一个应用程序:

举个例子: 内网IP 类似 "学号",我的学号是11055413,假设我去公司应聘,需要登记信息,对方需要根据我的信息给我发邀请函。如果我填写信息就填写学号,肯定不行的!我们学校有一个11055413,其他学校也会有。相比于学号,更需要告知对方 我的学校,"学校" 起到外网IP的作用。

IP 地址替换 就是NAT 。++为什么要进行替换?++ 核心:访问外网设备,需要有外网IP,对方要返回响应,也要告诉对方外网IP,他才能把数据还回来。电信路由器,可能要接入很多设备(几百台 上千台设备)。此时这个路由器的外网IP就相当于可以代指这上百台设备,即上百台/上千台设备,共用一个外网IP。

发送请求:

返回响应:查表替换

我电脑的局域网IP

通过网页看到的其实是 我连接的电信路由器的IP地址

三. ipv6

ipv6 使用了16个字节,作为IP地址表示的方式

相关推荐
binqian37 分钟前
【linux】OpenSSH升级文档
linux·运维·网络
Bruce_Liuxiaowei41 分钟前
2026年9月第2周网络安全形势周报
网络·安全·web安全·网络安全·漏洞评级
和裕1 小时前
蜂窝板 vs 七层瓦楞重型纸箱:大件工业设备运输性能与成本全对比
大数据·运维·网络·人工智能·算法
Dawn-bit1 小时前
Linux 运维基础扩展:跳板机、堡垒机与物理服务器全流程
linux·运维·服务器·云计算·运维开发
Jae den1 小时前
网络延迟为什么会影响游戏和实时业务?
网络·游戏
新时代牛马1 小时前
Linux 定时任务:crontab、anacron 与systemd timer
linux·运维·服务器
水域安全老周1 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
IT摆渡者2 小时前
1panel 配置申请手动解析网站SSL证书
服务器·网络协议·ssl
疯狂打码的少年2 小时前
【计算机网络】子网掩码与子网划分计算(含CIDR表示法)
服务器·笔记·计算机网络·php
制造业的搬运工2 小时前
智能家居工控PCB可靠性检测规范与制程管控实践
大数据·网络·人工智能·制造·pcb工艺