当前位置:首页 > 经验 >

一文看懂tcpip协议(tcpip协议详解入门)

来源:原点资讯(m.360kss.com)时间:2022-10-29 23:55:23作者:YD166手机阅读>>

同时挥手

3.3 通过序列号与确认应答提高可靠性

  • 在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个已收到消息的通知。这个消息叫做确认应答(ACK)。当发送端将数据发出之后会等待对端的确认应答。如果有确认应答,说明数据已经成功到达对端。反之,则数据丢失的可能性很大
  • 在一定时间内没有等待到确认应答,发送端就可以认为数据已经丢失,并进行重发。由此,即使产生了丢包,仍然能够保证数据能够到达对端,实现可靠传输。
  • 未收到确认应答并不意味着数据一定丢失。也有可能是数据对方已经收到,只是返回的确认应答在途中丢失。这种情况也会导致发送端误以为数据没有到达目的地而重发数据。
  • 此外,也有可能因为一些其他原因导致确认应答延迟到达,在源主机重发数据以后才到达的情况也屡见不鲜。此时,源主机只要按照机制重发数据即可。
  • 对于目标主机来说,反复收到相同的数据是不可取的。为了对上层应用提供可靠的传输,目标主机必须放弃重复的数据包。为此我们引入了序列号。
  • 序列号是按照顺序给发送数据的每一个字节(8位字节)都标上号码的编号。接收端查询接收数据 TCP 首部中的序列号和数据的长度,将自己下一步应该接收的序列号作为确认应答返送回去。通过序列号和确认应答号,TCP 能够识别是否已经接收数据,又能够判断是否需要接收,从而实现可靠传输。

一文看懂tcpip协议,tcpip协议详解入门(13)

序列号和确认应答

3.4 重发超时的确定

  • 重发超时是指在重发数据之前,等待确认应答到来的那个特定时间间隔。如果超过这个时间仍未收到确认应答,发送端将进行数据重发。最理想的是,找到一个最小时间,它能保证“确认应答一定能在这个时间内返回”。
  • TCP 要求不论处在何种网络环境下都要提供高性能通信,并且无论网络拥堵情况发生何种变化,都必须保持这一特性。为此,它在每次发包时都会计算往返时间及其偏差。将这个往返时间和偏差时间相加,重发超时的时间就是比这个总和要稍大一点的值。
  • 在 BSD 的 Unix 以及 Windows 系统中,超时都以0.5秒为单位进行控制,因此重发超时都是0.5秒的整数倍。不过,最初其重发超时的默认值一般设置为6秒左右。
  • 数据被重发之后若还是收不到确认应答,则进行再次发送。此时,等待确认应答的时间将会以2倍、4倍的指数函数延长。
  • 此外,数据也不会被无限、反复地重发。达到一定重发次数之后,如果仍没有任何确认应答返回,就会判断为网络或对端主机发生了异常,强制关闭连接。并且通知应用通信异常强行终止。

3.5 以段为单位发送数据

  • 在建立 TCP 连接的同时,也可以确定发送数据包的单位,我们也可以称其为“最大消息长度”(MSS)。最理想的情况是,最大消息长度正好是 IP 中不会被分片处理的最大数据长度。
  • TCP 在传送大量数据时,是以 MSS 的大小将数据进行分割发送。进行重发时也是以 MSS 为单位。
  • MSS 在三次握手的时候,在两端主机之间被计算得出。两端的主机在发出建立连接的请求时,会在 TCP 首部中写入 MSS 选项,告诉对方自己的接口能够适应的 MSS 的大小。然后会在两者之间选择一个较小的值投入使用。

3.6 利用窗口控制提高速度

  • TCP 以1个段为单位,每发送一个段进行一次确认应答的处理。这样的传输方式有一个缺点,就是包的往返时间越长通信性能就越低。
  • 为解决这个问题,TCP 引入了窗口这个概念。确认应答不再是以每个分段,而是以更大的单位进行确认,转发时间将会被大幅地缩短。也就是说,发送端主机,在发送了一个段以后不必要一直等待确认应答,而是继续发送。如下图所示:

一文看懂tcpip协议,tcpip协议详解入门(14)


  • 窗口控制
  • 窗口大小就是指无需等待确认应答而可以继续发送数据的最大值。上图中窗口大小为4个段。这个机制实现了使用大量的缓冲区,通过对多个段同时进行确认应答的功能。

