技术学习:计算机网络

前言

学习自:【【网络】半小时看懂<计算机网络>】 https://www.bilibili.com/video/BV124411k7uV/?share_source=copy_web&vd_source=dcdc734e318da0cd82bcccb180b12b40

等课程。

速成计网

计网的诞生,就是为了多台计算机通信。

如果我的主机想给另一位朋友的主机发消息,只需要我们两个之间建立连接就可以。

如果有三个人想互发消息,就需要三个顶点三条边建立三个连接。四个人需要6条边,五个人需要10条边……很明显每两个主机之间都建立连接的方法并不合适。服务器就需要和每个客户端都建立连接。

如果有一个中枢负责路由所有的链路,就可以少建立很多连接。

于是第一代中枢:Hub 集线器诞生。

集线器

图源:轻松共享带宽上网 体验多款优秀集线器_TP-LINK TL-HP5MU_网络设备评测-中关村在线

计算机和集线器之间使用简单的双绞线连接。消息发送采用广播机制,比如1要给4发消息,发送的消息里面带有标识(目标主机是4),集线器群发给所有主机,只有计算机4判断这条消息是要发给自己的然后才处理消息,其他计算机都丢弃。

此外双绞线是半双工,比如1和2同时发送消息,两者的消息就混了,别的主机收到的可能就是11221212……这样的消息。

为保证半双工,集线器采用 CSMA/CD 协议,通过载波监听判断是否有其他主机在发送消息,没有的话才允许当前主机发送。

这样效率也比较低,服务器一次只能给一个客户端服务,那几万客户的高并发都得排队到什么时候。

集线器只适用于小规模网络,部署在物理层。

交换机

交换机作为中枢,可以记录每台机器的48 bit 物理地址(MAC)和其连接在交换机上的对应端口。物理地址每台机器都有一个独一无二的地址。

图源:https://blog.csdn.net/ph3_26/article/details/130114865?fromshare=blogdetail&sharetype=blogdetail&sharerId=130114865&sharerefer=PC&sharesource=jtwqwq&sharefrom=from_link

以及,采用网线作为连接方式的交换机支持全双工通信(网线中的8根线至少有4根在工作)。

MAC 和端口映射表是不断更新的。比如第一次发消息,A 想发消息给 B,交换机收到 A 的消息,同时就会记录 A 的 MAC 地址和端口的对应关系。然后交换机发现没有记录 B 的 MAC 地址和端口的对应关系,因此去所有端口挨个轮询直到找到对应 MAC 地址的 B 主机,随后记录 B 主机的 MAC 地址和端口的对应关系。

**交换机位于数据链路层。**数据包含头部和数据部分,头部中包含了源地址和目的地址。

另外两个交换机之间可以桥接。比如1号交换机的5端口桥接了2号交换机的1端口,1号交换机连接了 AB 主机,2号交换机连接了 CD 主机。那么随着时间推移,1号交换机就会记录 CD 主机的 MAC 地址和5端口对应(先发给5端口,然后交给2号交换机再继续路由到具体主机),2号交换机会记录 AB 主机的 MAC 地址和1端口对应。

交换机的缺点在于上限还是不高,顶多几千个端口。此外广播机制容易造成消息洪泛。适用于小规模范围内网络,比如工作家庭校园的局域网。

路由器/网关

如果两个几千设备的网络的交换机桥接,互发消息就需要不停广播,以及可能会顶掉有限的 mac 表中的信息,造成消息洪泛。

所以我们需要一个新的路由设备来路由多个局域网。这个设备就是路由器或者网关。

比如一个路由器路由 AB 两个局域网。A 局域网内部通信就只走内部交换机就行,不需要通过路由器。A 局域网内一个设备和 B 局域网内设备通信才需要走路由器。

之前我们讲过,MAC 地址用于唯一标识物理主机,但是仅靠 MAC 地址查找主机广播效率太低。所以这里引入了一个用于区分网络的标识:IP 地址。

IP 地址前24位用于标识网段(也就是不同的局域网),加上后8位用于标识具体设备。

路由表的建立有很多路由优化算法。

下面是一个例子。家庭地址为192.168.0.0/24,另一个局域网地址是 192.168.1.0/24。路由器的两个端口对应的 IP 地址为 192.168.0.1 和 192.168.1.51。我要从 192.168.0.102 主机发送消息到 192.168.1.52 主机。

**路由器位于网络层。**网络层数据包除了之前提到的,在数据链路层加上的收发 MAC 地址的头部,还有收发 IP 地址的头部。

图源:https://blog.csdn.net/wwy0324/article/details/109310658?fromshare=blogdetail&sharetype=blogdetail&sharerId=109310658&sharerefer=PC&sharesource=jtwqwq&sharefrom=from_link

找到对应设备这个过程是通过 ARP 协议广播查找到该网段内对应 IP 地址的设备的 MAC 地址,然后发送。

也就是说,在上面发送数据包的这个过程中,发送方发到路由器对应网段端口,和路由器端口发送到目标主机的过程,数据包的收发 IP 地址都是 192.168.0.102 到 192.168.1.52. 但是这两个数据包的收发 MAC 地址头部有区别。先是发送主机的 MAC 地址到路由器端口的 MAC 地址,再是路由器两个端口的 MAC 地址(C->D),再是路由器端口的 MAC 地址到目标主机的 MAC 地址(要查找)。

不过上面说的发送接收 IP 地址不变也是相对的,NAT 模式会有公私网 IP 地址切换所以数据包的收发 IP 地址也会变。

Contact Me
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2025 Jingqing3948

星光不问,梦终有回

LinkedIn
公众号