一、网段划分
为了进行组网,把一个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进行访问即可.