这两天读了《我是一个网卡》这篇文章,很有感触,幽默的语言,准确的知识,形象而生动的说明了上网的大致流程,对以后的源码级分析做个铺垫吧。
网络知识博大精深,从硬件到操作系统,再到各种协议、应用,给人一种望而生畏之感。《我是一个网卡》以通俗的方式粗略的讲了上网这一过程:
网卡硬件 -> 网上驱动 -> DHCP (获取本地IP) -> 广播 -> 路由+DNS -> ARP(获取远端MAC) -> TCP -> HTTP -> 成功上网
最后以usb无线网卡替代eth网卡的悲剧收场,显示新的技术锐不可当,老技术的压力与日俱增,同时告诉我们要不断学习,否则如同eth网卡一般。
网络相关技术:
1. 网上驱动(中断)
2. 网卡设备
3. 内核协议数据面
4. 用户空间协议信令面
5. 内核网络工具(ethtool、mii-tool、iptables、ebtables)
6. 用户网络工具(ethtool、mii-tool、iptables、ebtables)
7. 无线:wifi、蓝牙、NFC、LTE
8. Android网络处理框架(netd)
9. 网络常用命令(ip、ping、tcpdump、route、netstat、ssh、ftp等)
10. VPN IPSec(L2TP、GRE)
11. 组网及抓包技术
嗯,感觉有点多,正所谓“路曼曼其修远兮,吾将上下而求索”。