《原始套接字編程》课程设计报告.doc

《原始套接字編程》课程设计报告.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《原始套接字編程》课程设计报告

《原始套接字编程》 课程设计报告 姓名:王延兴 班级:9班 学号 《原始套接字编程》课程设计报告 班级:11级9班 学号 姓名:王延兴 设计任务分析 (一)实验环境 操作系统:Windows 编程工具及集成开发环境:VC++ (二)实验目的和要求 实验目的:掌握原始套接字编程。 实验要求:完成下列功能: (1)利用RAW SOCKET捕获网络数据包的程序模型 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个参数,用于指定套接字所用的特定协议,设为0表示使用默认的协议。 RAW SOCKET能够对较低层次的协议直接访问,网络监听技术很大程度上依赖于它。 (2)能够抓取第二节课的并发服务器程序的服务器端或客户端的应用层数据,即:时间值,打印输出。 设计方案 同一台主机不同进程可以用进程号来唯一标识,但是在网络环境下进程号并不能唯一标识该进程。TCP/IP主要引入了网络地址、端口和连接等概念来解决网络间进程标识问题。套接字(Socket)是一个指向传输提供者的句柄,TCP/IP协议支持3种类型的套接字,分别是流式套接字、数据报式套接字和原始套接字。 流式套接字(SOCKET_STREAM)提供了面向连接、双向可靠的数据流传输服务。数据报式套接字(SOCKET_ DGRAM)提供了无连接服务,不提供无错保证。原始套接字(SOCKET_RAW)允许对较低层次的协议直接访问,比如IP、 ICMP协议,它常用于检验新的协议实现,或者访问现有服务中配置的新设备,因为RAW SOCKET可以自如地控制Windows下的多种协议,能够对网络底层的传输机制进行控制,所以可以应用原始套接字来操纵网络层和传输层应用。比如,我们可以通过RAW SOCKET来接收发向本机的ICMP、IGMP协议包,或者接收TCP/IP栈不能够处理的IP包,也可以用来发送一些自定包头或自定协议的IP包。网络监听技术很大程度上依赖于SOCKET_RAW。 本实验采用原始套接字进行捕获通过本主机的包并对本主机的包进行处理。 各个函数功能: char * GetProtocol(int proto) //获得协议类型 send(CientSocket, tmp, (int)strlen(tmp), 0);发送数据 recv(CientSocket, RecvBuffer, MAX_PATH, 0);接收数据 WSAStartup(MAKEWORD(2,2), Ws) 初始化套接字类库 socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 创建套接字 bind(ServerSocket, (struct sockaddr*)LocalAddr, sizeof(LocalAddr));绑定套接字 listen(ServerSocket, 10);侦听,队列大小为10 设计思想: 采用原始套接字进行捕获通过本主机的包并对本主机的包进行处理。 详细设计 头文件ip.h: 详细代码: //定义标准的的TCP头和IP头 #define URG 0x20 #define ACK 0x10 #define PSH 0x08 #define RST 0x04 #define SYN 0x02 #define FIN 0x01 typedef struct _iphdr //定义IP首部

文档评论(0)

yxnm + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档