以太网及交换机
- LAN: Local Area Network
- 将物理位置邻近的计算机连接起来,资源共享和信息交换,地理范围和主机数目均有限
以太网
-
以太网是目前为止最流行的有线局域网
- 第一个广泛部署的高速局域网
- 相比令牌环网,FDDI,ATM,组网简单,设备较为便宜
- 以太网不断提高数据率,以太网交换机的出现,进一步提高了有效数据率
-
物理拓扑
-
总线(bus): 上世纪90年代中期前流行
- 所有结点在同一冲突域(collision domain) (可能彼此冲突)
-
星型(star): 目前主流网络拓扑
- 中心交换机(switch)
- 每个结点一个单独冲突域(结点间彼此不冲突)
-
-
不可靠、无连接服务
- 无连接(connectionless): 发送帧的网卡与接收帧的网卡间没有“握手”过程
- 不可靠(unreliable): 接收网卡不向发送网卡进行确认
- 差错帧直接丢弃,丢弃帧中的数据恢复依靠高层协议 (e.g., TCP),否则,发生数据丢失
-
以太网的MAC协议: 采用二进制指数退避算法的CSMA/CD
以太网CSMA/CD
- 1、NIC从网络层接收数据报,创建数据帧。
- 2、监听信道:如果NIC监听到信道空闲,则开始发送帧;如果NIC监听到信道忙,则一直等待到信道空闲,然后发送帧。
- 3、NIC发送完整个帧,而没有检测到其他结点的数据发送,则NIC确认帧发送成功!
- 4、如果NIC检测到其他结点传输数据,则中止发送,并发送干扰信号 (jamsignal)
- 5、中止发送后,NIC进入二进制指数退避:
- 第m次连续冲突后:取n = Min(m, 10),NIC 从{0,1,2, …, 2 n − 1 2^n -1 2n−1}中随机选择一个数K,NIC等待K*512比特的传输延迟时间,再返回第2步
- 连续冲突次数越多,平均等待时间越长。
以太网帧结构

-
前导码(Preamble) (8B):
- 7个字节的10101010,第8字节为10101011
- 用于发送端与接收端的时钟同步
-
目的MAC地址、源MAC地址 (各6B):
- 如果网卡的MAC地址与收到的帧的目的MAC地址匹配,或者帧的目的MAC地址为广播地址(FF-FF-FF-FF-FF-FF),则网卡接收该帧,并将其封装的网络层分组交给相应的网络层协议。
- 否则,网卡丢弃(不接收)该帧。
-
类型(Type) (2B):
- 指示帧中封装的是哪种高层协议的分组(如,IP数据报、Novell IPX数据报、AppleTalk数据报等)
-
数据(Data) (46-1500B):
-
指上层协议载荷。
-
10base-5网络中:R=10Mbps, R T T m a x RTT_{max} RTTmax =512μs, L m i n L_{min} Lmin / R = R T T m a x RTT_{max} RTTmax
因为要符合最短帧长,所以 L m i n L_{min} Lmin = 512bits=64B, D a t a m i n Data_{min} Datamin = L m i n L_{min} Lmin -18=46B
-
-
CRC (4B):
- 循环冗余校验码
- 丢弃差错帧
交换机
以太网交换机
- 链路层设备
- 存储-转发以太网帧:检验到达帧的目的MAC地址,选择性(selectively) 向一个或多个输出链路转发帧
- 利用CSMA/CD访问链路,发送帧
- 透明(transparent)
- 主机感知不到交换机的存在
- 即插即用(plug-and-play)
- 自学习(self-learning)
- 交换机无需配置
多端口间同时传输

- 主机利用独享(dedicated)链路直接连接交换机
- 交换机缓存帧
- 交换机在每段链路上利用CSMA/CD收发帧,但无冲突,且可以全双工
- 每段链路一个独立的冲突域
- 交换(switching): A-A’与B-B’的传输可以同时进行,没有冲突
交换表
-
每个交换机有一个交换表(switch table):(主机的MAC地址, 到达主机的接口, 时间戳)
-
自学习
- 交换机通过自学习,获知到达主机的接口信息
- 当收到帧时,交换机“学习”到发送帧的主机(通过帧的源MAC地址),位于收到该帧的接口所连接的LAN网段
- 将发送主机MAC地址/接口信息记录到交换表中
帧过滤/ 转发
-
当交换机收到帧
-
记录帧的源MAC地址与输入链路接口
-
利用目的MAC地址检索交换表
if 在交换表中检索到与目的MAC地址匹配的入口(entry) then { if 目的主机位于收到帧的网段 then 丢弃帧 else 将帧转发到该入口指向的接口 } else 泛洪(flood) /* 向除收到该帧的接口之外的所有接口转发 */
-
-
自学习与转发过程举例(如上表)
- 目的MAC地址A’,位置未知:泛洪
- 目的MAC地址A,位置已知:选择性转发
交换机 vs. 路由器
- 两者均为存储-转发设备
- 路由器: 网络层设备 (检测网络层分组首部)
- 交换机: 链路层设备 (检测链路层帧的首部)
- 二者均使用转发表:
- 路由器: 利用路由算法(路由协议)计算(设置), 依据IP地址(每个新上线节点根据 OSPF 协议都会发送 HELLO 报文)
- 交换机: 利用自学习、泛洪构建转发表, 依据MAC地址
网络设备对比

