当前位置:网站首页>网络层解析——IP协议、地址管理、路由选择
网络层解析——IP协议、地址管理、路由选择
2022-08-02 02:22:00 【Diligent_wu】
IP协议格式解析
画图解析IP协议报头成员:
4位版本号: 4 --- ipv6 6 --- ipv6
4位头部长度:ip报头最小20个字节,最大60个字节,用于数据分用
8位服务类型:3位优先权弃用、1位固定位0、4位服务类型
16位数据报长度:限制IP报头包含头部在内最大不超过64k大小
对tcp报文最大数据不超过64k-40(IP报头20字节,tcp报头20字节)
对udp报文最大数据不超过64k-28(IP报头20字节,udp报头8字节)
16位分片标识:表示当前分片属于哪一个报文,用于分片重组
网络层的数据分片:
在网络层要求一个报文最大不能超过64字节,如果报文超过64字节,则直接丢弃,小于64字节才能进行传输。
而在链路层还有一个报文的长度限制MTU,大小可以设置,以太网默认位1500,如果报文超过MTU就需要在网络层进行数据分片。
将大报文分割成小的分片,然后分别封装包头进行传输。在发送端进行数据分片,在接收端就需要进行分片重组。分片标识就是干这个事情的。
3位标志位:
0表示不用,对应位置1表示对应功能
分片保留位:现在还不想用,但不知道以后用不用
分片禁止位:禁止分片,如果报文长度大于64字节,网络层直接丢弃
分片结束标志位
13位分片偏移:标识当前分片在原始报文中的位置,以8字节为单位。
8位TTL:生命周期,最大数字255。
表示一个报文所能经过的路由器跳数,每经过一个路由器跳数减1,减为0就丢弃数据。
避免路由环路导致数据传输传不出来。
8位协议类型:
表示当前数据所使用的协议类型,用于数据分用上层选择
16位校验和:校验数据一致性
每一层都有自己的传输设备,每一层都应该有自己的数据校验
32位源端-对端IP地址:用于描述通信两端主机
0~40字节网络数据:某些情况下使用,比如路由追踪
地址管理
IP地址的管理:
IP地址:在网络中唯一标识一台主机
IPV4:uint32_t类型的整数
管理:根据网络不同进行分配
IP协议地址组成:
网络号:是一个网络的标识,每个网络中所分配的IP地址都包含对应的网络号
主机号:一个主机在一个网络内部的标识
只要使用不同的网络号并且每个网络中的主机号不用就可以实现IP不同。
网段的划分:
32位地址
A类网段:
高1位固定为0,7位网络号,24位主机号
用于组件超大型网络,127是网络号,2^24个主机(一千六百多万个)
A类范围:0.0.0.0 ~ 127.255.255.255
B类网段:
高2位固定为10,14位网络号,16位主机号
用于组建中型网络,191.256是网络号,2^16个主机(65535个)
B类范围:128.0.0.0 ~ 191.255.255.255
C类网段:
高3位固定为110,21位网络号,8位主机号
用于组件小型网络,223.255.255是网络号,2^8个主机(256个主机)
C类范围:192.0.0.0 ~ 223.255.255.255
D/E类网段
但这种网段划分方式导致的情况就是,大量的公司抢占B类网段IP,导致A类网段IP浪费。
所以在早期的基础上使用了新的方案:CIDR使用子网掩码进行网络划分
子网掩码:
uint32_t 类型的数据,由-连续-的二进制1组成
··必须保证1是连续的
1.用于辨别一个IP地址属于哪一个网络
子网掩码与IP地址相与可以得到网络号
192.168.1.2 & 255.255.255.0 ->192.168.1.0
2.用于确定或限制子网中主机号个数
子网掩码取反得到子网中最大主机号个数
~255.255.255.0 ->0.0.0.255 255个
一个公司中申请了一个C类网络,192.154.53.0 /24,公司有4个部门,现在需要将网络平均划分为4个子网,请问每个子网的网络号,子网掩码和IP范围分别是多少?
C类网络可以有256个主机,平均划分为四个子网,每个子网最多有64个主机号,每个子网的主机号范围位0~64.
子网掩码取反得到最大主机号,同理,用最大主机号取反就可以得到子网掩码:~0.0.0.64 ->255.255.255.0
所以得到的IP地址范围为:
子网1:192.154.53.0 ~ 192.154.53.63;
网络号:192.154.53.0 & 255.255.255.0 ->192.154.53.0
子网2:192.154.53.64 ~ 192.154.53.127;
网络号:192.154.53.64 & 255.255.255.0 ->192.154.53.64
子网3:192.154.53.128 ~ 192.154.53.191;
网络号:192.154.53.128 & 255.255.255.0 ->192.154.53.128
子网4:192.154.53.192 ~ 192.154.53.255;
网络号:192.154.53.192 & 255.255.255.0 ->192.154.53.192
特殊IP地址:
0.0.0.0:被识别为当前主机上任意网卡地址,常使用于服务端绑定地址
255.255.255.255:全网广播地址,常用于DHCP请求
DHCP:动态地址分配协议,谁上网给谁分配地址
路由选择时,数据中没有对方路由的IP,怎么将数据发送出去,只能通过广播发送给所有的路由,让相关的进行识别。
127.0.0.1:每个主机上都有的虚拟回环网卡地址,用于本地网络测试
主机号全为0的IP地址:就是网络号,不会分配给主机
主机号全为1的IP地址:udp局域网广播地址,也不会分配给主机
所以说一个C类网络中有256个IP,但是分配给主机的IP只有254个
这和全网广播地址是不一样的,因为网络号不同,位数不同。
一个网络中能够分配给主机的IP地址的个数是主机号个数-2。
公网与私网:
公网/外网:通常所说的互联网
私网/内网:私自组建的私有网络不与外界直接通信
目的:1.只想进行内部通信 比如军政领域
2.节省公网地址的使用
建立一个私网,可以使私网中的主机使用同一个公网进行上网。
RFC1918文档中规定用于组建私网的地址:
10.*.*.* 172.16.*.* 192.168.*.*
我们的虚拟机ip都处于一个小型的私网中
路由选择
路由器为每一条流经路由器的数据选择一条合适的路径进行转发。
首先,路由器进行路由选择之前会判断目标IP处于哪一个网络
路由表: route命令
每一个路由器都有一张路由表,记录了当前路由器所连的网络。
路由器对途径的数据,取出目标IP地址,与自己路由表中的路由表项进行比对,判断目标地址属于哪一个网络,判断完成之后使用连接这个网络的网卡将数据发送到指定网络
怎么比对?
路由表项中有自己支持的目标网络号、网关、子网掩码、连接网络的网卡信息和defult信息。
取出数据目标IP,与每一个支持子网掩码掩码相与得到目标IP的网络号,再与对应的路由表项中的网络号比对,不是则进行下一次比对,
如果网络号相同就使用对应的网关将数据发送出去;
如果都没有找到与对应IP网络号相同的就对应defult信息进行地址替换(子网IP换成局域网IP)在上层网络进行匹配。
有很多路由表的生成算法。
边栏推荐
- 2022-07-30 mysql8 executes slow SQL-Q17 analysis
- Win Go development kit installation configuration, GoLand configuration
- Redis for distributed applications in Golang
- 【web】Understanding Cookie and Session Mechanism
- 用位运算为你的程序加速
- Nanoprobes免疫测定丨FluoroNanogold试剂免疫染色方案
- Redis Persistence - RDB and AOF
- 线程的不同状态
- BI - SQL 丨 WHILE
- A good book for newcomers to the workplace
猜你喜欢

