Linux内核--网络栈实现分析(二)--数据包的传递过程--转
发布时间:2021-01-24 09:17:01 所属栏目:Linux 来源:网络整理
导读:副标题#e# 转载地址 作者:闫明 本文分析基于Linux Kernel 1.2.13 注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析、”(下)“表示分析是从上向下分析。 ?上篇: 上一篇博文中我们从宏观上分析
当用户需要接收数据时,首先根据文件描述符inode得到socket结构和sock结构,然后从sock结构中指向的队列recieve_queue中读取数据包,将数据包COPY到用户空间缓冲区。数据就完整的从硬件中传输到用户空间。这样也完成了一次完整的从下到上的传输。 下篇: 在博文中分析了数据包从网卡设备经过驱动链路层,网络层,传输层到应用层的过程。 本文就分析一下本机产生数据是如何通过传输层,网络层到达物理层的。 综述来说,数据流程图如下: 一、应用层应用层可以通过系统调用或文件操作来调用内核函数,BSD层的sock_write()函数会调用INET层的inet_wirte()函数。 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读