(4)仿真:定义要进行收集的数据,配置和运行仿真,自动收集统计数据;
(5)数据分析:根据仿真收集到的数据,查看仿真效果,验证模型和仿真方法的正确性,或者比较设计方案的优劣,从而为解决实际网络中的问题提供帮助。
(6)重复试验:根据数据分析的结果,调整网络设计或系统设计方案,反复试验,直到取得预期的效果。
3. TCP协议分析
3.1 TCP协议概述
3.1.1 TCP原理
在OSI网络七层体系结构里,网络传输层主要使用两种协议,分别是传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Data gram Protocol,UDP)协议。UDP协议是无连接的服务,网络传输中,不要求提前接触目的端口,在网络传输过程中,采取了“尽最大努力”的方式。此协议的优点是实现了类似的一对多广播。缺点是没有流量控制,丢失的数据包不能重传,它不能提供一个有序和可靠的服务。相比UDP协议,TCP协议的流量控制和拥塞控制功能可以确保有序和可靠的数据到目的端。因此,网络传输层的大多数应用均采取使用TCP协议[8]。TCP协议是一个全双工协议。TCP协议是用来提供一个可靠的面向连接的服务。其中的差错控制协议是协议的核心组成部分,它影响协议的性能,包括吞吐量、能源消耗等。
TCP提供流量控制(Flow Control)。TCP连接的每一方都有固定大小的缓冲区,TCP接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止发送端发送数据过快,造成接收端缓冲区溢出,丢弃报文段,引起重传而造成网络负载加重。另一方面,TCP使用拥塞窗口机制来控制发送数据的速率,拥塞窗口是发送方对感受到的网络拥塞的估计,通过这个可以减轻网络拥塞情况。
3.1.2 TCP数据包头部格式
TCP协议中发送端向接收端发送数据包(segment)。用户数据封装在TCP报文段中,前面添加TCP首部,然后构成TCP报文。整个TCP报文被封装在一个IP数据报中,然后IP包在网络中传输。TCP报文首部格式如图1,如果不计可选字段,它是20个字节。
图1 TCP数据包头部格式
每个TCP首部中包含源端口(Source Port)和目的端口(Destination Port),用于寻找发送端和接收端的应用进程。这两个值加上IP首部中的源IP地址和目的端IP地址唯一确定一个TCP连接[9]。
Sequence Number字段表示该数据包的序列号。序列号用来标识从TCP发送端向TCP接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。
Acknowledge ment字段表示确认号。该确认号是期望收到对方的下一个报文段的数据的第一个字节的序号,而不是已经被接收到的数据包的最大序号。
Head length字段在数据包头部中占有4bit大小,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。而这实际上就是TCP报文段首部的长度。
Flags字段是包含一些控制信息,已有的标志位有:URG、ACK、PSH、RST、SYN、FIN。这些标志位每个占用1bit,用于表示类似建立、关闭TCP链接的控制信息。
Checksum字段表示校验和域。校验和包含了整个TCP报文段(TCP首部和TCP数据),这是一个强制性的字段,一定是由发送端计算和存储,并由接收端进行验证。
Urgent Pointer字段表示当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送,而不要按原来的排队顺序来传送。
Option字段表示可选项域。选项是用来完善TCP协议而增加的一些字段,在实现过程中是可选的。常见的TCP选项有:SACK选项、MSS选项、时间域选项、窗口比例选项等。 基于OPNET的TCP协议研究与仿真(5):http://www.751com.cn/tongxin/lunwen_1272.html