感觉Socket就是一个API interface, 而网络驱动指Data Link layer协议的实现,而IP,TCP层的协议是通用的。网络驱动是架设在SDIO这些总线之上的kernel层程序,而SDIO这些驱动是直接汇编指令实现的,还是通过PCi来实现的?
2012.10.23
第1章
1. mbuf中介绍的数据包的处理方式很好,就是一个链表,当加一个头部时,就创建一个节点,最后形成了整个数据包。
2. 分3层,socket layer, protocol layer, interface layer. 一个sockete一个queue,一个interface(Ethernet,loopback,PPP), 但是仅有一个ip queue.
3. driver层与interface层,socket层的优先级不同,所以可以控制driver层数据包先进行处理传递到interface和socket层
第2章
1. the m_next pointer links mbufs together into an mbuf chain and the m_nextpkt pointer links mbuf chains together into aqueue of mbufs.
也就是多个mbuf组成一个mbuf chain, m_nextpkt把多个mbuf chain练成queue.
处理packet的方式真是强大,链表这个东西,真的很好
第3章 interface layer
1. The Net/3 interface layer attempts to provide a hardware-independent programming interface between the network protocols and the drivers for the network devices connected to a system
第4章 interface: Ethernet
驱动没有讲,leintr调用leread和lestart来处理数据包。
第5-14章,未看
第15章 socket
socket interface通过系统调用,调用下面的linux kernel的TCP/IP层,完成数据包发送
第16-end
未看,主要讲tcp和route, 这些基本用不到了吧
现在想想,这些基础知识,真的用不到了,干的工作主要是重复的体力劳动而已,而已!!
2012.11.07