网络数据包发送接收全过程

本文详细介绍了Linux网络接口的四个部分:网络设备接口、网络接口核心、网络协议族和网络接口socket层,重点关注了数据包的发送与接收过程。网络设备接口负责物理介质的数据传输,网络接口核心作为关键部分统一调度,网络协议族实现了多种协议,而socket层为用户提供编程接口。文章以TCP/IP协议为例,指出了主要的源码文件,并提及了进程如何通过socket接收数据。
               

转载:http://blog.youkuaiyun.com/hilyoo/article/details/4455031

Linux的网络接口分为四部分:网络设备接口,网络接口核心,网络协议族,网络接口socket层。
可参考:
http://lxr.linux.no/linux+v2.6.30.4/net/
  网络设备接口部分主要负责从物理介质接收和发送数据,实现的文件在linu/driver/net目录下面。

  网络接口核心部分是整个网络接口的关键部位,它为网络协议提供统一的发送接口,屏蔽各种各样的物理介质,同时有负责把来自下层的包向合适的协议配送。它是网络接口的中枢部份。它的主要实现文件在linux/net/core目录下,其中linux/net/core/dev.c为主要管理文件。

  网络协议族部分是各种具体协议实现的部份。Linux支持TCP/IP,IPX,X.25,AppleTalk等的协议,各种具体协议实现的源码在linux/net/目录下相应的名称。在这里主要讨论TCP/IP(IPv4)协议,实现的源码在linux/net/ipv4,其中linux/net/ipv4/af_inet.c是主要的管理文件。

  网络接口Socket层为用户提供的网络服务的编程接口,主要的源码在linux/net/socket.c

发送:

应用程序调用系统调用,将数据发送给socket
socket检查数据类型,调用相应的send函数
send函数检查socket状态、协议类型,传给传输层
tcp/udp(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值