TCP一共有四个主要的定时器,前面已经讲到了一个--超时定时器--是TCP里面最复杂的一个,另外的三个是:
 
坚持定时器
保活定时器
2MSL定时器
其中坚持定时器用于防止通告窗口为0以后双方互相等待死锁的情况;而保活定时器则用于处理半开放连接
 
1.坚持定时器
坚持定时器的原理是简单的,当TCP服务器收到了客户端的0滑动窗口报文的时候,就启动一个定时器来计时,并在定时器溢出的时候向向客户端查询窗口是否已经增大,如果得到非零的窗口就重新开始发送数据,如果得到0窗口就再开一个新的定时器准备下一次查询。通过观察可以得知,TCP的坚持定时器使用1,2,4,8,16……64秒这样的普通指数退避序列来作为每一次的溢出时间。
 
糊涂窗口综合症
 
TCP的窗口协议,会引起一种通常叫做糊涂窗口综合症的问题,具体表现为,当客户端通告一个小的非零窗口时,服务器立刻发送小数据给客户端并充满其缓冲区,一来二去就会让网络中充满小TCP数据报,从而影响网络利用率。对于发送方和接收端的这种糊涂行为。TCP给出了一些建议(或者是规定)。
 
接收方不通告小窗口。通常的算法是接收方不通告一个比当前窗口大的窗口(可以为0),
除非窗口可以增加一个报文段大小(也就是将要接收的MSS)或者可以增加接收方缓存空间
的一半,不论实际有多少。
发送方避免出现糊涂窗口综合症的措施是只有以下条件之一满足时才发送数据:( a )可
以发送一个满长度的报文段;( b )可以发送至少是接收方通告窗口大小一半的报文段;( c )可以
发送任何数据并且不希望接收ACK(也就是说,我们没有还未被确认的数据)或者该连接上
不能使用Nagle算法。
ok,现在我们回忆一下,可以发现TCP的很多规定都是为了在一次传送中发送尽量多的数据,例如捎带ACK数据报文的策略,Nagle算法,重传时发送包含原数据报文的策略,等等。
 
2.保活定时器
保活定时器更加的简单,还记得FTP或者Http服务器都有Sesstion Time机制么?因为TCP是面向连接的,所以就会出现只连接不传送数据的“半开放连接”,服务器当然要检测到这种连接并且在某些情况下释放这种连接,这就是保活定时器的作用。其时限根据服务器的实现不同而不通。另外要提到的是,当其中一端如果崩溃并重新启动的情况下,如果收到该端“前生”的保活探察,则要发送一个RST数据报文帮助另一端结束连接

转载于:https://www.cnblogs.com/elnino/archive/2012/12/28/2837474.html

TCP/IP协议读书笔记(1)相关推荐

  1. 《图解tcp/ip》读书笔记(一)

    我先讲三句话:        一."万物互联的时代到了."我们生活在这样一个互联网急速发展的时代,也许很快就会发现,你能接触到的一切都可以连接到互联网了,电脑.手机这些都早已经过时 ...

  2. TCP/IP协议学习笔记

    TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...

  3. Effective TCP/IP Programming读书笔记

    技巧1 理解基于连接和无连接协议之间的差异 TCP/IP分为四层,分别是接口层/物理层/链路层-->网络层-->传输层-->应用层 网络层主要就是IP层,该层提供了一个很好的高效的, ...

  4. 《图解TCP/IP》读书笔记二:TCP/IP基础知识

    TCP(Transmission Control Protocol,传输控制协议) IP(Internet Protocol,网络之间互连的协议) ICMP(Internet Control Mess ...

  5. TCP/IP协议学习笔记(二)

    工程建立: 先建Project然后添加module和package,如图所示: 代码编写: 首先代码中会出现中文字符,所以要在代码中添加#coding utf-8,避免出现乱码. 然后明确TCP/IP ...

  6. 网络知识 | 《图解TCP/IP》读书笔记(下)

    [网络知识]| 作者 / Edison Zhou 这是EdisonTalk的第291篇原创内容 作为一个专业的IT技术人,一个Web应用开发者,不了解网络基础和协议,怎么能行?本文是我2016年阅读& ...

  7. 网络知识 | 《图解TCP/IP》读书笔记(上)

    [网络知识]| 作者 / Edison Zhou 这是EdisonTalk的第290篇原创内容 作为一个专业的IT技术人,一个Web应用开发者,不了解网络基础和协议,怎么能行?本文是我2016年阅读& ...

  8. 《 图解 TCP/IP 》读书笔记

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. WAN :Wide Area Network 广域网. LAN : Local Area Ne ...

  9. TCP/IP第一卷读书笔记

    <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso- ...

最新文章

  1. 为什么要做一个靠谱的人?
  2. 如何在picture上显示透明Label
  3. Mysql 索引-1
  4. Stars HDU 1541
  5. 考研失败了,怎么办?
  6. apache 验证 php 安装,PHP的安装以及验证Apache
  7. 多看优秀的设计,时刻关注行业风向
  8. php strrew,友价域名交易系统nginx环境的伪静态规则
  9. 在阿里云容器服务中使用定时任务
  10. 海姆霍兹获3000万元A轮融资,投资方为国科嘉和
  11. oracle的jde系统,国内Oracle JDE用户的福音,首创AWS JDE Dynamic Adapter集成中间件
  12. Word——如何统计除去标点符号的字数
  13. Dagger2简单使用
  14. HTML5绘制八大行星加入字体,html5中用canvas画八大行星围绕太阳转
  15. Diligent调查发现,董事会成员是安全和公司治理的关键环节
  16. 首席科学家马丁•福勒(Martin Fowler)
  17. 华为交换机主备命令_华为交换机命令中文意思
  18. 一键还原精灵万能的安装方法及error loading os的解决办法
  19. 使用 Ruby 开发代码生成器
  20. MP4文件格式简要解析---代码解析

热门文章

  1. 一般拦截器 serviceImpl部分
  2. 一个透明的shader
  3. 「CH2101」可达性统计 解题报告
  4. PHP7.2 redis
  5. 如何基于 Notadd 构建 API (Laravel 写 API)
  6. Server Develop (三) 多进程实现C/S
  7. 在Eclipse中查看JDK类库的源代码
  8. 我来告诉你为什么中国民营企业管理失败的原因!
  9. GARFIELD@11-20-2004
  10. 相似邻里算法_纽约市-邻里之战