Linux高级Socket编程

设置套接字函数:

应用:

1.数据收发时限设置

2.修改收发缓冲区

3.广播设置

4.直接数据复制

为了提升系统性能,在发送或接受数据时,可以主动设置数据不经历由缓冲区到套接字缓存区的拷贝。

 

Select技术:

 原始套接字技术:

原始套接字是一种套接字底层技术,它工作在网络层。利用原始套接字可以完成如下功能。

  • 设置网卡为混杂模式,嗅探当前网路流经本网卡的所有数据包。
  • 构造各种数据包(IP,ICMP,TCP,UDP等),并进行发送。
  • 进行新协议的验证。 

原始套接字可用于木马中的通信模块,伪造IP地址,拒绝服务攻击,数据包嗅探。

原始套接字的创建:

数据发送:

在原始套接字中,执行数据发送前要条用setsocketopt函数进行套接字的首部设定:

例子:

 

广播技术:

ARP(Address Resolution Protocol)和NTP(Network Time Protocol)都属于广播通信。

   ARP是局域网中的地址解析协议,利用这个协议,可以找出IP地址到MAC地址的映射关系。当主机A准备与主机B通信时,如果只知道主机B的IP地址,则主机A向整个全网发送一个ARP请求,询问IP地址为XXXX的主机,如果主机B收到就会产生回应。

 

原理解析:

要进行广播通信,首先要理解广播地址。在IP地址中,如果最后一个数字是255,则一定是一个广播地址。

  • 网络广播地址:网络广播地址在没有进行子网划分的网络内广播,由于当强的网络均涉及子网划分,故此种地址很少存在
  • 受限广播地址:以255.255.255.255组成的广播地址,在当前路由器均不转发此类广播
  • 子网广播地址:子网广播地址是一种常用的广播方式,它是指在一个具体的子网内进行广播,比如192.168是网络ID,那么192.168.1.255就是子网192.168.1的广播
  • 全部子网广播地址:是指所有子网络的广播,以上一个为例,全部子网广播地址是192.168.255.255 

 

广播要采用UDP的方式,具体流程如下:

例子:

 

组播技术:

组播可以实现小范围内的互联,在发送者和每一个接受者之间时间点对多点的网络连接,是广播通信的一种变种。

根据IP地址的规定,D类地址为组播地址,其网络号为固定的1110,第4到31位定义了某一特殊的组播地址,范围为244.0.0.0~239.255.255.255。其中244.0.0.0~244.0.0.255的地址,它们大多是为了特殊的目的保留的,不建议使用。

套接字的基本属性:组播参数对应5个参数,通过setsockopt设置

主要流程:

例子:

 

 

原文链接:https://www.cnblogs.com/coder2012/archive/2013/04/02/2995889.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/32333

(0)
优速盾-小U的头像优速盾-小U
上一篇 2025年5月26日 19:04
下一篇 2025年5月27日 00:25

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml