`

tcp传输的可靠性

 
阅读更多

端到端。   “端”指的是“端口”。   端到端协议,是传输层提供的协议。传输层下层的网络层的IP协议在主机之间传输数据,IP地址只标志主机,并不区分进程。区分到底是主机上哪个进程在通信,就是依靠端到端协议。

 

  

                                            端到端协议简图

    2,面向对象连接  

 

       使用TCP协议,两个进程在传送实际数据之前先建立一个“连接通道”。所谓的连接通道并不是一条端到端TDM或FDM电路,也不是一条虚电路。TCP协议只在端系统中运行,不在中间的网络元素(路由器和链路层交换机)中运行,所以中间元素并不维持TCP连接状态。中间路由器对TCP连接完全毫不知情,它们看到的只是数据报,而不是连接。下面,我们简单说一下建立TCP连接的过程。

 

      一开始学写通信程序时,虽然不懂基本原理,当时Java程序是这样写的:(发起通信的客户端程序)Socket client =new Socket(IP,port);  IP,是服务器的IP地址,port是服务器进程的端口号,端口就是用来标识进程的。 这时,客户机的运输层便开始与服务器的传输层建立连接了。客户机的应用程序首先通知客户机的TCP,它想建立一个与服务器上的某个进程(已经用Port 标识好了)之间的连接。客户机的TCP会用以下方式与服务器的TCP建立一条TCP连接:

 

      第一步:客户端的TCP首先向服务器的TCP发送一个特殊的TCP报文段。该报文段并不包含应用层的数据,并封装在一个IP数据报中,发给服务器。

 

      第二步: 该IP数据报到达服务器后,为该TCPP连接分配TCP缓存和变量(这个暂且不解释,我们先说大体过程),并向客户机TCP发送允许连接的报文段(同样不包含应用层数据)。

 

      第三步:客户机收到服务器回应的报文段后,客户机同样为TCP连接分配缓存和变量,并且,客户机再向服务器发送一次报文段,对服务器允许连接进行确认。

 

     三步完成后,客户机和服务器就可以互相发送报文段了。这种连接方式成为 三次握手。通俗的说,这种连接方式确保双方已经做好准备接收数据。

 

 


 

 

 

3,可靠,按序的数据流 

 

    网络层的IP协议传输数据是不可靠的,数据报有可能丢失,乱序,出错。TCP在IP的不可靠的基础上建立了一种可靠数据传输服务。

 

 我们先说一下 , 可靠数据传输服务。

 

 可靠数据传输服务的实现自然依靠于 可靠数据传输协议

 

 我们要研究一系列协议,从简单到复杂,一个一个来。

 

    1.完全可靠信道上的可靠数据传输  rdt 1.0

         即,底层是完全可靠的。发送方发送数据,接收方接收数据。两者之间无需任何反馈信息,因为数据是完全可靠的。

    2,具有比特差错信道上的可靠数据传输  rdt 2.0

         现实的是,底层信道的比特可能受损,所以需要反馈。当接收方收到正确的数据包后,反馈一个ACK,错误的数据包,反馈NAK。 此时的协议采用了差错检测。

    3,在rdt 2.0 的基础上,若,反馈出错或丢失,要管理丢失的反馈。给分组加seq #两个 #’s (0,1),必须查收ACK/NAK   这是 rdt 2.1

 

    若,两个数据包,1,2     1号出错,2号正确,但 ACK丢失,则传输过程是:


 


 4,rdt 2.2 无NAK的协议     

        功能等同 rdt2.1, 但仅使用 ACK不使用 NAK, 接受方只为最后正确接受的报文发送 ACK,接收方必须显式表明ACK 的分组 seq #,发送方得到双重ACK导致 NAK的相同结果: 重传正确的分组。

 

       如,两个数据包 1,2  1号正确,2号出错  


 

分享到:
评论

相关推荐

    TCP协议可靠性数据传输实现原理分析.doc

    TCP协议可靠性数据传输实现原理分析.doc

    基于TCPUDP的文件传输

    基于双协议(TCP\UDP)的文件传输,并实现了UDP的可靠性

    tsunami-udp 是一款专为网络加速诞生的小工具 用TCP进行传输控制、用UDP进行数据传输

    传统上,TCP协议负责可靠的数据传输和流量控制,而UDP协议则专注于简单快速的数据传输,但缺乏可靠性保证。tsunami-udp巧妙地利用了这两种协议的优势,使用TCP进行传输控制,而使用UDP进行实际的数据传输,从而达到了高效...

    rudp 高性能,可靠性传输UDP网络库(远胜TCP)

    rudp 高性能,可靠性传输UDP网络库(远胜TCP)

    UDP协议实现点对点高速可靠传输模型

    如何更有效地传输数据是当前计算机网络传输协议的研究热点之一,包括传输的可靠性、高效性、公平性等等。TCP/IP协议是基于连接的协议,它的可靠性、高效性都达到了一般网络应用的要求,所以TCP/IP协议成为了网络应用...

    好用的TCP UDP调试助手NetAssist.exe

    其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再...

    TCP通信工具demo.rar

    可靠性可以通过很多种方法来提供保证,在这里我们关心的是数据序列和确认。TCP通过数据分段(Segment)中的序列号保证所有传输的数据可以在远端按照正常的次序进行重组,而且通过确认保证数据传输的完整性。要通过TCP...

    计算机网络技术-TCP三次握手和四次挥手分析教程

    TCP协议更适用于对可靠性要求较高,但对传输效率和资源占用率要求较低的场景;UDP更适用于对传输效率要求高,可靠性要求较低的场景(即时类通讯)。 3、 什么是面向链接? 在正式传输数据之前,先适用预先的协议,...

    tcp和udp的区别.docx

    - TCP提供可靠的数据传输,它通过序列号、确认应答、重传等机制来确保数据的可靠性,保证数据的顺序性和完整性。 - UDP不提供数据传输的可靠性保证,它只是简单地将数据包从一个端点发送到另一个端点,不保证数据...

    TCP UDP 文件传输

    可实现双协议传输,并实现UDP的可靠性传输

    Socket编程-即时通讯工具-基于TCP和UDP协议-包括服务器端和客户端

    支持点到点可靠文件传输(基于UDP协议); 存储在服务器端的数据需要进行强加密; 支持不少于两组用户同时在线交流和传输文件; 文件传输具有良好的性能,能够充分利用网路带宽; 人机交互友好,软件易用性强。

    可靠传输协议—TCP1

    如,能保证报文段的交付,保证报文段的按序交付,保证报文段中数据的完整性传输层在主机间逻辑通信之上,提供应用进程间逻辑通信传输层最重要的TCP协议,最重要的功能就

    一种在接收端实现的TCP-Friendly拥塞控制机制

    本文介绍了一种在接收端实现的TCP-Friendly 拥塞控制机制,相对于原有的几种TCP拥塞控制算法有较好的性能。

    实验5 TCP协议解码详解实验.pdf

    TCP,全称Transfer Control Protocol,中文名为传输控制协议,它...简而言之,TCP必须提供可靠性的良好性能,这正是大多数用户所期望的而IP又没有提供的功能。  TCP的工作主要是建立连接,然后从应用层程序中接收数据

    1-UDP可靠性传输-202111201

    1. 如果做到可靠性传输 2. UDP与TCP,我们如何选择 3. UDP如何可靠,KCP协议在哪些方面有优势 4. KCP协议精讲(重点讲解) 5. QUIC

    VTCP-UDP可靠传输 SDK

    VTCP是虚拟TCP协议缩写,它实现了UDP可开传输,UDP本来是一种不可靠的网络协议,但在有些情况下UDP协议可能会变得非常有用。...因此我们设计出了一种新的可靠UDP协议(VTCP),自动实现UDP数据传输的可靠性。

    ESP8266 MCU开发板与APP实现TCP局域网通信-arduino代码开发

    TCP协议通过建立连接、确认数据包的收发状态来保证数据传输的可靠性。在局域网中,TCP/IP协议栈被广泛应用。TCP/IP协议栈指的是由TCP和IP两个协议组成的网络协议体系,它们负责实现数据传输和路由控制等功能。 ...

    data_transfer_for_tcp_single_thread.rar_single_单线传输

    文件传输单线程程序,利用TCP协议保证文件传输的可靠性。可以运行Windows和linux环境下。

    TCP原理和TCP协议介绍

    前面我们介绍了I P提供的无连接的包传递服务以及用于报告差错的协议,这一章我们将介 绍T C P / I P协议系列中主要的传输协议T C P,并将解释T C P怎样提供可靠的...务之后,本章将会介绍T C P实现可靠性所使用的技术。

Global site tag (gtag.js) - Google Analytics