原来计算机的组成原理这么简单_多媒体计算机的组成

一、TCP
Tcp(传输控制协议),一种用于“控制”传输、发送和通信的协议,在数据传输过程中充分实现各种控制功能,可以在丢包时控制重传,也可以控制顺序无序的数据包 。另外,TCP是面向连接的协议,只有确认通信终端存在才会发送数据 。
TCP复杂控制连接的建立、断开、维护等管理工作,保证了在无连接的网络IP上实现高可靠性的通信 。
1.数据传输
在TCP中,当来自发送方的数据到达接收方主机时,接收方主机将返回一个消息已收到的通知,这称为确认(ACK) 。如果在一定时间内没有收到确认,发送方可以认为数据已经丢失,并重新发送 。
在TCP中,传输数据的每个字节都标有序列号,接收端查询接收数据的TCP报头中的序列号和数据的长度,并返回下一个应该接收的序列号作为ACK 。序列号机制使发送方能够根据序列号分批发送,并使接收方能够处理消息的无序和重复 。
在TCP中,每次发出数据包时都会计算往返时间及其偏差(方差) 。加上这个往返时间和偏差(方差)就是重发超时时间.当然,初始包的往返时间是未知的,重传超时一般设为6秒左右 。如果数据重传后没有收到确认,则重传 。此时,重传超时将延长2倍和4倍的指数函数 。
当数据达到一定的重传次数,如果没有返回ACK,则判断网络或对端主机异常,强行关闭连接 。
2.连接管理
TCP连接过程就是大家熟悉的三次握手和四波过程 。

形象
3.分段和窗口控制
TCP以网段为单位发送数据,最大网段大小(MSS)是通过三次握手在两端主机之间计算的 。当两端的主机发出建立连接的请求时,它们会在TCP报头中写入MSS选项,告诉对方它们的接口可以适应的MSS的大小,然后TCP会在它们之间选择一个较小的值来使用 。
TCP以一个段为单位,每个段都发送ACK处理,有一个缺点 。——包的往返时间越长,通信性能越低 。为了解决这个问题,TCP引入了窗口.的概念 。窗口是比段大的一个单位 。在窗口发送完一段后,不需要一直等待ACK,而是继续发送 。如下图,窗口大小为4段 。

形象
在使用窗口控件时,如果有段丢失怎么办?这个问题可以分为两种情况 。第一种情况是接收方收到数据,但对ACK的回复失败 。这种情况下,不需要重传,接收方会通知下一个ACK数据接收成功;在第二种情况下,如果接收端没有接收到数据,接收端将总是确认数据的序列号 。当发送端连续三次收到相同序列号的ACK时,会重传相应的数据 。这种机制被称为高效重发机制.

形象
4.流量控制
流量控制是指发送方可以根据接收方的实际接收能力来控制发送的数据量 。它的具体操作是接收主机通知发送主机它可以接收的数据大小,所以发送终端将发送不超过这个限制的数据,这
度就被称为窗口大小 。
接收端的数据缓冲区一旦面临溢出时,窗口大小的值也会被随之设置为一个更小的值通知给发送端 。发送端再根据该值,对发送数据的量进行控制 。这就形成了一个完整的 TCP 流控制 。
5. 拥塞控制
拥塞控制是为了解决网络拥堵的问题,在网络出现拥堵时,如果突然发送一个较大量的数据,极有可能会导致整个网络的瘫痪 。前面提到的流控制,窗口大小是由接收端决定的,发送端无法自我调节要发送的数据量 。
【原来计算机的组成原理这么简单_多媒体计算机的组成】为了在发送端调节所要发送数据的量,定义了一个叫做 拥塞窗口 的概念 。在通信一开始时,通过一个叫做慢启动的算法计算出拥塞窗口的初始阈值,之后每收到一次 ACK,拥塞窗口按照一定的比例放大拥塞窗口 。在发送数据包时,将拥塞窗口的大小与接收端主动通知的窗口大小做比较,然后按照它们当中较小的那个值,发送比其还要小的数据量 。
当 TCP 通信开始以后,网络吞吐量会逐渐上升,但是随着网络拥堵的发生(体现为数据重发)吞吐量也会急速下降 。于是会再次进入吞吐量慢慢上升的过程 。因此所谓 TCP 的吞吐量的特点就好像是在逐步占领网络带宽的感觉 。
image
6. Nagle 算法
Nagle 算法是指发送端即使还有应该发送的数据,但如果这部分数据很少的话,则进行延迟发送的一种处理机制 。具体来说,就是仅在下列任意一种条件下才能发送数据 。
已发送的数据都已经收到 ACK已发送最大段长度(MSS)的数据7. 延迟确认应答
前面提到,TCP 采用滑动窗口的控制机制,因此通常确认应答少一些也无妨 。为此,引入了一个方法,那就是收到数据以后并不立即返回 ACK,而是延迟一段时间的机制 。