网络课程设计任务书(完整)_第1页
网络课程设计任务书(完整)_第2页
网络课程设计任务书(完整)_第3页
网络课程设计任务书(完整)_第4页
网络课程设计任务书(完整)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络原理发送TCP 数据包 年 月 日 至 年 月 日学 生 姓 名班学成级号绩指 导 教 师 ( 签 字 )年 7 月 日1湖南工业大学20092010 学年第 二 学期计算机与通信课程名称:设计题目:学院(系、部) 通信工程 专业 071 班级计算机网络原理发送 TCP数据包完成期限:自 2010 年 6 月 28 日至 2010 年 7 月 02 日共 1 周内1.本程序的功能是填充一个 TCP数据包,并发送给目的主机。2.以命令行形式运行:SendTCP source_ip source_port dest_ip dest_port其中 SendTCP为程序名;source_ip

2、为源 IP地址; source_port 为源端口;dest_ip为目的 IP地址; dest_port为目的端口。3.其他的 TCP头部参数自行设定。4.数据字段为“This is my homework of ”.5.成功发送后在屏幕上输出“send ”。容及任务进度安排查阅资料、算法分析设计、完成流程图的设计了解初始化原始套接字1 谢希仁.计算机网络().电子工业出版社.2008主要参考资料2 吴功宜.计算机网络 ().清华大学出版社.20083 吴功宜.计算机网络课程设计.机械工业出版社.2005(校图书馆:TP393.466)4 吴英.计算机网络软件编程指导书.清华大学出版社.200

3、85 徐明伟.计算机网络原理实验教程.机械工业出版社.2008指导 教师 年年月月日日系( 教研室)主 任( 21.本程序的功能是填充一个 TCP数据包,并发送给目的主机。2.以命令行形式运行:SendTCP source_ip source_port dest_ip dest_port其中 SendTCP为程序名;source_ip为源 IP地址; source_port 为源端口;dest_ip为目的 IP地址; dest_port为目的端口。3.其他的 TCP头部参数自行设定。4.数据字段为“This is my homework of ”.5.成功发送后在屏幕上输出“send ”。主要

4、要求:1算法正确,程序运行正常、输出清晰。2遵循良好的编程规范,程序要有合适的注释。34设计说明书逻辑清晰,主要算法用流程图表述,书写规范。时间安排与完成情况6 月 28 号, 查找好相关资料、理解原理、并分配好任务6 月 29 号, 熟悉了解初始化原始套接字的过程6 月 30 号, 熟悉并且了解发送数据包的过程7 月 01 号, 把两者结合起来,实现程序的功能7 月 02 号,编写调试,并且撰写课程设计报告3设计一个发送 TCP数据包的程序,并根据本设计说明 TCP数据包的结构以及 TCP协议与 IP TCP协议的工作原理有更深入的认识。本程序的功能是填充一个 TCP数据包,并发送给目的主机

5、。 以命令行形式运行:Send TCP source_ip source_port dest_ipdest_port SendTCP为程序名;source_ip为源 IP地址;source_port为源端口; dest_ip为目的 IP地址; dest_port为目的端口。 其他的 TCP头部参数自行设定。 数据字段为“This is my homework of ”. 成功发送后在屏幕上输出“send 三、设计分析:四、设计思想:本课程设计的目标是发送一个 TCP 数据包,可以利用原始套接字来完成这个工作。整个程序由初始化原始套接字和发送 TCP 数据包两个部分组成。sock=WSASocc

6、ket(AF_INET,SOCK_RAW,IPPROTO_IP,NULL,0,WSA_FLAG_OVERLAPPED);设置 SOCK_RAW标志,表示我们声明的是一个原始套接字类型。为 使 用 发 送 接 收 超 时 设 置 , 必 须 将 标 志 位 置 位 置 为4。在本课程设计中,发送 TCP 包时隐藏了自己的IP IP IP flag设置为 ,并设定 IP_HDRINCL 选项,表明自己来构造 IP 头。注意,如果设置IP_HDRINCL administratorHKEY_LOCAL_MACHINESystemCurrentControlSetServicesAfdParamete

7、r修改键:DisableRawSecurity(类型为 1。如果没有,就添加。setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (char *)&Flag, sizeof(Flag);int ;SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,在这里我们使用基本套接字 ,设置 SO_SNDTIMEO 表示使用发送超时设置,超时时间设置为 。在填充数据包的过程中,需要调用计算校验和的函数checksum 两次,分别用于校验IP头和 TCP while(size 1)size -=sizeof(USHORT);if(size )5cksu

8、m = (cksum 16) + (cksum & 0 xffff);cksum += (cksum 16);return (USHORT)(cksum);构造原始套接字,并初始化填充头部计算头部检验和构造TCP伪头部填充TCP头部计算TCP头部校验和发送TCP数据报结束6#define MAX_BUFF_LEN 65500 /发送缓冲区最大值typedef struct ip_hdr/8 位服务类型TOS/16 位总长度(字节)/16 位标识/8 位生存时间 TTL/8位协议 UDP 或其他)/16位 IP 首部校验和/32 位源IP 地址USHORT th_sport;USHORT th_

9、dport;ULONG th_seq;ULONG th_ack;/16 位目的端口/32位序列号/32位确认号7/4 位首部长度/6 位保留字/6位标志位unsigned long cksum=0;if(size)cksum += *(UCHAR*)buffer;cksum += (cksum 16);TCP_HEADER tcpHeader;PSD_HEADER psdHeader;char Sendto_BuffMAX_BUFF_LEN; /发送缓冲区BOOL flag;int rect,nTimeOver;if (argc!= 5)8printf(Useage: SendTcp soru

10、ce_ip source_port dest_ip dest_port n);return false;if (WSAStartup(MAKEWORD(2,2), &WSAData)!=0)printf(WSAStartup Error!n);flag=true;if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag)=printf(setsockopt IP_HDRINCL error!n);if(char*)&nTimeOver,ipHeader.ident=0;/计算IP 头部检验和9psdHeader.ptcl

11、=ipHto;/TCP 长度和保留位tcpHeader.th_flag=2;16 是 ACK探测 等等/修改这里来实现不同的标志位探测,2是 SYN1 是/FIN,/发送数据报的目的地址SOCKADDR_IN dest;10dest.sin_family=AF_INET;dest.sin_port=htons(atoi(argv4);printf(send error!:%dn,WSAGetLastError();else七、实验运行结果:所以进入 dossendtcp 12 25,回车运行,运行截图如下:11在对 TCP 在

12、这个过程中可以了解相应字节上应该存放的内容和它们的功能。由于本次的课程设计只要求填充一个 TCP 数据包,然后将其发送出去,使用的数据发送函数是 ,成功地完成调用只能保证数据已经从本地发送出去,并不意味着数据传送到达目的地。经过此次计算机网络原理课程设计我学到了很多知识和学习方法,更加深了我对计算机网络原理课程的理解。在此次的计算机网络课程设计中,我们IP 数据包解析和发送 TCP 于时间局限,最后我只选择了 TCP 数据包的发送作为课程设计答辩。在开始编写程序的时候,我们束手无策,后来在参考了别人的程序之后,我开始有了一点头绪,于是开始动手编写程序了,幸好我之前 C+学得不错,在编写完部分程序以后,经调试慢慢的修改了一些错误,但是最终使得程序还是能够运行!此次课程设计,对我来说不仅是一种量的升级,更是一种质的升级。虽然在此次过程中我还是遇到了不少的问题,但是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论