网桥帧的转发与转发表的建立算法
来源:互联网 发布:知行理工初始密码 编辑:程序博客网 时间:2024/06/07 22:27
网桥
1.主要功能
网桥和中继器、集线器都能扩展局域网,但它工作在更高的层次,还有更强的功能。
主要有:
- 帧过滤:网桥的过滤作用是指,它使同一个网段上各工作站之间的通信不会经过网桥传到其他网段上去,仅局限于本网段的范围之内。
- 可连接不同类型的局域网:中继器和集线器只能连接同一类型的局域网,而网桥则可以连接不同类型的局域网。如通过网桥可以把IEEE 802.3、802.4、802.5(即以太网、令牌总线网和令牌环网)连接在一起。这种网桥要比连接同类局域网的网桥更复杂一些,它要进行帧格式的转换。
- 网桥使各网段成为隔离开的碰撞域:如图
2.网桥的工作原理
3.网桥帧的转发与转发表的建立算法思想
- 从端口 x 收到无差错的帧(如有差错即丢弃),在转发表中查找目的站 MAC 地址。
- 如有,则查找出到此 MAC 地址应当走的端口 d,然后进行 (3)。否则转到(5) 。
- 如到这个 MAC 地址去的端口 d = x,则丢弃此帧(因为这表示不需要经过网桥进行转发)。否则从端口 d 转发此帧。
- 转到 (6) 。
- 向网桥除 x 以外的所有端口转发此帧(这样做可保证找到目的站)。
- 如源站不在转发表中,则将源站 MAC 地址加入到转发表,登记该帧进入网桥的端口号,设置计时器,然后转到 (8) 。如源站在转发表中,则执行 (7) 。
- 更新计时器。
- 等待新的数据帧。转到 (1) 。
4.算法流程
伪代码:
/** 网桥帧的转发与转发表的建立算法*/void NetworkBridge(void) { int portX; int portD; int portO; bool flag_GetFrameData; while (flag_GetFrameData) { ReceiveFrame(portX);// 从端口X收到一帧 SearchMAC_Distance();// 查找目的站MAC地址 SearchMAC_Source();// 查找源站MAC地址 if ( isMAC_Distance_Exist() ) {// 目的站MAC地址存在 portD = SearchPort();// 查找端口D if (portD == portX) {// 端口 D = X AbandonFrame();// 丢弃此帧 } else { SendFrame(portD);// 从端口D转发此帧 } } else {// 目的站MAC地址不存在 SendFrame(portO);// 向网桥除 x 以外的所有端口转发此帧(这样做可保证找到目的站) } if( isMAC_Source_Exist() ) {// 源站MAC地址在转发表中 UpdateTime0(); } else {// 源站MAC地址不在转发表中 AddMAC(SourceAddress);// 将源站 MAC 地址加入到转发表 SetTime0(); } }}
0 0
- 网桥帧的转发与转发表的建立算法
- 本地转发与集中转发的区别
- 转发的
- 请求的跳转与转发
- Servlet的转向与转发
- jsp初识、servlet转发、转发与重定向的比较
- 路由表转发算法
- (others)路由器的转发算法
- 重定向与转发的差异
- forward与redirect转发的区别
- 转发与重定向的区别
- 转发与重定向的区别
- 转发与重定向的区别
- servlet的转发与重定向
- 请求转发与重定向的区别
- 请求转发与重定向的区别:
- 请求转发与请求定向的区别
- 请求转发与重定向的区别
- C3P0替代hibernate管理连接池
- 读书笔记之:鸟哥Linux私房菜(基础篇)
- POJ 3265 DP
- MySql DOS中操作的常用SQL语句
- POJ 3271 BFS (大坑)
- 网桥帧的转发与转发表的建立算法
- [C++]前置声明和头文件
- TensorFlow白皮书读后感
- 停止等待协议的算法
- BZOJ 2748 DP
- BZOJ 1193 搜索+贪心
- 载波侦听多点接入/碰撞检测(CSMA/CD协议)
- DateFormat在linux下系统和windows系统下取值不同的问题
- 软件开发职位中英对照表