《TCP/IP详解(卷1英文版)》的原文摘录

  • ARP应答是直接送到请求端主机的,而是广播的。 (查看原文)
    Fity 2回复 1赞 2012-07-07 16:30:02
    —— 引自第42页
  • The ARP reply is thus sent directly to the requesting host; it is not ordinarilly broadcast (see Section 4.8 for some cases where this rule is altered). (查看原文)
    Fity 2回复 1赞 2012-07-07 16:30:02
    —— 引自第42页
  • 以太网数据帧的物理特性是其长度必须在4 6~1 5 0 0字节之间,而数据帧在进入每一层协议栈的时候均会做一些封装。 (查看原文)
    豆小友 2012-10-06 17:02:27
    —— 引自第8页
  • 当目的主机收到一个以太网帧时,就在协议栈中从底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部的协议标识,以确定接收数据的上层协议。这个过程称作分用。 (查看原文)
    豆小友 2012-10-06 17:02:27
    —— 引自第8页
  • IP路由选择是逐跳进行的。IP并不知道到达任何目的的完整路径(当然,除了那些与主机直接相连的)。所有的IP路由选择只为数据报传输提供下一站路由器的I P地址。它假定下一站路由器比发送数据报的主机更接近目的,而且下一站路由器与该主机是直接相连的。 IP路由选择主要完成以下这些功能: 1) 搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果 找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标 志字段的值)。 2) 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目 指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所 有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表 目进行寻径的。 这种搜索网络的匹配方法必须考虑可能的子网掩码。关于这一点我们在下一节中进行 讨论。 3) 搜索路由表,寻找标为“默认”的表目。如果找到,则把报文发送给该表目 指定的下一站路由器。 如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自 本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。 IP路由选择是通过逐跳来实现的。数据报在各站的传输过程中目的IP地址始终不变,但 是封装和目的链路层地址在每一站都可以改变。大多数的主机和许多路由器对于非本地网络 的数据报都使用默认的下一站路由器。 (查看原文)
    豆小友 2012-10-09 22:04:21
    —— 引自第24页
  • 无连接这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。 (查看原文)
    [已注销] 2013-01-03 17:23:18
    —— 引自第24页
  • 我们都看到了P U S H标志,但一直没有介绍它的用途。发送方使用 该标志通知接收方将所收到的数据全部提交给接收进程。这里的数据包括与P U S H一起传送的 数据以及接收方T C P已经为接收进程收到的其他数据 (查看原文)
    Reborn 2016-03-13 18:25:01
    —— 引自第215页
  • 由于源于伯克利的实现一般从不将接收到的数据推迟交付给应用程序,因此它们忽略所 接收的P U S H标志。 (查看原文)
    Reborn 2016-03-13 18:25:01
    —— 引自第215页
  • T C P需要支持一种被称为“慢启动(slow start)”的算法。该算法通过观察到新分组 进入网络的速率应该与另一端返回确认的速率相同而进行工作 (查看原文)
    Reborn 2016-03-13 18:25:01
    —— 引自第215页
  • 通常发送一个分组的时间取决于两个因素:传播时延(由光的有限速率、传输设 备的等待时间等引起)和一个取决于媒体速率(即媒体每秒可传输的比特数)的发送 时延。对于一个给定的两个接点之间的通路,传播时延一般是固定的,而发送时延则 取决于分组的大小 (查看原文)
    Reborn 2016-03-13 18:25:01
    —— 引自第215页
  • 最初的T C P规范使T C P使用低通过滤器来更新一个被平滑的RT T估计器(记为O)。 R← R+ ( 1- )M 这里的是一个推荐值为0 . 9的平滑因子。每次进行新测量的时候,这个被平滑的RT T将得到大多数源于伯克利的T C P实现在任何时候对每个连接仅测量一次RT T值。在发送一个报文 段时,如果给定连接的定时器已经被使用,则该报文段不被计时。 更新。每个新估计的9 0%来自前一个估计,而1 0 %则取自新的测量。 该算法在给定这个随RT T的变化而变化的平滑因子的条件下, RFC 793推荐的重传超时时 间RTO(Retransmission Ti m e O u t)的值应该设置为 RTO = R 这里的是一个推荐值为2的时延离散因子。 (查看原文)
    Reborn 2016-03-18 22:35:21
    —— 引自第228页
  • ,当一个超时和重传发生时,在重传数据的确认最后到达 之前,不能更新RT T估计器,因为我们并不知道A C K对应哪次传输(也许第一次传输被延迟 而并没有被丢弃,也有可能第一次传输的A C K被延迟 (查看原文)
    Reborn 2016-03-18 22:35:21
    —— 引自第228页
  • E rr = M-A A←A + g E rr D←D + h( | E rr |-D) RTO = A + 4D 这里的A是被平滑的RT T(均值的估计器)而D则是被平滑的均值偏差。E rr是刚得到的测量结 果与当前的RT T估计器之差。A和D均被用于计算下一个重传时间( RTO)。增量g起平均作用, 取为1 / 8(0 . 1 2 5)。偏差的增益是h,取值为0 . 2 5。当RT T变化时,较大的偏差增益将使RTO快 速上升。 (查看原文)
    Reborn 2016-03-18 22:35:21
    —— 引自第228页
  • 的确,源于伯克利的T C P实现对收到的重复A C K进行计 数,当收到第3个时,就假定一个报文段已经丢失并重传自那个序号起的一个报文段 (查看原文)
    Reborn 2016-03-18 22:35:21
    —— 引自第228页
  • 当按序收到正常数据(报文段4 3)后,接收T C P将 2 5 5个字节的数据交给用户进程。但下一个收到的报文段(报文段4 6)是失序的:数据的开始序号( 6 9 1 3)并不是下一个期望的序号( 6 6 5 7)。T C P保存2 5 6字节的数据,并返回一个已成 功接收数据的最大序号加1(6 6 5 7)的A C K。被v a n g o g h接收到的后面7个报文段( 48, 50, 52, 54, 55, 57和5 9)也是失序的,接收方T C P保存这些数据并产生重复A C K 目前T C P尚无办法告诉对方缺少一个报文段,也无法确认失序数据。此时主机v a n g o g h 所能够做的就是继续发送确认序号为6 6 5 7的A C K。 (查看原文)
    Reborn 2016-03-19 21:42:48
    —— 引自第234页
  • 拥塞避免算法和慢启动算法需要对每个连接维持两个变量:一个拥塞窗口c w n d和一个慢 启动门限s s t h re s h 拥塞避免算法和慢启动算法需要对每个连接维持两个变量:一个拥塞窗口c w n d和一个慢 启动门限s s t h re s h。这样得到的算法的工作过程如下: 1) 对一个给定的连接,初始化c w n d为1个报文段, s s t h re s h为6 5 5 3 5个字节。 2) TCP输出例程的输出不能超过c w n d和接收方通告窗口的大小。拥塞避免是发送方使用 的流量控制,而通告窗口则是接收方进行的流量控制。前者是发送方感受到的网络拥塞的估 计,而后者则与接收方在该连接上的可用缓存大小有关。 3) 当拥塞发生时(超时或收到重复确认),s s t h re s h被设置为当前窗口大小的一半( c w n d 和接收方通告窗口大小的最小值,但最少为2个报文段)。此外,如果是超时引起了拥塞,则 c w n d被设置为1个报文段(这就是慢启动)。 4) 当新的数据被对方确认时,就增加c w n d,但增加的方法依赖于我们是否正在进行慢启 动或拥塞避免。如果c w n d小于或等于s s t h re s h,则正在进行慢启动,否则正在进行拥塞避免。 慢启动一直持续到我们回到当拥塞发生时所处位置的半时候才停止(因为我们记录了在步骤2 中给我们制造麻烦的窗口大小的一半),然后转为执行拥塞避免。 (查看原文)
    Reborn 2016-03-19 21:42:48
    —— 引自第234页
  • 在快速重传和快速恢复阶段,我们收到报文段6 6、6 8和7 0中的重复的A C K后才发送新的 数据,而不是在接收到报文段6 4和6 5中重复的A C K之后就发送。这是c w n d的取值与未被确认 的数据大小比较的结果。当报文段6 5到达时, c w n d为2 0 4 8,但未被确认的数据有2 3 0 4字节 (9个报文段:46, 48, 50, 52, 54, 55, 57, 59和6 3),因此不能发送任何数据。当报文段6 5到达后, c w n d被置为2 3 0 4,此时我们仍不能进行发送。但是当报文段6 6到达时, c w n d为2 5 6 0,所以我 们可以发送1个新的数据报文段。类似地,当报文段6 8到达时,c w n d等于2 8 1 6,该数值大于未 被确认的2 5 6 0字节的数据大小,因此我们可以发送另1个新的数据报文段。报文段7 0到达时也 进行了类似的处理。 T C P能够遇到的最 常见的I C M P差错就是源站抑制、主机不可达和网络不可达。 (查看原文)
    Reborn 2016-03-21 22:24:09
    —— 引自第240页
  • 当T C P超时并重传时,它不一定要重传同样的报文段。相反, T C P允许进行重新分组而发 送一个较大的报文段,这将有助于提高性能(当然,这个较大的报文段不能够超过接收方声 明的M S S)。在协议中这是允许的,因为T C P是使用字节序号而不是报文段序号来进行识别它 所要发送的数据和进行确认。 (查看原文)
    Reborn 2016-03-21 22:24:09
    —— 引自第240页
  • T C P不对A C K报文段进行确认, T C P只确认那些包含有数据的 A C K报文段。 (查看原文)
    Reborn 2016-03-22 22:06:03
    —— 引自第245页
  • 时间戳选项使发送方在每个报文段中放置一个时间戳值。接收方在确认中返回这个数值, 从而允许发送方为每一个收到的A C K计算RT T 我们提到过目前许多实现 为每一个窗口只计算一个RT T (查看原文)
    Reborn 2016-03-26 23:16:00
    —— 引自第263页
<前页 1 2 后页>