您好,欢迎访问三七文档
TCP/IP的认识摘要:基于TCP/IP的数据传输技术的分析关键字:TCP/IP、数据传输正如我们所知,计算机网络是利用传输介质、通信设施和网络通信协议,把分散在不同地点、具有独立功能的计算机设备互联起来,实现资源共享的计算机系统的集合。而计算机网络TCP/IP协议,则是由Kahn在1947年为解决APPANET网中异种计算机互联问题制定。1990年APPANET推出应用并演变为Internet后,TCP/IP协议就成为Internet的语言。一、关于TCP/IP协议TCP/IP协议是一个免费的协议,其与计算机硬件与操作系统无关,TCP提供可靠的端到端数据传输,可以屏蔽通信子网的差异,应用层协议内容丰富。TCP/IP协议结构分为四个层次,从低到高分别为网络接口层,IP层,TCP层,应用层。IP层接收由更低层(网络接口层,例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。如果IP数据包中有已经封装好的TCP数据包,那么IP将把它们传送到TCP层,TCP会对数据包进行错误校验及排序,而损坏的数据包则会被重传。TCP提供了一个完全可靠的、面向连接的、全双工的、流传输服务。二、进行数据传输为了能够更可靠的传输数据,TCP/IP采取了一系列包括三次握手、滑动窗口的确认和重传机制等,其中主要通过三次握手来实现TCP的连接。当客户机想服务器发送syn(序号同步)请求报文时,服务器将发送一个(ack,syn)应答报文,同时创建一个控制结构,将其加入到一个队列中,等待客户机的ack(确认字段可用)报文;接收到客户机的ack报文后,双方都进入连接状态,就可以发送数据;如果服务器在一段时间内没有收到应答信息,则控制被释放。而在本学期,我们设计了一个基于TCP/IP的Windows程序设计。也学到了基于TCP/IP的数据传输的基本步骤。其实TCP/IP规则下的数据传输可以分为五个部分:即数据在TCP规则下的封装;不同网络间的传输;防火墙的安全检查;在Internet中寻找目的地址;通过目的地的防火墙进入目的地系统。正式由于这样一层层严谨的程序和TCP封装数据的性质,所以当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。首先,TCP把信息分成很多个数据包,我们称之为TCPPacket。每一个数据包用一个序号和一个接收地址来标定。此外,TCP还插入一些纠错信息。由于数据要通过INTERNET,所以还有一些安全保护的标志。在另一端,TCP接收到数据包并核查错误。如果有错误发生,TCP可以要求重发这个特定的数据包。只要所有的数据包都被正确地接收到,TCP将用序号来重构原始信息。把数据分解成数据包有很多的好处。首先,它允许INTERENT让很多不同的用户在同一时间用同一通讯线路。因为这些数据包不必一起输送,所以通讯线路可以载着所有类型的数据包按它们自己的路径从一地到另一地。就如一条高速公路上,各个汽车(即使它们开向不同的地方)都在公共道路上行驶。当然,数据不可能只在一个网络里传输,而是要通过很多网络到达目的地,这就需要路由器了。路由器是互联网的主要节点设备,它的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。控制数据流动的计算机通常可以找到另一条路由。事实上,在单一数据传输中,各个数据包完全可能沿不同的路由传输。这也意味着:当条件改变时,网络可获得当时最好的连接。例如,当网络的某一特定部分过载,数据包可以改变路线去走那些比较空闲的线路。用数据包传输的另一个好处是,当某处出错,只须重新传送单个数据包,而不是整个信息。这样会大大加快INTERNET的传输总速度。比路由器更简单的决策信息转发的是交换机。从过滤网络流量的角度来看,路由器的作用与交换机和网桥非常相似。但是与工作在网络物理层,从物理上划分网段的交换机不同,路由器使用专门的软件协议从逻辑上对整个网络进行划分。TCPPacket在进入INTERNET之前,还要经过防火墙的检查,确保数据的安全性和通过INTERNET,TCPPacket找到可以到达数据传输的目的地。TCPPacket在到达目的IP的时候,还要经过一次防火墙的检查,同样是为了阻止那些非法的数据进入电脑系统。这时的防火墙会根据端口的设置来决定数据是否可以进入。端口在计算机编程上称为Socket接口。TCP/IP协议集成到操作系统的内核中,这就相当于在操作系统中引入了一种新的输入/输出接口技术,因为在TCP/IP协议中引入了一种称之为Socket(套接字)应用程序接口。有了这样一种接口技术,一台计算机就可以通过软件的方式与任何一台具有Socket接口的计算机进行通信。。通过防火墙的检查后,数据被目的地计算机接收到目的地计算机会像数据发送者提供信息,说明数据接受的情况。如果数据有损失,会要求重发损失的数据。TCP发送的报文段是交给IP层传送的,但是IP提供的是不可靠的传输。因此TCP必须采用适当的措施才能使两个传输层之间的通信变得可靠。其使用的可靠传输协议主要有停止等待协议,连续ARQ协议,流量控制和拥塞控制。所谓的停止等待,发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组。只有收到序号正确的确认帧后,才更新发送状态变量一次,并发送新的数据帧。接收端接收到数据帧时,就要将发送序号与本地的接收状态变量相比较。若二者相等就表明是新的数据帧,就收下,并发送确认。连续重发请求ARQ则是提高传输效率,属于流水线传输方式。利用的连续ARQ协议和滑动窗口协议。连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前移动一个分组的位置。接收方一般采用累积确认的方式,即接收方不必对收到的分组逐个发送确认,而是可以在收到几个分组后,对按序到达的最后一个分组发送确认,表示到这个分组为止的所有分组都已经收到。至于流量控制就是让发送方的发送速率不要太快,要让接受方来得及接受。拥塞控制则是防止过多的数据注入到网络中,从而致使网络中的路由器或者链路不致过载。拥塞控制是一个全局性的问题,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。其实当你把要传送的数据传递给TCP后,TCP把这些信息分成很多个数据包(这种数据包称为TCP分组),每一个分组都包含有一个序号。接着TCP分组被传递给IP层,IP层把这个TCP分组放在一个IP数据包的数据部分。然后,这个IP数据包被传到目的主机。目的主机上的IP层,把IP数据包的数据部分(即TCP分组)传递给TCP层。TCP接收到分组后,检查数据包的正确性,如果不正确,通知源计算机重新送该IP包。利用分组的序号来将数据按照原来的顺序排列,然后送给应用层。换句话说,IP的工作是把原始数据(数据包)从一地传送到另一地;TCP的工作是管理这种流动并确保其数据是正确的。在IP层,信息不是一个恒定的流,而是一个个小的数据包,这种数据包称为IP数据报。所有要发送的信息都必须被拆成IP数据包,才能在IP网上传送。IP数据报中最主要的内容有:源计算机的地址信息、目的计算机的地址信息、要传输的数据。当发送一个数据包时,计算机首先根据目的地址决定将其发送给谁,如果目的计算机与源计算机在同一个物理网络中,则直接将这个数据报发送给它。如果目的计算机与源计算机不在同一个物理网络中,则发送给路由器,路由器这个特殊的计算机连在了两个网络之中,因此可以同时与两个网络中的计算机通信。路由器在收到数据包后,根据目的地址决定是直接发给目的计算机(如果在同一个物理网络中),还是转发给另一台计算机(如果不在同一个物理网络中)。虽然TCP/IP是一个四层的体系结构,不过从实质上讲,TCP/IP只有最上面的3层,因为网络接口层并没什么实质性的内容。三、我的编程体会在这次的编程过程里,我发现只学不做相当于不学,只有在不断的实践中锻炼自己,才能将你所学的融会贯通,才能牢牢地掌握课本上的知识。课本上讲的知识是死的,唯有不断的实践,才能将其变活。就拿TCP/IP来说,课本上只是说了一些TCP/IP的作用以及其实现的方法,并没有给出实际的编程方法和隐藏在数据传送下的“真相”。而现在,通过实践,我发现了如何用VitualC++来编写一个实现建立连接、数据的发送与接受、连接的关闭的程序,这些要比课本说的远远有用多了,虽然在编写的过程中也出现了很多的问题,例如程序总是出错,不知道某些步骤的含义而照着课本上的步骤来,随着慢慢的修改,不断的学习,错误越来越少,而且往日来的浮躁也渐渐的消失了。由此可见,唯有实践,才能让我们学会创造,才能不负所学。,
本文标题:TCP-IP论文
链接地址:https://www.777doc.com/doc-5744620 .html