关于路由表和路由过程

谁学逆向工程 2014-09-26 11:22:10
假设要从中国,辽宁省,沈阳市,于洪区,某住宅小区,某户人家发送一个数据包
目的地是英国,某省,某市,某区,某小区,某住宅中的一台电脑

数据包从电脑发出以前肯定要被操作系统中的函数层层封装,添加上各种IP、掩码、端口。这堆东西。然后发送给小区的网关(移动、联通、电信、广电的网关)。你说这个网关中的路由表是什么数据结构,树?数组?链表?

我觉得这第一个网关不能存放英国某住宅中电脑的位置,如果能存放到这种程度,怕是内存和硬盘都不够用啊。你说这个包是怎么到英国的。到了英国以后是通过子网掩码找到前若干二进制位找到某省的路由器吧?到了省以后是不是是不是应该在有一个子网掩码找到接下来多少二进制位表示市?到市以后应该在继续划分出多少位表示区。
我是这个意思:英国IP/10,前十位表示省;英国IP/15,在用五个位表示市;英国IP/20,在用5个位表示区。以此类推

这样看来子网掩码应该有国、省、市、区好多个子网掩码,甚至在加个小区的子网掩码。那么在发包之前,发送方会提供这么多子网掩码吗。
...全文
255 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Henzox 2014-09-28
  • 打赏
  • 举报
回复
路由表的实现没有硬性规定要用什么样的结构来存,一般路径表也不大,用一个 hash 表就够了。 要想理解这个问题,就要知道网络拓朴。你可以简单一点理解,一个局域网就是一个小的网络,打个比方,A 市里的一辆车要想到B 市里一个地方,那么这两个市的公路系统就是自己市政府建设的,想到独立,那么这些路线就相当于各自的路由表,当从 A 市出发,根据公路情况,他就会到达A 市的一个地界的高速路出口,当进入下一个市的时候,就相当于进入了一个独立的公路系统,它根据自己的公路情况,也就是路由表,决定从哪个出口出,像这样一步一步到达 B 市。 所以路由有选择有很多种,当然也会有一种最佳路由。当一个数据包从一个局域网的网关出去以后,它并不知道以后怎么走,这完全要靠下一个局域网的路由来决定。
真相重于对错 2014-09-26
  • 打赏
  • 举报
回复
就好像开车到一个陌生的地方,一开始你没必要直接知道具体怎么走,只要知道第一步我先要到哪里就可以。。。。 路由也是如此, 以你的例子 辽宁省,沈阳市,于洪区,某住宅小区 他发送一个包,没必要具体怎么走到英国,它只要知道这个包无法直接到达的话,我该往哪里走就可以。这个该往哪里走,就是网关。
赵4老师 2014-09-26
  • 打赏
  • 举报
回复
《TCP/IP详解卷一:协议》
oyljerry 2014-09-26
  • 打赏
  • 举报
回复
路由表一般是map,或hash,通过ip查找对应的跳转地址等
shenyi0106 2014-09-26
  • 打赏
  • 举报
回复
路由表一般都是用红黑树来存储的。 IP地址是由ICANN分配的,每个IP地址(或者地址段)分配时都会带有掩码, 一旦某个机构获得了一个IP地址段,那么它就可以增加掩码位的方式来扩展网络。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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