计算机网络课程设计报告--利用Socket实现双机通讯.docx

上传人:p** 文档编号:683955 上传时间:2024-01-10 格式:DOCX 页数:27 大小:147.12KB
下载 相关 举报
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第1页
第1页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第2页
第2页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第3页
第3页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第4页
第4页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第5页
第5页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第6页
第6页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第7页
第7页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第8页
第8页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第9页
第9页 / 共27页
计算机网络课程设计报告--利用Socket实现双机通讯.docx_第10页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机网络课程设计报告--利用Socket实现双机通讯.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计报告--利用Socket实现双机通讯.docx(27页珍藏版)》请在第壹文秘上搜索。

1、课程设计报告20142015学年第一学期课程名称计算机网络设计题目利用SoCket实现双机通讯一.设计任务2二.开发环境ViSUaIC+简介2三.TCP简介及特点原理3四WinSOCket简介及特点原理7五.设计方案8六.系统的原理框图和程序流程图H七.实验中的问题错误!未定义书签。八.核心程序代码错误!未定义书签。九、实验结果及分析错误!未定义书签。十、设计总结错误!未定义书签。十一、参考文献错误!未定义书签。一、设计任务一、1.利用WiIISOCk来实现双机通信,理解TCP状态机图。2.要求使用WinSOCk编程,采用其中的TCP面向连接方式,实现文本数据的交换。二、ViSlJaIC+简介

2、VisualC+是一个功能强大的可视化软件开发工具。自1993年MiCrOsoft公司推出ViSUalC+1.0后,随着其新版本的不断问世,ViSUalC+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VisualC+.NET(VisualC+7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。所以实际中,更多的是以ViSUalC+6.0为平台。VisualC+它大概可以分成三个主要的部分:1、DeveIoperStudio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Micro

3、softVisualC+”,所以很多人理所当然的认为,那就是ViSUalC+了。其实不然,虽然DeveloPerStUdiO提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,DeveloPerStUdiO并不是专门用于VC的,它也同样用于VB,VJ,VID等ViSUalStUdiO家族的其他同胞兄弟。所以不要把DeveloperStudio当成ViSUalC+,它充其量只是ViSUalC+的一个壳子而已。2、MFCo从理论上来讲,MFC也不是专用于ViSUalC+,BorlandC+,C+B5lder和Syman

4、teCC+同样可以处理MFC。同时,用ViSUalC+编写代码也并不意味着一定要用MFC,只要愿意,用ViSUalC+来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,ViSUalC+本来就是为MFC打造的,ViSUalC+中的许多特征和语言扩展也是为MFC而设计的,所以用ViSUalC+而不用MFC就等于抛弃了ViSUalC+中很大的一部分功能。但是,VisualC+也不等于MFCo3PlatformSDK。这才是VisualC+和整个VisualStudio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,PlatformSDKlMicrosoftCC+译器为核心(不是ViS

5、UalC+,看清楚了),配合MASM,辅以其他一些工具和文档资料。上面说到DeVeIOPerStUdiO没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成VisualStudio的基石。三、TCP简介及特点原理1 .什么是TCPTCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transportlayer)通信协议。在简化的计算机网络OSl模型中,它完成第四层传输层所指定的功能。在因特网协议族(InternetPrOtc)ColSUite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层

6、之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对己成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用

7、一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。在拥塞控制上,采用慢启动算法。2 .TCP功能提供计算机程序间连接、检测和丢弃重复的分组、完成数据报的确认、流量控制和网络拥塞。3 .TCP所提供服务的主要特点(1)面向连接的传输;(2)端到端的通信;(3)高可靠性,确保传输数据的正确性,不出现丢失或乱序;(4)全双工方式传输;(5)采用字节流方式,即以字节为单位传输字节序列;(

8、6)紧急数据传送功能。4 .TCP支持的服务器类型不管怎样,TCP/IP是一个协议集。为应用提供一些“低级”功能,这些包括IP、TCP、UDPo其它是执行特定任务的应用协议,如计算机间传送文件、发送电子邮件、或找出谁注册到另外一台计算机。因此,最重要的商业TCP/IP服务有:令文件传送FileTransfer令远程登录Remotelogin令计算机邮件Mail令网络文件系统(NFS)令远程打印(Remoteprinting)远程执行(Remoteexecution)令名字服务器(Nameservers)令终端服务器(Terminalservers)5 .TCP的端口号TCP段结构中端口地址都是

9、16比特,可以有在065535范围内的端口号。对于这65536个端口号有以下的使用规定:(1)端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的。任何TCP/IP实现所提供的服务都用11023之间的端口号,是由IANA来管理的;(2)客户端只需保证该端口号在本机上是惟一的就可以了。客户端口号因存在时间很短暂又称临时端口号;(3)大多数TCP/IP实现给临时端口号分配10245000之间的端口号。大于5000的端口号是为其他服务器预留的。6 .TCP协议是如何确保数据传输高可靠性为了保证可靠性,发送的报文都有递增的序列号。序列号和确认号用来确保传输的可靠性。此外,对每个报文都

10、设立一个定时器,设定一个最大时延。对那些超过最大时延仍没有收到确认信息的报文就认为已经丢失,需要重传。7 .TCP的服务流程TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相

11、似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCPoTCP通过下列方式来提供可靠性: 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)TCP如何确定报文段的长度。 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒 TCP将保持它首部和数据的检验和。这

12、是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。 既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。 TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。两个应用程序通过TCP连接交换8

13、bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服务(bytestreamservice)。如果一方的应用程序先传10字节,又传20字节,再传50字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分4次接收这80个字节,每次接收20字节。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCll字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。这种对字节流的处理方式与Unix操作系统对文件的处理方式很相似。Unix的

14、内核对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对UniX的内核来说,它无法区分一个二进制文件与一个文本文件。TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK0这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。第一次握手:建立连接时,客户端发送SYN包(SEQ=X)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=X+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_REC

15、V状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器时入Established状态,完成三次握手。四、WillSoCket简介及特点原理4.1%什么是SOCket所谓SOCket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。SoCket接口是TCP/IP网络的API,SoCket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解UniX系统的输入和输出的话,就很容易了解SoCketTo网络的SoCket数据传输是一种特殊的I/O,SoCket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用SocketO,该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)0流式是一种面向连接的SoCket,针对于面向连接的TCP服务应用;数据报式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 网络与通信

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

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