发布时间:2013-01-18 19:30:13
用户使用socket系统调用编写应用程序时,通过一个数字来表示一个socket,所有的操作都在该数字上进行,这个数字称为套接字描述符。在系统调用 的实现函数里,这个数字就会被映射成一个表示socket的结构体,该结构体保存了该socket的所有属性和数据。在内核的协议中实现中,关于表示 socket的结构体,是一个比较复杂的东西,下面一一介绍。 struct socket。 这是一个基本的BSD socket,我们调用socket系统调用创建的各种不同类型的socket,开始创建的都是它,到后面,......【阅读全文】
发布时间:2013-01-18 19:30:10
接着上一篇,继续介绍struct sock。 sk_rmem_alloc, sk_wmem_alloc和sk_omem_alloc分别表示接收缓冲队列,发送缓冲队列及其它缓冲队列中已经分配的字节数,用于跟踪缓冲区的使用情况。 struct sock有一个struct sock_common成员,因为struct inet_timewait_sock也要用到它,所以把它单独归到一个结构体中,其定义如下: struct sock_common {  ......【阅读全文】
发布时间:2013-01-18 19:30:01
这次我们稍微做点改变,在172.16.48.1上创建一个TCP socket,并在5002端口上侦听。当我们继续在172.16.48.2上去尝试连接172.16.48.1的5002端口时,会得到一个肯定的响应 数据报。下面是来自172.16.48.1的响应数据,也就是TCP三次握手协议的第二个报文段: 数据报内容 含义基本TCP首部&nbs......【阅读全文】