今天分析linux内核的路由过程。

发送路由从ip_route_output()开始,其过程是先查找路由缓存,如果路由缓存里面有,则直接取出,如果没有,调用ip_route_output_slow()意思是慢查找,查找fib表,如果都没有查到,则数据发送过程无法成功完成。

同样的,接收路由从ip_route_input()开始,先查找路由缓存,如果没有找到,调用ip_route_input_slow()开始查找,不过我比较关心的是那个关于邻居的信息怎么样会进入路由系统,怎样在发送的时候能够找到这个邻居。

想想上次那个代码,它定义了一个邻居,并且给邻居一个配置函数和发送函数,如果在路由的时候选中那个邻居的话,就会启动那个邻居的发送函数发送数据,这样就达到目的了。看了看ip_gre里面的实现,看得不是很懂。上面提到一个一个问题,因为在ip_gre里面的是一个通用的封装,所以可能会出现死循环的问题,就是一个包在被路由的时候进入轨道的函数,然后被封装,然后路由的时候又进入隧道的驱动函数,这样不停地封装,变成死循环,但是6over4好像不会出现这样的问题,因为在封装的时候,是通过ipv4的路由表选择的,但是在封装之后,是通过ipv6的函数发送出去的,所以不会出现这样的情况。

明天看看aftr的代码,看看它的实现,它的实现应该跟内核的关系比较小,容易看懂。

转载于:https://www.cnblogs.com/wudanzy/archive/2010/03/30/1700185.html

2010-03-29 路由过程相关推荐

  1. SAP UI5 应用开发教程之三十 - SAP UI5 的路由过程中进行参数传递试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  2. Linux TUN/TAP 虚拟网卡编程入门https://backreference.org/2010/03/26/tuntap-interface-tutorial/...

    原文: https://backreference.org/2010/03/26/tuntap-interface-tutorial/ (为防和谐,下文中p=屁) Tun/Tap interface ...

  3. 斯坦福Dan Boneh密码学——03 匿名路由

    斯坦福Dan Boneh密码学--03 匿名路由 这篇笔记的篇幅相对少一些,内容也比较好理解一些.实在不知道为什么Markdown语法写希腊字母本来格式好好的,转移到这边就变了.. 匿名路由 假如Al ...

  4. 我常去的编程技术网站[最近更新:2010.09.29]

    [序言]  其实大家都可以成为一个厉害的软件开发人员,希望大家通过了解我提供的这些网站找到自己的兴趣爱好,以增强自己的信心. [建议]  为了能让更多的朋友看到此链接,如果大家是csdn用户,那么请选 ...

  5. 2010.9.29 今日问题

    1.CDC,如果自己获得了一个CDC,要注意释放.所以最好使用OnDraw传入的DC,由调用者管理 2.重画界面后,要及时Invalidate(); 否则会发现没有变化,只有下次触发时,才能看到结果 ...

  6. 2010.7.29 模式对话框

    为什么点击ONOK后,对话框上的控件资源会被删除?OnOK做了什么事儿? 假如有一个对话框Class CMyDialog 我在CMyDialog中,声明了一个m_button,然后在OnInitDlg ...

  7. 2010.12.29(2)——— android GridView

    2010.12.29(2)--- android 可伸缩的GridView 用 GridView 来实现九宫格布局 并且一个格显示一个图片和一行字 [b]1.ImageAdapter[/b] pack ...

  8. E.03.29 Afraid of Needles? Don’t Let It Keep You From a Covid-19 Vaccine.

    2021.03.29 文章目录 [课程导读] [英文原文] [外刊原文] [课程导读] 疫苗被寄予了战胜新冠疫情的厚望,目前,已开始在世界各地广泛接种.然而,对于"针头恐惧症"或者 ...

  9. 树莓派3B实现软路由过程记录(无线网络通过网线共享给台式机)

    树莓派3B实现软路由过程记录 背景 实验过程 准备openwrt固件 向TF卡里刷入固件 设置路由器 总结 背景 实验室有一台台式机电脑,没有无线网卡,之前一直使用有线网上网,但体验极差.后实际测试时 ...

最新文章

  1. 机器学习生态全景图3.0
  2. spark学习-Spark算子Transformations和Action使用大全(Transformations章(二))
  3. Unity 脚本的生命周期
  4. [JavaEE] 了解Java连接池
  5. sqlserver查询最耗时的sql语句和执行过的sql语句
  6. 数学:深入浅出通信原理(陈爱军)
  7. 万能视频格式转换器 v 2018 全能版
  8. 4.凤凰架构:构建可靠的大型分布式系统 --- 透明多级分流系统
  9. 微信怎样知道经常聊天的人
  10. Java日期查询:日、周、旬、月、季度、年等时间操作
  11. zotero+坚果云安装记录
  12. JavaScript 基础(002_Event Bubbling)
  13. 身为程序员就算月薪再高,想找女朋友的话这些你千万别做!
  14. PTA——基础编程题 | 7-27 冒泡法排序 (20分)
  15. 前端动态数据实现问卷调查
  16. java.sql.SQLException: Error writing file '/tmp/MY2zYz09' (Errcode: 28 - No space left on device)
  17. 计算机应用技术专业的大学生职业生涯规划书,计算机应用专业大学生职业生涯规划书范文...
  18. C++ 五子棋双人对战免费源码----鼠标操作(DEV-CPP)
  19. Unity3d地形反光
  20. 虚拟环境命令+linux基本操作(各种版本查看+进程操作+目录+文件)

热门文章

  1. compile php with openssl on mac osx error 填坑
  2. golang | 空结构体struct{}的用法
  3. 图片处理--冰冻特效
  4. 适应关键业务环境的加湿系统
  5. vs2005中的aspnetdb(转)
  6. error: '[class name]' does not name a type
  7. C++ 虚拟继承与虚基类
  8. 【大数据课堂000】今天开课了每天更新一集
  9. Dinic算法(研究总结,网络流)
  10. Tesseract处理背景渐变的图片