问个关于网络数据的流向问题

发布于 2022-10-15 09:14:24 字数 310 浏览 30 评论 0

上网的方式有很多种,宽带,光纤,wifi等等,每种都是根据各自的协议来实现,我想问,我应用层的一个应用程序向外部发送数据,send或者sendto。数据通过tcp/ip协议族之后,怎么去选择或者说是决定通过前面所说的三种方式来发送数据呢???
加入当前我是宽带上网,用pppoe拨号,那么根据我的了解数据应该是经过tcp/ip协议后到ppp协议,然后pppoe再获取数据包然后加上pppoe头再发送出去,那么这个选择过程是怎么去选择的呢???为什么它一定是选择ppp不是选择其他呢??这个选择的过程是在哪选择的??
最好能指出代码段,或者大概说说看什么资料.......
先谢谢了~~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夜深人未静 2022-10-22 09:14:24

又了解了一下这个ppp应该是在链路层了,链路层可以有多种协议,ppp是其中的一种。
那么这个问题就换成,数据怎么从链路层上层去选择使用哪个链路层呢????

仅此而已 2022-10-22 09:14:24

又了解了一下这个ppp应该是在链路层了,链路层可以有多种协议,ppp是其中的一种。
那么这个问题就换成,数 ...
xiaopeng14 发表于 2011-04-19 01:14

    那不得看你发出去的接口时什么类型的么

方圜几里 2022-10-22 09:14:24

1.应用层的数据应该从哪个接口出去是由路由表决定的,这个很好理解。
2.这个接口选择哪种方式上行是在你创建这个接口的时候就决定了的。
同样是PPPoE拨号,你在创建这条PPPoE连接的时候,可以使用LAN上行,ADSL上行或pon上行。
你可以看一下pppd这个进程
pppd -c ppp0 -i atm0 -u pub -p *** -f 0

祁梦 2022-10-22 09:14:24

pppoe拨号建立时会创建与eth0相似的ppp0接口。应用层数据发送时就如angeltears兄所说由路由表决定了发送接口,然后调用dev_queue_xmit发送数据, dev_queue_xmit 最后调用接口设备私有的dev->hard_start_xmit。
对应于ppp就是 ppp_start_xmit ,代码在 drivers/net/ppp_generic.c中

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文