3.7 滑动窗口控制

一文看懂tcpip协议,tcpip协议详解入门(15)

滑动窗口

  • 上图中的窗口内的数据即便没有收到确认应答也可以被发送出去。不过,在整个窗口的确认应答没有到达之前,如果其中部分数据出现丢包,那么发送端仍然要负责重传。为此,发送端主机需要设置缓存保留这些待被重传的数据,直到收到他们的确认应答。
  • 在滑动窗口以外的部分包括未发送的数据以及已经确认对端已收到的数据。当数据发出后若如期收到确认应答就可以不用再进行重发,此时数据就可以从缓存区清除。
  • 收到确认应答的情况下,将窗口滑动到确认应答中的序列号的位置。这样可以顺序地将多个段同时发送提高通信性能。这种机制也别称为滑动窗口控制。

3.8 窗口控制中的重发控制

在使用窗口控制中, 出现丢包一般分为两种情况:

  • ① 确认应答未能返回的情况。在这种情况下,数据已经到达对端,是不需要再进行重发的,如下图:

一文看懂tcpip协议,tcpip协议详解入门(16)

栏目热文

tcpip必背十个问题(100个通信基础知识普及)

tcpip必背十个问题(100个通信基础知识普及)

本节重点1.理解传输层的作用, 深入理解TCP的各项特性和机制 2.对整个TCP/IP协议有系统的理解 3.对TCP/I...

2022-10-29 23:41:25查看全文 >>

网络七层协议记忆口诀(网络七层协议的通俗理解)

网络七层协议记忆口诀(网络七层协议的通俗理解)

首先,请看软考原文教程是这样描述的:国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连...

2022-10-29 23:18:40查看全文 >>

tcpip协议通俗易懂(tcp拥塞控制的四种算法)

tcpip协议通俗易懂(tcp拥塞控制的四种算法)

TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列。TCP/IP协议栈(按TCP/IP参考模型划分) 包含了一...

2022-10-29 23:09:37查看全文 >>

辣炸鸡的做法视频教程(香辣炸鸡正宗做法视频)

辣炸鸡的做法视频教程(香辣炸鸡正宗做法视频)

去夜市你们都会吃什么呢?炸物一定是其中会买的一项,这间在逢甲夜市里的「酱鸡铺」买一份边走边吃特别适合,他们家的炸鸡真的很...

2022-10-29 23:13:15查看全文 >>

正宗酸甜炸鸡的做法(六种口味炸鸡的做法)

正宗酸甜炸鸡的做法(六种口味炸鸡的做法)

好久没有光顾楼下的快餐炸鸡店了,今天想外卖买一份炸鸡,结果不出所料的没有开门营业。 他家的炸鸡真的超级好吃,吃着炸鸡,喝...

2022-10-29 23:07:31查看全文 >>

tcp三次握手和4次挥手的过程(tcp三次握手和4次挥手的过程图)

tcp三次握手和4次挥手的过程(tcp三次握手和4次挥手的过程图)

推荐阅读:PS:通俗一点的解释都会在引用块中Nothing is true, Everything is permitt...

2022-10-29 23:21:24查看全文 >>

什么是tcp协议通俗易懂(tcp协议几种)

什么是tcp协议通俗易懂(tcp协议几种)

优质文章,及时送达本文来源于嵌入式LinuxTCP 是互联网核心协议之一,本文介绍它的基础知识。一、TCP 协议的作用互...

2022-10-29 23:56:34查看全文 >>

tcp三次握手和4次挥手(tcp出现大量closewait解决办法)

tcp三次握手和4次挥手(tcp出现大量closewait解决办法)

作者:ThinkWon原文:https://blog.csdn.net/ThinkWon/article/details...

2022-10-29 23:56:05查看全文 >>

tcp协议三次握手动画(tcp四次挥手)

tcp协议三次握手动画(tcp四次挥手)

专注于Java领域优质技术,欢迎关注作者:老钱 占小狼博客TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一。很...

2022-10-29 23:24:31查看全文 >>

tcpip协议基础知识(tcpip协议详细步骤)

tcpip协议基础知识(tcpip协议详细步骤)

参考书籍为《图解tcp/ip》-第五版。这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及...

2022-10-29 23:47:10查看全文 >>

文档排行