目录
哥几个来学网络通信啦~~
🥝集线器:转发所有端口
集线器是工作在 物理层 的网络设备,发送到集线器的任何数据,都只是简单地将数据复制并转发到其他所有端口。
🍈交换机:MAC地址 转换表 + 转发对应端口
交换机工作在数据链路层,交换机内部会记录并维护一张 MAC地址转换表:
🍕1.MAC地址转换表主要记录 MAC地址 与 端口 之间的映射。
🍔2.主机连接到交换机,及主机发送数据的时候,交换机可以学习并记录该主机 MAC地址 与 端口信息。
🍟3.交换机接收到数据报之后,在 MAC地址转换表中,通过目的MAC查找到对应的端口,则目的主机 为 该端口相连接的主机。只需要将数据报转发到对应端口上即可。
🌭4.以上是使用 MAC地址转换表,通过 目的MAC 能找到对应端口的情况。如果找不到,交换机设置数据报目的MAC为广播地址 FF:FF:FF:FF:FF:FF,发送到其他所有端口,目的主机返回响应后,交换机再记录该主机 MAC 与端口的映射信息。
比如上面的图中多了一个连接主机5的端口,和一个连接主机6的端口,而原始的 MAC地址转换表 并没有记录主机5、6的映射关系,那么如果想要主机1 转发 到 主机6,通过 MAC地址转换表 找不到 主机6,那么就会 设置 目的 MAC 为 广播地址,发送到 主机5、6去,目的主机(主机6)接收到就会返回响应,然后交换机就会再记录 主机6 与 端口 的映射信息。
🌲主机:网络分层从上到下封装
发送数据时,发送主机都要根据网络分层从上往下封装:
由“一跳一跳的网络数据传输”可知,以上:
- 源IP 与 目的IP 标识整个路途的起点和终点。
- 源MAC 与 目的MAC 标识了每一条的起点和终点。
此时,需要根据发送端主机(源主机)与接收端主机(目的主机)是否在同一网段,来设置下一跳设备:
- 源主机和目的主机在同一个网段,下一跳设备就是目的主机。
- 发送端主机和接受端主机在不同网段时,发送端主机是无法知道目的主机在哪,此时会设置下一跳设备为网关设备。
所谓网关,我们这里可以简单理解为,不同网段的网络互连时,需要使用网关设备。
通常的网关设备是路由器,可以划分公网和局域网(内网),同时还可以把局域网划分为多 个子网(不同网段)
以上两种情况,下一跳设备IP地址都可以获取到,但该设备的MAC地址(即目的MAC)可能不知道,就需要使用以下ARP寻址(灰常重要)。
🥦主机&路由器:ARP缓存表 + ARP寻址
首先,ARP是一个介于数据链路层和网络层之间的协议;ARP协议建立了IP地址与MAC地址的映射关系。
在数据链路层,寻找下一跳设备 MAC地址 的过程,称为 ARP寻址:
🍕(1)主机和路由器中都保存了一张 ARP缓存表:通过 IP地址 可以找到对应的 MAC地址。
🍔(2)根据下一跳设备的 IP地址,在 ARP缓存 中能找到对应的 MAC地址,则可以设置目的MAC并发送数据报。
🍟(3)如果找不到,则发送 ARP广播数据报:目的MAC 为广播地址,询问下一跳设备的 MAC地址。
🍏路由器:路由器 + NAPT
路由器有两个主要作用:
🌸(1)网关
路由器作为网关,可以划分为 公网 和 局域网,某些路由器还可以将 局域网 划分为多个子网(不同网段)
- 公网端口 即 WAN口,为单独的 网卡,具有 公网IP地址 和 公网MAC地址。
- 划分的多个子网,是由局域网端口 即 LAN口 划分,每个端口都有单独的网卡,具有该网段 IP地址 和 MAC地址。
了解:家用级路由器不能划分局域网子网,企业级专业路由器才能划分。
路由器作网关:
①划分局域网多个子网时,可以直接通过 ARP 寻址找到局域网任意主机。(这里的局域网就是路由器下的多个子网组成的局域网)。
②划分公网和局域网时,局域网内主机发送数据到公网主机时,需要基于 NAPT 协议,将局域网主机的 IP地址 和 端口号,转换为路由器 公网IP 和 端口号(指路由器中运行的程序的端口)。
局域网IP + 端口 需要转换为 公网IP + 端口,原因是接收端返回的响应数据报,目的IP 和 目的端口 无法使用 局域网IP 和 端口。
🌹(2)路由
所谓路由,即在复杂的网络结构中,找出一条最合适的通往终点的路线。就像你要去一个地方,百度地图会给你规划一条最短路线。
🍧冲突域
主机之间通过网络设备(集线器、交换机)的物理端口、网线相连时,两个主机在同一时刻发送数据报,如果存在冲突,则该网络为一个冲突域(Collision Domain)。
冲突域是基于第一层物理层,又称为碰撞域。
集线器的所有端口为一个冲突域:
交换机可以分割冲突域,分割后,一个端口为一个冲突域:
冲突与的解决:
要解决冲突,就得按照时间顺序来发送多个数据报:同一时刻,网络设备只能接受并转发一个数据报,多余的会丢弃,让发送端重新发送。
🍨广播域
广播域是指某个网络中的主机同时向网络中其他所有主机发送数据(IP、MAC地址 设置为广播地址),这个数据能传播到的范围即为广播域(Broadcast Domain)
广播域基于的二层数据链路层。
所有集线器的端口为一个广播域:
交换机接收到广播数据报,会转发到其他所有端口;而路由器可以隔离广播域:
好啦,这就是本篇的全部内容啦~~