ARP协议

MAC地址用于局域网内标识一个帧从哪个接口发出,到达哪个物理相连的其他接口。MAC地址为48bit,用于大部分LANs(局域网,Local area network),固化在网卡的ROM中,有时也可以软件设置。

局域网中的每块网卡都有唯一一个MAC地址,MAC地址有IEEE统一管理和分配,网卡生产商购买MAC地址空间(前24bit)。类比一下,MAC地址像身份证号,IP地址像邮政地址。

问题:在局域网内如何在已知目的接口的IP地址下确定其MAC地址?

采用ARP表,LAN中的每个IP节点(主机,路由器)维护的一张表,存储某些LAN节点的IP/MAC地址映射关系<IP地址;MAC地址;TTL>,TTL(time to live)是经过这个时间后该映射关系会被遗弃,典型值为20min。

ARP协议具体实现:

  1. B的MAC地址不在A的ARP表中,A想给同一局域网内的B发送数据报。
  2. A广播ARP查询分组,其中包含B的IP地址,目的MAC地址=FF-FF-FF-FF-FF-FF,LAN中所有节点都会收到ARP查询
  3. B接收到ARP查询分组,并且IP地址匹配成功,利用单播帧向A应答B的MAC地址。
  4. A在其ARP表中,缓存B的IP-MAC地址对,直到超时。

前面学习的是在同一局域网中的ARP协议,那么在不同局域网中如何运行呢?主机A通过路由器R传输数据到主机B的过程。

  1. 主机A构造IP数据报,源IP地址是A的IP地址,目标IP地址是B的IP地址;构造链路层帧时,其中源MAC地址是A的MAC地址,目的MAC地址是R和A在同一局域网的接口的MAC地址(这里就是通过局域网内部ARP即可获得MAC地址)。
  2. R转发IP数据报,源MAC地址就是R另一个接口的MAC地址,目的MAC地址是B的MAC地址
  3. B即可收到A传来的数据报

以太网

以太网是具有统治地位的有线LAN技术,造价低廉,应用广泛,满足网络速率需求(10Mbps-10Gbps)。

以太网的物理拓扑在上世纪90年代中期采用总线形式,此方式所有节点在同一冲突域。目前主流网络拓扑是星型,中心是交换机
计算机网络(七):局域网
以太网提供的是不可靠,无连接的服务,MAC协议采用的是二进制指数退避算法的CSMA/CD

二进制指数退避算法的CSMA/CD

  1. NIC(Network Interface Card)从网络层接收到数据报,创建数据帧。
  2. 监听信道,若NIC监听到信道空闲,则开始发送帧。若监听到信道繁忙,则一直等到信道空闲发送帧。
  3. NIC发送完整个帧,而没检测到其他节点的数据发送,则NIC确认帧发送成功!
  4. 若NIC检测到其他节点传输数据,则终止发送,并发送堵塞信号。
  5. 终止发送后,NIC进入二进制指数退避:第m次连续冲突后,取n=Min(m,10),NIC从{0,1,2,3,4…2^n-1}中随机选择一个数K,NIC等待K*512比特传输延迟时间,再返回第二步。连续冲突次数越多,平均等待时间越长。

数据帧

计算机网络(七):局域网
前导码(Preamble 8B):7个字节的10101010,第8个字节为10101011,用于发送端与接收端的时钟同步。

目的MAC地址,源MAC地址(各6B)

类型:指示帧中封装的是哪种高层协议的分组(IP数据报,Novell IPX数据报)

数据(46-1500B)

CRC:循环冗余校验码

有许多不同的以太网标准,但是MAC协议和帧格式是相同的,只是根据速率(2Mbps,10Mbps,1Gbps,10Gbps)以及不同物理介质(光纤,线缆)有不同的区别,例如:100BASE-TX,100BASE-SX,100BASE-BX等。

以太网交换机

链路层设备,存储-转发以太网帧,检验到达帧的目的MAC地址,选择向一个或多个输出链路转发帧。利用CSMA/CD访问链路,发送帧。其通过自学习方式进行转发,不需要进行配置。

