网站大量收购独家精品文档,联系QQ:2885784924

网络编程原始套接字.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程原始套接字 SOCKET_STREAM流式套接字 SOCKET_DGRAM SOCKET_RAW原始套接字 IPPROTO_IP IP 协议 IPPROTO_ICMP INTERNET控制消息协议,配合原始套接字可以实现ping的功能 IPPROTO_IGMP INTERNET网关效劳协议,在多播中用到 在 AF_INET 地址族下,有 SOCK_STREAM、SOCK_DGRAM、SOCK_RAW 三种套接字类型。 SOCK_STREAM也就是通常所说的TCP,而SOCK_DGRAM那么是通常所说的UDP,而SOCK_RAW 那么是用于提供一些较低级的控制的;第3个参数依赖于第2个参数,用于指定套接字所用的特 定协议,设为。表示使用默认的协议。 希望各位参舆,it来的J慎便up 一下. RAW SOCKET能够对较低层次的协议直接访问,网络监听技术很大程度上依赖于它。该文 介绍了利用RAW SOCKET捕获网络底层数据包的步骤和方法,并开发了一个程序模型来进一步 探讨了利用RAW SOCKET捕获数据包的方法。 【关键词】RAW SOCKET;捕获;数据包 1引言 随着信息技术的快速开展,网络已成为信息交换的主要手段,一些网络新业务在不断地兴 起,如电子商务、移动支付等,这些都对网络平安提出了较高的要求。与此同时,黑客对网络的 攻击从未停止,网络的平安问题变得日趋严峻。 很多网络攻击都是从监听开始的,网络监听最重要一步就是捕获局域网中的数据帧,因此, 研究数据捕获技术对于保障网络平安有着重要的意义。 2 RAW SOCKET 简介 同一台主机不同进程可以用进程号来唯一标识,但是在网络环境下进程号并不能唯一标识 该进程。TCP/IP主要引入了网络地址、端口和连接等概念来解决网络间进程标识问题。套接字 (Socket)是一个指向传输提供者的句柄,TCP/IP协议支持3种类型的套接字,分别是流式 套接字、数据报式套接字和原始套接字。 流式套接字(SOCKET_STREAM)提供了面向连接、双向可靠的数据流传输效劳。 数据报式套接字(SOCKET_ DGRAM)提供了无连接效劳,不提供无错保证。 原始套接字(SOCKET_RAW)允许对较低层次的协议直接访问,比方工P、ICMP协议,它 常用于检验新的协议实现,或者访问现有效劳中配置的新设备,因为RAW SOCKET可以自如地 控制Windows T的多种协议,能够对网络底层的传输机制进行控制,所以可以应用原始套接字 来操纵网络层和传输层应用。比方,我们可以通过RAW SOCKET来接收发向本机的ICMP、IG MP协议包,或者接收TCP/IP栈不能够处理的工P包,也可以用来发送一些自定包头或自定协 议的工P包。网络监听技术很大程度上依赖于SOCKET RAWo 3 RAW SOCKET 编程 要使用原始套接字,必须经过创立原始套接字、设置套接字选项和创立并填充相应协议头 这三个步骤,然后用send、WSASend函数将组装好的数据发送出去。接收的过程也很相似, 只是需要用recv或WSARecv函数接收数据。下面介绍使用RAW SOCKET编程的几个步骤。 3.1创立原始套接字 我们可以用socket或WSASocket函数来创立原始套接字,因为原始套接字能直接 控制底层协议,因此只有属于管理员〃组的成员,才有权创立原始套接字。下面是用socket 函数创立原始套接字的代码。 SOCKET sock; Sock = socket (AF [NET, SOCK RAW, IPPROTO UDP); 上述创立原始套接字的代码使用的是UDP协议,如果要使用其它的协议,比方1CMP、 IGMP IP等协议,只需要把相应的参数改为IPPROTO_ICM、1PPROTO_ 1GMP、IPPROTO_ IP就可以了。另夕卜,IPPROTO_UDP、IPPROTO_IP IPPROTO_RAW这几个协议标志要求使用 套接字选项IP_HDRINCL,而目前只有Windows 2000和Windows XP提供了对IP_HDRIN CL的支持,这意味着在Windows 2000以下平台创立原始套接字时是不能使用IP、UDP、TC P协议的。 设置套接字选项 创立了原始套接字后,就要设置套接字选项,这要通过setsocketopt函数来实现, setsocketopt函数的声明如下: int setsocketopt ( SOCKET s, int level, int optname, const char FAR *optvalz int optlen 在该声明中,参数s是标识套接口的描述字,要注意的是选项对这个套接字必须是有效的。 参数Level说明选项定义的层次,对TCP/IP协议族而言

文档评论(0)

scj1122111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8113057136000004

1亿VIP精品文档

相关文档