addressing, ARP

MAC 地址和ARP

32bitIP地址:

  • 网络层地址
  • 前n-1跳:用于使数据报到达目的IP子网
  • 最后一跳:到达子网中的目标节点

LAN(MAC/物理/以太网)地址:

  • 用于使帧从一个网卡传递到与其物理连接的另一个网卡 (在同一个物理网络中)
  • 48bit MAC地址固化在适配器的ROM,有时也可以通 过软件设定
  • 理论上全球任何2个网卡的MAC地址都不相同
  • e.g.: 1A-2F-BB-76-09-AD

网络地址和mac地址分离

  1. IP地址和MAC地址的作用不同

a) IP地址是分层的

  • 一个子网所有站点网络号一致,路由聚集,减少路由表
  • 需要一个网络中的站点地址网络号一致,如果捆绑 需要定制网卡非常麻烦
  • 希望网络层地址是配置的;IP地址完成网络到网络的 交付

b) mac地址是一个平面的

  • 网卡在生产时不知道被用于哪个网络,因此给网卡一个 唯一的标示,用于区分一个网络内部不同的网卡即可
  • 可以完成一个物理网络内部的节点到节点的数据交付
  1. 分离好处

a) 网卡坏了,ip不变,可以捆绑到另外一个网卡的 mac上

b) 物理网络还可以除IP之外支持其他网络层协议, 链路协议为任意 上层网络协议, 如IPX等

  1. 捆绑的问题

a) 如果仅仅使用IP地址,不用mac地址,那么它仅支 持IP协议

b) 每次上电都要重新写入网卡 IP地址;

c) 另外一个选择就是不使用任何地址;不用MAC地 址,则每到来一个帧都要上传到IP层次,由它判 断是不是需要接受,干扰一次

局域网上每个适配器都有一个唯一的LAN地址

img

MAC地址由IEEE管理和分配

制造商购入MAC地址空间(保证唯一性)

类比:

  • (a)MAC地址:社会安全号
  • (b)IP地址:通讯地址

MAC平面地址 ➜ 支持移动

  • 可以将网卡到接到其它网络

IP地址有层次-不能移动

  • 依赖于节点连接的IP子网,与子网的网络号相同( 有与其相连的子网相同的网络前缀)

ARP: Address Resolution Protocol

问题:已知B的IP地址,如何确定B的 ?

答: 就是通过ARP协议 完成ip地址到mac地址的转换

img

在LAN上的每个IP节 点都有一个ARP表

ARP表:包括一些 LAN节点IP/MAC地 址的映射

< IP address; MAC address; TTL>

  • TTL时间是指地址映射失效 的时间
  • 典型是20min

ARP协议:在同一个LAN (网络)

  1. A要发送帧给B(B的IP地址 已知), 但B的MAC地址不 在A的ARP表中
  2. A广播包含B的IP地址的 ARP查询包
  • Dest MAC address = FF-FF-FF-FF-FF-FF
  • LAN上的所有节点都会收到 该查询包
  1. B接收到ARP包,回复A自 己的MAC地址
  • 帧发送给A
  • 用A的MAC地址(单播)
  1. A在自己的ARP表中,缓存 IP-to-MAC地址映射关系 ,直到信息超时

ARP是即插即用的

  • 节点自己创建ARP的表项
  • 无需网络管理员的干预

编址:路由到其他LAN

Walkthrough :发送数据报:由A通过R到B, 假设A知道B的IP地址

  1. 在R上有两个ARP表,分别对应两个LAN
  2. 在源主机的路由表中,发现到目标主机的下一跳时111.111.111.110
  3. 在源主机的ARP表中,发现其MAC地址是E6-E9-00-17-BB-4B, etc

img

蓝色为帧,绿色为帧的数据

  1. A创建数据报,源IP地址:A;目标IP地址:B

  2. A创建一个链路层的帧,目标MAC地址是R,该帧包含A 到B的IP数据报

  3. 帧从A发送到R

  4. 帧被R接收到,从中提取出IP分组,交给上层IP协议实 体

  5. IP dest: 222.222.222.222, R转发数据报,数据报源IP地址为A,目标IP地址为B

  6. R创建一个链路层的帧,目标MAC地址为B,帧中包含 A 到B的IP 数据报

img

Ethernet

以太网

以太网网卡模型:

img

  • 目前最主流的LAN技术:98%占有率
  • 廉价:30元RMB 100Mbps!
  • 最早广泛应用的LAN技术
  • 比令牌网和ATM网络简单、廉价
  • 带宽不断提升:10M, 100M, 1G, 10G

以太网:物理拓扑

总线:在上个世纪90年代中期很流行

  • 所有节点在一个碰撞域内,一次只允许一个节点发送
  • 可靠性差,如果介质破损,截面形成信号的反射,发送节点误认为 是冲突,总是冲突

