网络层IP

公网IP全球具有唯一性

ip用点分十进制标识(IPV6)

eg.

121.41.6.245,范围为0,255.0,255.0,255.0,255

目的ip地址 = 目标网络 + 目标主机

主机:配有ip,但是不进行路由控制

路由器:配有ip,且进行路由控制

IP的核心作用:把数据包跨网络转发到目标主机

但是转发到目标主机不一定成功(可能丢包),如果丢包了,就需要TCP协议处理(重传)

上图所示,左边是传输层报头的结构,右边是网络层报头的结构

网络层传输的路径就是由源IP地址和目的IP地址决定的

IP报头的解包:

IP报头报头包括前面20个字节和选项,后面的数据则是报文的有效载荷

IP的报头有里包含四位首部长度,IP报文在计算长度时存在四字节的基本单位

所以实际上报头的取值范围为 20, 60,有四十个字节的选项

去掉前20个字节,剩余的就是选项

16位总长度则是包括了有效载荷的整个报文大小

IP报文通过4位首部长度和16位总长度来进行解包和封包

8位协议字段用来处理分用问题

在tcp/udp封装时,会将自己的协议号填上

根据8位协议,报文技能够继续向上选择tcp或udp继续解包

8位服务类型包括3位优先权字段(已弃用),4位TOS字段和1位保留字段

可以选择要用什么样的方法来转发报文(最小延时,最大吞吐量,最高可靠性,最小成本)

**8位生存时间(TTL)**是报文的生存时间

TTL是一个计数器,每经过一个路由器,计数器--,如果减到0,还没有到达,就就丢弃报文

这是为了防止出现路由循环

子网划分

IP地址 = 网络地址 + 主机地址

同一个子网的IP地址的网络号(网络标识)是一致的(前三位是网络号,一个子网中的网络号都一致)

路由器存在两个IP地址,因为路由器同时属于两个子网

家里第一个入网的设备是路由器,路由器具有构建子网的能力

子网划分可以更快的找到目标IP,根据网络号找到对应的IP地址,查找效率更高

不用再一个一个ip遍历

报文再进行转发的过程中,在到达目标网络之前,只关注IP中的目标网络部分

不同的子网就是把网络号相同的主机放到一起

过去的划分网络号和主机号的方案:

IP地址总共32位

IP地址可以分为ABCDE五类

其特点和范围如下

子网掩码

但是由于大部分组织都申请B类网络地址,导致B类地址很快就分配完了,而A类浪费了大量地址

为此引入了新的划分方案:子网掩码

子网掩码也是32位的正整数,通常用一串0结尾

将IP地址和子网掩码进行按位与,得到的结果是网络号

网络号和主机号的划分与这个地址是A类,B类还是C类无关

全0和全1分别位网络号和广播地址,是特使ip,不能分配给主机,因此实际上的子网地址范围为

256 - 2 = 254

IP地址的数量限制

IP地址总共有2^32个,而每一个主机都需要一个IP地址

同时由于特殊IP地址的存在,数量原不足2^32个

因此会采用:

1.动态分配IP地址

2.NAT技术

3.IPv6(用16个字节,总共128位)

来解决IP地址不足的问题

私有IP地址和共有IP地址

局域网中使用的私有IP地址,理论上可以随便使用

但是规定了私有IP地址:

私有IP,只能用来组建局域网,不能出现在公网中

私有IP由于只在内网中使用,所以不同的子网,IP地址可以重复

但是公网IP不能重复

我们的报文必须经过运营商的转发,才能到达公网

内网到公网的过程:

报文从主机转发到家用路由器,然后将src(源IP地址)替换成所经过路由器的WAN口IP

然后该报文会被转发到运营商的出入口路由器

然后继续修改src,替换成所经过路由器的WAN口IP

至此,源IP和目标IP都变成了公网IP

然后通过公网转发,随后目标IP地址的主机进行应答

根据dst发送回公网的原本的位置

这就是NAT技术

