《tcp/ip具体解释》读书笔记(19章)-tcp的交互数据流

mthoutai mthoutai     2022-09-05     367

关键词:

在TCP进行传输数据时。能够分为成块数据流和交互数据流两种。假设按字节计算。成块数据与交互数据的比例约为90%和10%,TCP须要同一时候处理这两类数据,且处理的算法不同。

书籍本章中以Rlogin应用为例观察交互数据的传输过程。提示经受时延的确认是如何工作以及Nagle算法如何降低了通过广域网络传输的小分组的数目。

交互式输入
技术分享
上图为没有优化的字符输入回显的传输数据过程。一共须要四个报文段。

经受时延的确认
上图第二,三个报文段能够合并---按键确认和按键回显一起发送。这样的技术叫做经受时延的确认。


通常TCP在接收到数据时并不马上发送ACK,相反,它推迟发送,以便将ACK与须要沿该方向发送的数据一起发送(有时这样的现象为数据捎带的ACK)。

绝大数实现採用的时延为200ms,也就是说。TCP将以最大200ms的时延等待是否有数据一起发送。
ACK延时等待时间不大于TCP定时器的原因:
假如TCP使用200ms的定时器。该定时器将相对于内核引导的200ms固定时间溢出,由于将要确定的数据随机到达,TCP将在下一次内核的200ms定时器溢出时得到通知,所以ACK实际等待的时间为1~200ms中任一刻。

Nagle算法
Nagle算法要求TCP连接上最多仅仅有一个未被确认的未完毕小分组。在该分组确认到达之前不能发送其它的小分组。相反。TCP收集这些少量的分组。并在确认到达时以一个大的分组发出去。

该算法的长处在于它是自适应的:确认到达得越快。数据也就发送得越快。能够降低网络上的微小分组数目,降低拥塞出现的可能(局域网这些小分组通常不会引起麻烦,但在较慢的广域网则存在拥塞的可能)。但对应的,由于不是马上ACK,也会添加很多其它的时延。

有时我们也须要关闭Nagle算法,比如鼠标移动必须无时延地发送,以便为用户的交互提供实时的反馈。

流程:
(1)发送端TCP将从应用进程接收到的第一数据块马上发送。无论其大小。哪怕仅仅有一个字节。
(2)发送端输出第一块数据后開始收集数据,并等待确认。
(3)确认未达到时,若收集数据达到窗体的一半或一个MSS段,马上发送。
(4)确认到达后。把缓冲区中的数据组成一个TCP段,然后发送。


窗体大小通知

在图19-4。client与server端的通告窗体分别为4096与8192。

但报文5通告的窗体大小为4095个字节,这意味着在TCP缓冲区中仍然有一个字节等待应用程序读取。

作者原创。转载请标明原处:http://blog.csdn.net/xifeijian/article/details/44260601

《tcp/ip具体解释》读书笔记(21章)-tcp的超时与重传

TCP提供可靠的运输层。它使用的方法之中的一个就是确认从还有一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这样的问题。假设当定时器溢出时还没有收到确认,它就重传该数据。对于... 查看详情

《tcp/ip具体解释》读书笔记(20章)-tcp的成块数据流

眼下建立在TCP协议上的网络协议特别多,有telnet。ssh,有ftp。有http等等。这些协议又能够依据数据吞吐量来大致分成两大类:(1)交互数据类型,比如telnet,ssh。这样的类型的协议在大多数情况下仅仅是做小流量的数据交换,比... 查看详情

tcp/ip具体解释学习笔记--tcp数据流

1.TCP的交互数据流(1)基本概念所谓交互数据流,其对TCP而言,就是他们所产生的大多数的TCP报文段中所包括的数据不超过10个字节。比如聊天等telnet的软件的TCP数据流就属于TCP交互数据流(2)经受时延的确认TCP收到数据时并不会立... 查看详情

《tcp/ip具体解释卷2:实现》笔记--协议控制块

协议层使用协议控制块(PCB)存放各UDP和TCP插口所要求的多个信息片。Internet协议维护Internet协议控制块(internetprotocolcontrolblock)和TCP控制块(TCPcontrolblock)。由于UDP是无连接的。所以一个端结点须要的全部信息都在InternetPCB中... 查看详情

《图解tcp/ip》读书笔记

