1、Delayed Acknowledgements:TCP通常不会在收到数据之后立即返回一个ACK,而是会有一个延时,希望能ACK报文段中带上一些数据,通常这个延时为200ms

2、Nagle Algorithm:在TCP连接中,只能有一个小的报文段未被确认。即TCP在发送了一个小的报文段之后,会将之后的小数据都收集起来,直到之前的小报文段得到确认,才将收集到的小数据打包成一个报文段发出。这样做的减少了网络中小报文段的数量,减轻了网络的阻塞,提高了传输的效率

3、当一个包到达以后,它首先被设备驱动的中断处理程序处理,然后被添加到IP的输入队列中,最后被送给TCP进行处理,到要发送delayed acknowledgement的时候,就将确认序号置为已经处理过的报文段中同步序号的最大值加1

4、sliding window:即滑动窗口协议,接收方不必为每个接收到的报文段发送ACK确认报文,进行累计确认即可。例如收到了N-1024~N,N~N+1024两个报文段,那么只要返回一个ACK序号为N+1024的报文段即可

5、如上图所示,发送方发送数据的速度大于接受方处理数据的速度,发送方连续发送了四个包含1024个数据字节的报文段,此时已经填满了接收方建议的滑动窗口的大小,于是它停止发送数据。之后,接收方发送了一个ACK进行累计确认并且建议的窗口大小为0,发送方依旧不能发送数据。最后,接收方又发送了一个ACK,该报文段称为window update ,它的作用并不是用来对任何数据进行确认的,而是告诉发送方可以继续发送数据了

6、发送端的滑动窗口如上图所示:方框的大小为发送方能够发送并且未被确认的字节序列的数目,当收到ACK报文时,方框的左边界就会向左移,当接收方的TCP缓存变大时,方框的右边界就会向右移。那么会不会出现右边界向左移动的情况呢?其实是不会的,我们先讨论最坏的情况,那就是接收方没有处理任何新的数据,并且由于接受了新的数据导致缓存又变小了,但是此时我们可以发现对于发送方来说,只是左边界向右移了,而右边界没有发生变化而已。因此最坏的情况只是右边界不移动而已,并不会存在滑动窗口的右边界向左移的情况

7、Slow Start:即慢启动,这个算法基于这样一种观察结果:发送方发包的速率应该和接收方发送确认报的速率相同。因此又引入了一个叫拥塞窗口(congestion window),刚开始传输数据的时候,拥塞窗口的大小为一个报文段的大小,当第一个报文段被确认后,窗口大小变为二,当之后的两个报文段被确认后,拥塞窗口变为四,依次类推。直到发现丢包时,说明拥塞窗口太大了,再对它进行相应的处理。这里需要的注意的是:拥塞窗口和滑动窗口是同时起作用的,通常发送方能够发送的数据的数量是两者的较小值

8、PUSH flag:当TCP报文段中PUSH标志被置位时,意思是发送方要求接收方立即将接收到的数据交给相应的接收方进程。这里的数据包括当前收到的PUSH被置位的报文段中的数据,也包括接收方之前收到的,被放在缓存中的数据。一般来说,现在已经不能通过程序将报文段中的PUSH标志置位了,因为大多数TCP 的实现都能自动确定需不需要置PUSH标志

《TCP/IP详解 卷一》读书笔记-----TCP数据流的更多相关文章

  1. 《TCP/IP详解》读书笔记

    本书以UNIX为背景,紧贴实际介绍了数据链层.网络层.运输层   一.整体概念   1.各层协议的关系,只讨论四层 各层常见的协议:   网络层协议:IP协议.ICMP协议.ARP协议.RARP协议. ...

  2. TCP/IP详解 卷一学习笔记(转载)

    https://blog.csdn.net/cpcpcp123/article/details/51259498

  3. 『TCP/IP详解——卷一:协议』读书笔记——10

    2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...

  4. 『TCP/IP详解——卷一:协议』读书笔记——01

    从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...

  5. 【TCP/IP详解 卷一:协议】第二章:链路层

    2.1 引言 链路层的三个目的: (1)为IP模块发送和接收IP数据报. (2)为ARP模块发送ARP请求和接收ARP应答.地址解析协议:ARP. (3)为RARP模块发送RARP请求和接收RARP应 ...

  6. 『TCP/IP详解——卷一:协议』读书笔记——02

    2013-08-16 20:07:11 1.3 TCP/IP的分层 这是一个很好的图,要多看!!图上有些细节会在今后的笔记中提到,看不懂不必深究. IP是网络层上的主要协议,同时被TCP和UDP(这两 ...

  7. 『TCP/IP详解——卷一:协议』读书笔记——18

    2013-08-27 15:44:52 第7章 Ping程序 7.1 引言 “ping”这个名字来源于声纳定为操作.Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达.该程序发送 ...

  8. 『TCP/IP详解——卷一:协议』读书笔记——15

    2013-08-25 13:39:40 第6章 ICMP:Internet控制报文协议 6.1 引言 ICMP经常被认为是IP层的一个组成部分.它传递差错报文以及其他需要注意的信息.ICMP报文同通常 ...

  9. 『TCP/IP详解——卷一:协议』读书笔记——14

    2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其 ...

  10. 『TCP/IP详解——卷一:协议』读书笔记——13

    2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...

随机推荐

  1. [moka同学笔记]yii2 activeForm 表单样式的修改(二)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABAEAAANXCAIAAADLkdErAAAgAElEQVR4nOzdfWwc953nef6zwO5Zg8

  2. DWR的Reverse Ajax技术实现

    DWR的逆向ajax其实主要包括两种模式:主动模式和被动模式.其中主动模式包括Polling和Comet两种,被动模式只有Piggyback这一种. 所谓的Piggyback指的是如果后台有什么内容需 ...

  3. Android:TextView 自动滚动(跑马灯) (转)

    Android:TextView 自动滚动(跑马灯)       TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true ...

  4. Azure SQL Database 时间点还原(Point in Time Restore)功能

      微软中国TechNet 7 Oct 2014 9:17 PM Comments 0 Likes 原文地址:http://blogs.technet.com/b/azuretw/archive/20 ...

  5. Linux useful command

    查看linux系统里面的各个目录.文件夹的大小和使用情况, 先切换到需要查看的目录,如果需要查看所有linux目录的使用情况就直接切换到系统跟目录,然后执行: du -h --max-depth=1 ...

  6. 浅谈RSA加密算法

    一.什么是非对称加密 1.加密的密钥与加密的密钥不相同,这样的加密算法称之为非对称加密 2.密钥分为:公钥,私钥  公钥:可以对外给任何人的加密和解密的密码,是公开的 私钥:通过私钥可以生成公钥,但从 ...

  7. Android——五大布局

    Android的五大布局分为: 线性布局 相对布局 帧布局 绝对布局 表格布局 一.线性布局 线性布局在开发中使用最多,具有垂直方向与水平方向的布局方式 通过设置属性"android:ori ...

  8. 当碰到非ARC写的文件时在ARC环境下运行报错时解决办法

  9. img 在层内 居中显示

    div{width:250px;height:150px;background:#000;position:relative;} img{;;;;margin: auto;} <div>& ...

  10. SVN Can't open file 'xxx':Premission denied

    换了一台电脑,重新搭建本地svn服务器的时候,服务器搭起来了,但是用Cornerstone往服务器上传工程的时候报错 报错有以上两种,都是因为文件权限的限制 解决方法 第一种报错 1.在Finder里 ...