LANs
MAC地址和ARP
- 32bit IP地址
- 网络层地址
- 用于使数据到达目标IP子网:前n - 1跳
- 从而到达子网中的目标节点:最后一跳
- LAN(MAC/物理/以太网)地址:
- 用于使帧从一个网卡传递到与其物理连接的另一个网卡(在同一个物理网络中)
- 48bit MAC地址固化在适配器的ROM,有时也可以通过软件设定
- 理论上全球任何2个网卡的MAC地址都不相同
- e.g:1A-2F-BB-76-09-AD
网络地址和mac地址分离
IP地址和MAC地址的作用不同
- IP地址是分层的
- 一个子网所有站点网络号一致,路由聚集,减少路由表
- 需要一个网络中的站点网络号一致,如果捆绑需要定制网卡非常麻烦
- 希望网络层地址是配置的:IP地址完成网络到网络的交付
- 一个子网所有站点网络号一致,路由聚集,减少路由表
- mac地址是一个平面的
- 网卡在生产时不知道被用于哪个网络,因此给网卡一个唯一的标示,用于区分一个网络内部不同的网卡即可
- 可以完成一个物理网络内部的节点到节点的数据交付
分离好处
- 网卡坏了,ip不变,可以捆绑到另外一个网卡的mac上
- 物理网络还可以除IP之外支持其他网络层协议,链路协议为上层网络协议,如IPX等
捆绑的问题
- 如果仅仅使用IP地址,不是mac地址,那么它仅支持IP协议
- 每次上电都要重新写入网卡IP地址
- 另外一个选择就是不使用任何地址:不用MAC地址,则每到来一个帧都要上传到IP层次,由它判断是不是需要接受,干扰一次
LAN地址和ARP
-
局域网上每个适配器都有一个唯一的LAN地址
-
MAC地址由IEEE管理和分配
-
制造商购入MAC地址空间(保证唯一性)
-
类比:
- MAC地址:社会安全号
- IP地址:通讯地址
-
MAC平面地址 -> 支持移动
- 可以将网卡接到其他网络
-
IP地址有层次 - 不能移动
- 依赖于节点连接的IP子网,与子网的网络号相同(有与其相连的子网相同的网络前缀)
ARP
问题:已知B的IP地址,如何确定B的MAC地址
- 在LAN上的每个IP节点都有一个ARP表
- ARP表:包括一些LAN节点IP/MAC地址的映射
<TP address MAC address TTL>- TTL时间是指地址映射失效的时间
- 典型是20min
路由到其他LAN
Walkthrough:发送数据报:由A通过R到B,假设A知道B的IP地址
- 在R上有两个ARP表,分别对应两个LAN
- 在源主机的路由表中,发现到目标主机的下一跳时111.111.111.110
- 在源主机的ARP表中,发现其MAC地址是E6-E9-00-17-BB-4B,etc
编址:路由到其他LAN
以太网
- 目前最流行的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和Apple Talk)
CRC:在接收方校检
- 如果没有通过校检,丢弃错误帧
以太网:无连接、不可靠的服务
- 无连接:帧传输前,发送方和接收方之间没有握手
- 不可靠:接收方适配器不发送ACKs或NAKs给发送方
- 递交给网络层的数据报流可能有gap
- 如上层使用像传输层TCP协议这样的rdt,gap会被补上(源主机,TCP实体)
- 否则,应用层会看到gap
- 以太网的MAC协议:采用二进制退避的CSMA/CD介质访问控制形式
以太网标准:链路层和物理层
- 很多不同的以太网标准
- 相同的MAC协议(介质访问控制)和帧结构
- 不同的速率:2 Mbps、10 Mbps、100 Mbps、1Gbps、10Gbps
- 不同的物理层标准
- 不同的物理层媒介:光纤,同轴电缆和双绞线
以太网使用CSMA/CD
- 没有时隙
- NIC如果侦听到其他NIC在发送就不发送:载波侦听(carrier sence)
- 发送时,适配器当侦听到其他适配器在发送就放弃对当前帧的发送:冲突检测(collision detection)
- 冲突后尝试重传,重传前适配器等待一个随机时间:随机访问(random access)
10BaseT and 100BaseT
- 100Mbps速率也被称之为"fast ethernet"
- T代表双绞线
- 节点连接到HUB上:"star topology"物理上是星型
- 逻辑上总线型,盒中总线
- 节点和HUB间的最大距离是100m
Hubs
Hubs本质上是物理层的中继器
- 从一个端口收,转发到所有其他端口
- 速率一致
- 没有帧的缓存
- 在hub接口端没有CSMA/CD机制:适配器检测冲突
- 提供网络管理服务
Manchester编码
- 在10BaseT中使用
- 每一个bit的位时中间有一个信号跳变
- 允许在接收方和发送方节点之间进行时钟同步
- 节点间不需要集中的和全局的时钟
- 10Mbps,使用20M带宽,效率50%
千兆以太网
- 采用标准的以太帧格式
- 允许点对点链路和共享广播信道
- 物理编码:8b10b编码
- 在共享模式,继续使用CSMA/CA MAC技术,节点间需要较短距离以提高利用率
- 交换模式:全双工千兆可用与点对点链路
- 站点使用专用信道,基本不会冲突,效率高
- 除非发往同一个目标点
Hub:集线器
- 网段(LAN segments):可以允许一个站点发送的网络范围
- 在一个碰撞域,同时只允许一个站点在发送
- 如果有2个节点同时发送,则会碰撞
- 通常有相同的词缀,比IP子网更详细的前缀
- 所有以hub连到一起的站点处在一个网段,处在一个碰撞域
- 骨干hub将所有网段连接到了一起
- 通过hub可拓展节点之间的最大距离
- 通过HUB,不能将10BaseT和100BaseT的网络连接到一起
交换机
- 链路层设备:扮演主动角色(端口执行以太网协议)
- 对帧进行存储和转发
- 对于到来的帧,检查帧头,根据目标MAC地址进行选择性转发
- 当帧需要向某个(些)网段进行转发,需要使用CSMA/CD进行接入控制
- 通常一个交换机端口一个独立网段
- 透明:主机对交换机的存在可以不关心
- 通过交换机相连的各节点好像这些站点是直接相连的一样
- 有MAC地址:无IP地址
- 即插即用、自学习
- 交换机无需配置
交换机:多路同时传输
- 主机有一个专用和直接到交换机的连接
- 交换机缓存到来的帧
- 对每个帧进入链路使用以太网协议,没有碰撞:全双工
- 每条链路都是一个独立的碰撞域
- MAC协议在其中的作用弱化了
- 交换:A - to - A' 和 B - to - B'可以同时传输,没有碰撞
交换机转发表
Q:交换机如何知道通过接口1到达A,通过接口5到达B'?
A:每个交换机都有一个交换表(switch table),每个表项:
- 主机的MAC地址,到达该MAC经过的接口、时戳)
- 比较像路由表
交换机:自学习
交换机通过学习得到哪些主机(mac地址)可以通过哪些端口到达
- 当接收到帧,交换机学习到发送站点所在的端口(网段)
- 记录发送方MAC地址/进入端口映射关系在交换表中
交换机:过滤/转发
当交换机接收到一个帧:
-
记录进入链路,发送主机的MAC地址
-
使用目标MAC地址对交换表进行索引
//如果在转发表中找到了目标项
if entry found for destination
then{
//如果目标MAC就是对应着进来的端口
if dest on segment from which frame arrived //过滤
//抛弃掉该帧
then drop the frame
//转发
else forward the frame on interface indicated
}
//泛洪
else found
交换机 vs. 路由器
- 都是存储转发设备,但层次不同
- 交换机:链路层设备(检查链路层头部)
- 路由器:网络层设备(检查网络层的头部)
- 都有转发表
- 交换机:维护交换表,按照MAC地址转发
- 执行过滤、自学习和生成树算法
- 即插即用:二层设备,速率高
- 执行生成树算法,限制广播帧的转发
- ARP表项随着站点数量增多而增多
- 路由器:维护路由表,执行路由算法
- 路由算法能够避免环路,无需执行生成树算法,可以以各种拓扑构建网络
- 对广播分组做限制
- 不是即插即用的,配置网络地址(子网前缀)
- 三层设备,速率低
- 交换机:维护交换表,按照MAC地址转发