Physical2DataLink : 宿舍组网联机游戏

Physical Layer

很久以前,通过网线水晶头做交叉线并且配置电脑在同一网段实现电脑与电脑的链接,即1-3、2-6交叉接法,因为水晶头的1、2和3、6分别起收发信号的作用,相互交叉之后才能在物理层实现一段发送信号另一端接收信号。

如何实现三台以上的电脑互联呢?答案是用集线器。集线器和交换机不同,他完全工作在物理层,将自己收到的每一个字节都复制到其他端口上去。

DataLink

很明显,集线器采用的是广播的方式,效率堪忧。那么需要解决以下三个问题:

  1. 数据包是谁发的,发给谁的?
  2. 大家都在发送数据,会不会产生混乱?有没有什么发送的规则?
  3. 如果发送出错,怎么解决?

数据链路层也就是MAC层,全称 Medium Access Controll,即媒体访问控制。主要解决第二个问题,学名叫做多路访问。主要解决方法:

  1. 分多个车道,每个车有自己的车道----->信道划分
  2. 单双号限行------>轮流协议
  3. 不管不顾,需要就出门,如果堵车就返回,错过高峰再出来---->随机介入协议(以太网采用此种方式)

解决第一个谁发谁收的问题,则需要用到一个物理地址,叫做链路层地址,由于链路层通常解决媒体介入问题,所以这个地址又叫MAC地址。

数据链路层网络报格式.jpg

目标MAC和源MAC,接下来是类型,大部分是IP数据包。数据包再数据链路层上传播,一步步解析直到到达合适的地方。最后一部分的CRC叫做循环冗余校验,解决包发送出错的问题。

ARP(Address Resolution Protocol):地址解析协议

如果知道了接收方的IP地址,却不知道接收方的MAC地址,就要用到ARP协议。发送广播包,谁的IP地址和目标IP地址相同谁来应答。为了避免每次都用ARP请求,机器本地也会进行ARP缓存。

ARP.jpg
ARP包格式.jpg

交换机

Hub的工作方式会造成资源的浪费和效率低下。因为局域网组网完成之后,每台电脑的IP和MAC基本上不怎么变化,因此如果记住了每个接口对应的电脑的MAC,那么就不需要采用广播的方式分发数据了。交换机是用来解决这个问题的。

交换机通过学习获得每个接口对应的设备的MAC地址。假设MAC1要发送数据给MAC2,当这个包到达交换机的时候,交换机并不知道MAC2接在那个接口上,因此把数据转发给除了来的那个几口外的所有接口。这个过程交换机记住了MAC1对应的接口。久而久之,交换机基本就可以获得所有的映射关系,即转发表。

当然机器的IP地址和连接的接口并非一成不变,因此交换机学习的转发表是有过期时间的,需要隔一段时间重新学习。

小结

  1. MAC层主要解决多路访问的堵车问题。
  2. ARP协议通过广播的方式获取目标MAC地址,并缓存得到的结果。
  3. 交换机具有MAC地址学习能力,转发策略与集线器不同。

你可能感兴趣的:(Physical2DataLink : 宿舍组网联机游戏)