TCP协议知识点总结

转载 2015年07月09日 14:49:47

TCP协议是我们学习工程实践的宝库,其中蕴含了很多重要的模型。有几个比较重要的机制可以研究:连接管理、可靠传输、流量控制和拥塞控制。在实现自己的功能模块的时候,可以借鉴其中的思想。

连接管理:

 

可靠传输采用自适应的超时计算方法。

流量控制使用一种基于滑动窗口协议的流量控制机制。包括接受窗口(rwnd)和发送窗口(也称为拥塞窗口:cwnd):rwnd限制发送方向网络注入报文的速率,cwnd根据对当前网络拥塞程度的估计而确定的窗口值。发送方的发送窗口实际大小是取rwnd和cwnd中最小值。

拥塞控制的四种算法:慢开始、拥塞避免、快重传、和快恢复。

慢开始算法要点:

1.      TCP连接建立好,开始发送TCP报文段时,拥塞窗口cwnd=1;

2.      使用慢开始算法,每经过一个传输轮次,拥塞窗口cwnd就加倍,即cwnd大小就呈指数形式增长;

3.      当拥塞窗口cwnd增大到一个规定的慢开始门限(阈值),然后执行拥塞避免算法;

拥塞避免算法要点:

1.      加法增大:拥塞窗口每经过一个RTT(往返时间)就增大一个MSS,而不再是加倍;

2.      乘法减小:当出现一次超时(网络拥塞)时,将慢开始门限改为当先拥塞窗口cwnd的一半,拥塞窗口重新设置为1,执行慢开始算法;

根据cwnd的大小执行不同的算法,归结如下:

1.      当cwnd<ssthresh时,使用慢开始算法;

2.      当cwnd>ssthresh时,停止使用慢开始算法,而改为拥塞避免算法;

3.      当cwnd=ssthresh时,既可以使用慢开始算法,也可以使用拥塞避免算法;

经典的满开始和拥塞避免算法如下图所示:

快重传算法要点:

1.      冗余ACK检测丢包的发生(丢包意味着网络发生了拥塞);

2.      当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时;

3.      理解本算法需要明确可靠传输的机制;

快恢复算法要点:

1.      当发送方连续收到三个重复的ACK报文时,执行乘法减小,把慢开始门限ssthresh减半;

2.      拥塞窗口设置为慢开始门限ssthresh减半后的数值(与慢开始算法不同,慢开始算法将拥塞窗口设置为1);

3.      然后执行加法增大,使拥塞窗口缓慢地线性增大;

4.      由于跳过了拥塞窗口cwnd从1起始的慢开始过程,所以称为快恢复;

相关文章推荐

TCP/IP协议知识点总结与面试

  • 2017年08月09日 11:27
  • 2.45MB
  • 下载

TCP/IP协议面试常问知识点,倾心总结

关于TCP/IP协议的倾心总结~

tcp/ip协议 卷一知识点整理

一、TCP/IP参考模型   ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和O...

【Java TCP/IP Socket】Socket编程知识点总结

转载请注明出处: TCP/IP Sockets in java 读书笔记 第1章:简介 1、协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构、交换方式、包含的意义以及怎样对报文所包...

DAY21--java中的网络编程TCP/IP常用知识点总结

中的网络编程TCP/IP常用知识点总结

TCP/IP网络知识点总结

学完了计算机网络是时候整理一篇总结了,温故知新。注意:这篇博客很长长长(2.5万字+50图)。   TCP/IP网络知识点总结   一.总述  1.定义:计算机网络是一些互相连接的、自治的计算机的集合...

HTTP,HTTPS协议知识点总结

HTTP是面向事务,无状态的服务器传输超文本到本地浏览器的明文传送协议,端口号80 HTTPS是SSL+http构建的有加密传输,身份认证的网络协议,SSL(安全套接字协议)的作用是对数据进行加密,...

动态机制、类别、协议、复制知识点总结

1、动态机制 特点: 克服在源代码编译和链接的时候必须决定内存大小和地址。 让程序根据用户运行程序的环境来决定行为。 表现形式: 动态类型识别,直到运行时才决定一个对象的类别”。 动态绑定...
  • LGJ1025
  • LGJ1025
  • 2013年04月20日 00:57
  • 502

Linux C语言编程-Linux网络通信--Linux上使用curl来发送Http协议的报文---知识点总结+实例d

1.curl是什么,有什么用? 一下是我自己的一些看法: (1)curl是什么或者说cUrl是什么: cURL(C语言上的URL工具可以这样理解吧!) curl是Linux上的一个工具,说白了就是L...

TCP/IP知识点

第一部分:TCP/IP相关知识点对TCP/IP的整体认 链路层知识点 IP层知识点 运输层知识点 应用层知识点 ...
  • hyqsong
  • hyqsong
  • 2016年05月15日 08:11
  • 258
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP协议知识点总结
举报原因:
原因补充:

(最多只允许输入30个字)