其他局域网
无线局域网
IEEE 802.11
分类
-
802.11b
- 2.4-2.5GHz免费频段 (unlicensed spectrum)
- 最高速率:11 Mbps
- 物理层采用直接序列扩频(DSSS)技术
- 所有主机使用相同的码片序列
-
802.11a
- 5-6 GHz频段
- 最高速率:54 Mbps
-
802.11g
- 2.4-2.5 GHz频段
- 最高速率:54 Mbps
-
802.11n: 多天线(MIMO)
- 2.4-2.5 GHz频段
- 最高速率:600 Mbps
异同
-
均使用CSMA/CA 多路访问控制协议
-
均有基础设施( 基站) 网络模式和特定网( 自组网) 网络模式
-
对比
体系结构
- 无线主机与基站通信
- 基站(base station) = 访问点(access point-AP)
- 基本服务集BSS(Basic Service Set) ,也称为单元(cell)
- 基础 设施网络式 模式:无线主机、AP(基站)
- 自组网(ad hoc) 模式:只有主机
信道与AP 关联
-
802.11b: 2.4GHz-2.485GHz频谱划分为11个不同频率的信道
- 每个AP选择一个频率(信道)
- 存在干扰可能: 相邻的AP可能选择相同的信道!
-
主机: 必须与某个AP关联(associate)
- 扫描信道,监听包含AP名称(服务集标识符-SSID )和MAC地址的信标(beacon)帧
- 选择一个AP进行关联
- 可能需要进行身份认证
- 典型情形:运行DHCP获取IP地址等信息
-
被动扫描与主动扫描
-
被动扫描(scanning):
- 各AP发送信标帧
- 主机(H1)向选择的AP发送关联请求帧
- AP向主机(H1)发送关联响应帧
-
主动扫描:
- 主机(H1)主动广播探测请求帧(Probe Request Frame)
- AP发送探测响应帧(Probe Response Frame)
- 主机(H1)向选择的AP发送关联请求帧
- AP向主机(H1)发送关联响应帧
-
帧格式

-
帧主体就是 IP 数据报
-
802.11数据帧有4个地址字
-
地址 4 用于自组网络
-
地址1~地址3:
-
-
传送过程
CSMA/CA
多路访问控制
- 避免冲突: 2 + 结点同时传输
- 802.11: CSMA – 发送数据前监听信道
- 避免与正在进行传输的其他结点冲突
- 802.11: 不能像CSMA/CD那样,边发送、边检测冲突!
- 无线信道很难实现(有线通过监测信号强度)
- 无法侦听到所有可能的冲突:隐藏站、信号衰落
- 目标: 避免冲突(avoid collisions)-CSMA/C(ollision)A(voidance)
CSMA 实现

-
802.11 sender
-
1、if 监听到信道空闲了DIFS 时间 then 发送整个帧(无同时检测冲突,即CD)
-
2、if 监听到信道忙 then 执行退避算法,在此期间继续侦听信道 当信道空闲时,计时器倒计时 退避值减到0(信道空闲),发送帧 if 没有收到ACK then 增加随机退避间隔时间 重复第2步
-
-
802.11 receiver
-
if 正确接收帧 延迟SIFS时间后,向发送端发送ACK (由于存在隐藏站问题)
-
CA(冲突避免) 实现
-
基本思想:允许发送端“预约”(reserve)信道,而不是随机发送数据帧,从而避免长数据帧的冲突
- 发送端首先利用CSMA向AP发送一个很短的RTS (request-to-send)帧
- RTS帧仍然可能彼此冲突 (但RTS帧很短)
- AP广播一个CTS(clear-to-send)帧作为对RTS的响应
- CTS帧可以被所有结点接收
- 消除隐藏站影响
- 发送端可以发送数据帧
- 其他结点推迟发送
- 发送端首先利用CSMA向AP发送一个很短的RTS (request-to-send)帧
-
冲突避免(CA): RTS-CTS 交换
- 利用很小的预约帧彻底避免了数据帧冲突
虚拟局域网
动机
-
考虑一下情形:
- CS用户迁移到EE,但是希望连接至CS交换机,怎么办?
-
单一广播域 :
- 所有第2层广播流量(ARP,DHCP, 未知目的MAC地址位置)必须穿越整个LAN
- 安全/隐私、效率问题
虚拟局域网(Virtual Local Area Network)
- 支持VLAN 划分的交换机 , 可以在一个物理 理LAN 架构上配置 、定义多个VLAN
基于端口的VLAN

- 流量隔离(traffic isolation):去往/来自端口1-8的帧只到达端口1-8
- 也可以基于MAC地址定义VLAN, 而不是交换端口
- 动态成员: 端口可以动态分配给不同VLAN
- 在VLAN间转发: 通过路由(就像在独立的交换机之间)实践中,厂家会将交换机与路由器集成在一起
跨越多交换机的VLAN

- 多线缆连接
- 每个线缆连接一个VLAN
- 中继端口(trunk port): 在跨越多个物理交换机定义的VLAN承载帧
- 为多VLAN转发802.1帧容易产生歧义 (必须携带VLAN ID信息)
- 802.1q协议为经过中继端口转发的帧增加/去除额外的首部域
802.1Q VLAN帧格式
