TCP/IP详解 卷1 第十九章 TCP的交互数据流

19.1 引言

成块数据:比如ftp、电子邮件、Usenet新闻

交互数据:Telnet、Rlogin

 成块数据的报文段基本上都是满长度(full-size)的,而交互数据小的多(Telnet和Rlogin分组中通常约90%左右的用户数据小于10个字节)。

19.2 交互式输入

 在Rlogin键入一个交互命令时所产生的数据流,一般需要下面四个步骤:

然而我们一般可以将报文段2和报文段3进行合并—也就是按键确认和按键回显一起发送。这就是经受时延的确认。 

19.3 经受时延的确认

通常TCP在接收到数据时并不立即发送ACK,相反的,它推迟发送。以便将ACK与需要沿该方向 发送的数据一起发送(有时称为数据捎带ACK)。绝大多数实现采用的时延为200ms。也就是说TCP将以最大200ms的时延等待是否有数据一起发送。

19.4 Nagle算法

微小分组(tinygram):41字节长的分组(20字节IP头,20字节TCP头,1字节数据)。

在局域网内一般不会出现拥塞,但是在广域网上这些小分组会增加出现拥塞的可能。

解决方法就是RFC 896中建议的Nagle算法。

该算法要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组 的确认到达之前不能发送其他的小分组。相反、TCP收集这些少量的分组,并在确认到来时以一个分组的方式发出去。(简而言之就是把所有的小分组收集到一起再发送出去)

 19.4.1关闭Nagle算法

在X窗口系统服务器上,小消息(比如鼠标移动)必须无延时的发送,以便为进行某种操作的交互用户提供实时的反馈

19.5 窗口大小通告

19.6 小结

交互数据总是以小于最大报文段长度的分组发送。在Rlogin中通常只有一个字节从客户发送到服务器、Telnet允许一次发送一行输入数据,但是目前大多数实现任然是发送一个字节。

对于这些小的报文段,接收方使用经受时延的确认方法来判断确认是否可被推迟发送,以便和回送数据一起发送。这样通常会减少报文段的数目,尤其是对于需要回显用户输入字符的Rlogin会话。

在较慢的广域网环境中,通常使用Nagle算法来减少这些小报文段的数目。这个算法限制发送者任何时候只能有一个发送的小报文未被确认。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

Open vSwith模拟网关实现不同子网的互通

一.实验目的 本实验通过Mininet构建子网,并使得OVS作为网关,来模拟子网间的互通。在实验的过程中,我们来学习一下内容: OVS构建子网过程。 OVS设置...

44510
来自专栏互联网杂技

开发人员应该知道的计算机网络知识

前言 作为一名程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块’废铁’, 它们的作用将大打折扣.. 本文的作用呢,主...

4095
来自专栏java一日一条

每个程序员应该知道的计算机网络知识

作为一名程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块’废铁’, 它们的作用将大打折扣.. 本文的作用呢, 主要是...

3881
来自专栏李家的小酒馆

UDP和TCP的区别

UDP(User Data Protocol,用户数据报协议)   UDP是一个无连接,不保证可靠性的传输层协议,也就是说发送端部关心发送的数据是否到达目标主机...

3640
来自专栏LuckQI

学习Java基础知识,打通面试关~十二乐观锁与悲观锁

1302
来自专栏Java 源码分析

TCP 总结

TCP 总结 计算机网络中比较中要的无非就是 TCP/IP 协议栈,以及应用层的 HTTP 和 HTTPS 。 前几天一直炒的的比较火的就是 HTTP/2.0...

3887
来自专栏机器学习从入门到成神

校招面试知识点复习之计算机网络

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

1471
来自专栏JetpropelledSnake

Python Web学习笔记之TCP/IP、Http、Socket的区别

经常在笔试、面试或者工作的时候听到这些协议,虽然以前没怎么涉及过,但至少知道这些是和网络编程密不可分的知识,作为一个客户端开发程序员,如果可以懂得网络编程的话,...

49415
来自专栏用户画像

3.1数据链路层的功能

数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之...

721
来自专栏北京马哥教育

什么是SYN Flood攻击?

SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击。效果就是服务器TCP连接资源耗尽,停止响应正常的T...

5129

扫码关注云+社区

领取腾讯云代金券