1.TCP协议特点
TCP是面向连接的协议,提供可靠的、全双工的、面向字节流的,端到端的服务。连接信息包括源目IP地址,源目端口。
2.TCP建立与释放连接机制
三次握手、四次挥手不用多说了吧
3.TCP定时管理机制
重传机制是保证TCP可靠性的重要措施
流量控制机制:(确保防止发送速度过快导致数据丢失)
控制到300后,但由于201的数据已经发过了,A还不清楚是否接收成功,所以接着发300-500的数据,发送完成后由于重传计时器超时,重新发送201的数据,B窗口减小是为了确定丢失数据以重新接收,方便确认数据
当接收缓存为0后,A会给B发送零窗口探测报文,直到B回复拥有缓存空间继续发送数据,如果零窗口探测报文丢失,会有持续计数器,当为0是继续发送,即时B没有缓存空间TCP要求强制接收
超时重传机制
4.TCP拥塞控制策略
在某段时间,若对网络中某一资源额需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做拥塞,在计算机网络中的链路容量(即带宽)、交换节点中的缓存和处理机等,都是网络的资源。如出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降
TCP的四种防拥塞策略分别是:慢开始、拥塞避免、快重传和快恢复
在假设发送方和接收方的发送速率只取决于传输状态,并且接收方只回复确认信息
①慢开始和拥塞避免算法
发送方维护一个叫做拥塞窗口cwnd的状态变量,其值取决于网络的拥塞程度
拥塞窗口cwnd的维护原则:只要网络没有出现拥塞,拥塞窗口就再增大一些,但只要网络出现拥塞,拥塞窗口就减少一些。
判断是否出现网络拥塞的依据:没有按时收到应当到达的确认报文(即发生超时重传)
发送方将拥塞窗口作为发送窗口swnd。即swnd=cwnd
维护一个慢开始门限ssthresh状态变量:
当cwnd<ssthresh时,使用慢开始算法;
当cwnd>ssthresh时,停止使用慢开始算法而改用拥塞避免算法;
当cwnd=ssthresh时,既可以使用慢开始算法,也可以使用避免拥塞算法
慢开始算法:每次发送的数据段的数量翻倍,当达到慢开始门限后,改使用拥塞避免算法
拥塞避免算法:每次发送的数据段的数量加1,当发生数据段丢失情况下,开始调整,将ssthresh调整为发送速率的一半,并将cwnd更改为1,重新开始慢开始算法
如图所示:
②快重传和快恢复算法
有时,个别报文段会在网络中丢失,但是并未发生网络拥塞,这将导致发送方超时重传,并误认为网络发生了拥塞;发送方把拥塞窗口cwnd又设置为最小值1,并错误的启动慢开始算法,因而降低了传输效率,而快重传算法可以让发送方今早知道发生了个别报文段的丢失,快重传算法则可以使发送方尽快进行重传,而不是等超时重传计时器超时再进行重传,其要求:
接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认
及时收到了失序的报文段也要立即发出对已收到的报文段的重复确认
发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等该报文段的超时重传计时器超时再重传
发送方一旦收到3个重复确认,就知道现在只是丢失了个别报文段,于是开始执行快恢复算法:
将慢开始门限ssthresh值和拥塞窗口cwnd值调整为当前窗口的一般,开始执行拥塞避免算法,或者将其扩大3个大小
快重传和快恢复算法如图所示:
最后感谢视频老师的耐心讲解!!