《TCP/IP详解 卷1:协议》 读书笔记 第十九章 TCP的交互数据流
来源:互联网 发布:手机怎么登电脑版淘宝 编辑:程序博客网 时间:2024/06/05 16:04
第十九章 TCP的交互数据流
1.前言
在TCP进行数据传输时,可以分为成块数据流和交互数据流两种,且处理的算法不同.
2.交互式输入
例子:在一个Rlogin连接上键入一个交互命令所产生的数据流(每一个交互按键都会产生一个数据分组)。
(下面我们将看到,第二,三个报文段是可以合并的)
3.经受时延的确认
按键确认和按键回显两个报文段合并在一起发送,这种技术叫做经受时延的确认。
通常TCP在接收到数据时并不立即发送ACK,将以不大于TCP定时器的延时等待是否有数据一起发送,有时也称这种现象为数据捎带ACK。
(绝对多数实现采用200ms的时延)
ACK延时等待时间不大于TCP定时器的原因:
假如TCP使用200ms的定时器,该定时器将相对于内核引导的200ms固定时间溢出,由于将要确定的数据随机到达,TCP将在下一次内核的200ms定时器溢出时得到通知,所以ACK实际等待的时间为1~200ms中任一刻.
4.Nagle算法
Nagle算法要求TCP连接上最多只有一个未被确认的未完成小分组,在该分组确认到达之前不能发送其他的小分组.且同时TCP收集这些小分组,在确认到达后以一个大的分组发出去.
该算法可以减少网络上的微小分组,降低拥塞出现的可能.但相应的,也会增加更多的时延.
流程:
(1)发送端TCP将从应用进程接收到的第一数据块立即发送,不管其大小,哪怕只有一个字节.
(2)发送端输出第一块数据后开始收集数据,并等待确认.
(3)确认未达到时,若收集数据达到窗口的一半或一个MSS段,立即发送.
(4)确认到达后,把缓冲区中的数据组成一个TCP段,然后发送.
socket API用户可以使用TCP_NODELAY选项来关闭Nagle算法。
(比如当小消息需要无时延地发送时~)
5.窗口大小通告
- 《TCP/IP详解 卷1:协议》 读书笔记 第十九章 TCP的交互数据流
- 《TCP/IP详解 卷1:协议》 读书笔记 第十九章 TCP的交互数据流
- 《TCP/IP详解 卷1:协议》 第十九章 TCP的交互数据流
- TCP/IP详解卷1 读书笔记:第十九~二十章 TCP交互数据流和成块数据流
- 《TCP/IP详解 卷1:协议》 读书笔记 第19章 TCP的交互数据流
- 《TCP/IP详解 卷1:协议》 读书笔记 第二十章 TCP的成块数据流
- 《TCP/IP详解 卷1:协议》 读书笔记 第20章 TCP的成块数据流
- 《TCP/IP详解 卷1:协议》 读书笔记 第二十章 TCP的成块数据流
- TCP-IP详解卷1-19:TCP的交互数据流
- 《TCP/IP详解 卷1》 笔记: TCP的交互数据流
- TCP/IP详解卷1:协议(十一)【TCP的交互数据流,成块数据流,超时与重传】
- 《TCP/IP详解 卷1:协议》第二十章 TCP的成块数据流
- 《TCP/IP详解 卷1:协议》读书笔记
- 《TCP/IP详解 卷1:协议》读书笔记
- 《TCP/IP详解 卷1:协议》读书笔记
- 《TCP/IP详解卷1:协议》读书笔记
- 《TCP/IP详解 卷1:协议》读书笔记
- 《TCP/IP详解 卷1:协议》读书笔记
- linux复习(二)
- struts2开发环境搭建
- linux 下定时器 crontab
- 华为oj:挑7
- 如何使用mstsc进行远程登录?
- 《TCP/IP详解 卷1:协议》 读书笔记 第十九章 TCP的交互数据流
- 直接拿来用!最火的Android开源项目(完结篇)
- 2016计划
- rails里面的撤销操作
- 根据选中treeView节点的值弹出菜单界面
- 存储过程的循环语句
- spring定时器与quartz定时器
- Hadoop学习笔记———《读、写HDFS文件》
- CDH平台搭建