发布时间:2012-12-21 16:24:16
前面一篇文章分析了套接字缓冲区sk_buff的创建过程,但一般来讲,一个套接字缓冲区总是属于一个套接字,所以,除了调用sk_buff本身的 alloc_skb函数创建一个套接字缓冲区,套接字本身还要对sk_buff进行一些操作,以及设置自身的一些成员值。下面我们来分析这个过程。 如果检查到待发送数据报没有传输层协议头(不是传输层的tcp或udp数据报),套接字创建缓冲区的函数是sock_alloc_send_skb,它的函数原型是: struct sk_buff *sock_alloc_se......【阅读全文】
发布时间:2012-12-21 16:23:04
套接字缓冲区用结构体struct sk_buff表示,它用于在网络子系统中的各层之间传递数据,处于一个核心地位,非常之重要。它包含了一组成员数据用于承载网络数据,同时,也定义了在这些数据上操作的一组函数。下面是其完整的定义: struct sk_buff { struct sk_buff *next; struct sk_buff&n......【阅读全文】
发布时间:2012-12-21 16:19:54
这篇文章写于三年前,当时手中拿着Stevens的三本巨著 TCP v1/v2/v3 的摸不着头脑-因为它们太厚了。我知道我不需要那么多,那么详细。于是有了自己分析源代码的想法...... 我不对文中的内容提供任何保证,但欢迎与我联系以便不断的修改它,最终给需要知道关于Linux TCP/IP实现的人提供短小精悍的文章内容。 第一部分:Linux的TCP/IP实现概述 Linux通过同时对多种通信协议的支持来提供通用的底层基础服务。它的第一个网络模型的版本是4.3 BSD,也称为Net/1......【阅读全文】
发布时间:2012-12-21 10:30:45
我们的平台usb设备电源是上电后就一直供应的,这样造成了一些上电前插入的USB设备在系统启动后无法识别,必须重新插拔一次.有些设备又可以正常识别. DEBUG usb 驱动发现,usb驱动在初始化的时候会查询每个端口的状态,并且会尝试枚举设备,但是上电前插入的设备在GetDescriptor的时候会失败,失败后 usb驱动会执行ResetAndPoweronPort,再进行尝试,在失败3次以后就会DisablePort,造成无法识别设备. 重新插拔一次后,在GetDescriptor的时候就可以正常返回,枚举设备成功. 现在硬件已经做好,没有办法通过控制usb电源,或者拉低拉高数......【阅读全文】
发布时间:2012-11-27 16:25:00
看到很多童鞋讨论有关美剧学习英语到底有没有用,以及用哪部美剧练习,我在这里想说这只是一个参考,世界上没有绝对的事情,究竟有没有用看个人 &nbs......【阅读全文】