TCP 定时器管理

 重传定时器(retransmission timer,Positive ackn. with retransmit)
最重要的定时器

TCP 定时器管理

 持续定时器(persistence timer),用来避免如下的死锁( deadlock )发生
接收方发送了一个窗口数为零的确认(窗口更新),告诉发送方等待。
稍后,接收方空出了缓冲,发送更新窗口的数据段,但是,很不幸,该分组丢失啦!
现在,收发双方都在等待对方发送数据段过来,但永远等不到! 死锁产生。

怎样防止死锁?

 保活定时器(keep-alive timer):用来检查连接是否存活,当一个连接空闲的时间超过保活定时器的时间,该连接将被杀掉。
 在关闭时刻处于TIMED WAIT 状态中使用的定时器:运行两倍的最大分组生存时间,以确保连接关闭之后,该连接上的所有分组都完全消失。

比较 TCP 和 UDP

TCP
 可靠传输方式
 可让应用程序简单化,程序员可以不必进行错误检查、修正等工作
UDP
 为了降低对计算机资源的需求(DNS)
 应用程序本身已提供数据完整性的检查机制,勿须依赖传输层的协议来保证
 应用程序传输的并非关键性的数据(路由器周期性的路由信息交换)
 一对多方式,必须使用UDP(TCP限于一对一的传送)(视频传播)

 TCP中有很多定时器,管理定时器是一件重要的事情。
 持续定时器用来解除死锁。
 TCP跟UDP有极大的不同,是一个重量级的传输层协议。

s6-9 TCP 定时器相关推荐

  1. tcp协议栈实现,tcp定时器与滑动窗口实现

    要实现用户态协议栈,必须要搞懂TCP,TCP 11个状态.滑动窗口.拥塞控制.定时器等等. 要使用用户态协议栈,内核提供的epoll就不起作用了,我们需要自己实现用户态的epoll.epoll内部涉及 ...

  2. TCP的定时器系列 — 超时重传定时器(有图有代码有真相!!!)

    转载 主要内容:TCP定时器概述,超时重传定时器.ER延迟定时器.PTO定时器的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd Q:一条TCP连接 ...

  3. TCP协议(标志位URG、PSH,定时器,连接的建立和断开)

    目录 ●TCP段格式 ●TCP定时器 ●TCP三次握手和四次挥手 ●TCP段格式 6位标志位有紧急标志URG.推送标志PSH.确认标志ACK.复位标志RST.链接同步标志SYN以及结束标志FIN. ○ ...

  4. Linux tcp xmit 定时器

    在tcp socket初始化的时候,会初始化设置三个定时器,isck_retransmit_timer.isck_delack_timer.sk_timer,本文主要描述下这三种tcp定时器. voi ...

  5. TCP/IP详解--第十九章

     第19章 TCP的交互数据流 19.1    引言   前一章我们介绍了 TCP连接的建立与释放,现在来介绍使用 TCP进行数据传输的有关问 题. 一些有关 TCP通信量的研究如[Cacereset ...

  6. LWIP之TCP协议

    IP协议提供了在各个主机之间传送数据报的功能,但是数据的最终目的地是主机上的特定应用程序.传输层协议就承担了这样的责任,典型的传输层协议有UDP和TCP两种. UDP只为应用程序提供了一种无连接的.不 ...

  7. Socket 系统调用深入研究(TCP协议的整个通信过程)

    说明 本文主要参考的原文:Know your TCP system call sequences socket api可以参考我的博客:socket API 介绍 TCP DEMO:tcp demo ...

  8. 了解 TCP 系统调用序列

    从内核到应用程序级别的函数调用序列 TCP/IP 编程接口提供各种系统调用,以帮助您有效地使用该协议.TCP 堆栈代码数量繁多,深入到内核级别的完整调用序列可以帮助您了解 TCP 堆栈.在本文中,将回 ...

  9. TCP/IP协议栈之LwIP(六)---网络传输管理之TCP协议

    文章目录 一.TCP协议简介 1.1 正面确认与超时重传 1.2 连接管理与保活机制 1.3 滑动窗口与缓冲机制 1.4 流量控制与拥塞控制 1.5 提高网络利用率的其他机制 二.TCP协议实现 2. ...

最新文章

  1. RPC 笔记(08)— socket 通信(多进程多线程服务器)
  2. sql server 表索引碎片处理
  3. matlab如何求传递函数的幅值_自动控制原理2.2.1 什么是传递函数,为什么要使用传递函数的概念...
  4. 有感于《你赔了我赚了》
  5. Linux基本命令 (一)
  6. java 读取控制台_Java从控制台读入数据的几种方法总结
  7. PHP二维码在线制作生成系统源码 无需数据库 带logo图标
  8. 第一次总结:整体框架
  9. WINCC AUDIT审计组建教程
  10. 根据Excel记录生成Mysql和Hive建表语句
  11. Kvaser—灵活多变的CAN总线接口方案
  12. 软件日企工作感想,目前刚到账两周
  13. MATLAB的appdesigner背景图片设置
  14. 触觉智能分享-RK3568 Android11修改默认输入法
  15. android 定位 闪退_Unity3D研究院之全方位定位Android闪退(九十三)
  16. 现货黄金历史价格涨了几倍?
  17. fatal: Couldn't find remote ref refs/heads/cm-13.0
  18. transceiver意思_IP Transceiver是什么意思
  19. 目标跟踪经典算法汇总(持续更新...)
  20. 旺店通·企业奇门与用友BIP旺店通销售出库单对接销售订单

热门文章

  1. java事件大全_Java sctipt常用事件汇总介绍
  2. batch spring 重复执行_一个3年老javaer竟然连Spring的事务管理都不知道,惊呆了
  3. mysql 事务 注意 优化_MySQL入门详解——事务、锁、优化
  4. centos 程序 mysql数据库文件位置,CentOS 更改MySQL数据库目录位置
  5. uniapp点击图片放大_手机做图片放大镜效果很难?看这里,分分钟就能学会!
  6. 自然语言系列学习之表示学习与知识获取(六)融合实体描述的知识表示和融合实体所在句子的知识表示
  7. Apache Flink 零基础入门(六)Flink核心概念
  8. 雷军:小米将扩招5000名工程师!多个领域需要用到C++
  9. 外包程序员入职蚂蚁金服被质疑,网友:人生污点
  10. python按hash分组_Python操作redis系列以 哈希(Hash)命令详解(四)