计算机网络课程报告--发送TCP数据报.docx
《计算机网络课程报告--发送TCP数据报.docx》由会员分享,可在线阅读,更多相关《计算机网络课程报告--发送TCP数据报.docx(9页珍藏版)》请在第一文库网上搜索。
1、计算机网络课程设计报告题目:发送TCP数据报一、问题描述(把你所选的题目及要求说一下)TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。TCP协议在网络层IP协议的基础上,向应用层用户进程提供可靠的、全双工的数据传输流。本课程设计的目的就是设计一个发送TCP数据包的程序,并根据本设计说明TCP数据包的结构以及TCP协议与IP协议的关系,使学生对TCP协议的工作原理有更深入的认识。运行环境:MicrosoftVisua1C+6.0二、概要设计(抽象数据类型定义)本程序的功能是填充一个TCP数据包,并发送给目的主机。1)以命令行形式运行:SendTCPsourse_ipsourse_por
2、tdest_ipdest_port其中,SendTCP为程序名;SOUrSe_ip为源端IP地址;SOUrSe_port为源端口;dcst_ip为目的IP地址;dest_pOrt为目的端口。2)其它的TCP头部参数请自行设定。3)数据字段为Thisismyhomeworkofnetwork,Iamhappy!,04)发送成功后在屏幕上输出“SendOK”。5)程序流程图如下:三、详细设计(主要算法和函数间的调用关系)本课程设计的目标是发送一个TCP资料包,可以利用原始套接字来完成这个工作。整个程序由初始化原始套接字和发送TCP数据包两个部分组成。1)使用原始套接字SOCKETsock;sock
3、=socket(AF_INET,SOCK_RAW,IPPROTO_IP);为使用发送接收超时设置,必须将标志位置位置为WSA_F1AG_OVER1APPED0在本课程设计中,发送TCP包时隐藏了自己的IP地址,因此我们要自己填充IP头,设置IP头操作选项。其中f1ag设置为ture,并设定IPJIDRINC1选项,表明自己来构造IP头。2)超时设置B1F1ag=TRUE;setsockopt(sock,IPPROTOIP,IPHDRINC1,(char*)&F1ag,sizeof(F1ag);Inttimeout=1000;setsockopt(sock,SO1SOCKET,SOSNDTIME
4、O,(char*)timeout,sizeof(timeout);在这里我们使用基本套接字SOJSOCKET,设置SO_SNDTIMEO表示使用发送超时设置,超时时间设置为IOOOms03)定义IP首部typedefstructiphdrUCHARhenver;/4位首部长度+4位IP版本号UCHARtos;8位服务类型TOSUSHORTtota1_1en;16位总长度(字节)USHORTident;16位标识USHORTfragandf1ags;3位标志位UCHARtt1;8位生存时间TT1UCHARproto;USHORTchecksum;U1ONGSourceIP;/8位协议(TCP,U
5、DP或其它)16位IP首部校验和/32位源IP地址U1ONGdestIP;/32位目的IP地址IP_HEADER;)4)定义TCP伪首部typedefstructpsd_hdr(U1ONGsaddr;源地址daddr;目的地址UCHARmbz;UCHARptc1;协议类型USHORTtcp1;TCP长度PSD_HEADER;5)定义TCP首部typedefstruct_tcphdrUSHORTthsport;16位源端口号USHORTth_dport;16位目的端口U1ONGthseq;/32位序列号U1ONGth_ack;/32位确认号UCHARth1enres;/4位首部长度/6位保留字U
6、CHARth_f1ag;/6位标志位USHORTth_win;16位窗口大小USHORTth_sum;/16位校验和USHORTth_urp;/16位紧急数据偏移量TCP_HEADER;6)计算校验和的子函数在填充数据包的过程中,需要调用计算校验和的函数CheCkSUm两次,分别用于校验IP头和TCP头部(加上伪头部),其实现代码如下:USHORTchecksum(USHORT*buffer,intsize)unsigned1ongcksum=0;whi1e(size1)(cksum+=*buffer+;size-=Sizeof(USHORT);)if(size)cksum+=*(UCHAR*
7、)buffer;cksum=(cksum16)+(cksum&Oxffff);cksum+=(cksum16);return(USHORT)(cksum);)四、调试分析(调式过程中出现的问题及如何改正)此图为第一次运行时出现的错误。错误原因为:当时没有输入源ip地址和目的ip地址。改正:在VC的工程设置菜单栏中输入源ip地址和目的ip地址,即可运行成功。五、心得体会(组内成员的分工及实习期间的体会)D成员分工张欣:代码的编写与修改,设计报告的数据流程图的设计刘凯莉:代码的调试与分析胡燕:设计报告的完成2)心得体会这次的课程设计让我们学到了很多东西。最大的收获是学会了TCP数据包的填充和发送。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 课程 报告 发送 TCP 数据