简述TCP可靠传输性原理(有悬赏分)
IP协议是网络层的协议,它实现了Internet中自动路由的功能,即寻径的功能,TCP协议是一个传输性的协议它向下屏蔽了IP协议不可靠传输的特性,向上提供一个可靠的点到点的传输,UDP提供的是一种无连接的服务,主要考虑到很多应用不需要可靠的连接,但需要快速的传输
TCP的可靠传输采用了确认,超时重传(停止-等待,连续ARQ,选择重传)
TCP采用了循环冗余校验、流量控制、拥塞控制、停止等待协议等技术来保证它的可靠性。
下面是可靠传输的工作原理,一,以字节为单位的滑动窗口 二,超时重传

为什么说TCP是面向连接的.可靠的.可控制流量的传输?
面向连接 是因为TCP使用传输确认机制,就是说把数据发送到目的方后目的主机还要反馈一个信息告诉源主机信息已接收!源主机发,目的主机确认,所以叫面向连接。使用了面向连接,提高了网络传输的可靠性。这里的可靠性是相对于UDP的,因为UDP不使用确认机制! UDP还使用窗口机制,通俗的说就是发送方发送信息后接收方在一定时间内处理信息能力在一个窗口的范围限制内,大于这个窗口,接收方就要告诉发送方减小窗口来控制流量,接着继续传输。呵呵,希望能帮到你!
非面向连接的:就是不需要通讯的双方建立、维护通话。 因为不维护,没有重传机制所以又叫不可靠服务但是tcp是面向连接的, TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK); 如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和
去翻书吧,我要回答你我也要去翻书。

TCP是如何实现可靠传输的?
在计算机网络的经典五层协议中,TCP属于运输层,实现了进程间的通信,保证了数据的可靠传输,属于计算机网络协议族中最重要的协议之一,那么TCP是如何实现可靠数据传输的呢?运输层的进程间通信是通过socket实现的,socket是一个抽象的概念,在Linux系统中以文件的形式存在。网络层通过IP来区分主机,运输层则增加了端口的概念来区分进程。TCP协议中使用目标IP、目标端口、源IP、源端口来定义一个socket,只需要在运输层的报文头部附加上这些信息,目标主机就会知道数据要发送那个socket,对应监听该socket的进程就可以收到数据进行处理。TCP报文包括首部和数据部分,首部附加了TCP报文的信息,首部长度固定部分为20字节,还有40字节的可选部分,具体如下图所示:其中几个关键字段的作用如下:网络层只管尽可能将数据从一个主机发送到另一个主机,并不保证数据可靠到达,由于网络环境总是不稳定的,可能存在丢包、差错等请求,TCP则通过一系列的机制在运输层保证了数据的可靠传输。网络传输可能发生的异常情况和解决方法:要实现可靠传输,最简单的方法就是发送方发送一个报文,接收方收到报文后发送确认报文表示我收到了,你可以发下一个了,传输模型如下:这种方式保证可靠传输称为停止等待协议,这种方式缺点也很明显,效率非常低。为了提高传输效率,充分利用带宽,发送方会连续的发送数据包,如下图所示:客户端不等收到前一个包的确认报文就开始不断的发下一个包,这样可以充分利用网络带宽,提高传输效率,但是于此同时也带来了另外的问题,那么TCP是如何解决这些问题的?累计确认:网络中充斥着大量的发送包和确认回复报文,这些数据只是为了确认报文到达,并不是实际需要传输的数据。是不是一定要每一个报文都要发一个回复确认的报文呢,TCP采用了累计确认的方法:接收方在累计收到了一定量的数据包后发送一个确认报文告诉发送方在此之前的数据包都已经收到了,这样便可以减少确认报文的数量,提高带宽利用率。GBN(回退n步):如果发生丢包的情况,在连续ARQ中,如果接受方收到了123 567个字节,编号为4字节的包丢失了,按照累计确认只能发送3的确认回复,567都要丢掉,因为发送发会进行重传。选择确认ACK:在TCP报文头部的选项字段部分设置已收到的报文,每一段用两个边界来确定,比如上述情况可以用[1,3]和[5,7]来表示,客户端就会根据选项只重传丢失的数据段。因为接收方读数据的能力有限,发送发不能一直发送报文直到把缓冲区所有数据发送完,这样会导致接收方无法接收丢弃掉数据包,发送方收不到确认认为超时又会继续重传,产生了大量无用数据的重传。对此情况TCP使用滑动窗口来解决,基本模型如下:滑动窗口机制实现了TCP的流量控制,不至于发送太快导致太多的数据丢弃和重传。为了避免网络过分拥挤导致丢包严重,传输效率低,TCP实现了拥塞控制机制,拥塞控制的解决办法本质上是流量控制,控制发送方发送的速度,而上文提到流量控制是通过滑动窗口来实现的,所以最终也是通过调整发送方的滑动窗口大小来实现的。拥塞控制的几个重要的概念:慢启动、拥塞避免、快恢复、快重传Reno算法是比较常见的TCP实现的拥塞控制算法,其他拥塞算法还有Tahoe(已废弃不用)、New Reno等,通过拥塞控制算法可以很大程度避免网络拥挤。【书籍】计算机网络:自顶向下方法【码农有道】 这一篇TCP总结请收下

为什么说TCP是面向连接的.可靠的.可控制流量的?
TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。TCP提供一种面向连接的、可靠的字节流服务。 面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。

为什么说TCP和IP为INTERNET提供了可靠的传输保障?急急急急急!!!!
互联网层IP提供的是一种不可靠的服务,只是尽可能快地把分组从源点送到目的结点。而TCP在不可靠的IP层上提供了一个可靠的运输层,当一个数据单元从网络应用程序向下传到传输层,要传递的信号分成若干段,并加上分段号信息再下传到互联网层经网卡到接收端后,按发送前顺序还原,TCP采用了超时重传校验发送和接收端到端的确认分组接收机制,若发现差错要求重发,从而保证了INTERNET传输的可靠性。
因为TCP/IP的每个封包都对传送跟接收方都有附带旗标来辨识收讯状况, 如果接收方收到封包,会回应给传送方再继续送下一个封包, 但如果接收方没收到,那传送方就会再传送一次,这样才能确保提供可靠传输。

本文由 在线网速测试 整理编辑,转载请注明出处。