目前在网络世界TCP/IP占统治地位。linux由于其开源特性发展很快。现在在做研究的时候需要用到这方面的知识,于是边学习边总结,由于研究的内容主要集中在TCP/IP的底层,所以在这里主要分析底层的实现。
我在这里研究的代码主要是如下图所示(图片来源于网络)
这里用的图片是一个路由器的图片。
我们在后面的介绍中将分接收数据包和发送数据包来进行分析。
一:接收数据包。
在最开始的linux内核里面接收网络数据都是只有触发硬中断这种方式。后来引入了软中断,这个与信号比较相似。"硬中断是外部设备对CPU的中断","软中断通常是硬中断服务程序对内核的中断","信号则是由内核(或其他进程)对某个进程的中断"(《Linux内核源代码情景分析》第三章)。