谈计算机网络TCP协议的仿真与实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谈计算机网络TCP协议的仿真与实现相关的知识,希望对你有一定的参考价值。

参考技术A

谈计算机网络TCP协议的仿真与实现

  TCP是计算机网络中运输层协议,连接着应用层和网络层,发挥着非常关键的作用。那么,计算机网络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协议。

;

TCP/IP

TCP/IP模型

应用层

  • Telnet FTP LPD SNMP TFTP SMTP NFS X Windows
  1. Telnet:实现终端仿真,远程客户端连接。端口号23
  2. FTP:文件传输协议 同时也是一个程序 ,作为协议 FTP是由应用所使用的,作为程序,FTP是由用户所使用的。实现文件传输。端口号21
  3. TFTP:简单文件传输协议,FTP的简化版。端口号69
  4. NFS :网络文件系统,在两个不同的文件系统之间实现互相操作。例如Windows和Unix之间文件传输。
  5. SMTP:简单邮件传输协议 ,发送电子邮件。
  6. POP/POP3:接收电子邮件,端口号110
  7. SNMP:简单网络管理协议,负责收集并修改重要的网络信息,可以看作网络看守也叫代理,监控网络运作状态,当网络发生异常,代理会向网络管理员告知网络突发事件,如CPU ,内存,温度接口利用率等信息。
  8. SSH(安全壳):通过标准的TCP/IP建立安全的Telnet会话
  9. HTTP(超文本传输协议):负责管理WEB网络之间的通信。端口号80
  10. HTTPS(安全超文本协议)
  11. DNS(域名服务)负责解析主机名,端口号53
  12. DHCP(动态主机配置协议/引导协议)负责为主机分配ip地址,简化工作。当主机向DHCP发出请求时,DHCP还可以向他提供以下信息;
  • IP地址
  • 子网掩码
  • 域名
  • 默认网关
  • DNS服务器地址
  • wins服务器地址

传输层

  • TCP      TCP头部长度为20字节,加上可选项字段一共24字节。每个字段的含义如下:
  1. 源端口:发送方主机上,发送数据的应用所使用的端口号
  2. 目的端口:目的主机上,就收数据的应用所使用的端口号
  3. 序列号:TCP使用这个号码将数据正确排列,与之相关的程序叫做序列化。
  4. 确认号:TCP使用这8位号码表面接收方希望接收数据
  5. 头部长度:TCP头部32bit字节,指示数据从哪里开始
  6. 保留字段:总是设置为0
  7. 编码位/标志:用于实现控制功能,建立和终结会话
  8. 窗口:发送方希望使用的窗口大小。以8位组为单位
  9. 校验和 :CRC校验结果
  10. 紧急
  11. 可选项:
  12. 数据
  • UDP 用户数据报协议
  1. 源端口:发送方主机使用的应用程序端口号码
  2. 目的端口:接收方使用的端口号码
  3. 长度: UDP头部和UDP数据的长度
  4. 校验和:校验和会计算UDP头部和UDP的数据部分
  5. 数据:上层数据

网络层

  • ICMP(互联网络控制消息协议)
  1. 可以为主机提供有关网络问题的信息
  2. 他们被封装在IP数据包中
    1. icmp常见事件和消息
      • Destination Unreacheable 目的地不可达     接收方某个接口down了
      • buffer full/source queue (缓存已满/源端队列) 路由器接收入站数据已满  当拥塞缓解为止
      • Hops/Time Exceeded (跳数/时间超时) 每个数据包有穿越路由器的个数限制 ,也就是跳数,当穿越的路由器达最大值时,最后接收此包的路由器会反馈一条ICMP说跳数超时
      • Ping 数据包网络探测器 用来测试网络物理和逻辑连通性
      • Traceroute (路由跟踪)  使用ICMP超时信息,路由追踪用于发现数据包在网络中传输的路径
  • APR(地址解析协议)
    1.   通过已知的IP地址找到主机的硬件地址
  • RARP(反向地址解析协议)  负责将以太网中的MAC地址转化为IP地址。
  • IP(互联网协议)   IP头部由以下信息构成
  1. 版本 IP版本号
  2. 头部长度 32bit
  3. 优先级和服务类型
  4. 总长度 包含头部和数据的数据包总长度
  5. 识别符:
  6. 标志:标志着数据包是否进行分片
  7. 生存时间
  8. 协议
  9. 头部校验 CRC校验
  10. 源IP地址
  11. 目的IP地址
  12. 可选项  用于实现网络测试,调试,安全目的等
  13. 数据 上层网络数据
  14.  
  • ARP(代理)

物理层

  • 以太网 快速以太网 令牌环 FDDI

以上是关于谈计算机网络TCP协议的仿真与实现的主要内容,如果未能解决你的问题,请参考以下文章

浅谈通信网络——TCP层

计算机网络学习:网络协议与标准 (未完)

聊聊网络模型及特点

浅谈网络编程

浅谈TCP/IP

TCP/IP