(网络)网络层:IP协议解析、地址管理(IP地址、子网掩码)、路由选择

之前我们学习了传输层的TCP和UDP,今天我们就来看看网络层的IP协议,话不多说,直接开整。



IP协议头

我们说了解一个协议就要先了解这个协议的实现,也就是这个协议的各个字段

下面直接给出IP协议头结构图解。
在这里插入图片描述


IP地址管理

IP地址组成

IP地址在网络中唯一标识一台主机

IPv4是无符号4字节整数(42亿9千多万),虽然不少但是肯定是不够用的。

解决方案:DHCP(动态地址分配)、NAT(网络地址转换)

既然是动态地址分配,IP怎么合理分配才会避免冲突?
答案是按网络进行分配。

给个网络负责指定一批IP地址的分配,每个网络指定的不同,则分配就不会冲突了。

并且路由器会对网络中的数据进行路径选择,必须能够指定某个地址属于哪个网络(地址分配必须有规律,表示这个IP地址属于哪个网络)

IP地址组成:网络号 + 主机号

网络号:IP地址所属网络的标识,一个网络中所分配的IP地址都会包含相同的网络号(也就是我们通常说的网段)
主机号:用于在网络中标识一台主机 – 一个相同的网络中的主机拥有相同的网络号,但主机号不能相同

一个网络中,只要同一网络中主机号分配不重复,每个网络的网络号不同,就能保证整个网络的IP地址分配不会冲突。

并且路由器转发数据时,就能根据对端IP地址,知道这个IP是属于哪个网络,然后进行转发。

网段的划分

早期将网络/IP地址划分为如下五类:
在这里插入图片描述

A类:高1位置0,7位网络号,24位主机号
网络号范围:0~127
IP地址范围:0.0.0.0~127.255.255.255
A类网络有128个,每个网络中可以有256x256x256台主机,通常用于组建大型网络。

B类:高2位置为10,14位网络号,16位主机号
网络号范围:128.0~191.255
IP地址范围:128.0.0.0~127.255.255.255
B类网络有64x256个,每个网络中可以有256x256台主机,通常用于组建中型网络。

C类:高3位置为110,21位网络号,8位主机号
网络号范围:192.0.0~223.255.255
IP地址范围:192.0.0.0~223.255.255.255
B类网络有32x256x256个,每个网络中可以有256台主机,通常用于组建小型网络。

DE类网络比较特殊,在此不做介绍

进行网络分配的时候根据要组建网络的大小直接分配一个A类/B类/C类网络。

我们知道一个A类网络可以有16,777,216IP地址,那么被分配到A类网络的地方能不能把IP地址用完呢?

应该很难保证每个IP地址都用到,那么这样的IP地址分配就有很大的浪费。

因此在此基础上,引入了CIDR方案进行划分网络,使用子网掩码进行网络的划分,使网络的划分更加灵活。

子网掩码的引入

子网掩码是一个uint32_t类型的数据,这个整数必须由连续的二进制1和0组成

比如:255.255.255.0 ==> 11111111 11111111 11111111 00000000

1和0都必须连续

那子网掩码有什么用呢?

1. 子网掩码决定了一个网络中可以有多少个主机号。

子网掩码取反可以得到网络中的最大主机号
以255.255.255.0举例,取反得到0.0.0.255。表示改网络中最多有256个主机号 0~255。

2. 子网掩码与IP地址作&操作可以得到网络号

192.168.10.10 & 255.255.255.0 ==> 192.168.10 (网络号)
说白了就是子网掩码有几位1,网络号就有几位,比之前的ABC类网络划分更加灵活

下面举个栗子:
在这里插入图片描述

特殊IP地址

  1. 0.0.0.0:用于识别本机上的任意网卡地址(通常用于服务端程序的绑定监听地址)
  2. 255.255.255.255:全网广播地址,把数据发送给这个地址,则与自己相连的设备收到数据都会认为是给自己发送的
  3. 127.0.0.1:本地的虚拟回环网卡地址 – 常用与本地的网络回环测试
  4. 主机号全为0的IP地址:是一个网络号,用于表示网络,这个地址不能分配给主机
  5. 主机号全为1的IP地址:是udp局域网广播地址,这个地址不能分配给主机

所以一个网络中能分配的主机号是:最大数 - 2

NAT技术

因为这里要和其他技术进行对比,所以写在另外一篇~
感兴趣请戳:典型协议和技术:DNS + NAT/NAPT + 代理

路由选择

为流经路由器的数据进行路径选择,依托于网络地址管理方式以及每个路由器上的路由表。

在这里插入图片描述

每个路由器会记录路由表,里面有与自己相连的设备信息。

路由选择的过程就是拿目标IP地址与路由表中的子网掩码作&操作得到目的网络号,如果目的网络号在路由表中则直接转发,如果不在,则转发到default指定的网络。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殇&璃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值