s6-9 TCP 定时器
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 定时器相关推荐
- tcp协议栈实现,tcp定时器与滑动窗口实现
要实现用户态协议栈,必须要搞懂TCP,TCP 11个状态.滑动窗口.拥塞控制.定时器等等. 要使用用户态协议栈,内核提供的epoll就不起作用了,我们需要自己实现用户态的epoll.epoll内部涉及 ...
- TCP的定时器系列 — 超时重传定时器(有图有代码有真相!!!)
转载 主要内容:TCP定时器概述,超时重传定时器.ER延迟定时器.PTO定时器的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd Q:一条TCP连接 ...
- TCP协议(标志位URG、PSH,定时器,连接的建立和断开)
目录 ●TCP段格式 ●TCP定时器 ●TCP三次握手和四次挥手 ●TCP段格式 6位标志位有紧急标志URG.推送标志PSH.确认标志ACK.复位标志RST.链接同步标志SYN以及结束标志FIN. ○ ...
- Linux tcp xmit 定时器
在tcp socket初始化的时候,会初始化设置三个定时器,isck_retransmit_timer.isck_delack_timer.sk_timer,本文主要描述下这三种tcp定时器. voi ...
- TCP/IP详解--第十九章
第19章 TCP的交互数据流 19.1 引言 前一章我们介绍了 TCP连接的建立与释放,现在来介绍使用 TCP进行数据传输的有关问 题. 一些有关 TCP通信量的研究如[Cacereset ...
- LWIP之TCP协议
IP协议提供了在各个主机之间传送数据报的功能,但是数据的最终目的地是主机上的特定应用程序.传输层协议就承担了这样的责任,典型的传输层协议有UDP和TCP两种. UDP只为应用程序提供了一种无连接的.不 ...
- Socket 系统调用深入研究(TCP协议的整个通信过程)
说明 本文主要参考的原文:Know your TCP system call sequences socket api可以参考我的博客:socket API 介绍 TCP DEMO:tcp demo ...
- 了解 TCP 系统调用序列
从内核到应用程序级别的函数调用序列 TCP/IP 编程接口提供各种系统调用,以帮助您有效地使用该协议.TCP 堆栈代码数量繁多,深入到内核级别的完整调用序列可以帮助您了解 TCP 堆栈.在本文中,将回 ...
- TCP/IP协议栈之LwIP(六)---网络传输管理之TCP协议
文章目录 一.TCP协议简介 1.1 正面确认与超时重传 1.2 连接管理与保活机制 1.3 滑动窗口与缓冲机制 1.4 流量控制与拥塞控制 1.5 提高网络利用率的其他机制 二.TCP协议实现 2. ...
最新文章
- RPC 笔记(08)— socket 通信(多进程多线程服务器)
- sql server 表索引碎片处理
- matlab如何求传递函数的幅值_自动控制原理2.2.1 什么是传递函数,为什么要使用传递函数的概念...
- 有感于《你赔了我赚了》
- Linux基本命令 (一)
- java 读取控制台_Java从控制台读入数据的几种方法总结
- PHP二维码在线制作生成系统源码 无需数据库 带logo图标
- 第一次总结:整体框架
- WINCC AUDIT审计组建教程
- 根据Excel记录生成Mysql和Hive建表语句
- Kvaser—灵活多变的CAN总线接口方案
- 软件日企工作感想,目前刚到账两周
- MATLAB的appdesigner背景图片设置
- 触觉智能分享-RK3568 Android11修改默认输入法
- android 定位 闪退_Unity3D研究院之全方位定位Android闪退(九十三)
- 现货黄金历史价格涨了几倍?
- fatal: Couldn't find remote ref refs/heads/cm-13.0
- transceiver意思_IP Transceiver是什么意思
- 目标跟踪经典算法汇总(持续更新...)
- 旺店通·企业奇门与用友BIP旺店通销售出库单对接销售订单
热门文章
- java事件大全_Java sctipt常用事件汇总介绍
- batch spring 重复执行_一个3年老javaer竟然连Spring的事务管理都不知道,惊呆了
- mysql 事务 注意 优化_MySQL入门详解——事务、锁、优化
- centos 程序 mysql数据库文件位置,CentOS 更改MySQL数据库目录位置
- uniapp点击图片放大_手机做图片放大镜效果很难?看这里,分分钟就能学会!
- 自然语言系列学习之表示学习与知识获取(六)融合实体描述的知识表示和融合实体所在句子的知识表示
- Apache Flink 零基础入门(六)Flink核心概念
- 雷军:小米将扩招5000名工程师!多个领域需要用到C++
- 外包程序员入职蚂蚁金服被质疑,网友:人生污点
- python按hash分组_Python操作redis系列以 哈希(Hash)命令详解(四)