欢迎来到第一文库网! | 帮助中心 第一文库网-每个人都是第一
第一文库网
全部分类
  • 研究报告>
  • 学术论文>
  • 全科教育>
  • 应用文档>
  • 行业资料>
  • 企业管理>
  • 技术资料>
  • 生活休闲>
  • ImageVerifierCode 换一换
    首页 第一文库网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机网络课程报告--发送TCP数据报.docx

    • 资源ID:1118513       资源大小:91.16KB        全文页数:9页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    扫码关注公众号登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机网络课程报告--发送TCP数据报.docx

    计算机网络课程设计报告题目:发送TCP数据报一、问题描述(把你所选的题目及要求说一下)TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。TCP协议在网络层IP协议的基础上,向应用层用户进程提供可靠的、全双工的数据传输流。本课程设计的目的就是设计一个发送TCP数据包的程序,并根据本设计说明TCP数据包的结构以及TCP协议与IP协议的关系,使学生对TCP协议的工作原理有更深入的认识。运行环境:MicrosoftVisua1C+6.0二、概要设计(抽象数据类型定义)本程序的功能是填充一个TCP数据包,并发送给目的主机。1)以命令行形式运行:SendTCPsourse_ipsourse_portdest_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=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,SOSNDTIMEO,(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,UDP或其它)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位保留字UCHARth_f1ag;/6位标志位USHORTth_win;16位窗口大小USHORTth_sum;/16位校验和USHORTth_urp;/16位紧急数据偏移量TCP_HEADER;6)计算校验和的子函数在填充数据包的过程中,需要调用计算校验和的函数CheCkSUm两次,分别用于校验IP头和TCP头部(加上伪头部),其实现代码如下:USHORTchecksum(USHORT*buffer,intsize)unsigned1ongcksum=0;whi1e(size>1)(cksum+=*buffer+;size-=Sizeof(USHORT);)if(size)cksum+=*(UCHAR*)buffer;cksum=(cksum>>16)+(cksum&Oxffff);cksum+=(cksum>>16);return(USHORT)(cksum);)四、调试分析(调式过程中出现的问题及如何改正)此图为第一次运行时出现的错误。错误原因为:当时没有输入源ip地址和目的ip地址。改正:在VC的'工程设置菜单栏中输入源ip地址和目的ip地址,即可运行成功。五、心得体会(组内成员的分工及实习期间的体会)D成员分工张欣:代码的编写与修改,设计报告的数据流程图的设计刘凯莉:代码的调试与分析胡燕:设计报告的完成2)心得体会这次的课程设计让我们学到了很多东西。最大的收获是学会了TCP数据包的填充和发送。在对TCP数据包进行填充时,首先需要我们去充分了解它的数据结构,在这个过程中可以了解相应字节上应该存放的内容和它们的功能。在实现TCP数据包的发送中,第一次深深接触了网络编程接口SoCket套接字的相关知识,虽然本次的课程设计只用到了其中一小部分知识,但这并不会影响对这方面知识的全面了解。总之这次的课程设计,让我们对网络中的数据收发有了一定的了解,并激发了对计算机网络的浓厚兴趣。六、用户手册(系统的使用方法介绍)"C:UsersAdministratorDesktopDebug1.exe"192.168.0.sendokJPressanykeytocontinue源代码如下:inc1ude<stdio.h>#inc1ude<ws2tcpip.h>#inc1ude<time.h>#inc1ude<windows.h>inc1ude<string.h>#inc1ude<std1ib.h>#inc1ude<iostream.h>#pragmacomment(1ib,*ws2-32.1ib*)idefineIPVER4/IP协议预定defineMAX_BUFF_1EN65500发送缓冲区最大值typedefstructiphdrUCHARh_ver1en;UCHARtos;USHORTtota1_1en;USHORTident;定义IP首部/4位首部长度,4位IP版本号/8位服务类型TOS16位总长度(字节)/16位标识USHORTfragandf1ags;UCHARtt1;UCHARproto;USHORTchecksum;U1ONGSourceIP;U1ONGdestIP;ipjeader;/3位标志位8位生存时间TT1/8位协议(TCP,UDP或其它)/16位IP首部校验和/32位源IP地址32位目的IP地址typedefstructtsdhdr定义TCP伪首部U1ONGsaddr;源地址U1ONGdadc1r;目的地址UCHARmbz;没用UCHARptc1;协议类型USHORTtcp1;TCP长度PSD_HEADER;typedefstructtcphdr定义TCP首部USHORTth_sport;USHORTth_dport;U1ONGth_seq;U1ONGth_ack;UCHARth1enres;UCHARth_f1ag;USHORTth_win;USHORTth_sum;USHORTth_urp;TCP_HEADER;/16位源埠16位目的端口/32位序列号/32位确认号4位首部长度/6位保留字/6位标志位16位窗口大小16位校验和16位紧急数据偏移量/CheckSurn:计算校验和的子函数USHORTchecksum(USHORT*buffer,intsize)unsigned1ongcksum=0;whi1e(size>1)(cksum+=*buffer+;size-=Sizeof(USHORT);)if(size)(cksum+=*(UCHAR*)buffer;)cksum=(cksum»16)+(cksum&Oxffff);cksum+=(cksum»16);return(USHORT)(cksum);)intmain(intargc,char*argv)(WSADATAWSAData;SOCKETsock;ip_headeripHeader;TCP_HEADERtcpHeader;PSD_HEADERpsdHeader;charSendto_BuffMAX_BUFF_1EN;发送缓冲区unsignedshortCheckBuffMAX_BUFF_1EN;检验和缓冲区constchartcp_send_data=zzThisismyhomeworkofnetwort,Iamhappy!”);BOO1f1ag;intrect,Time0ver;if(argc!=5)(printf(*Useage:SendTcpsoruceipsource_portdest_ipdest_portn");returnfa1se;)if(WSAStartUP(MAKEWoRD2),OSAData)!=0)(printf(xzWSAStartupError!nz,);returnfa1se;)if(sock=WSASocket(AF_INET,SoCK_RAW,IPPROT(1RAW,NU11,0,WSA_F1AG_OVER1APPED)=INVA1ID_SOCKET)printf(z,SocketSetupError!nz,);returnfa1se;)f1ag=true;if(setsockopt(sock,IPPROTO_IP,IP_HDRINC1,(char*)f1ag,sizeof(f1ag)=SOCKET_ERROR)(printf(*setsockoptIPHDRINC1error!nz,);returnfa1se;)nTimeOver=1000;if(setsockopt(sock,SO1SOCKET,SO_SNDTIMEO,(char*)&nTimever,sizeof(nTimever)=SOCKETERROR)(printf(*setsockoptSOSNDTIMEOerror!,);returnfa1se;)填充IP首部ipHeadcr.h_ver1en=(IPVER<<4sizeof(ipHeader)sizeof(unsigned1ong);ipHeader.tos=(UCHAR)O;ipHeadcr.tota11en

    注意事项

    本文(计算机网络课程报告--发送TCP数据报.docx)为本站会员(lao****ou)主动上传,第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第一文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 001doc.com网站版权所有   

    经营许可证编号:宁ICP备2022001085号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



    收起
    展开