直通交换转发计算

直通交换转发计算

@(计算机网络)

对于100Mbps的以太网交换机,当输出端口无排队,以直通交换(cut-through switching)方式转发一个以太网帧(不包括前导码)时,引入的转发延迟至少是:B.
A. 0us B. 0.48us C. 5.12us D. 121.44us

分析:如果理解了直通交换只检查头部目的MAC地址(6B),有时包含前导码(8B),有些明确表示不包含,比如这里,则检查就肯定得读,速度是100Mbps。用时 6B÷100Mbps=0.48us

不可以为是用最小帧长64B去求解,求到5.12us,还觉得自己算得很对。

转念一想,如果用的是64B帧长,这只是最一般的转发情况,根本不是直通交换。虽然可能你不知道什么是直通交换,但感觉应该是更快的方式!
事实也是,只检查14B或者6B,数据包是不看的,直接摆渡到相应的出口即可。

### 存储转发交换与无碎片直通交换的区别 #### 存储转发交换 存储转发交换是一种常见的交换机制,在这种模式下,当数据帧到达交换机接口时,整个数据帧会被读取并临时存储在缓冲区中。在此期间,校验和计算会验证数据帧的完整性。如果检测到错误,则丢弃该帧;如果没有错误,交换机会查询MAC地址表来确定目标端口,并将完整的数据帧发送出去[^1]。 优点在于可以提供高质量的服务,因为只有正确接收到的数据才会被继续传递下去,从而减少了网络中的垃圾流量。然而,这种方法可能会引入一定的延迟,尤其是在处理较大尺寸的数据包时更为明显。 ```python def store_and_forward_switch(packet): buffer = read_entire_packet(packet) if checksum(buffer) is valid: target_port = lookup_mac_address_table(get_destination_mac(buffer)) send_to(target_port, packet) ``` #### 无碎片直通交换(Cut-through Switching) 相比之下,无碎片直通交换单独检查每个传入数据帧的目的地地址以及前六个字节的内容——这足以识别出任何可能存在的冲突或损坏情况而不需要等待接收全部内容后再做决策。一旦确认这些基本信息有效之后就会立即将其转发给相应的输出队列而不必等到整条消息都已抵达为止。 这种方式极大地提高了速度,因为它几乎可以在数据开始流入的同时就开始向外转发,几乎没有延迟。但是缺点也很显著:由于缺乏全面的错误检测能力,有潜在的风险让一些有问题的数据进入下游节点,增加了网络上的噪声水平。 ```python def cut_through_switch(packet_start): destination_mac = extract_first_six_bytes(packet_start) if not detect_error_in_header(destination_mac): forward_immediately(destination_mac, packet_start) ``` 两种方法各有优劣,具体选择取决于应用场景的需求。对于追求极致性能的应用来说,无碎片直通可能是更好的选项;而对于更注重可靠性和稳定性的环境而言,存储转发则更加合适。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值