tcp协议可靠吗
TCP IP协议是互联网传输的基本协议,还是非常可靠的。

计算机网络哪些层属于可靠传输,哪些属于不可靠传输?
计算机网络TCP属于可靠传输,udp属于不可靠传输。 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。 UDP 是 User Datagram Protocol 的简称, 中文名是用户数据报协议,是一个简单的面向数据报的传输层协议,在网络中用于处理数据包,是一种无连接的协议。UDP不提供可靠性的传输,它只是把应用程序传给 IP 层的数据报发送出去,但是并不能保证它们能到达目的地。由于 UDP 在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

TCP协议如何保证数据可靠性
为什么TCP协议是可靠的?TCP协议是怎么保证数据的可靠的?答:能够保证TCP协议可靠的算法有检验和,连接管理机制,ACK应答机制,快速重传和超时重传机制,滑动窗口机制,拥塞控制机制,这些机制共同保证TCP协议的可靠性。检验和:TCP检验和的计算与UDP一样,在计算时要加上12byte的伪首部,检验范围包括TCP首部及数据部分,但是UDP的检验和字段为可选的,而TCP中是必须有的。计算方法为:在发送方将整个报文段分为多个16位的段,然后将所有段进行反码相加,将结果存放在检验和字段中,接收方用相同的方法进行计算,如最终结果为检验字段所有位是全1则正确(UDP中为0是正确),否则存在错误。可以保证接收方能判断当前报文是否属于自己要接受的报文,如果为0,那就是,不为0,则不是,丢弃此报文。抽象些来说就像是取快递,你的电话姓名和快递上的信息一致,你才能确定这是你的快递,才会去取,不会错拿别人的快递。序列号:TCP 对每个报文进行编号,这些编号就是序列号。而序列号有多种作用a:保证可靠性,当接收到的数据失序时,就能立马知道b:去除重复的报文,数据传输过程中的确认应答,重发控制,重复控制等功能都要依靠序列号来实先。c:提高效率,可以实现多次发送,一次确认。ACK应答机制:发送的每一条消息,都需要对方发送一条消息来回复消息是否被收到。主要实现是TCP的首部来控制,当ACK =1 时ack才有效,ack等于期望下一个传输过来的序号,也就是上一次接收消息的序号+1。这样就可以保证消息能被确认接收。(三次握手和四次挥手都在用这个机制)连接管理机制:三次握手建立连接与四次挥手断开连接,保证了TCP的全双工工作。快重传和超时重传:保证了数据能够不丢失的传输数据。(注意:超时重传机制和快重传机制,同时存在。谁先检验到报文失序,谁就生效。)滑动窗口:滑动窗口既提高了报文传输的效率,也避免了发送方发送过多的数据而导致接收方无法正常处理的异常。数据的发送方和接收方都有滑动窗口,对于发送方来说,窗口内就是可以发送的报文,当窗口的前沿紧挨的报文发送并且确认时,窗口向后移动。而窗口的后沿可以向前移动,当接收方处理不了那么多的报文时,就会发送消息告诉发送方,此时滑动窗口就需要缩小,所以后沿前移。但是TCP非常不建议窗口后沿前移。说到滑动窗口,就不得不梳理一下消息发送的过程中的缓存机制:发送方和接收方的滑动窗口工作流程:伴随着效率的提升,也会有问题产生,如果消息没被确认怎么办如图所示,假如31,32,33,34,报文发送了,32,33,34都被确认了,31没被确认怎么办呢?这时就重新发送31,并且31之后的数据报全部重新发送。在图中我们还会发现窗口的前沿和后沿会移动,窗口前沿和后沿都向后移动,意味着前沿紧挨的报文发送并被确认,而后沿的前移意味着,接收端处理那么多消息,请缩小窗口的大小。所以解决了发送的数据过多,导致接收端无法正常接收的异常。拥塞控制:拥塞控制使得宏观网络中的资源能够合理的应用。实现的算法有四个,慢开始,拥塞避免,快速回复,和快速重传.1.慢开始指一开始发送报文时,不清楚网络中的情况,试探性的发送1cwnd(拥塞窗口)的数据量。2.如果没有到ssthresh(慢开始门限值),则以指数形式增长,一直到门限值;3.当到达门限值时,此时采用拥塞避免算法让拥塞窗口缓慢增长,即每经过一个RTT(往返时间)就把发送方的拥塞窗口+1,不能是指数性增长了,一直到发生网络拥塞为止。4.当发生网络拥塞时,把ssthresh的值设置为出现拥塞时发送窗口大小的一半,然后把拥塞窗口设置为1,再次执行慢开始算法。5.在发送方知道只是丢失了个别的报文段时,采用快恢复算法,将门限值设置成拥塞窗口大小的一半,并将拥塞窗口设置为当前门限值,并执行拥塞避免算法。6.当发送方一连收到3个对同一个报文段的重复确认时,采用快速重传算法,立即进行重传,这样就不会出现超时,可以使整个网络的吞吐量提高约20%。

为什么说IP和UDP是不可靠的,而TCP是可靠的
TCP在不可靠的IP上面实现了一些防错机制,如超时重传、双方确认等,这样使用TCP的上层协议不必考虑数据是否可靠,在TCP的实现上已经帮助解决了这个问题 而UDP本身是不可靠的,他不需要双方确认数据是否传输成功,但基于UDP的上层协议也可以是可靠的,但需要上层协议来实现这种可靠性,所以UDP本身不可靠

tcp协议是什么的
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

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