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

全部博文(1334)

文章存档

2014年(108)

2013年(1059)

2012年(169)

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

 前面一篇文章中提到的两个示例程序,它们虽然对外发送了组播数据报,但它们实际上调用的是协议栈中的单播发送的代码。一般情况下,它们不会有什么问题,但是它们不是标准的组播程序,下面我们看看协议栈究竟是如何发送组播数据报的。    我们还是以发送UDP的组播数据报为例。前面已经讲过,IP选项IP_MULTICAST_IF确定组播发送的接口,在通过系统调用设置该选项时,参数只 需要一个本地网络接口的IP地址即可,myudp_sendmsg函数在发送组播数据报时,会以该选项设定的IP地址作为输出路由查询的源地址。    ......【阅读全文】

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

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

  前面讲到过,UDP socket和RAW socket上的connect调用的原理是相当简单的,它所做的操作只是通过路由规则和路由表等一些信息,在struct socket结构中填入一些有关对端服务器的信息,这样,以后向对端发送数据报时,就不需要每次进行路由查询等操作以确定对端地址信息和本地发送接口,应 用程序也就不需要每次传入对端地址信息(可以使用send而不使用sendto)。这也就是为什么UDP被称为无连接的协议。    但TCP socket上的connect系统调用就相对比较复杂了,下面我们逐步探索tcp socket上的conn......【阅读全文】

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

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

    TCP数据被封装在一个IP数据报中,TCP首部在数据报中的位置跟UDP首部一样,紧跟在IP首部后面。为简单起见,我们先看不计任何选项的TCP首部,它总共20字节,下面是其定义:    struct tcphdr {        __u16   source;        __u16   dest;    &......【阅读全文】

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

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

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

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

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

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

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

登录 注册