`

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

    基于Linux环境的TCP协议一致性测试实现.pdf

    (3)可靠性:基于Linux环境的TCP协议一致性测试实现可以确保TCP协议的实现符合定义和要求,从而提高了系统的可靠性。 本文讨论了基于Linux环境的TCP协议一致性测试实现的基础概念、模型、方法和步骤,并分析了其...

    基于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网络传输粘包问题.pdf

    TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的传输层协议,提供高可靠性服务。然而,在应用开发过程中,基于TCP网络传输的应用程序有时会出现粘包现象,即发送方发送的若干包数据到接收方...

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

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

    VB中基于TCP/IP协议的点对点文件传输

    TCP 协议适用于那些对于数据的可靠性要求比较高的情况,而 UDP 协议适用于对数据可靠性要求不高而对速度要求较高的情况。 3. Socket:Socket 是一个通信链的句柄,应用程序通常通过“套接字”向网络发出请求或者...

    TCP通信工具demo.rar

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

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

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

    tcp和udp的区别.docx

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

    TCP和UDP的区别和优缺点

    * TCP 为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于 TCP 内置的系统协议栈中,极难对其进行改进。UDP 的简单设计使得它更容易实现自定义的重传机制,能够把丢包产生的延迟降到...

    TCP与UDP区别(socket编程)

    2. 可靠性:TCP 是可靠的传输协议,可以避免数据传输错误,而 UDP 是不可靠的连接,可能会出现数据传输错误。 3. 顺序性:TCP 保证数据的顺序性,即使数据包不一定按照顺序到达,TCP 也可以探测出乱序的包,暂存起来...

    TCP UDP 文件传输

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

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

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

    可靠传输协议—TCP1

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

    TCP/IP学习笔记.doc

    这意味着,IP协议不提供任何机制来确保数据报的传输可靠性。如果数据报在传输过程中丢失或损坏,IP协议不会重传或纠正错误。这使得IP协议becomes a best-effort delivery protocol,意思是协议尽力传输数据,但不...

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

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

    TCP标志控制

    因此,TCP标志控制对于确保数据传输的正确性和可靠性非常重要。 TCP标志控制在网络安全中的应用 TCP标志控制也广泛应用于网络安全中,例如防火墙、入侵检测系统等。这些系统可以通过检查TCP标志位来检测和防止恶意...

Global site tag (gtag.js) - Google Analytics