速读原著-TCP/IP(交互式输入)

news/2024/7/23 16:55:18

第19章 TCP的交互数据流

19.2 交互式输入

首先来观察在一个 R l o g i n连接上键入一个交互命令时所产生的数据流。许多 T C P / I P的初学者很吃惊地发现通常每一个交互按键都会产生一个数据分组,也就是说,每次从客户传到服务器的是一个字节的按键(而不是每次一行)。而且,R l o g i n需要远程系统(服务器)回显我们(客户)键入的字符。这样就会产生4个报文段:
(1)来自客户的交互按键;
(2)来自服务器的按键确认;
(3)来自服务器的按键回显;
( 4)来自客户的按键回显确认。图 1 9 - 1表示了这个数据流。

然而,我们一般可以将报文段 2和 3进行合并—按键确认与按键回显一起发送。下一节将描述这种合并的技术(称为经受时延的确认)。
在这里插入图片描述
本章我们特意使用 R l o g i n作为例子,因为它每次总是从客户发送一个字节到服务器。在第 2 6章讲到Te l n e t的时候,将会发现它有一个选项允许客户发送一行到服务器,通过使用这个选项可以减少网络的负载。图1 9 - 2显示的是当我们键入5个字符d a t e \ n时的数据流(我们没有显示连接建立的过程,并且去掉了所有的服务类型输出。 B S D / 3 8 6通过设置一个R l o g i n连接的TO S来获得最小时延)。

第1行客户发送字符d到服务器。第2行是该字符的确认及回显(也就是图 1 9 - 1的中间两部分数据的合并)。第3行是回显字符的确认。与字符a有关的是第4 ~ 6行,与字符t有关的是第7 ~ 9行,第1 0 ~ 1 2行与字符e有关。第3 ~ 4、6 ~ 7、9 ~ 1 0和1 2 ~ 1 3行之间半秒左右的时间差是键入两个字符之间的时延。

注意到1 3 ~ 1 5行稍有不同。从客户发送到服务器的是一个字符(按下 R E T U R N键后产生的U N I X系统中的换行符),而回显的则是两个字符。这两个字符分别是回车和换行字符(C R / L F),它们的作用是将光标回移到左边并移动到下一行。

第1 6行是来自服务器的d a t e命令的输出。这3 0个字节由2 8个字符与最后的C R / L F组成。紧接着从服务器发往客户的7个字符(第1 8行)是在服务器主机上的客户提示符: svr4 % 。第1 9行确认了这7个字符。
在这里插入图片描述
注意T C P是怎样进行确认的。第 1行以序号0发送数据字节,第 2行通过将确认序号设为 1,也就是最后成功收到的字节的序号加 1,来对其进行确认(也就是所谓的下一个期望数据的序号)。在第2行中服务器还向客户发送了一序号为 1的数据,客户在第 3行中通过设置确认序号为2来对该数据进行确认。


http://www.niftyadmin.cn/n/1281217.html

相关文章

codis 源码理解

http://www.nosa.me/2016/02/21/codis-%E6%BA%90%E7%A0%81%E7%90%86%E8%A7%A3/http://www.nosa.me/2016/02/21/codis-%E6%BA%90%E7%A0%81%E7%90%86%E8%A7%A3/ 这里介绍一下 codis 几个主要的点,对理解源码有帮助。 1. 先看 ServerGroup 和 Slot。 一个 Proxy 可以…

RHCE (1)

首先将redhat6.2的网卡配置参数各项含义罗列一下哈: [rootlocalhost /]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE"eth0" #设备名称叫eth0 HWADDR"00:0C:29:FF:33:5E" #设备MAC地址 NM_CONTROLLED"yes" …

速读原著-TCP/IP(TCP经受时延的确认)

第19章 TCP的交互数据流 19.3 经受时延的确认 在图1 9 - 2中有一些与本节将要论及的时间有关的细微之处。图 1 9 - 3表示了图1 9 - 2中数据交换的时间系列(在该时间系列中,去掉了所有的窗口通告,并增加了一个记号来表明正在传输何种数据&am…

学车总结

昨天刚拿到小黑本(C1)。 小黑本 我是在北京学的车。历时2个月,学费5800 请假工资 打车费,大概7000大洋,总算拿到了这个小黑本。 说说我最近学车的感悟吧 学车由报名、理论学习、约考、考试、约车、练车等部分组成。…

速读原著-TCP/IP(Nagle算法)

第19章 TCP的交互数据流 19.4 Nagle算法 在前一节我们看到 , 在一个R l o g i n连接上客户一般每次发送一个字节到服务器,这就产生了一些4 1字节长的分组:2 0字节的I P首部、2 0字节的T C P首部和1个字节的数据。在局域网上,这些小分组&…

关于float/double的取值范围、精度和表示

https://blog.csdn.net/shenziheng1/article/details/79471340 1.float和double的范围和精度 float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下: float:1bit(符号位&…

网页设计之 JSP_1

刘志勇网页制作课程地址&#xff1a; http://person.nenu.edu.cn/lzy/html/Show1.asp?typeid25 JSP 环境配置 (一) 安装JDK(jdk-1_5_0-windows-i586.exe)&#xff0c;默认安装&#xff1b; (二) 安装Tomcat。<两个文件安装顺寻不可颠倒> tomcat7.0压缩版的配置方法(推荐…

ifstream seekg 问题

文件输入流&#xff08;ifstream&#xff09;读到文件尾之后&#xff0c;调用seekg 重定向 读pos 类似于以下代码片段&#xff1a; //read whole file while&#xff08;ifs.readline(str,strLen)&#xff09;{std::cout << line << " : "<<str&…