星型:目前最主流

  • 连接选择: hub 或者 switch
  • 现在一般是交换机在中心
  • 每个节点以及相连的交换机端口使用(独立的)以太网协议(不会 和其他节点的发送产生碰撞)

img

以太帧结构

发送方适配器在以太网帧中封装IP数据报, 或其他网络层协议数据单元

img

前导码:

  • 7B 10101010 + 1B 10101011

  • 用来同步接收方和发送方的时钟速率

    • 使得接收方将自己的时钟调到发送端的时钟
    • 从而可以按照发送端的时钟来接收所发送的帧

地址:6字节源MAC地址,目标MAC地址

  • 如:帧目标地址=本站MAC地址,或是广播地址, 接收,递交帧中的数据到网络层
  • 否则,适配器忽略该帧

类型:指出高层协(大多情况下是IP,但也支 持其它网络层协议Novell IPX和AppleTalk)

CRC:在接收方校验

  • 如果没有通过校验,丢弃错误帧

以太网:无连接、不可靠的服务

无连接:帧传输前,发送方和接收方之间****没有握手

不可靠:接收方适配器不发送ACKs或NAKs给发送 方

  • 递交给网络层的数据报流可能有gap
  • 如上层使用像传输层TCP协议这样的rdt,gap会被补上(源主机,TCP实体)
  • 否则,应用层就会看到gap

以太网的MAC协议:采用二进制退避的CSMA/CD介质访问控制形式

很多不同的以太网标准

  • 相同的MAC协议(介质访问控制)和帧结构
  • 不同的速率:2 Mbps、10 Mbps 、100 Mbps 、 1Gbps 、 10G bps
  • 不同的物理层标准
  • 不同的物理层媒介:光纤,同轴电缆和双绞线

img

以太网使用CSMA/CD

  • 没有时隙
  • NIC如果侦听到其它NIC在 发送就不发送:载波侦听 carrier sense
  • 发送时,适配器当侦听到其 它适配器在发送就放弃对当 前帧的发送,冲突检测 collision detection
  • 冲突后尝试重传,重传 前适配器等待一个随机 时间,随机访问random access

以太网CSMA/CD算法

  1. 适配器获取数据报,创建帧
  2. 发送前:侦听信道CS
    • 1)闲:开始传送帧
    • 2)忙:一直等到闲再发送
  1. 发送过程中,冲突检测CD
    • 1)没有冲突:成功
    • 2)检测到冲突:放弃,之后尝 试重发
  1. 发送方适配器检测到冲突, 除放弃外,还发送一个Jam 信号,所有听到冲突的适配 器也是如此 强化冲突:让所有站点都知 道冲突
  2. 5.如果放弃,适配器进入指数 退避状态 在第m次失败后,适配器随 机选择一个{0,1,2, , 2^m-1}中K,等待K*512位时 ,然后转到步骤2

exponential backoff 二进制指数退避算法

指数退避 目标:适配器试图适应当前 负载,在一个变化的碰撞窗 口中随机选择时间点尝试重 发

  • 高负载:重传窗口时间大, 减少冲突,但等待时间长
  • 低负载:使得各站点等待时 间少,但冲突概率大

CSMA/CD的效率

img

10BaseT and 100BaseT

img

  • 100 Mbps 速率 也被称之为 “fast ethernet”
  • T代表双绞线
  • 节点连接到HUB上: “star topology”物理上星型
  • 逻辑上总线型,盒中总线
  • 节点和HUB间的最大距离是100 m

Hubs 本质上是物理层的中继器:

  • 从一个端口收,转发到所有其他端口
  • 速率一致
  • 没有帧的缓存
  • 在hub端口上没有CSMA/CD机制:适配器检测冲突
  • 提供网络管理功能

千兆以太网

  • 采用标准的以太帧格式
  • 允许点对点链路和共享广播信道
  • 物理编码:8b10b编码
  • 在共享模式,继续使用CSMA/CD MAC技术 ,节点间需要较短距离以提高利用率
  • 交换模式:全双工千兆可用于点对点链路
  • 站点使用专用信道,基本不会冲突,效率高
  • 除非发往同一个目标站点
  • 10 Gbps now !

802.11 Wireless LAN (WLAN)

img

  • 所有的802.11标准都是用CSMA/CA进行多路访问
  • 所有的802.11标准都有基站模式和自组织网络模式

802.11 LAN 体系结构

img

无线主机与基站通信

  • 基站base station = 接入 点access point (AP)

基础设施模式下的基本服务 集Basic Service Set (BSS) (aka“cell”) 包括以下 构件:

  • 无线主机
  • 接入点(AP): 基站
  • 自组织模式下:只有无 线主机

802.11: 信道与关联

802.11b: 2.4GHz-2.485GHz 频谱被分为11个相互不 同的但是部分重叠的频段

  • AP管理员为AP选择一个频率
  • 可能的干扰: 邻居AP可能选择同样一个信道

主机: 必须在通信之前和AP建立associate

  • 扫描所有的信道,侦听包含AP SSID和MAC地址的信标帧
  • 被动扫描
  • 选择希望关联的AP
  • 可能需要执行鉴别(认证)[Chapter 8]
  • 将会执行DHCP获得IP地址和AP所在的子网前缀

帧:地址

img

img

img

switches

Hub:集线器

  • 网段(LAN segments) :可以允许一个站点发送的网络范围

    • 在一个碰撞域,同时只允许一个站点在发送
    • 如果有2个节点同时发送,则会碰撞
    • 通常拥有相同的前缀,比IP子网更详细的前缀
  • 所有以hub连到一起的站点处在一个网段,处在一个碰撞域

    • 骨干hub将所有网段连到了一起
  • 通过hub可扩展节点之间的最大距离

  • 通过HUB,不能将10BaseT和100BaseT的网络连接到一起

img

交换机

链路层设备:扮演主动角色(端口执行以太网协议)

  • 对帧进行存储和转发
  • 对于到来的帧,检查帧头,根据目标MAC地址进行选择性 转发
  • 当帧需要向某个(些)网段进行转发,需要使用 CSMA/CD进行接入控制
  • 通常一个交换机端口一个独立网段

透明:主机对交换机的存在可以不关心

  • 通过交换机相联的各节点好像这些站点是直接相联的一样
  • 有MAC地址;无IP地址

即插即用,自学习:

  • 交换机无需配置

img

主机有一个专用和直接到交换 机的连接

交换机缓存到来的帧

对每个帧进入的链路使用以太 网协议,没有碰撞;全双工

  • 每条链路都是一个独立的 碰撞域
  • MAC协议在其中的作用弱 化了

交换:A-to-A’ 和 B-to-B’ 可 以同时传输,没有碰撞

交换机如何知道通过接口1 到达A,通过接口5到达 B’?

答: 自学习

交换机通过学习得到哪些 主机(mac地址)可以通 过哪些端口到达

  • 当接收到帧,交换机 学习到发送站点所在 的端口(网段)
  • 记录发送方MAC地址/ 进入端口映射关系, 在交换表中

交换机:过滤/转发

  1. 记录进入链路,发送主机的MAC地址
  2. 使用目标MAC地址对交换表进行索引
  3. img

转发的例子

img

帧的目标: A’, 不知道 其位置在哪:泛洪

知道目标A对应的链路 : A’ 4 60 选择性发送到那个端 口

img

交换机可被级联到一起

交换机 vs. 路由器

  1. 都是存储转发设备,但层 次不同
  • 交换机:链路层设备(检查 链路层头部)
  • 路由器:网络层设备(检查 网络层的头部)
  1. 都有转发表:
  • 交换机:维护交换表,按照 MAC地址转发

img

  1. 路由器维护路由表,执行路由算法

VLANS : 动机

BC:

CS用户搬到EE大楼办公室 ,但是希望连接到CS的交 换机?

接到多个交换机上 : 麻烦和浪费:96端口 /10个有用

如果都接到一个交换机上 ,在一个广播域

1、所有的层2广播流量 (ARP, DHCP,不知道 MAC地址对应端口的帧 )都必须穿过整个LAN

2、安全性/私密性的问题

Virtual Local Area Network : 带有VLAN功能的交换 机(们)可以被配置 成:一个物理LAN基础 设施,虚拟成多个 LANs

基于端口的VLAN: 交换机端口成组 ( 通过交换机管理软件),以至于 单个的交换机可以分成若干虚拟 LANs [ 物理上一个交换机 虚拟成多个局域网 ]

img

基于端口的VLAN

img

  1. 流量隔离: 从/到1-8端口 的流量只会涉及到1-8
  • 也可以基于MAC地址进行VLAN定义
  1. 动态成员: 成员可以在 VLANs之间动态分配 router

  2. 在VLANs间转发:通过路由器进行 转发 (就像他们通过各自的交换 机相联一样)

  • 实际操作中,设备生产商可以提供: 交换机和路由器的单一设备

VLANs 互联多个交换机

img

  • 如果有多个交换机,希望它们相连并且共享VLANs信息

  • 方法1:各交换机每个VLAN一个端口和另外交换机相应 VLAN端口相连->扩展性问题

  • trunk port干线端口: 多个交换机共享定义的VLAN,在它 们之间传输帧

    • 帧在不同交换机上的一个VLAN上转发,不能够再使用vanilla 802.1帧 (必须要携带VLAN ID信息)
    • 802.1q协议增加/移除附加的头部字段,用于在trunk端口上进行 帧的转发

802.1Q VLAN 帧格式

img