LANs
addressing, ARP
MAC 地址和ARP
32bitIP地址:
- 网络层地址
- 前n-1跳:用于使数据报到达目的IP子网
- 最后一跳:到达子网中的目标节点
LAN(MAC/物理/以太网)地址:
- 用于使帧从一个网卡传递到与其物理连接的另一个网卡 (在同一个物理网络中)
- 48bit MAC地址固化在适配器的ROM,有时也可以通 过软件设定
- 理论上全球任何2个网卡的MAC地址都不相同
- e.g.: 1A-2F-BB-76-09-AD
网络地址和mac地址分离
- IP地址和MAC地址的作用不同
a) IP地址是分层的
- 一个子网所有站点网络号一致,路由聚集,减少路由表
- 需要一个网络中的站点地址网络号一致,如果捆绑 需要定制网卡非常麻烦
- 希望网络层地址是配置的;IP地址完成网络到网络的 交付
b) mac地址是一个平面的
- 网卡在生产时不知道被用于哪个网络,因此给网卡一个 唯一的标示,用于区分一个网络内部不同的网卡即可
- 可以完成一个物理网络内部的节点到节点的数据交付
- 分离好处
a) 网卡坏了,ip不变,可以捆绑到另外一个网卡的 mac上
b) 物理网络还可以除IP之外支持其他网络层协议, 链路协议为任意 上层网络协议, 如IPX等
- 捆绑的问题
a) 如果仅仅使用IP地址,不用mac地址,那么它仅支 持IP协议
b) 每次上电都要重新写入网卡 IP地址;
c) 另外一个选择就是不使用任何地址;不用MAC地 址,则每到来一个帧都要上传到IP层次,由它判 断是不是需要接受,干扰一次
局域网上每个适配器都有一个唯一的LAN地址
MAC地址由IEEE管理和分配
制造商购入MAC地址空间(保证唯一性)
类比:
- (a)MAC地址:社会安全号
- (b)IP地址:通讯地址
MAC平面地址 ➜ 支持移动
- 可以将网卡到接到其它网络
IP地址有层次-不能移动
- 依赖于节点连接的IP子网,与子网的网络号相同( 有与其相连的子网相同的网络前缀)
ARP: Address Resolution Protocol
问题:已知B的IP地址,如何确定B的 ?
答: 就是通过ARP协议 完成ip地址到mac地址的转换
在LAN上的每个IP节 点都有一个ARP表
ARP表:包括一些 LAN节点IP/MAC地 址的映射
< IP address; MAC address; TTL>
- TTL时间是指地址映射失效 的时间
- 典型是20min
ARP协议:在同一个LAN (网络)
- A要发送帧给B(B的IP地址 已知), 但B的MAC地址不 在A的ARP表中
- A广播包含B的IP地址的 ARP查询包
- Dest MAC address = FF-FF-FF-FF-FF-FF
- LAN上的所有节点都会收到 该查询包
- B接收到ARP包,回复A自 己的MAC地址
- 帧发送给A
- 用A的MAC地址(单播)
- A在自己的ARP表中,缓存 IP-to-MAC地址映射关系 ,直到信息超时
ARP是即插即用的
- 节点自己创建ARP的表项
- 无需网络管理员的干预
编址:路由到其他LAN
Walkthrough :发送数据报:由A通过R到B, 假设A知道B的IP地址
- 在R上有两个ARP表,分别对应两个LAN
- 在源主机的路由表中,发现到目标主机的下一跳时111.111.111.110
- 在源主机的ARP表中,发现其MAC地址是E6-E9-00-17-BB-4B, etc
蓝色为帧,绿色为帧的数据
A创建数据报,源IP地址:A;目标IP地址:B
A创建一个链路层的帧,目标MAC地址是R,该帧包含A 到B的IP数据报
帧从A发送到R
帧被R接收到,从中提取出IP分组,交给上层IP协议实 体
IP dest: 222.222.222.222, R转发数据报,数据报源IP地址为A,目标IP地址为B
R创建一个链路层的帧,目标MAC地址为B,帧中包含 A 到B的IP 数据报
Ethernet
以太网
以太网网卡模型:
- 目前最主流的LAN技术:98%占有率
- 廉价:30元RMB 100Mbps!
- 最早广泛应用的LAN技术
- 比令牌网和ATM网络简单、廉价
- 带宽不断提升:10M, 100M, 1G, 10G
以太网:物理拓扑
总线:在上个世纪90年代中期很流行
- 所有节点在一个碰撞域内,一次只允许一个节点发送
- 可靠性差,如果介质破损,截面形成信号的反射,发送节点误认为 是冲突,总是冲突
星型:目前最主流
- 连接选择: hub 或者 switch
- 现在一般是交换机在中心
- 每个节点以及相连的交换机端口使用(独立的)以太网协议(不会 和其他节点的发送产生碰撞)
以太帧结构
发送方适配器在以太网帧中封装IP数据报, 或其他网络层协议数据单元
前导码:
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
- 不同的物理层标准
- 不同的物理层媒介:光纤,同轴电缆和双绞线
以太网使用CSMA/CD
- 没有时隙
- NIC如果侦听到其它NIC在 发送就不发送:载波侦听 carrier sense
- 发送时,适配器当侦听到其 它适配器在发送就放弃对当 前帧的发送,冲突检测 collision detection
- 冲突后尝试重传,重传 前适配器等待一个随机 时间,随机访问random access
以太网CSMA/CD算法
- 适配器获取数据报,创建帧
- 发送前:侦听信道CS
- 1)闲:开始传送帧
- 2)忙:一直等到闲再发送
- 发送过程中,冲突检测CD
- 1)没有冲突:成功
- 2)检测到冲突:放弃,之后尝 试重发
- 发送方适配器检测到冲突, 除放弃外,还发送一个Jam 信号,所有听到冲突的适配 器也是如此 强化冲突:让所有站点都知 道冲突
- 5.如果放弃,适配器进入指数 退避状态 在第m次失败后,适配器随 机选择一个{0,1,2, , 2^m-1}中K,等待K*512位时 ,然后转到步骤2
exponential backoff 二进制指数退避算法
指数退避 目标:适配器试图适应当前 负载,在一个变化的碰撞窗 口中随机选择时间点尝试重 发
- 高负载:重传窗口时间大, 减少冲突,但等待时间长
- 低负载:使得各站点等待时 间少,但冲突概率大
CSMA/CD的效率
10BaseT and 100BaseT
- 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)
- 所有的802.11标准都是用CSMA/CA进行多路访问
- 所有的802.11标准都有基站模式和自组织网络模式
802.11 LAN 体系结构
无线主机与基站通信
- 基站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所在的子网前缀
帧:地址
switches
Hub:集线器
网段(LAN segments) :可以允许一个站点发送的网络范围
- 在一个碰撞域,同时只允许一个站点在发送
- 如果有2个节点同时发送,则会碰撞
- 通常拥有相同的前缀,比IP子网更详细的前缀
所有以hub连到一起的站点处在一个网段,处在一个碰撞域
- 骨干hub将所有网段连到了一起
通过hub可扩展节点之间的最大距离
通过HUB,不能将10BaseT和100BaseT的网络连接到一起
交换机
链路层设备:扮演主动角色(端口执行以太网协议)
- 对帧进行存储和转发
- 对于到来的帧,检查帧头,根据目标MAC地址进行选择性 转发
- 当帧需要向某个(些)网段进行转发,需要使用 CSMA/CD进行接入控制
- 通常一个交换机端口一个独立网段
透明:主机对交换机的存在可以不关心
- 通过交换机相联的各节点好像这些站点是直接相联的一样
- 有MAC地址;无IP地址
即插即用,自学习:
- 交换机无需配置
主机有一个专用和直接到交换 机的连接
交换机缓存到来的帧
对每个帧进入的链路使用以太 网协议,没有碰撞;全双工
- 每条链路都是一个独立的 碰撞域
- MAC协议在其中的作用弱 化了
交换:A-to-A’ 和 B-to-B’ 可 以同时传输,没有碰撞
交换机如何知道通过接口1 到达A,通过接口5到达 B’?
答: 自学习
交换机通过学习得到哪些 主机(mac地址)可以通 过哪些端口到达
- 当接收到帧,交换机 学习到发送站点所在 的端口(网段)
- 记录发送方MAC地址/ 进入端口映射关系, 在交换表中
交换机:过滤/转发
- 记录进入链路,发送主机的MAC地址
- 使用目标MAC地址对交换表进行索引
转发的例子
帧的目标: A’, 不知道 其位置在哪:泛洪
知道目标A对应的链路 : A’ 4 60 选择性发送到那个端 口
交换机可被级联到一起
交换机 vs. 路由器
- 都是存储转发设备,但层 次不同
- 交换机:链路层设备(检查 链路层头部)
- 路由器:网络层设备(检查 网络层的头部)
- 都有转发表:
- 交换机:维护交换表,按照 MAC地址转发
- 路由器维护路由表,执行路由算法
VLANS : 动机
BC:
CS用户搬到EE大楼办公室 ,但是希望连接到CS的交 换机?
接到多个交换机上 : 麻烦和浪费:96端口 /10个有用
如果都接到一个交换机上 ,在一个广播域
1、所有的层2广播流量 (ARP, DHCP,不知道 MAC地址对应端口的帧 )都必须穿过整个LAN
2、安全性/私密性的问题
Virtual Local Area Network : 带有VLAN功能的交换 机(们)可以被配置 成:一个物理LAN基础 设施,虚拟成多个 LANs
基于端口的VLAN: 交换机端口成组 ( 通过交换机管理软件),以至于 单个的交换机可以分成若干虚拟 LANs [ 物理上一个交换机 虚拟成多个局域网 ]
基于端口的VLAN
- 流量隔离: 从/到1-8端口 的流量只会涉及到1-8
- 也可以基于MAC地址进行VLAN定义
动态成员: 成员可以在 VLANs之间动态分配 router
在VLANs间转发:通过路由器进行 转发 (就像他们通过各自的交换 机相联一样)
- 实际操作中,设备生产商可以提供: 交换机和路由器的单一设备
VLANs 互联多个交换机
如果有多个交换机,希望它们相连并且共享VLANs信息
方法1:各交换机每个VLAN一个端口和另外交换机相应 VLAN端口相连->扩展性问题
trunk port干线端口: 多个交换机共享定义的VLAN,在它 们之间传输帧
- 帧在不同交换机上的一个VLAN上转发,不能够再使用vanilla 802.1帧 (必须要携带VLAN ID信息)
- 802.1q协议增加/移除附加的头部字段,用于在trunk端口上进行 帧的转发