构建你的网络知识体系 - 数据通信的基础知识

·  阅读 60
构建你的网络知识体系 - 数据通信的基础知识

本节介绍一下两台计算机之间要进行通信,涉及到的基础知识。

1、通信双方交互的基本方式

单工通信:只能有一个方向的通信而没有反方向的交互。无线电广播就属于这种类型。

半双工通信:通信的双方都可以发送信息,但是不能双方同时发送,当然也不能同时接收。

全双工通信:通信的双方可以同时发送和接收信息。

2、计算机之间的通信基础

两台计算机要进行通信,首先要得知对方的IP地址

最终是根据MAC地址(网卡地址),将数据输送到网卡,被网卡接收。
1、如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理。
2、如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层。

3、计算机之间的连接方式

3.1 网线直连

.png

两台相同计算机间可以直接通过网络直连的方式进行通信。需要注意的是,要使用交叉线。

我们常用的网线称为双绞线,根据端口接法的不同分为交叉线和直通线。相同设备之间通信使用交叉线,不同设备之间通信使用直通线。

3.2 同轴电缆

.png

使用同轴电缆连接是一种比较原始的连接方式,结合连接器将各个计算机连接起来。

.png

具有以下特点:

1、半双工通信:A给B发送数据的时候,B不能给A发送。

2、容易冲突:A给B发送的时候,有可能C也在给B发送。

3、不安全:A给B发送的时候,实际上同时也给别的线路发送了数据,只要在线路中间设置拦截,A给B发送的数据就会泄漏。

4、中间线路断了,整个线路都瘫痪

5、没有智商:A给B发送数据,实际上会给网段内的所有计算机都发送数据。

3.3 集线器

.png

使用集线器连接和使用同轴电缆连接的特点差不多,有一点和同轴电缆连接不同的是:某台计算机的连接断了,不会影响到其他的计算机之间的通信

.jpeg

通过两个集线器将多台计算机连接起来:

image.jpeg

现在假设有这么一种情况:如果集线器1和集线器2各自都连接了1000台计算机,因为集线器没有智商,任何两台计算机之间通信都会把消息发送给范围内的2000台计算机,实在是太低效了,有没有别的连接方法呢?

3.4 网桥

.png

网桥上有两个接口,有“智商”,能够通过自学习得到每个接口那侧计算机的的Mac地址,起到隔绝冲突域的作用。

还是使用刚才的例子,现在两个集线器之间加入了一个网桥,网桥左侧的1000台计算机和右侧的1000台计算机的Mac地址都会被网桥记录,左侧计算机相互通信和右侧计算机相互通信再也不会给所有计算机都发送消息了。

.jpeg

这确实起到了优化作用,但是正如你看到的,左侧计算机相互通信或右侧计算机相互通信,依然要把消息发给1000台计算机,本质的问题依然没有解决。

3.5 交换机

image.jpeg

交换机有“智商”,可以学习每一个接口测计算机的Mac地址,相当于接口更多的网桥。支持全双工通信,并且各接口连接的计算机可以直接通信,比集线器更安全。

下图中各个计算机都可以互相通信。使用交换机,可以解决“集线器每次发送消息都会给冲突域内的所有计算机发送消息”的问题:

image.jpeg

但是即便如此,两个计算机在初次通信时,因为不知道对方的Mac地址,需要发送ARP广播给连接范围内的所有计算机,用来确认对方的Mac地址。如果交换机连接了很多台计算机,并且这些计算机同时通信,网络上将充斥着大量的ARP广播,对网络传输造成极大影响,这就是所谓的ARP风暴

3.6 路由器

我们刚才说的“网线直连、同轴电缆、集线器、网桥、交换机”,连接的设备都在同一网段,处在同一广播域,所以发送ARP广播时,整个广播域内的机器都能收到消息,当计算机数量很大时,容易引起ARP风暴。

这时路由器的作用就显示出来了。路由器可以在不同网段间传送数据,并起到隔绝冲突域的作用

我们可以把所有计算机分成几部分,各部分用交换机连接起来,然后把交换机连接到路由器。这样,每一部分的计算机都处在不同的网段,即属于不同的冲突域,如下图所示。

image.png

在冲突域1内发送ARP广播不用担心会传送到冲突域2中,而冲突域1内的计算机想要和冲突域2内的计算机通信时,只需要经过路由器的转发即可。

4、总结

交互机 + 路由器是计算机间通信的最终方案了。我们的家用路由器,其实就内置了交换机。这样,连接家用路由器的所有计算机,可以通过交换机互相通信(💡联想一下上次断网时联机玩CS的场景),也可以通过路由器跨网段访问外面的精彩世界。

分类:
iOS
标签: