Linux内核邻居子系统,浅析Linux内核网络子系统_陈轶飞.pdf

浅析Linux内核网络子系统_陈轶飞

浅析Linux网络子系统

陈轶飞

rstevens2008 at

Linux网络子系统

• 作用:使Linux成为一个可扩展的网络操作系统

– 支持多协议族:INET, INET6, UNIX...

– 支持多种类型的网络设备: 以太网卡、无线网卡...

• 领略顶级大师作品,成为C高手的绝佳参考

– 开闭原则

• 对扩展开放: 可增加新的协议族、协议、网络设备

• 对修改封闭: 而无需改动框架的代码

– 面向接口编程

• 无处不在的函数指针

– 依赖倒置原则

• 依赖于抽象的接口,而不是具体的实现。

• net_protocol_family, net_device

– 高性能

– 模块化,高可维护性;框架化,高可扩展性

• 各种网络技术汇聚与此,成为网络高手的绝佳参考

– IPv4, IPv6, IPSec, 策略路由, QoS, 网桥, ...

rstevens2008 at

从应用层编程开始

• 简单的UDP发送程序

– sock = socket(AF_INET, SOCK_DGRM, 0);

– sendto(sock, ...)

• 简单的UDP接收程序

– sock = socket(AF_INET, SOCK_DGRM, 0);

– bind(sock, ...);

– recvfrom(sock, );

• 简单的抓包程序,模拟 tcpdump

– sock = socket(AF_PACKET, RAW,

htons(ETH_P_IP));

– recvfrom(sock, ...);

rstevens2008 at

网络子系统架构

INET INET6 UNIX

...

Netfilter

QoS

WiFi GPRS

rstevens2008 at

系统调用层

sendmsg() socket() recvmsg()

sys_socketcall()

sys_sendmsg()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值