Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1412784
  • 博文数量: 1334
  • 博客积分: 645
  • 博客等级: 上士
  • 技术积分: 5762
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-25 16:56
文章分类

全部博文(1334)

文章存档

2014年(108)

2013年(1059)

2012年(169)

发布时间:2013-01-18 19:30:19

  现在我们来看看TCP选项,以及TCP客户端发起连接请求时,发送的第一个TCP包(三次握手协议)的内容。    TCP选项紧跟在基本TCP首部后面,计入首部中的“长度”字段。其基本格式定义是8bit类型+8bit长度+nbit内容,多个选项依次排列。类型用于说明该选项的类型,在2.6.16内核的实现中,有如下的类型定义:    #define TCPOPT_NOP          1    #defin......【阅读全文】

阅读(167) | 评论(0) | 转发(0)

发布时间:2013-01-18 19:30:13

  用户使用socket系统调用编写应用程序时,通过一个数字来表示一个socket,所有的操作都在该数字上进行,这个数字称为套接字描述符。在系统调用 的实现函数里,这个数字就会被映射成一个表示socket的结构体,该结构体保存了该socket的所有属性和数据。在内核的协议中实现中,关于表示 socket的结构体,是一个比较复杂的东西,下面一一介绍。    struct socket。    这是一个基本的BSD socket,我们调用socket系统调用创建的各种不同类型的socket,开始创建的都是它,到后面,......【阅读全文】

阅读(224) | 评论(0) | 转发(0)

发布时间: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 {   ......【阅读全文】

阅读(241) | 评论(0) | 转发(0)

发布时间:2013-01-18 19:30:05

 在实验环境中,我们试着在172.16.48.2上写了一个最为简单的TCP客户端程序,试图连接172.16.48.1上的5002端口,发出TCP 三次握手的第一个请求数据报。但是172.16.48.1并没有在该端口上侦听的socket,所以这个连接尝试注定是要失败的。下面是客户端程序:    #include <stdio.h>    #include <sys/types.h>    #include <sys/socket.h>  &......【阅读全文】

阅读(298) | 评论(0) | 转发(0)

发布时间: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......【阅读全文】

阅读(251) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册