本文主要是介绍简要理解(大局观)计算机之间的通信方式【同一网段】(直接相连,同轴电缆,集线器,网桥,交换机),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 计算机通信的基础
- 计算机之间的连接方式
- 最简单的方式——直接网线连接
- 同轴电缆的方式
- 集线器连接的方式
- 网桥方式
- 交换机方式
计算机通信的基础
计算机之间进行通信,并不是计算机1发送给计算机2接收后就完事了,还需要计算机1发送给计算机2后,计算机2需要恢复确认收到信息才算发送消息成功。
计算机之间通信的基础,需要知道两个要素:
IP地址:通知计算机要往哪儿发送数据;
MAC地址:在网卡中的,用接收网络的数据;
若网卡发现发送的数据是自己的MAC地址,那么就接收该数据包,并传送给上一层继续处理,若不是,则直接丢弃。
网卡如何发现数据是不是自己的MAC地址呢?
是因为发送的数据包包括:自己的IP地址,对方的IP地址,自己的MAC地址,对方的MAC地址等信息,所以可以判断出来。
计算机之间的连接方式
最简单的方式——直接网线连接
通过一条网线,连接到两台计算机的网线口,就可以直接进行通信了。
对于上面的两台计算机,直接用网线连接,并设置好计算机0和计算机1的IP地址。
如何检测两台计算机是否可以通信成功呢?
通过 ping 对方的IP地址
的命令方式,假如有数据包返回回来表示就能够进行通信。
要知道,两个计算机之间同行通过网线连接的网络必须是在同一个网段,才可以通信成功。
至于什么是网段,往后会解释。
来看看ping对方IP地址,发送数据包的过程(大致)
看看计算机1的网络层和数据链路层数据,就是数据包啦。
上诉我们发现ping的时候,直接就可以ping对方的IP地址就行,并不需要MAC地址?事实真如此嘛?
其实第一次ping的时候,就先发送ARP广播,获取对方的吗MAC,然后才执行ICMP协议,剩下三次得到的回复就不需要发ARP广播了,就直接执行ICMP协议。
ARP广播协议:必须在同一个网段才可以发ARP广播包,ARP广播包的目的:就是为了获取对方的MAC地址。
只是获取MAC地址的过程被隐藏,我们观察上面的第二张图也可以发现,其实是有MAC地址的,现在我们观察详细ping对方IP地址时候的过程。
第三个ARP是计算机1回复计算机0:MAC地址就是计算机1。这然计算机0就知道了计算机1的MAC地址啦。
要清楚这里ARP显示三次,并不是发送三次ARP,只是发送一次ARP,这里只是一次ARP的分解动作
至于为什么ARP广播只需要发送一次,下一次不需要发送,是因为ARP有缓存机制,会记住对方的MAC地址,所以你ping的时候,第一次才会发ARP广播,第二次三次四次都不需要了。
同轴电缆的方式
这是一种以前的通信方式,现今已经被淘汰了。
同轴电缆通过一条网线连接了多台计算机,线的两端有电阻,主要用来吸收信号用的,不吸收,可能信号会碰到其他信号反弹回来,造成干扰。对于同轴电缆的计算机来说,一旦一台计算机发送数据,就会发送给连在同轴电缆上的所有计算机,发送到后,询问对方的IP地址是否与自己要发送的目标IP地址相同,相同就接收,不相同就抛弃。
要知道,第一次发送时候,即不知道对方的MAC地址时候,还是需要ARP广播包发送获取对方的MAC地址的。
同轴电缆的特点:
- 半双工通信
就是只能一端发送数据,要么计算机1发送给计算机2,要么计算机2发送给计算机1,不能够,计算机1发送给计算机2时候,计算机2也发送数据。 - 容易冲突
假如计算机1发送给计算机2时候,计算机2也发送给计算机1,就会造成信号冲突。 - 不安全
因为每次发送数据时候,都是全同轴电缆连接的计算机都会收到包,进行判断可不可以接受,这个很不安全 - 假如同轴电缆某一个地方断了,所有的计算机都不可以通信了。
集线器连接的方式
基于上面的同轴电缆某一个地方断了,就不可以通信,又多了一种,就是集线器连接方式
和同轴电缆的区别就是某一个地方断了,不会影响全部计算机不可以通信。
集线器连接的计算机通信也是在同一个网段才可以哦。
假如计算机0要发给计算机2数据的过程:
第一次发送时候,由于不知道对方计算机2的MAC地址,就发送一个ARP广播包给集线器相连的所有计算机,即 0 给 1 和 2发送数据包,询问对方的MAC地址,由于不是发给1 的,所以计算机1会丢弃数据包,而发给计算机2的,计算机2就接收数据包,并响应返回一个数据包,当计算机2响应的数据包返回到集线器时候,也会向集线器相连的所有计算机发送数据包,计算机1发现不是自己的,就丢弃,计算机 0 发现是给自己的就接收。
这样计算机0 就知道计算机2的MAC地址了。此时计算机才开始发送通信的数据包,此时经过集线器又会发送给所有和集线器相连接的计算机,如果不是该计算机接收的就丢弃,是就接收,比如计算机1就丢弃,计算机2就接收,计算机2还要返回响应表示通信数据包接收到了,所以计算机2发送数据包经过集线器,又会发送所有相连接的计算机,计算机1丢弃,计算机2接收。
此时就是真正的通信成功。
一旦第一次发送ARP广播包时候,就会缓存得到对方的MAC地址了,下次再发送给对方时候,就不用ARP广播了,发送ARP广播原因是不知道对方MAC地址才会发送的。
arp -a
可以看到缓存下来的IP地址和MAC地址对应。
总结一下:
集线器就是相当于什么都没有的东西,无论是发送的数据包,还是响应回来的数据包,都会给集线器相连的所有设备都发送数据包。
网桥方式
集线器有很多缺点,当设备很多时候,那就会给很多设备都发送数据包,这样是不可行。
所以也就出现了网桥来连接计算机。
网桥特点:
- 网桥只有两个接口的,并且网桥连接的网络也是同一个网段。
- 网桥可以通过自学习,记录通过该网桥设备的数据里面的MAC地址,因为网桥只有两个端口,即假设一个是左,一个是右,就会记录发送数据的计算机在经过网桥时候它MAC地址,在网桥有个MAC地址表,左边端口记录左边发送的数据MAC地址,于此同时,当响应数据包时候,经过网桥时候,MAC地址表,也会记录该响应包计算机的MAC地址。通过一直的发送数据包,响应数据包,经过网桥时候,一直记录MAC地址,只要MAC地址表有该数据包要发往的MAC地址话,就可以通过网桥发送过去。
- 基于上面的原因可以起到隔绝冲突域的作用。
而网桥MAC地址表记录MAC地址的方式,就是通过ARP广播包发送过去经过网桥时候记录的。左边端口和右边端口记录了两边的MAC地址,从而可以起到隔绝冲突域的作用。
比如上图:网桥隔绝出两个冲突域,一旦网桥有了两边的各个计算机的MAC地址,那么就可以隔绝了。比如当计算机6给计算机8发送数据时候,集线器1会发送所有和它相连接设备当来到网桥,发现网桥中对于计算机8的MAC地址是在左边的端口,那么就会拒绝该数据包通过网桥啦。
交换机方式
由于网桥的端口只有两个,隔绝两个冲突域,但是对于单独的左边和右边两个冲突域来说,也是一样,当发数据时候,会经过集线器发送集线器相连的所有设备。
所以基于上诉原因又多出了一个交换机设备。
交换机特点:
- 端口更多,可以连接多态设备,相当于是网桥和集线器的集合,集结了网桥的功能,也季节了集线器转发数据的功能。每个端口可以记录所有端口哪边的mac地址,也是通过交换机有个mac地址表,里面的表记录了每个端口那边的设备的MAC地址。
- 全双工通信,意思就是计算机1给2发消息同时计算机2也可以给1发
举个例子:
对于上面的交换机相连接:计算机2给计算机3发送的过程.
首先计算机2不知道计算机3的mac地址,就会发送一个ARP广播,经过交换机,交换机就记住了计算机2的MAC地址,并且是对应哪个端口,然后经过交换机发送给计算机1 0 3,计算机1 和 0 丢,而计算机3接收,计算机三返回数据包,经过交换机,于此同时交换机就会记住计算机3的mac地址,由于交换机有记录到计算机2,所以计算机3直接发送给计算机2对应的端口了,然后计算机2接收,不会再发送给其他的端口了。
交换机相连接的都是属于同一网段的。
这篇关于简要理解(大局观)计算机之间的通信方式【同一网段】(直接相连,同轴电缆,集线器,网桥,交换机)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!