每个交换机有一个交换表,保存主机的MAC地址,到达主机的接口,时间戳。看下交换机是如何通过自学习方式创建和维护入口信息。

  1. 当交换机收到帧时,即可学习到发送帧的主机(有MAC地址),位于收到该帧的接口所连接的LAN网段,即将发送主机的MAC地址和接口信息记录到交换表中。
  2. 利用目的MAC地址检索交换表,若检索到匹配的入口,若目的主机位于收到帧的网段,则丢弃帧;否则将帧转发到该入口指向的接口
  3. 若未找到匹配的入口,则泛洪,向除收到该帧的接口之外所有接口转发。
  4. 若在一个局域网中有多个交换机,也可以通过同样的方式进行自学习,维护交换表。

交换机与路由器的区别
路由器是网络层设备,交换机是链路层设备

路由器利用路由算法确定转发表,交换机通过自学习,泛洪构建转发表

VLAN(虚拟局域网)

支持VLAN划分的交换机,可以在一个屋里LAN架构上配置,定义多个VLAN。
计算机网络(七):局域网
优点

流量隔离:来自某一VLAN端口的帧,只能到达该VLAN内的端口

动态成员:端口可以动态分配给不同的VLAN

在VLAN间转发需要通过路由,实践中厂家会把交换机和路由器集成在一起。

跨越多交换机的VLAN,采用中继端口。中继端口为VLAN转发802.1帧,需要携带VLAN ID信息,802.1q协议为经过中继端口转发的帧增加和去除额外的首部域。

在type字段前面加了4个字节。前两个字节标记协议ID,后两个字节中的前12bit标记VLAN ID,后3bit是优先级字段。

PPP协议

PPP协议用于点对点数据链路控制,一个发送端,一个接收端,一条链路。无需介质访问控制(MAC),无需MAC寻址。常见的有拨号链路,ISDN链路。另外HDLC(High Level Data Link Control)也用于点对点数据链路控制,不做学习。

需求

组帧:将网络层数据报封装到数据链层帧中

比特透明传输:数据域必须支持承载任何比特模式

差错检测:无纠正

连接活性检测:检测,并向网络层通知链路失效

网络层地址协商:端节点可以学习/配置彼此网络地址

无需差错纠正和回复,无需流量控制,不存在乱序交付,无需支持多点链路。

数据帧

计算机网络(七):局域网
flag:标志,定界符

address,control:无效

protocol:上层协议(PPP-LCP,IP,IPCP等)

info:上层协议分组数据

check:CRC校验

若数据中出现了flag定界符,则在前面添加额外字节填充,可以理解为转义符:01111101,若数据中出现01111101,也在此数据前加上填充01111101

在交往网络层数据之前,PPP数据链路两端必须配置PPP链路,例如最大帧长,身份认证等;学习和配置网络层信息,通过交换IPCP(IP control protocol)协议报文完成IP地址等相关信息配置

802.11无线局域网

802.11有802.11b,802.11a,802.11g(目前流行,使用2.4-2.5GHz频段,最高速率54Mbps),802.11n(未来),均使用CSMA/CA多路访问控制协议,均有基础设施网络模式和特定网网络模式。

access-point:基站

basic service set:基本服务集。

主机必须与某个AP关联

  1. 扫描信道,监听包含AP名称和MAC地址的信标帧
  2. 选择一个AP进行关联,可能需要进行身份认证。

扫描分为被动扫描主动扫描,被动扫描是各AP发送信标帧,主机向选择的AP发送关联请求帧,AP向主机发送关联响应帧。

主动扫描是主机主动广播探测请求帧,AP发送探测响应帧,主机想选择的AP发送关联请求帧,AP向主机发送关联响应帧。

多路访问控制

由于隐藏站,信号衰落的原因,无线信道无法监听到所有可能的冲突,因此无法使用CSMA/CD的方式,采用CSMA/CA(collision avoidance)

发送方:

监听信道空闲了DIFS时间,发送整个帧。监听到信道忙,开始随机退避计时,当信道空闲时,计时器倒计时,当计时器超时时,发送帧。如果没有收到ACK,增加随机退避间隔时间。

接收方:

若正确接收帧,延迟SIFS时间后,向发送端发送ACK。

冲突避免的基本思想是通过发送端预约信道,而不是随机发送数据帧,从而避免长数据帧的冲突。

  1. 发送端首先利用CSMA向BS发送一个很短的RTS(request-to-send)
  2. BS广播一个CTS(clear-to-send)帧作为对RTS的响应。
  3. CTS帧可以被所有节点接收,就可以消除隐藏站的影响,发送端可以发送数据帧,其他结点推迟发送

相关文章: