网络层-IP协议 二

一、网段划分

为了进行组网,把一个IP地址,分成了两个部分: 网络号 + 主机号

例如:192.168.2.100

这个IP地址中,前面一部分 : 192.168.2就是我们的网络号

后面一部分 100就是我们的主机号.

家用宽带来说,一般默认就是前面三个字节是网络号,主机号的范围就表示局域网中可以有多少设备.

一个字节就表示256(不考虑一些特殊的IP)

如果一个局域网中,网路号和主机号都相同,是无法上网的.

如果这个局域网中的设备,网络号和路由器的网络号不相同,也是无法上网的.

(这个主机不能通过路由器访问外网,也不能访问局域网中的其他设备)

两个相邻的局域网,网络号不能相同(一个路由器连接的两个网络,就是 " 相邻 " 的)

上述谈到的 网段划分 指的是当前的实际情况

在二三十年前,当年的网段划分方式不太一样:

一些特殊的IP地址

127.0.0.1 环回IP(loopback),表示自己本机

12.* 都是环回IP

如果某个IP的主机号全部为0,表示 " 这个网段 ",这个IP比较特殊,不能分配给某个主机.

如果某个IP的主机号全为1,表示 " 广播地址 ".

广播:一对多 这样的传输.

单播:一对一

组播:一对多(多是有限制的,整体的一部分)

广播:一对多(整体的所有)

在广播地址上发消息,局域网中的所有设备都能收到(必须要发UDP数据报,TPC不支持广播)

广播的典型场景:手机投屏/电脑投屏

IP协议 地址管理

路由选择:规划出一条路线

网络结构太复杂了,每个路由器都无法掌握全局的信息,只能掌握一部分局部信息,此时路由器规划出来的路线,只能是一个 " 较优解 "

比如在以前没有地图软件的时候,想要从一个地方到另一个地方,又不认识路,只能走一段路问一下别人,这样慢慢的就能到达目的地.

路由器转发数据包的过程就是类似的过程.

数据报中包含了 " 目的IP "字段,就是要问路的目标,每个路由器都对于网络环境(和他相邻的设备)有一定的了解,此时就可以根据他的了解告诉我们下一步因该走哪个方向.

路由器内部有一个数据结构->路由表

路由表 目的IP的网段 对应的网络接口(从路由器的哪个口出)

二、数据链路层

以太网(横跨数据链路层和物理层)

| |

------------------------------硬件

数据帧格式

MAC地址

数据链路层,引入了另外一套地址体系,称为 " mac地址"/物理地址

mac地址和IP地址是独立的两套地址体系.

IP地址 侧重于全局的转发,从起点到终点,这整个转发的过程,通过IP地址负责完成,(查询路由表,通过IP地址)

MAC地址,侧重于局部的转发,两个相邻设备之间的转发(一个电脑连上一个路由器,这俩就是相邻设备)

举个例子:

我在A,要去F,假设两地相距很远,没法直接到达,就要规划路线:

A-B-C-D-E-F

A-C-D-G-F

A-J-M-T-F

......

上面这就是网络层的路由选择的过程

源MAC/目的MAC,每经过一个路由器/交换机 都会发生变化

源IP/目的IP,如果不考虑NAT,就始终是不变的(公网对公网)

类型:

标识了载荷数据的含义.

IP数据报:

此时意味着以太网数据帧是一个能够携带业务数据的报文(大概率是业务数据,也可能是携带一个SYN这种)

ARP和RARP:

可以认为是两个横跨了网络层和数据链路层的协议.

ARP效果就是能够让路由器/交换机建立一个内部的结构.

IP -> mac(类似于 hash 表)

前面通过路由表,拿着IP协议查询走哪个网络接口->通常指的是 路由器的LAN/WAN

还需要当前网络环境.来获取到这里的对应要转发给的MAC地址.

需要知道通向的设备具体的MAC地址是什么.

域名解析系统

使用IP地址来描述网络设备的位置, 域名 一串可读性更好的单词. 把域名自动的转化成对应的IP地址.

上古时期,引入了一个host文件,这里的内容就是行文本,包含很多行,每一行都有IP和域名.每次访问某个域名就会进行查询,获取到对应的IP.

随着互联网的发展,域名和服务器都越来越多了,此时维护hosts文件,非常麻烦了.

就有人搭建了一组服务器,来提供域名解析服务,(hosts内容放到服务器里了)

你某个主机想要访问某个域名,就先查询一下 域名解析服务器(DNS服务器)查到的结果,就是域名对应得IP,拿着IP进行访问即可.

相关推荐
正在走向自律几秒前
阿里云ESC服务器一次性全部迁移到另一个ESC
服务器·阿里云·云计算
gywl26 分钟前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
WTT00111 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
了一li2 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
杨德杰2 小时前
QT网络(一):主机信息查询
网络·qt
日记跟新中2 小时前
Ubuntu20.04 修改root密码
linux·运维·服务器
唐小旭2 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
明 庭2 小时前
Ubuntu下通过Docker部署NGINX服务器
服务器·ubuntu·docker
BUG 4042 小时前
Linux——Shell
linux·运维·服务器