菜刀webshell特征分析

2022 Henan Youth Training League Game (3)

Fundamentals of Cryptography: X.690 and Corresponding BER CER DER Encodings

From 2023 onwards, these regions will be able to obtain a certificate with a score lower than 45 in the soft examination.

Nanoprobes丨1-mercapto-(triethylene glycol) methyl ether functionalized gold nanoparticles

Analysis of volatile principle

Entry name 'org/apache/commons/codec/language/bm/gen_approx_greeklatin.txt' collided

Talking about the "horizontal, vertical and vertical" development trend of domestic ERP

Hash collisions and consistent hashing

FOFAHUB使用测试
随机推荐
Nanoprobes免疫测定丨FluoroNanogold试剂免疫染色方案
The first time I wrote a programming interview question for Niu Ke: input a string and return the letter with the most occurrences of the string
Good News | AR opens a new model for the textile industry, and ALVA Systems wins another award!
LeetCode 213. Robbery II (2022.08.01)
swift项目,sqlcipher3 -> 4,无法打开旧版数据库有办法解决吗
Rasa 3 x learning series - Rasa - 4873 dispatcher Issues. Utter_message study notes
拼多多借力消博会推动国内农产品品牌升级 看齐国际精品农货
oracle查询扫描全表和走索引
Nanoprobes多组氨酸 (His-) 标签标记:重组蛋白检测方案
EFCore 反向工程
Redis 底层的数据结构
nacos启动报错,已配置数据库,单机启动
¶ Backtop back to the top is not effective
Unable to log in to the Westward Journey
个人博客系统项目测试
How engineers treat open source
Talking about the "horizontal, vertical and vertical" development trend of domestic ERP
Remember a gorm transaction and debug to solve mysql deadlock
Safety (1)
面对职场“毕业”,PM&PMO应该如何从容的应对?如何跳槽能够大幅度升职加薪?