Chinaunix首页 | 论坛 | 博客
  • 博客访问: 542078
  • 博文数量: 102
  • 博客积分: 2146
  • 博客等级: 大尉
  • 技术积分: 1146
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-09 17:32
文章分类

全部博文(102)

文章存档

2015年(14)

2014年(24)

2013年(5)

2012年(30)

2011年(16)

2010年(13)

发布时间:2013-01-07 16:42:31

可以接收链路层MAC帧的原始套接字        前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。提醒一点,在用这种方式构造原始IP报文时,第三个参数protocol不能用IPPROTO_IP,这样会让系统疑惑,不知道该用什么协议来伺候你了。        今天我们介绍原始套接字的另一种用法:直接从链路层收发数据帧,听起来好像很神奇的样子。在Linux系统中要从链路层(MAC)直接收发数帧,比较普遍的......【阅读全文】

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

发布时间:2013-01-07 16:42:10

如何从链路层直接发送数据帧       本来以为这部分都弄完了,结果有朋友反映说看了半天还是没看到如何从链路层直接发送数据。因为上一篇里面提到的是从链路层“收发”数据,结果只“收”完,忘了“发”,实在抱歉,所以就有这篇续出来了。       上一节我们主要研究了如何从链路层直接接收数据帧,可以通过bind函数来将原始套接字绑定到本地一个接口上,然后该套接字就只接收从该接口收上来的对应的数据包。今天我们用原始套接字来手工实现链路层ARP报文的发送和接收,以便大家对原始套接字有更深刻的掌握和理解。   ......【阅读全文】

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

发布时间:2013-01-07 16:40:49

基于原始套接字编程        在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证:       也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸如源、目的IP,源、目的端口等等。        今天我们讨论一下原始套接字的程序开发,用......【阅读全文】

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

发布时间:2012-12-19 14:16:58

    为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP是因特网的标准协议。但ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。......【阅读全文】

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

发布时间:2012-12-19 10:49:00

    CIDR消除了传统的A类,B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增长。CIDR把32位的IP地址划分为2部分。前面的部分是网络前缀,用来指明网络,后面的部分则用来指明主机。因此CIDR使IP地址从三级编址(使用子网掩码)又回到了两级编址。    CIDR用斜线记法,在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。    CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块。我们只要知道CIDR地址块中的任何一个地址,就可......【阅读全文】

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

登录 注册