tcp ip详解卷(tcpip详解卷一看完什么水平)

      最后更新:2023-05-25 21:01

      TCP/IP详解卷1:协议的作品目录

      译者序前言第1章 概述11.1 引言11.2 分层11.3 TCP/IP的分层41.4 互联网的地址51.5 域名系统61.6 封装61.7 分用81.8 客户-服务器模型81.9 端口号91.10 标准化过程101.11 RFC101.12 标准的简单服务111.13 互联网121.14 实现121.15 应用编程接口121.16 测试网络131.17 小结13第2章 链路层152.1 引言152.2 以太网和IEEE 802封装152.3 尾部封装172.4 SLIP:串行线路IP172.5 压缩的SLIP182.6 PPP:点对点协议182.7 环回接口202.8 最大传输单元MTU212.9 路径MTU212.10 串行线路吞吐量计算212.11 小结22第3章 IP:网际协议243.1 引言243.2 IP首部243.3 IP路由选择273.4 子网寻址303.5 子网掩码323.6 特殊情况的IP地址333.7 一个子网的例子333.8 ifconfig命令353.9 netstat命令363.10 IP的未来363.11 小结37第4章 ARP:地址解析协议384.1 引言384.2 一个例子384.3 ARP高速缓存404.4 ARP的分组格式404.5 ARP举例414.5.1 一般的例子414.5.2 对不存在主机的ARP请求424.5.3 ARP高速缓存超时设置434.6 ARP代理434.7 免费ARP454.8 arp命令454.9 小结46第5章 RARP:逆地址解析协议475.1 引言475.2 RARP的分组格式475.3 RARP举例475.4 RARP服务器的设计485.4.1 作为用户进程的RARP服务器495.4.2 每个网络有多个RARP服务器495.5 小结49第6章 ICMP:Internet控制报文协议506.1 引言506.2 ICMP报文的类型506.3 ICMP地址掩码请求与应答526.4 ICMP时间戳请求与应答536.4.1 举例546.4.2 另一种方法556.5 ICMP端口不可达差错566.6 ICMP报文的4.4BSD处理596.7 小结60第7章 Ping程序617.1 引言617.2 Ping程序617.2.1 LAN输出627.2.2 WAN输出637.2.3 线路SLIP链接647.2.4 拨号SLIP链路657.3 IP记录路由选项657.3.1 通常的例子667.3.2 异常的输出687.4 IP时间戳选项697.5 小结70第8章 Traceroute程序718.1 引言718.2 Traceroute 程序的操作718.3 局域网输出728.4 广域网输出758.5 IP源站选路选项768.5.1 宽松的源站选路的traceroute程序示例788.5.2 严格的源站选路的traceroute程序示例798.5.3 宽松的源站选路traceroute程序的往返路由808.6 小结81第9章 IP选路839.1 引言839.2 选路的原理849.2.1 简单路由表849.2.2 初始化路由表869.2.3 较复杂的路由表879.2.4 没有到达目的地的路由879.3 ICMP主机与网络不可达差错889.4 转发或不转发899.5 ICMP重定向差错899.5.1 一个例子909.5.2 更多的细节919.6 ICMP路由器发现报文929.6.1 路由器操作939.6.2 主机操作939.6.3 实现939.7 小结94第10章 动态选路协议9510.1 引言9510.2 动态选路9510.3 Unix选路守护程序9610.4 RIP:选路信息协议9610.4.1 报文格式9610.4.2 正常运行9710.4.3 度量9810.4.4 问题9810.4.5 举例9810.4.6 另一个例子10010.5 RIP版本210210.6 OSPF:开放最短路径优先10210.7 BGP:边界网关协议10310.8 CIDR:无类型域间选路10410.9 小结105第11章 UDP:用户数据报协议10711.1 引言10711.2 UDP首部10711.3 UDP检验和10811.3.1 tcpdump输出10911.3.2 一些统计结果10911.4 一个简单的例子11011.5 IP分片11111.6 ICMP不可达差错(需要分片)11311.7 用Traceroute确定路径MTU11411.8 采用UDP的路径MTU发现11611.9 UDP和ARP之间的交互作用11811.10 最大UDP数据报长度11911.11 ICMP源站抑制差错12011.12 UDP服务器的设计12211.12.1 客户IP地址及端口号12211.12.2 目标IP地址12211.12.3 UDP输入队列12211.12.4 限制本地IP地址12411.12.5 限制远端IP地址12511.12.6 每个端口有多个接收者12511.13 小结126第12章 广播和多播12812.1 引言12812.2 广播12912.2.1 受限的广播12912.2.2 指向网络的广播12912.2.3 指向子网的广播12912.2.4 指向所有子网的广播13012.3 广播的例子13012.4 多播13212.4.1 多播组地址13312.4.2 多播组地址到以太网地址的转换13312.4.3 FDDI和令牌环网络中的多播13412.5 小结134第13章 IGMP:Internet组管理协议13613.1 引言13613.2 IGMP报文13613.3 IGMP协议13613.3.1 加入一个多播组13613.3.2 IGMP报告和查询13713.3.3 实现细节13713.3.4 生存时间字段13813.3.5 所有主机组13813.4 一个例子13813.5 小结141第14章 DNS:域名系统14214.1 引言14214.2 DNS基础14214.3 DNS的报文格式14414.3.1 DNS查询报文中的问题部分14614.3.2 DNS响应报文中的资源记录部分14714.4 一个简单的例子14714.5 指针查询15014.5.1 举例15114.5.2 主机名检查15114.6 资源记录15214.7 高速缓存15314.8 用UDP还是用TCP15614.9 另一个例子15614.10 小结157第15章 TFTP:简单文件传送协议15915.1 引言15915.2 协议15915.3 一个例子16015.4 安全性16115.5 小结162第16章 BOOTP: 引导程序协议16316.1 引言16316.2 BOOTP的分组格式16316.3 一个例子16416.4 BOOTP服务器的设计16516.5 BOOTP穿越路由器16716.6 特定厂商信息16716.7 小结168第17章 TCP:传输控制协议17017.1 引言17017.2 TCP的服务17017.3 TCP的首部17117.4 小结173第18章 TCP连接的建立与终止17418.1 引言17418.2 连接的建立与终止17418.2.1 tcpdump的输出17418.2.2 时间系列17518.2.3 建立连接协议17518.2.4 连接终止协议17718.2.5 正常的tcpdump输出17718.3 连接建立的超时17818.3.1 第一次超时时间17818.3.2 服务类型字段17918.4 最大报文段长度17918.5 TCP的半关闭18018.6 TCP的状态变迁图18218.6.1 2MSL等待状态18318.6.2 平静时间的概念18618.6.3 FIN_WAIT_2状态18618.7 复位报文段18618.7.1 到不存在的端口的连接请求18718.7.2 异常终止一个连接18718.7.3 检测半打开连接18818.8 同时打开18918.9 同时关闭19118.10 TCP选项19118.11 TCP服务器的设计19218.11.1 TCP服务器端口号19318.11.2 限定的本地IP地址19418.11.3 限定的远端IP地址19518.11.4 呼入连接请求队列19518.12 小结197第19章 TCP的交互数据流20019.1 引言20019.2 交互式输入20019.3 经受时延的确认20119.4 Nagle算法20319.4.1 关闭Nagle算法20419.4.2 一个例子20519.5 窗口大小通告20719.6 小结208第20章 TCP的成块数据流20920.1 引言20920.2 正常数据流20920.3 滑动窗口21220.4 窗口大小21420.5 PUSH标志21520.6 慢启动21620.7 成块数据的吞吐量21820.7.1 带宽时延乘积22020.7.2 拥塞22020.8 紧急方式22120.9 小结224第21章 TCP的超时与重传22621.1 引言22621.2 超时与重传的简单例子22621.3 往返时间测量22721.4 往返时间RTT的例子22921.4.1 往返时间RTT的测量22921.4.2 RTT估计器的计算23121.4.3 慢启动23321.5 拥塞举例23321.6 拥塞避免算法23521.7 快速重传与快速恢复算法23621.8 拥塞举例(续)23721.9 按每条路由进行度量24021.10 ICMP的差错24021.11 重新分组24321.12 小结243第22章 TCP的坚持定时器24522.1 引言24522.2 一个例子24522.3 糊涂窗口综合症24622.4 小结250第23章 TCP的保活定时器25123.1 引言25123.2 描述25223.3 保活举例25323.3.1 另一端崩溃25323.3.2 另一端崩溃并重新启动25423.3.3 另一端不可达25423.4 小结255第24章 TCP的未来和性能25624.1 引言25624.2 路径MTU发现25624.2.1 一个例子25724.2.2 大分组还是小分组25824.3 长肥管道25924.4 窗口扩大选项26224.5 时间戳选项26324.6 PAWS:防止回绕的序号26524.7 T/TCP:为事务用的TCP扩展26524.8 TCP的性能26724.9 小结268第25章 SNMP:简单网络管理协议27025.1 引言27025.2 协议27025.3 管理信息结构27225.4 对象标识符27425.5 管理信息库介绍27425.6 实例标识27625.6.1 简单变量27625.6.2 表格27625.6.3 字典式排序27725.7 一些简单的例子27725.7.1 简单变量27825.7.2 get-next操作27825.7.3 表格的访问27925.8 管理信息库(续)27925.8.1 system组27925.8.2 interface组28025.8.3 at组28125.8.4 ip组28225.8.5 icmp组28525.8.6 tcp组28525.9 其他一些例子28825.9.1 接口MTU28825.9.2 路由表28825.10 trap29025.11 ASN.1和BER29125.12 SNMPv229225.13 小结292第26章 Telnet和Rlogin:远程登录29326.1 引言29326.2 Rlogin协议29426.2.1 应用进程的启动29526.2.2 流量控制29526.2.3 客户的中断键29626.2.4 窗口大小的改变29626.2.5 服务器到客户的命令29626.2.6 客户到服务器的命令29726.2.7 客户的转义符29826.3 Rlogin的例子29826.3.1 初始的客户-服务器协议29826.3.2 客户中断键29926.4 Telnet协议30226.4.1 NVT ASCII30226.4.2 Telnet命令30226.4.3 选项协商30326.4.4 子选项协商30426.4.5 半双工、一次一字符、一次一行或行方式30426.4.6 同步信号30626.4.7 客户的转义符30626.5 Telnet举例30626.5.1 单字符方式30626.5.2 行方式31026.5.3 一次一行方式(准行方式)31226.5.4 行方式:客户中断键31326.6 小结314第27章 FTP:文件传送协议31627.1 引言31627.2 FTP协议31627.2.1 数据表示31627.2.2 FTP命令31827.2.3 FTP应答31927.2.4 连接管理32027.3 FTP的例子32127.3.1 连接管理:临时数据端口32127.3.2 连接管理:默认数据端口32327.3.3 文本文件传输:NVT ASCII表示还是图像表示32527.3.4 异常中止一个文件的传输:Telnet同步信号32627.3.5 匿名FTP32927.3.6 来自一个未知IP地址的匿名FTP33027.4 小结331第28章 SMTP:简单邮件传送协议33228.1 引言33228.2 SMTP协议33228.2.1 简单例子33228.2.2 SMTP命令33428.2.3 信封、首部和正文33528.2.4 中继代理33528.2.5 NVT ASCII33728.2.6 重试间隔33728.3 SMTP的例子33728.3.1 MX记录:主机非直接连到Internet33728.3.2 MX记录:主机出故障33928.3.3 VRFY和EXPN命令34028.4 SMTP的未来34028.4.1 信封的变化:扩充的SMTP34128.4.2 首部变化:非ASCII字符34228.4.3 正文变化:通用Internet邮件扩充34328.5 小结346第29章 网络文件系统34729.1 引言34729.2 Sun远程过程调用34729.3 XDR:外部数据表示34929.4 端口映射器34929.5 NFS协议35129.5.1 文件句柄35329.5.2 安装协议35329.5.3 NFS过程35429.5.4 UDP还是TCP35529.5.5 TCP上的NFS35529.6 NFS实例35629.6.1 简单的例子:读一个文件35629.6.2 简单的例子:创建一个目录35729.6.3 无状态35829.6.4 例子:服务器崩溃35829.6.5 等幂过程36029.7 第3版的NFS36029.8 小结361第30章 其他的TCP/IP应用程序36330.1 引言36330.2 Finger协议36330.3 Whois协议36430.4 Archie、WAIS、Gopher、Veronica和WWW36630.4.1 Archie36630.4.2 WAIS36630.4.3 Gopher36630.4.4 Veronica36630.4.5 万维网WWW36730.5 X窗口系统36730.5.1 Xscope程序36830.5.2 LBX: 低带宽X37030.6 小结370附录A tcpdump程序371附录B 计算机时钟376附录C sock程序378附录D 部分习题的解答381附录E 配置选项395附录F 可以免费获得的源代码406参考文献409缩略语420
      TCP/IP详解卷1:协议的作品目录

      TCP/IP协议是那本书?能告诉我吗?我去买下

      TCP/IP协议讲解有这样几本书: (1)TCP/IP详解 卷1:协议(原书第2版)作者: Kevin R. Fall W. Richard Stevens这本书主要内容讲述TCP/IP协议,展示每种协议的实际工作原理的同时还解释了其来龙去脉,新增了RPC、访问控制、身份认证、隐私保护、NFS、SMB/CIFS、DHCP、NAT、防火墙、电子邮件、Web、Web服务、无线、无线安全等内容。这本书偏重于TCP/IP的理论内容。(2)TCP/IP路由技术(第一卷)(第二版)作者: (美)多伊尔,(美)卡罗尔这本书主要是以思科设备为主,讲解网络中各路由协议的原理及配置方式。其中包括.IPv4协议、IPv6协议和路由技术。第二部分是本书的精华,这一部分详细、深入地讲述了各种常用的内部路由协议,如RIP、RIPv2、RIPng、无类别路由选择、EIGRP、OSPFv2、OSPFv3、IS-IS等协议。这本书主要是各类型协议的配置,偏重于实际网络中的配置,备考CCIE一类的考试可以参考。 其余还有《图解TCP/IP》,这本书通过图示的方式讲解TCP/IP的原理,内容相对要简单些。
      TCP/IP协议是那本书?能告诉我吗?我去买下

      《TCP/ IP详解卷3》txt下载在线阅读全文,求百度网盘云资源

      《TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》(胡谷雨)电子书网盘下载免费在线阅读链接: https://pan.baidu.com/s/1Ey5LNmwwCGGmy7yEAD7Luw提取码: 8srn书名:TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议作者:胡谷雨译者:胡谷雨豆瓣评分:8.8出版社:机械工业出版社出版年份:2000-9页数:252内容简介:《CP.IP详解(卷3):CP事务协议.HP.P和UIX域协议》是“TCP/IP详解系列”的延续。主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展,使客户-服务器事务更快、更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进程之间通信的一种手段。当客户与服务器进程在同一台主机上时,UNIX域协议通常要比TCP/IP快一倍。《CP.IP详解(卷3):CP事务协议.HP.P和UIX域协议》同样采用了大量的实例和实现细节,并参考引用了卷2中的大量源程序。适用于希望理解TCP/IP如何工作的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。
      《TCP/ IP详解卷3》txt下载在线阅读全文,求百度网盘云资源

      TCP-IP详解卷1:协议读书笔记_2

      在TCP/IP协议族中,链路层主要有三个目的: (1)为IP模块发送和接受IP数据报(2)为ARP模块发送ARP请求和接受ARP应答(3)为RARP发送RARP请求和接收RARP应答以太网是当今TCP/IP采用的主要的局域网技术。它采用一种称作CSMA/CD的额媒体接入方法,其意思是带冲突检测的载波侦听多路接入。它的速率为10MB/S,地址为48bit。主机需求RFC要求每个Internet主机都与10MB/s的以太网电缆相连接:1)必须能发送和接受采用RFC894(以太网)封装格式的分组2)应该能接受与RFC894混合的RFC1024(IEEE082)封装格式的分组3)也许能够发送采用RFC1024格式封装的分组最常使用的封装格式是RFC 894定义的格式。下图显示了两种形式的封装格式。图中每个方框下面的数字是它们的字节长度。两种帧格式都采用48bit(6字节)的目的地址和源地址。ARP和RARP协议对32位bit的IP地址和48bit的硬件地址进行映射。接下来两个字节在两种帧格式中互不相同。RFC1024定义的长度字段是指它后续数据的字节长度,但不包括CRC校验码。RFC894定义了后续数据的类型。RFC1024的有效长度和RFC894有效类型值都不相同,所以,可以对两种帧格式进行区分。RFC894类型后面就是数据;而RFC1024后有哦3个字节的802.2LLC和5个字节的802.2SNAP。目的服务访问点和源服务访问点的值都设为0Xaa。Ctrl字段的值设为3。随后的3个字节org code都置为0。再接下来两个字节类型和以太网格式一样。CRC字段用于帧内后续字节差错的循环冗余码检验。RFC893描述了另一种用于以太网的封装格式,称作尾部封装。在以太网数据帧中,开始的那部分是边长的字段;将其移动到尾部(CRC之前),这样将数据复制到内核时,就可以把数据帧的数据部分映射到一个硬件页面,节省内存到内存的赋值过程SLIP全称是Serial Line IP。它是一种在串行线路行对IP数据报进行封装的简单形式。SLIP适用于家庭中每台计算机几乎都有的RS-232串行端口和高速调制解调器接入Internet。下面的规则描述了SLIP协议定义的帧格式:1)IP数据报以一个END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声也被当成数据报内容,大多数实现在数据报的开始处也传一个END字符。2)如果IP数据报的某个数据是END,那么就要联系传输两个字节0xdb和0Xdc来取代它。0xdb称为SLIP的ESC字符,但是它的值和ASCII码的ESC字符0x1b不同。3)如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个0xdb和0xdd来取代它。SLIP的图示:SLIP的缺陷:1)每一段必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。2)数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它不能同时使用其他协议。3)SLIP没有在数据帧中加上校验和。SLIP线路行有许多小的TCP分组进行交换。为了传送1个字节的数据需要20个字节的IP首部和20个字节的TCP首部,总数超过40个字节。于是有了CSLIP的新协议,即压缩SLIP。一般可以把上面40个字节压缩到3-5个字节。PPP点对点协议,包含了一下三个部分:1)在串行链路上封装IP数据报的方法。PPP既支持数据为8位的无奇偶校验的异步模式,还支持面向比特的同步链接。2)建立、配置以及测试数据链路的链路控制协议(LCP)。它允许通信双发进行协商,以确定不同的选项。3)针对不同网络层协议的网络控制协议体系。PPP数据帧都是以标志字符0x7e开始和结束。紧接着是一个地址字节,值始终为0x03的字节字符。接下来是协议字段,类似于以太网中类型字段的功能。0X0021代表IP数据报;0XV021代表链路控制数据;0x8021代表信息是网络控制数据。CRC字段,是一个循环冗余校验码,以检测数据帧中的错误。总的来说,PPP比SLIP具有以下优点:1.PPP支持单根串行线路上运行多种协议;2.每一帧都有循环冗余校验;3.通信双方可以进行IP地质的动态协商(使用IP网络控制协议);4.与CSLIP类似,对TCP和IP报文首部进行压缩;5.链路控制协议可以对多个数据链路选项进行设置。大多数产品都支持环回接口,以允许运行在同一主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost。图中的关键点是:1)传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入。2)创个广播地址和多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。3)任何传给主机地址的数据均送到环回接口。链路层的数据帧的最大传输字节称作MTU,最大传输单元。不同类型的网络大多数都有一个上限。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片,把数据报分成若干份,这样每一片都小于MTU。 当在同一网络的两台主机互相进行通信时,该网络的MTU是非常重要的。但是两台主机的通信要通过多阿哥网络,那么每个网络的链路层可能有不同的MTU,重要的就不是两台主机所在网络的MTU了,而是两台通信主机路径中的最小MTU。它被称作路径MTU。
      TCP-IP详解卷1:协议读书笔记_2

      TCP/IP详解卷一 ——tcp

      即使端口处于2MSL状态,使用该选项,仍然能够在该端口建立连接。服务器常会设置该选项,以防服务器重启。如果在TIME_WAIT时间内,收到了对端发送来的数据报(不是重置报文段都行),那么该状态将被破坏,称为时间等待错误。原因是,当收到报文段以后,通常Seq是旧的,所以本端就会发送ACK,对端已经关闭或者是别的连接,就会发送RST,导致TIME_WAIT状态被破坏。但是许多系统规定,TIME_WAIT状态是不对重置报文段做出反应。两端同时发送FIN,两端又同时ACK。又同时进入TIME_WAIT当处于TIME_WAIT的主机崩溃以后,重启,然后需要等待相当与一个MSL的时间才能建立新的连接。这段时间成为静默时间。当一段发现到达的报文段对相关连接(也就是进程,套接字对)而言不正确的时候,TCP就会发送一个重置报文段,从而导致对端的连接快速拆卸(也就是结束吧!)。重置报文段的ACK位必须有,而且ACK的值必须在正确的窗口范围内,这样可以防止被攻击。FIN正常关闭一条连接成为有序释放,通常不会出现丢失数据的情况。重置报文段终止一条连接成为终止释放。重置报文段在任何时候都可以发送,代替FIN来终止连接,且不学校对端ACK终止报文段特性:当该数值设置为0,那么也意味着,不会再连接终止之前为了确保本端缓存中的数据都发送出去而等待。TCP在发送数据时会设置计时器,如果计时器超时认为受到数据确认信息,就会引发相应的超时,或给予计时器的重传操作,计时器超时时成为重传超时(RTO)。TCP累计确认无法返回新的ACK,或者当ACK包含选择确认信息(SACK)时,表明出现书序数据报,空洞。就会引起快速重传。若RTO短与RTT,那么没分都会重传,反之,整个网络利用率就会随之下降。RTT样本:TCP在收到数据后会返回确认信息ACK,该信息中携带一个字节的数据,测量传输该确认需要的时间,该测量结果成为RTT样本。每个连接的RTT军独立计算。如何根据RTT来设置RTO,有如下的方法公式: SRTT=a*SRTT+(1-a)RTT ,a取 0.8-0.9 。当TCP运行在RTT变化较大的网络中,无法取得期望的结果。以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补因为丢失ACK,或者实际RTT显著增长,可能出现伪超时的现象。以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补每个包可以选择各自的传送路径。某些高级路由器的采用多个并行数据链路,不同的处理演示也会导致包的离开顺序和到达顺序不匹配包的失序会造成重传,很近单嘛,前面一个小号的Seq没到达,后面的先到达,那么ACK就会 重复当TCP超时重发是,循序执行重新租宝,发送送一个更大的报文段提高性能,不超过MSS和MTU。出现在每次传送的包较小,又丢包的情况每个交互键通常会生成一个单独的数据报,也就是每个按键是独立传输的。ssh调用一个shell,对客户端输入的字符做出辉县,因此,每个字符生成4个tcp数据段,客户端的交互按键输入,服务器对按键的ACK,服务器生成的辉县,客户端对回显的ACK。通常第二段和第三段合并,成为捎带延时确认。PSH位设置,意味着发送端的缓存为空,也就是没什么可以发送了。许多情况下,TCP并不是对每个到来的包都单独的ACK,利用累计ACK可以确认之前的ACK。累计确认可以允许TCP延时一段时间发送ACK,以便将ACK和相同方向上需要传输的数据结合发。这种捎带传输的方法常用于批量数据传输。不能任意的延迟ACK,会造成重传。同时当失序发生时,必须立刻传送ACK。系统可以设置,一般延时为200-600毫秒。该算法要求,当TCP连接中有在传数据(那些已发送,但是未确认的数据)时,小的报文段就不能被发送,知道所有的数据都受到ACK。并且受到ACK后,TCP收集这些小的数据,整合到一个报文段中发送。这种方法破事TCP遵循等停规程,只有收到所有传送数据的ACK后才能继续发送新数据。该算法的不同之处在于他实现了自时钟控制,ACK返回越快,传输也越快。在相对高延迟的广域网中,更需要减小小报文的数目,该算法使得单位时间内发送的报文数目更少,RTT控制发包速率。该算法减少小包数目的同时,也增大了传输时延,也就是总的发送时间。窗口大小表明本端可用缓存大小,对端传送的数据不应该超过改大小。也表明对端发送的数据的最大大小为TCP头部ACK号和窗口大小字段之和。也就是Seq = ACK+MSSTCP活动的两端都维护一个发送窗口结构和接受窗口结构。TCP以字节为单位维护窗口结构。每个TCP报文段都包含ACK号和窗口通告信息,TCP发送端可以据此调节窗口结构。窗口左边界不能左移。窗口的动作分为,关闭(收到ACK,左边右移),打开(MSS扩大,右边右移),收缩(MSS减小,右边左移)当收到ACK号增大,而MSS不变时窗口向前滑动当当左边界与右边界相等时,成为零窗口,此时发送端不能在发送新的数据,这种情况下,TCP开始探测对端窗口,伺机增大窗口。当接受窗口值变为0是,可以邮箱的组织发送端继续发送,知道窗口大小回复为非0值。当接收端窗口得到可用空间是,就会给发送端传输一个窗口更新,告知器可以继续发送数据,这样的这样的窗口更新通常不包含数据,成为纯ACK,因此不能保证传输的可靠性。如果一端的窗口更新ACK丢失,通信双方就会处于等待状态。为避免这种情况发生。发送端会采用一个持续计时器间歇性的查询接收端,看其窗口是否已经增长。持续计时器会触发窗口探测的传输,强制要求对端返回ACK。窗口探测包包含一个字节数据,采用TCP传输,因此可以避免窗口更新丢失导致的死锁。因为包含一个字节数据Seq改变,接受端必须处理,如果接受就会ACK。窗口大小还是0,那么就会丢弃该报,没有响应。这时候发送端会持续的发送窗口探测包。当接收端通告窗口较小,或者发送端发送的数据较小。这样数据报的有效携带率小,耗费网络资源多。避免方法以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补以后再补
      TCP/IP详解卷一 ——tcp

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类