NAT技术缓解了IP地址不足的问题

因为他单独切分了一部分IP,只用他来做内网

这样IP地址就可以被重复利用了

全球网络就是对全球公网IP地址进行划分的过程

划分公网IP由各国家,公司,学校等进行申请的

有路由表存储目标网络的IP地址与其对应的地区

eg.

在查路由表时,如果找不到,就会找缺省路由,缺省路由通常是上一级路由,省级路由器的缺省路由是国际路由

路由

路由的过程就是子网间跳跃的过程

路由器要配置默认路由(缺省路由)

路由器的路由表找不到目标IP,就会找缺省路由,升到上一级路由,再进行寻找

目标IP = 目标网络 + 目标主机

在网络里通过目标网络寻找,到达目标网络后,通过目标主机寻找

主机 + 路由器是自己的网络层,记录配置了自己的路由表信息

可以使用route来查询路由表

转发过程:

IP报文转发的过程,本质就是在各个子网间进行转发

IP主要解决的核心问题就是路径选择(淘汰其他子网)

IP转发过程:

1.寻找目标网络

2.内网进行转发

数据链路层规定,单次发送的数据帧的有效载荷的长度不能超过MTU(一般为1500)

IP报文太长了,会进行分片,分片工作通常由网络层进行

分片后也由网络层进行组装

分片和组装的详细信息被包括在报头中

分片的报文,如果有任意一个丢失,就会判定丢包

分片之后,丢包率增加了

分片不能作为网络发送的主流

所以要尽量减少分片,就要传输层不要发送太大的报文段

如果分片,则16位标识必须全为1

三位标志位,第一位保留,第二位表示禁止分片,如果该位置为1,且报文长度超过MTU,则丢弃该报文,第三位表示更多分片,如果分片了,最后一个分片位置为0,其他为1

13位片偏移是分片相对于原始IP报文开始处的偏移

接收方可以根据16位标识位,片偏移和三位标识来判断是否分片

接收方根据16位标识,确认分片是否放在一起

然后根据片偏移进行升序排序

如果报文开头+偏移量=下一个报文的地址,重复这个过程就能确认是否收起所有分片

片偏移,是数据相对与原始IP报文有效载荷的开始偏移量

片偏移具体的数字,必须是8的整数倍,因为片偏移的数字是实际数据 / 8

8 = 2^3,0, 2\^13\*2\^3 = 2\^16

因为前面的三位被分片标志位占用了

分片后,每一片,都是一个IP报文,每一片都要包含IP报头

所以分片时,不包括报头,直接分片有效载荷,然后填充16位标识,3位标识和13位片偏移

一个分片最多填充1480字节有效载荷+20字节报头

相关推荐
MR.欻1 小时前
ZLMediaKit 源码分析(七):HTTP-FLV 低延迟直播流分析
网络·网络协议·http
北京耐用通信2 小时前
耐达讯自动化PROFIBUS光纤模块:工业通信的“光电翻译官”
人工智能·科技·网络协议·自动化·信息与通信
Zzzzmo_2 小时前
【网络原理】TCP/IP协议01
网络·tcp/ip
dxxt_yy2 小时前
鼎讯信通 TY-30H 光纤熔接机:铁路通信施工设备科普
网络
c++之路3 小时前
迭代器模式(Iterator Pattern)
网络协议·rpc·迭代器模式
星恒讯工业路由器3 小时前
4G自组网与VPDN专网技术解析
网络·物联网·信息与通信·4g自组网·vpdn专网
淼淼爱喝水3 小时前
DVWA靶场命令注入漏洞检测实验
网络·安全·靶场·dvwa
KaMeidebaby4 小时前
卡梅德生物技术快报|免疫共沉淀 - Co-IP 实验在转录因子 ATF3/Smad4 蛋白互作研究中的应用实例解析
网络·人工智能·网络协议·tcp/ip·其他·算法·新浪微博
林熙蕾LXL4 小时前
IPC使用套接字进程通讯
网络