11.11ICMP源站抑制差错我们一样也能够使用UDP产生ICMP“源站抑制(sourcequench)”差错。当一个系统(路由器或主机)接收数据报速度比其处理速度快时,可能产生这个差错。注意限定词“可能”。即使一个系统已经没有缓存并丢弃数据报,也不要求它一定要发送源站抑制报文。图11-18给出了ICMP源站抑制差错报文格式。有一个很好
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
能够在我们测试网络里产生该差错报文。能够从bsdi经过必需经过拨号SLIP链路以太网,将数据报发送给路由器sun。因为SLIP链路速度大约只有以太网千分之一,所以,我们很轻易就能够使其缓存用完。下面命令行从主机bsdi经过路由器sun发送100个1024字节长数据报给solaris。我们将数据报发送给
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
丢弃服务,这么,这些数据报将被忽略:bsdi%sock-u-i-w1024-n100solarisdiscard图11-19给出了和此命令行相对应tcpdump输出结果在这个输出结果中,删除了很多行,这只是一个模型。接收前26个数据报时未发生差错;我们只给出了第一个数据报结果。然而,从第27个数据报开始,每发送一份数据报,就会接收到一份源站抑制差错报文。总共有26+(74×2)=174行输出结果。类型(4)代码(0)检验和8字节未用(必需为0)IP首部(包含选项)+原始IP数据报中数据前8字节图11-18ICMP源站抑制差错报文格式图11-19来自路由器sunICMP源站抑制从2.10节并行线吞吐率计算结果能够知道,以9600b/s速率传送1024字节数据报只需要1秒时间(因为从sun到netbSLIP链路MTU为552字节,所以在我们例子中,20+8+1024字节数据报将进行分片,所以,其时间会稍长部分)。不过我们能够从图11-19时间中看出,sun路由器在不到1秒时间内就处理完全部100个数据报,而这时,第一份数据报还未经过SLIP链路。所以我们用完其缓存就不足不奇了。尽管RFC1009[BradenandPostel1987]要求路由器在没有缓存时产生源站抑制差错报文,不过新RouterRequirementsRFC[Almquist1993]对此作了修改,提出路由器不应该产生源站抑制差错报文。因为源站抑制要消耗网络带宽,且对于拥塞来说是一个无效而不公平调整,所以现在大家对于源站抑制差错态度是不支持。在本例中,还需要指出是,sock程序要么没有接收到源站抑制差错报文,要么接收到却将它们忽略了。结果是假如采取UDP
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
,那么BSD实现通常忽略其接收到源站抑制报文(正如我们在21.10节所讨论那样,TCP接收源站抑制差错报文,并将放慢在该连接上数据传输速度)。其部分原因在于,在接收到源站抑制差错报文时,造成源站抑制进程可能已经中止了。实际上,假如使用Unixtime程序来测定sock程序所运行时间,其结果是它只运行了大约0.5秒时间。不过从图11-19中能够看到,在发送第一份数据报过后0.71秒才接收到部分源站抑制,而此时该进程已经中止。其原因是我们程序写入了100个数据报然后中止了。不过全部100个数据报全部已发送出去—有部分数据报在输出队列中。这个例子重申了UDP是一个非可靠协议,它说明了端到端流量控制。尽管sock程序成功地将100个数据报写入其网络,但只有26个数据报真正发送到了目标端。其它74个数据报可能被中间路由器丢弃。除非在应用程序中建立部分应答机制,不然发送端并不知道接收端是否收到了这些数据。