《计算机网络:自顶向下方法》Chapter5(上:以太网):链路层:链路、接入网和局域网

摘要:这一章其实就讲了一件事,就是分组交互网络。前一章讲分组在广域网上的传输,这一章讲分组在局域网内的传输,前一章分组转发的设备是路由器,这一章分组转发的设备是交换机。更确切的说讲以太网的分组交换方式。
关键词:以太网;分组交换网络;ARP;
目录
  1 以太网简介
  2 分组交换网的核心:ARP协议
    2.1 广播分组
    2.2 交换机自学习能力
    2.3 物理地址适用范围

1 以太网简介

以太网到底是个什么,其实就是个高速布置的局域网,而且是有线的,目前有线局域网绝大多数都是以太网,由于我也不知道其他非以太网的有线网是什么样的,所以我不好来给以太网一个定性的描述,以及他为什么叫以太网,这也许涉及到其发展史。

以太网目前主要是交换以太网,也就是局域网内用交换机来存储和转发分组,据说以前还有总线类型的以太网后来又有集线器以太网,直到今日才有了交换机以太网。

既然是交换机以太网,那么其核心设备肯定就是交换机了。路由器用来再广域网内转发分组,而交换机则是用再局域网中转发分组。

前面我们学习了路由器的体系结构及其如何转发分组的,这章则主要讲交换机如何转发分组,但不会涉及到其体系结构。

2 分组交换的核心:交换机

交换机工作原理大致上和路由器原理差不多,路由器中有路由转发表,交换机中也有个转发表,只不过目的地写的不是子网,而是写的物理地址。局域网内任何设备之间的通信都要经过交换机,他就如同一个局域网的枢纽一样,是每个分组的必经之地。我们直到,每个设备除了有ip地址之外,还有物理地址。物理地址是链路层的,而ip地址是网络层的。也就是说交换机根据物理地址进行转发而不管目的地的ip地址是多少。所以每台主机在发送报文出去之前,都必须要直到目的主机ip地址对应的MAC地址是多少,然后将该地址封装到链路层头部信息中,交换机会检查物理地址,将其推送到对应的输出端口。这就是物理地址解析协议ARP

这中间就会有三个问题,

  • 第一,我怎么直到目的主机的MAC地址是多少,他又没告诉我;
  • 第二,同样的道理,交换机又是怎么知道局域网中各个与之相连的设备的地址呢。
  • 第三,如果我要把我的分组发到外网去,是不是得直到外网目的主机的MAC地址。
    为了回答这三个问题,使用三个小节。

2.1广播分组

第一个问题涉及到ARP协议的广播功能,当你不知道目的主机的MAC时,你可以要交换机帮你广播一个APR查询报文,此时将MAC地址写为FF-FF-FF-FF-FF-FF。这个广播的查询报文会发送到子网中的每台主机,主机收到报文后,查看里面的ip是不是自己的,如果是就会回复他。这样就获得了目的主机的MAC地址了。

2.2 交换机自学习能力

既然所有的分组都要通过交换机来转发,那么交换机怎么获得所有设备的MAC地址呢?其实很简单,你一旦发送帧给交换机的时候,你的帧里面就包含了你自己的ip地址和MAC地址,交换机就记录下来了。比如最开始的时候,所有设备都不知道彼此的MAC地址,当第一个设备发送ARP查询时候,交换机得到了第一个设备的MAC地址,然后交换机广播该查询,当目的主机收到之后,回复该查询的时候,他也要发送帧给交换机,这样交换机又知道了第二个设备的MAC地址。只要设备发送帧,他就已经把他的MAC告诉交换机了。

同时交换机会定期维护这个ARP表,避免过期

2.3 物理地址适用范围

广域网内的ip地址用于广域网寻址,局域网内MAC地址用于局域网寻址,所以物理地址只能用来在局域网内寻址,如果你要给外网的设备通信,那么你需要在局域网内把分组发给路由器,所以此时应该写上路由器的MAC地址,路由器检查之后确认是外网的,会将其推向输入端,然后查路由表确定其出口,当最终该分组到达目的设备的局域网路由器上的时候,路由器上的NAT协议将ip地址转变成了局域网ip地址,然后发送到路由器上的网络适配器,开始该分组的在局域网的链路层转发,同样的他首先检查ARP表,然后加上目的主机的MAC地址,交给交换机,然后交换机最后送达给目的主机。

我们第五章和第六章讨论的都是局域网内的技术,第五章是以太网,第六章是无线网络。

Q&A

链路层在很大篇幅上讲述了如何在避免碰撞。而没有讲清楚这些问题是如何产生的。所以,需要先知道一下背景。

  1. 数据在传输中,是使用什么模拟信号传输的?这些信号碰撞之后会发生什么情况?
  2. 在链路中一个节点发送数据和接收数据是共享同一个传输介质吗?如果共享,那么发送数据和接收数据为什么不会干扰?如果不共享,是个节点与另目的节点都有自己的线路,还是这些节点共用一个线路联系目的节点?如果都有自己的线路,那么碰撞点应该实在接收方处发生,接收方是如何知道发生碰撞了的?接收方发现碰撞之后,怎么让发送知道的,然后使得发送方重传这些碰撞的帧?既然在接收方处发生了碰撞,那么为什么不在接收方处设置一个关卡,这个关卡一次只能处理一条线路,轮流的输出不同线路的帧,那么这些帧就不会混在一起产生碰撞了?
  3. 多路访问很常见吗?为什么要着重讲广播?不是广播的情况难道就不会产生碰撞问题吗?
  4. 在一个局域网网络中,一个路由器连接了两个子网,其中一个子网时各个用户,另一个子网接入到光纤到户的网关路由器上,当某用户通过该路由器发送目的ip不属于该子网的报文时,是用户端通过网关判断其是外网,然后直接发送给路由器,而不是发送给子网中的其他用户,还是路由器会通过他的网关判断这是送到外网的?此时路由器由于只有一个出端口,这个通往外网的分组在入端口出会先查路由表,反正都只有一个出口,路由表还有意义吗?如果该分组是通网路由器下的另一个局域网,那么路由表中会包含局域网下路由信息吗,如果该路由器下有多个局域网呢,路由表似乎就不得不将局域网的路由信息写到路由转发表了?当一个分组从出端口出来的时候,会先通过网关判断这是子网的还是外网的,如果是子网的就查ARP表,外网的直接用路由器MAC地址?当这个分组经过最后一个局域网路由器,要送到广域网的时候,他已经没有ARP表可查了,因为后面没有交换机了,都是路由器直接互联了,那么该路由器出口端的网关不就没有作用了吗?对于一个目的ip地址,到底是先查路由表还是先查ARP表?
  5. 子网掩码在报文从源到目的之间传输的过程中,具体起到 了哪些作用?
  6. 连接到交换机上的多条链路的公平性如何?

你可能感兴趣的:(《计算机网络:自顶向下方法》Chapter5(上:以太网):链路层:链路、接入网和局域网)