TCP/IP详解系列 --- 概念总结02
TCP复位报文段(RST)的用途:
1.当客户端程序访问不存在的端口时,目标主机将给它发送一个复位报文段;收到复位报文段的一端应该关闭连接或者重新连接,而不能回应这个复位报文段。
2.当客户端程序向服务器的某个端口发起连接,而该端口仍被处于TIME_WAIT状态的连接所占用时,客户端程序也将收到复位报文段。
3.异常终止连接:给对方发送一个复位报文段(使用socket选项SO_LINGER),一旦发送了复位报文段,发送端所有排队等待发送的数据都将被丢弃。
4.如果客户端(或服务器)往处于半打开状态的连接写入数据,则对方将回应一个复位报文段;
TCP交互数据流:交互数据仅包含很少的字节,使用交互数据的应用程序(或协议)对实时性要求较高。如telnet, ssh;
TCP成块数据流:长度通常为TCP报文段所允许的最大数据长度,使用成块数据的应用程序(或协议)对传输效率要求高。比如ftp;
Nagle算法:
原理:Nagle算法要求一个TCP连接的通信双方在任意时刻都最多只能发送一个未被确认的TCP报文段,在该TCP报文段的确认到达之前不能发送其他TCP报文段。另一方面,发送方在等待确认的同时收集本端需要发送的微量数据,并在确认到来时以一个TCP报文段将它们全部发出。
优点:01.极大的减少了网络上的微小TCP报文段数量; 02.自适应性:确认到达得越快,数据也就发送得越快;
备注:
1.Nagle算法常与另一个TCP算法联合使用: ACK延滞算法,即TCP在接收到数据后不立即发送ACK,而是等待一小段时间(典型值50~200ms),然后才发送ACK;TCP期待在这一小段时间内自身有数据发送回对端,被延滞的ACK就可以这些数据捎带,从而节省掉一个TCP分节。
2.TCP默认开启Nagle算法,可以通过TCP_NODELAY套接字选项关闭。
需要考虑关闭Nagle算法情形:对于其服务器不在相反方向产生数据以便携带ACK的客户来说,或者对于以若干小片数据向服务器发送单个逻辑请求的客户,Nagle算法和ACK延滞算法可能会导致客户察觉到明显延迟;
3.接收方不应该过分推迟发送确认,否则会导致发送方不必要的重传,这反而浪费了网络的资源;TCP标准规定,确认推迟的时间不应超过0.5秒,若收到一连串具有最大长度的报文段,则必须每隔一个报文段就要发送一个确认。
4.当传输大量大块数据时,发送方会连续发送多个TCP报文段,接收方可以一次确认所有这些报文段。而发送方在收到上一次确认后,能连续发送的TCP报文段数量,是由接收通告窗口和拥塞窗口的大小决定的。
PUSH标志:发送方使用该标志通知接收方将所接收到数据全部提交给接收进程。
带外数据:比普通数据有更高的优先级,它应该总是立即被发送,而不论发送缓冲区中是否有排队等待发送的普通数据,用于迅速通告对方本端发生的重要事件。
TCP超时重传:TCP模块为每个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动,如果超时时间内未收到接收方的应答,TCP模块将重传TCP报文段并重置定时器。
TCP拥塞控制
包括四个部分:慢启动、拥塞避免、快速重传、快速恢复
TCP/IP详解系列 --- 概念总结02的更多相关文章
- TCP/IP详解系列 --- 概念总结01
UDP协议 .vs. TCP协议: 原理上:(TCP报文段. vs . UDP用户数据报) TCP协议的特性: TCP是面向连接的运输层协议,应用程序在使用TCP协议之前,必须先建立TCP连接. ...
- 《TCP/IP详解 卷1:协议》系列分享专栏
<TCP/IP详解卷1:协议>是一本详细的TCP/IP协议指南,计算机网络历久不衰的经典著作之一. 作者理论联系实际,使读者可以轻松掌握TCP/IP的知识.阅读对象为计算机专业学生.教师以 ...
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- TCP/IP详解学习笔记
TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...
- TCP/IP详解 (转)
TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...
- 《TCP/IP详解卷1:协议》第1章 概述-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- TCP/IP详解--连接状态变迁图CLOSE_WAIT
终止一个连接要经过4次握手.这由TCP的半关闭(half-close)造成的.既然一个TCP连接是全双工(即数据在两个方向上能同时传递,可理解为两个方向相反的独立通道),因此每个方向必须单独地进行关闭 ...
- TCP IP详解(转)
大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 网络七层协议简称OSI.TCP/IP刨除了物理层,并把上三层(会话层.表示层和应用层)统称 ...
- 《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
随机推荐
- RunLoop的模式
RunLoop的模式有Default模式.Connection模式.Modal模式.Event tracking模式和Common模式. 1) NSDefaultRunLoopMode: 大多数工作中 ...
- 初学Python之os模块
OS模块是一个系统操作模块,是对本机的一些操作 os.name 显示操作系统,window:nt ,Linux/Unix:posix. os.getcwd() 显示运行的工作路径 os.list ...
- Delphi日期函数、日期加减
Delphi里有现成的函数可以实现日期加减,是在DateUtils单元里的. function IncYear(const AValue: TDateTime; const ANumberOfYear ...
- 第六百一十二、三、四、五天 how can I 坚持
上火了啊..已经2017了,真快,人生只是一瞬间,到头来都是一场空. 2016年最后一天,很悲催,没赶上火车.还不能改签,哪能哪次都这么幸运,长记性了,下午到济南,看了看弟弟的房子,到挺不错,就是装修 ...
- python环境
官网:https://www.python.org windows环境:http://www.cnblogs.com/windinsky/archive/2012/09/20/2695520.html ...
- 在指定时间干,必须干(kbmmw 中的事件调度)
从去年开始,kbmmw 慢慢增加内涵,除了完善各种服务外,陆续增加和扩展了作为一个中间件必须有的功能, 例如,权限管理.日志系统.调度系统.内存调试等功能. 今天给大家介绍一下kbmmw 的调度事件, ...
- fastclick 解决js穿透问题
http://www.tuicool.com/articles/VniQRr http://www.cnblogs.com/MrBackKom/archive/2012/06/26/2564501.h ...
- poj3678 Katu Puzzle 2-SAT
Katu Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6714 Accepted: 2472 Descr ...
- Math Start!
(1)Add Digits 解题思路: 基于同余的数学属性. 数字的根(即题目所要求返回的最终结果)与该数字除以9时的余数相同(并且该余数将始终为单个数字). take 438 as an examp ...
- android 对View的延时更换内容
一.当ImageView按下时可以跟换一张按下效果的图片进行显示,使用postDelayed即可以让view在规定时间后执行run()中的内容 img.setImageResource(R.drawa ...