如何用c或c++实现 路由器分组转发算法

a11a2233445566 2011-04-16 01:00:19
、从数据报的首部提取目的主机的IP地址D,计算出目的主机的网络地址N。
(将IP数据报中目的主机的IP地址和路由表上的子网掩码进行&运算,就可以得出网络地址N)

2、若N就是与此路由器直接相连的某个网络的网络地址。则直接进行交付,不需要经过其他路由器,而是直接将IP数据报交付给目的主机。
(注意,直接交付时,路由器需要将目的主机地址D转换为具体的硬件地址,把数据报封装在MAC帧,在发送此帧。)
若N不是与此路由器直接相连的网络,就进行间接交付。执行3或执行4

3、若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4。
(这是特殊情况)

4、若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行5。

5、如果3和4都没能将IP数据报转发出去,若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认
路由器;负责,执行6

6、报告转发分组出错
...全文
615 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
书虫 2011-04-16
  • 打赏
  • 举报
回复
路过,学习!
pathuang68 2011-04-16
  • 打赏
  • 举报
回复
有一本书叫《TCP/IP路由技术》(Doyle写的)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