计算机网络TCP协议的仿真与实现
作为计算机网络中较为重要的一种运输层协议,TCP连接着应用层和网络层,发挥着非常关键的作用。在TCP/IP协议中,我们重点关注TCP。本文主要立足于TCP协议的特点,详细介绍了TCP协议的主要特性。
一、TCP协议的概述
(一) TCP协议的特点
首先,TCP提供的连接服务稳定性有保证。相关的连接有着和打电弧相似的建立过程。先拨电话号码,当对方接通回复“喂”的时候,再告知对方自己是谁,完成任务后释放;其次,TCP提供连接必须是只针对两个客户端,也就是实现一对一的传输;最后,TCP提供全双工通信。这个特点就是保证通信的两端在使用TCP的时候可以随时通信,这样就可以及时传输数据。
(二) TCP端口号和套接字地址
TCP端口号:端口号只能对计算机中的进程进行标记,一般使用两个字节来完成标记工作,这也就是端口号的本地意义。当端口号并不是我们熟悉的状况时,要使用数值为1024~49151的等记端口号,使用的过程中要在UANA上登记,避免中间重复使用。无连接的UDP和TCP也有着自己的端口号,但是两个端口号彼此之间是相互独立的,各自有着不同的用途。套接字地址:CP中的套接字,一般在表达的过程中会用同一个名词表达不一样的含义。也就是说,当套接字被一个程序使用,那么socket函数中使用的函数以及调用它的端口都会叫做scocket。当紧急URG给系统发出有关紧急数据传输的通知时,相关的紧急数据应该作为优先级任务,尽快被传送。
二、 TCP的连接与释放
(一)建立连接
全双工是TCP传输数据的主要方式,在整个过程中有三次握手的方式来完成对该项目的建立,并且TCP的连接和释放都是使用客户—服务器方式,连接的建立也是从服务器开始。首先将SYN设置为1,然后将数据包头部的那个确认字段设置为x+1,接下来将最开始的序列号放在数据包头部的数列中。当这个链接的数据段被接受之后,那么相应的数据段就会被送到缓冲区,同时,服务器也能够及时收到客户端从另外一边发来的数据段,最后完成相关输出的确认。
(二) TCP的连接释放
TCP传输数据的主要方式是全双工,因此,数据传输结束后,所有的连接都会被释放,并且每个连接的释放都是单个放行的。首先,当被A发送的数据能够到达B,为了杜绝失效的报文段在文本中存在,最后一个一个ACK被发送完后,相关的环节就会处理。这种办法就能够及时高效地处理掉连接过程中请求报文段的问题。
(三) TCP的连接复位
一般情况下,有三种情况需要复位。首先,当TCP连接的端口并不存在时,另一端TCP就能发送一个报文段,这时需要关闭相关的连接;其次,如果一端的TCP出现一些异常情况,那么就可以通过发送复位来终止连接;最后一种情况是,当一端的TCP长时间没有使用,那么就可以发送复位信息报,将其关闭。
(四) TCP拥塞控制
TCP的拥塞控制是TCP工作中存在的一种现实问题,会对整个工作造成一定程度的影响,因此,必须针对这种情况进行改进。首先,慢启动和拥塞避免。TCP用来发送数据是慢启动和拥塞避免算法展开的依据,这种算法的实现必须通过在TCP中增加两个变量;其次,快恢复和快重传。这种主要是针对发送端展开的,多种网络会导致端口查收到重复ACK,因此,应该找到事故原因,及时处理。
三、TCP的仿真实验
(一)仿真实验的设置
我们都知道TCP是有链接的可靠的传输层协议,所以在传输运用过程中也会出现错误。下面我们通过以下仿真实验,来了解TCP在传输FTP文件时一数据报丢失的情况,来详细分析下这一解决过程。
我们用OPNET来做TCP的仿真实验,这只是在一个比较简单的环境下在做关于TCP的仿真实验,测试出数据图通过分析和比较来观察TCP处理数据丢失包的具体工作原理和过程。选择“结果- - > >安排Pannels显示所有“查看保存结果。
顶部多媒体的快速decovery conquestion窗口由于“TCP雷诺”,在重新传输。这个conquestion窗口只是减少了一半,而不是1MSS,从而快速恢复。graphe的底部显示了发送之间的关系序列号码和收到seqment ack服务器上的数量。服务器故意把一个数据包给丢失,这时客户服务器就会发出三个ACK,会被重新发送。
这时把FTP的Command Mix的值设置为100%,把Inter-Requests设置为constant 3600,把File Size 设置为FTP,把Server,type of serveice值设置为best effort,把RSVP parameters值设置为 None;用NotUsed来设置Back-End Custom Application值。
(二)仿真实验的过程
针对TCP数据传输开始时,拥塞窗口设置为最大的MSS值,慢启动算法开始,cwnd被设置为200,那么400,800,1600.......以103S,拥塞窗口达到6500的最大阈值,为了不让拥塞窗口将不会太增加网络阻塞引起的,然后执行拥塞避免算法,每一个RTT,拥塞窗口将增加一个单位,然后在107s当FTP数据包丢失,然后进行处理,拥塞窗口的值下降,TCP协议在慢启动和拥塞避免算法的实现,窗口的大小增长将呈现线性增长。设置最大窗口阈值,根据3响应消息重复判断丢包,重传丢失的数据包和直接的阈值,为当前拥塞窗口6500的一半,这是快速重传(Tahoe),然后转移到慢启动。然后再转入慢开始。
在窗口大小到达大约80000后,应该是收到3个连续ACK,若根据3个重复的应答报文就会知道有没有丢包,而且丢失的分组会被重传,此时的ssthresh的值就为拥塞窗口的一半,这样就进入了进入拥塞避免阶段。
(三)仿真实验小结
用OPNET做TCP的仿真实验,数据包丢失,TCP数据的变化都被形象的描绘出来了,很好的诠释了这一失误和改正过程。为TCP以后出错改正做了很好的例子。
四、结语
综上所述,网络普及的这个时代,让我们不断地认识到了计算机网络的重要性,学生们也开始越来越重视对TCP的研究。在简单的OSI体系中,TCP发挥着较为重要的作用,因此,我们必须深入研究其工作原理,便于在运输层中顺利地运用TCP协议。
作者:郑可勤 来源:企业文化·下旬刊 2016年7期