...用放心的网络环境。  同时,这本书也是我的2016年度读书计划中的一本,下面我将会 查看详情

tcp/ip具体解释学习笔记--tcp的坚持和保活定时器

TCP的坚持定时器1.基本概念TCP的接收方指名希望从发送方接收的数据字节(窗体大小)来进行流量控制,假设窗体大小为0。那么放送方就会阻止发送数据,直到接收方发来一个已跟新窗体大小的ACK为止,那么假设接收方发送的这... 查看详情

tcp/ip知识总结(tcp/ip协议族读书笔记四)

  参考:http://blog.chinaunix.net/uid-26275986-id-4109679.html  继续!TCP的流量控制和拥塞控制。  TCP相对UDP可靠的地方在于它的拥塞控制、流量控制。一.流量控制:  如果发送方把数据发送得过快,接收方可能会来不及接收,... 查看详情

tcp/ip具体解释学习笔记——地址解析协议arp

一概述我们知道,IP协议是用来在不同的物理网络之间数据传输的。要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址。一般来说。就是将IPv4地址转换为mac地址。要想与一个特定的设... 查看详情

《tcp/ip具体解释卷2:实现》笔记--接口层

接口层包含在本地网上发送和接收分组的硬件与软件。我们用设备驱动程序来表示与硬件及网络接口通信的软件,网络接口是指在一个特定网络上硬件与设备驱动器之间的接口。Net/3接口层试图在网络协议和连接到一个系统的网... 查看详情

《tcp/ip具体解释卷2:实现》笔记--选路请求和选路消息

内核的各种协议并不直接使用前面提供的函数来訪问选路树,而是调用几个函数:rtalloc和rtallocl是完毕路由表查询的两个函数;rtrequest函数用于加入和删除路由表项;另外大多数接口在接口连接或断开时都会调用函数rtinit。选路... 查看详情

tcp/ip具体解释--tcp的分段和ip的分片

写在前面:   分组能够发生在运输层和网络层。运输层中的TCP会分段,网络层中的IP会分片。IP层的分片很多其它的是为运输层的UDP服务的,因为TCP自己会避免IP的分片,所以使用TCP传输在IP层都不会发生分片的现象。... 查看详情

《图解http》读书笔记

《图解HTTP》读书笔记第一章:了解Web及网路基础TCP/IP协议把互联网想关联的协议集合起来总称为TCP/IP协议TCP/IP协议族按层次分为:应用层,传输层,网络层,数据链路层应用层决定了向用户提供应用服务时通... 查看详情

《图解http》读书笔记

《图解HTTP》读书笔记第一章:了解Web及网路基础TCP/IP协议把互联网想关联的协议集合起来总称为TCP/IP协议TCP/IP协议族按层次分为:应用层,传输层,网络层,数据链路层应用层决定了向用户提供应用服务时通... 查看详情

大话存储学习笔记(11章),tcp/ip

TCP/IP协议以太网的出现,给系统的互联带来方便的方式,每个节点安装一块以太网适配器,上层程序只要将发送的数据以及目的MAC地址告诉以太网卡,就可以完成通信过程。但是实际上,以太网不能直接被应用程序用来收发数据... 查看详情

tcp/ip具体解释--icmp报文分析

一.概述:1.   ICMP同意主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。通常ICMP报文被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用... 查看详情

tcp/ip协议族——ip工作原理及实例具体解释(上)

??IP协议具体解释       本文主要介绍了IP服务特点,头部结构,IP分片知识,并用tcpdump抓取数据包。来观察IP数据报传送过程中IP的格式,以及分片的过程。IP头部信息:IP头部信息出如今每一个IP数据报... 查看详情

tcp/ip学习笔记章二链路层

一、数据链路层当需要在一条线路上传递数据时,除了必须使用一条物理设备时,还需要一些必要的通信协议来控制数据的传输,若把实现这些协议的硬件和软件的加到链路上,就叫做数据链路;最常用的是-----网络适配器。一... 查看详情

tcp/ip卷一读书笔记为什么既要有ip地址又要有mac地址

网络层首先明确一点,并不是所有的网络之间传输数据都需要mac地址和ip地址,比如说点对点线路之间的通信就没有MAC地址,网络层使用ipx协议时就没有ip地址,但是在当前的主流网络中,我们都使用ip地址和mac地址既然mac地址唯... 查看详情