《TCP/IP详解 卷一》读书笔记-----TCP数据流
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数据流的更多相关文章
- 《TCP/IP详解》读书笔记
本书以UNIX为背景,紧贴实际介绍了数据链层.网络层.运输层 一.整体概念 1.各层协议的关系,只讨论四层 各层常见的协议: 网络层协议:IP协议.ICMP协议.ARP协议.RARP协议. ...
- TCP/IP详解 卷一学习笔记(转载)
https://blog.csdn.net/cpcpcp123/article/details/51259498
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- 『TCP/IP详解——卷一:协议』读书笔记——01
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...
- 【TCP/IP详解 卷一:协议】第二章:链路层
2.1 引言 链路层的三个目的: (1)为IP模块发送和接收IP数据报. (2)为ARP模块发送ARP请求和接收ARP应答.地址解析协议:ARP. (3)为RARP模块发送RARP请求和接收RARP应 ...
- 『TCP/IP详解——卷一:协议』读书笔记——02
2013-08-16 20:07:11 1.3 TCP/IP的分层 这是一个很好的图,要多看!!图上有些细节会在今后的笔记中提到,看不懂不必深究. IP是网络层上的主要协议,同时被TCP和UDP(这两 ...
- 『TCP/IP详解——卷一:协议』读书笔记——18
2013-08-27 15:44:52 第7章 Ping程序 7.1 引言 “ping”这个名字来源于声纳定为操作.Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达.该程序发送 ...
- 『TCP/IP详解——卷一:协议』读书笔记——15
2013-08-25 13:39:40 第6章 ICMP:Internet控制报文协议 6.1 引言 ICMP经常被认为是IP层的一个组成部分.它传递差错报文以及其他需要注意的信息.ICMP报文同通常 ...
- 『TCP/IP详解——卷一:协议』读书笔记——14
2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其 ...
- 『TCP/IP详解——卷一:协议』读书笔记——13
2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...
随机推荐
- [小北De编程手记] : Selenium For C# 教程目录
写<Selnium For C#>系列文章的初衷是因为有很多朋友问我应该从哪里开始学习自动化测试,于是就为大家写下了这个系列的文章,希望对你有些帮助吧.而我想表达的是Selenium(同时 ...
- [Azure] Notification Hubs注册模式
[Azure] Notification Hubs注册模式 关于Azure Notification Hubs的注册模式,可以参考下列连结的文件内容. Notification Hubs Featur ...
- 从网络中获取图片显示到Image控件并保存到磁盘
一.从网络中获取图片信息: /// <summary> /// 获取图片 /// </summary> /// <param name="url"&g ...
- Sharepoint 2013 创建TimeJob 自动发送邮件
创建Time Job 继承继承SPJobDefinition 并且实现里边的 Execute方法 部署 可以手动部署,把程序集放到GAC,手动激活feature 如果部署的时候说feature已经存在 ...
- This task is currently locked by a running workflow and cannot be edited
转自:http://geek.hubkey.com/2007/09/locked-workflow.html 转自:http://blogs.code-counsel.net/Wouter/Lists ...
- java多线程系列6-阻塞队列
这篇文章将使用经典的生产者消费者的例子来进一步巩固java多线程通信,介绍使用阻塞队列来简化程序 下面是一个经典的生产者消费者的例子: 假设使用缓冲区存储整数,缓冲区的大小是受限制的.缓冲区提供wri ...
- 使用VideoView自定义一个播放器控件
介绍 最近要使用播放器做一个简单的视频播放功能,开始学习VideoView,在横竖屏切换的时候碰到了点麻烦,不过在查阅资料后总算是解决了.在写VideoView播放视频时候定义控制的代码全写在Actv ...
- Android中使用抖动动画吸引来用户注意
原文:http://www.androidcn.org/topic/552e65bc61d460226ab27a5c 在应用中,有时候我们要吸引用户去点击某些按钮,比如应用市场的推荐按钮,为了能够吸引 ...
- Gradle安装
最近在学Android,而Android是由Gradle来构建的:Gradle是一个基于 JVM 的构建工具.所以开始学习Android之前,先进行Gradle安装与学习: mac: 使用SDKMAN ...
- [android] 手机卫士设置向导页面
设置向导页面,通过SharedPreferences来判断是否已经设置过了,跳转到不同的页面 自定义样式 在res/values/styles.xml中 添加节点<style name=””&g ...