网络层-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进行访问即可.

相关推荐
我言秋日胜春朝★10 分钟前
【Linux】冯诺依曼体系、再谈操作系统
linux·运维·服务器
wowocpp42 分钟前
ubuntu 22.04 server 格式化 磁盘 为 ext4 并 自动挂载 LTS
服务器·数据库·ubuntu
wclass-zhengge1 小时前
Netty篇(入门编程)
java·linux·服务器
方方怪1 小时前
与IP网络规划相关的知识点
服务器·网络·tcp/ip
weixin_442643422 小时前
推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
服务器·网络·安全·filelink数据摆渡系统
阑梦清川2 小时前
JavaEE初阶---网络原理(五)---HTTP协议
网络·http·java-ee
Karoku0662 小时前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix
半桶水专家2 小时前
用go实现创建WebSocket服务器
服务器·websocket·golang
布值倒区什么name2 小时前
bug日常记录responded with a status of 413 (Request Entity Too Large)
运维·服务器·bug
FeelTouch Labs3 小时前
Netty实现WebSocket Server是否开启压缩深度分析
网络·websocket·网络协议