当前位置:  技术问答>linux和unix

数据包从应用程序发向链路层过程中什么时候指定netdevice

    来源: 互联网  发布时间:2016-06-27

    本文导语:  最近小弟在学习linux内核协议栈,看代码的时候发现数据包从应用层发向链路层的过程比较复杂,如下: UDP发送是用的 udp_sendmsg()               -> udp_push_pending_frames()               -> ip_push_pending_frames...

最近小弟在学习linux内核协议栈,看代码的时候发现数据包从应用层发向链路层的过程比较复杂,如下:

UDP发送是用的 udp_sendmsg()
              -> udp_push_pending_frames()
              -> ip_push_pending_frames()
              -> ip_local_out()
              -> dst_output()

dst_output() 直接返回skb->dst->input(skb), 

请教各位,
1. 这个skb->dst->input指针在哪里被初始化
2. 还有代码看下来发现没有地方设置netdevice, 那skb->dev到底是在哪里被设置的呢? 

如蒙解答,不胜感激!

|
楼主没搞错吧?dst_output() 直接返回skb->dst->input(skb), 
我看的2.4和2.6都是返回skb->dst->output

1. 这个skb->dst->input指针在哪里被初始化 
按照dst->output来看,一般来说,这个函数指针被初始化为:ip_output。也有些其它情况:
详情请参见:《understanding Linux network internals》35.5:Setting Functions for Reception and Transmission

2. 还有代码看下来发现没有地方设置netdevice, 那skb->dev到底是在哪里被设置的呢?
在net device的驱动中设置。如以太网设备,PPP等。

    
 
 

您可能感兴趣的文章:

  • 链路层数据帧问题
  • 请问:作为服务端,怎样知道对方(客户端)已关闭了链路?(前提是不用给对方发数据)
  • 请教哪里有在linux下用c/c++写的从数据链路层抓包的源代码下载?
  • 求助:协议族各属于5层TCP/IP模型中的哪个层?(这里物理层和数据链路层是分开的)
  • 请问!在linux中可以用socket提取链路层的数据包(也就是非基于IP,UDP和TCP的数据包)吗?
  • 串口应用程序,当对方发送大量的数据时,本方的数据无法发出。对方停止发送,本方的数据仍然无法发出。不知道是什么原因。
  • 请问能否在linux实现一个应用程序访问另外一个程序的内存数据?
  • 请教高手,如何在java中调用其他应用程序(该程序主要进行数据库操作)
  • 开发Unix下的数据库应用程序有什么好的参考书?
  • unix 下web应用程序调用 一个写数据库的perl脚本 的问题。
  • java数据库应用程序中的一个小问题
  • JBuider写应用程序怎么和数据库连接,有什么书介绍的比较详细?
  • freetds连接MSSQL2000,应用程序读出来的数据中文部分全是问号!!
  • 请问大侠: 2.4下应用程序(user space)传大量数据给内核模块(kernel space)的可选方法和最佳方法.
  • windows平台下的应用程序能访问linux/unix平台下的数据库吗?或者反过来行吗?
  • 请问:大家用JBuilder设计桌面数据库应用程序时直接用dbswing,还是jdbc+swing?
  • 用glade开发一个数据库应用程序, mysql.h怎么联接??
  • 求救:j2ee的构架下,可以作为一个客户端不断的往一用vc做的应用程序客户端发数据吗?
  • 在JAVA应用程序中,用JDBC连接数据库,try{}catch{}的代码应方在main中呢?还是其他地方
  • 实战EJB之四(开发实体CMP),在部署应用程序的时候,点击"实体EJB的持续性管理",”在设置数据源的JNDI名时,如何修改datasources.xml来
  • 450,我全部的分急求java应用程序操作mysql数据库的例子
  • (急)有劳分析关于websphere的出错:与数据库相连的应用程序已达到最大数目
  • Oracle数据库及应用程序优化开发者网络Oracle
  • Oracle数据库应用程序性能优化探究
  • 如何配置IE使JAVA小应用程序可以把数据文件存到本地硬盘( 浏览器端)?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.print类docflavor的类成员方法:服务格式化打印数据定义及介绍
  • 如何监控数据库的数据,如果数据库数据更改,就通知Server
  • <<大话数据结构>>中冒泡排序算法改进
  • 如何从数据库中或文本文件中提取数据到另一个数据库中?
  • java命名空间javax.print类docflavor的类成员方法:客户端格式化打印数据定义及介绍
  • 用JDBC连接Oracle数据库时,如何向数据库中写日期型数据(格式)?谢了!
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • linux下用libpcap库函数抓包,如何判断捕获的数据包是IP数据包还是非IP数据包,顺便说一下、捕获的数据包除了IP数据包之外,还有那些种类,非常感谢!!!
  • c#多线程更新窗口(winform)GUI的数据
  • 建立一个ftp数据连接并传送或接受完毕一些数据后,能否不关闭此数据连接,下次接着用?
  • 基于Hadoop的数据挖掘框架
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 公司要给客户做报表,从数据库返回数据,他们死活要返回的格式为Excel格式,请问我怎样才能把数据库返回的数据存为Excel的格式?
  • Linux c++库boost unordered_set数据插入及查找代码举例
  • 数据在页面写不进数据库,也不可以从数据库中读出是什么原因?
  • 文档数据库mongodb与列式数据库hbase详细比较
  • mysql 本地数据库如何从远程数据库导数据
  • SQL Server 2008如何进行数据库分离和附加详细介绍
  • 散分:Jbuilder6开发数据库应用请问你们都用什么数据库? 免费的数据库有那些?
  • nosql数据库levedb介绍及levedb最新版1.18下载安装
  • 各位大虾!!如果我用jdbc-odbc桥的数据库驱动,那岂不是当在本地机上做好网站之后,还需要在服务器上重新定义数据苦于数据源!但这是不


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3