【传输层的功能】
注意,这里说到的是传输层的功能,当然是包括 UDP 和 TCP
所以说,UDP 提供分用/复用服务是正确的。但是,UDP 虽然有差错检验机制,但是 UDP 的差错检验只是检验数据的传输的过程中有没有出现错误,出错的数据直接丢弃,并没有重传等机制,故不能保证可靠传输
△☼▽
分析:B,根据上述的分用的定义,显然可知,端口号是传输层服务访问点 TSAP,用来标识主机中的应用进程
【TCP 和 IP 的比较】
TCP 是面向连接的,但 TCP 使用的 IP 却是无连接的
【常见的几个熟知端口】
熟知端口(保留端口):数值一般为 0 ~ 1023
【端到端与点到点的关系】
在 TCP/IP 模型中,网络层及其以下各层所构成的通信子网负责主机到主机或点到点的通信,而传输层的主要作用是实现分布式的进程通信,即在原主机进程与目的主机进程之间提供端到端的数据传输
一般来说,端到端信道是由一段段的点到点信道构成的,端到端协议建立在点到点协议之上,提供应用进程之间的通信手段。相应地,在网络层标识主机的 IP 地址,而在传输层标识进程的是端口号
【可靠传输与不可靠传输】
如果一个协议使用确认机制对传输的数据进行确认,那么可以认为是一个可靠的协议。如果一个协议采用尽力而为的传输方式,那么是不可靠的
【面向连接和无连接的数据传输的速度】
面向连接由于建立了一个虚链路,所以每个数据分组可以省略信源地址,减少了数据冗余,这是速度增加的因素。另外,建立虚链路也要花费一定的时间,就是速度降低的因素。因此,很难说二者速度谁快,但是可以肯定的是大量数据传输时面向连接的方式是有利的
【UDP】
1)基本概念
只提醒一点,对于 UDP,网络出现的拥塞不会使源主机的发送速率降低(没有拥塞控制),这对实时应用(如 IP 电话、实时视频会议)是很重要的
2)UDP 首部
记住,UDP 首部占 8B
分析:第 1、2 字节表示源端口,0721H = 1825,得知源端口为 1825;第 3、4 字节表示目的端口,0045H = 69,得知目的端口为 69,是 TFTP 端口,由此可知,该数据报是由客户端发送给服务器的,使用 UDP 的这个服务器程序是 TFTP;第 5、6 字节为 2CH,转换为十进制的数据总长度为 44B,那么数据部分的长度应该等于总长度减去 UDP 首部的 8B,故数据部分的长度为 36B
3)UDP 校验
【TCP 首部】
1)TCP 首部默认是 20B
△☼▽
分析:C,TCP 和 IP 数据报首部都是 20B,60/(60+20+20)×100%
2)格式
数据偏移:这里的数据偏移和 IP 数据报中分片的那个数据偏移是不一样的内容,这里的数据偏移表示首部长度,占 4 位可表示 0001 ~ 1111 一共 15 中状态,而基本单位是 4B,所以数据偏移确定了首部最长为 60B
URG:URG = 1, 表示紧急指针指向报文段内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据),不会进入缓冲区,直接交付给上层
PUSH:PUSH = 1,不等到整个缓存都填满后再向上交付,但注意,这里的交付仍然是从缓冲区中交付的
RST:RST = 1,表明 TCP 连接中出现严重差错,必须释放连接,然后再重新建立连接
校验和:在计算校验和时,TCP 和 UDP 一样,要在 TCP 报文段的前面加上 12B 的伪首部
△☼▽
分析:A,TCP 分组报头由定长 20B 与不定长的选项字段和填充字段构成,TCP 报文的首部长度必须是 4B 的整数倍,故 4B×8 = 32B > 29B
△☼▽
分析:
(1)源端口号为第 1、2 字节,即0d28H = 3368;目的端口号为 0015H = 21
(2)序号为 00 5f a9 06,转十进制为 6269190,确认号为 00 00 00 00,值为 0
(3)数据偏移为第 13 字节的前 4 位,即 7,故 TCP 的首部长为 7×4B =28B,可知有 8B 的选项数据
(4)由目的端口可知,这是一条 FTP 的TCP连接;第 14 字节的最后两位为 10,即 SYN = 1,ACK = 0,这说明是第一次握手时发出的 TCP 连接
【TCP 建立连接和释放连接】
1)建立连接
分析:C,SYN = 1,ACK= 1,ack = 11221,seq 任意
△☼▽
分析:D,第一次握手:甲 → 乙,seq = 2018;第二次握手:乙 → 甲,(seq = 2046,ack = 2019);第三次握手:甲 → 乙,(seq = 2019,ack = 2047)
△☼▽
分析:D,(注意,已经建立好连接了)A 发送的报文段的序号为 300 ~ 306,B 在对该报文的确认报文段中的 ACK 应该为 307,又由 A 发送的报文段的确认号可以知道,A 期待下一个收到的 B 的报文段序号为 101,故此时 B 的确认报文段的序号即应该为 101,故 D 正确
2)释放连接
为什么发送最后一次握手报文后要等待 2MSL 的时间呢?
【假定在一个互联网中,所有的链路的传输都不出现差错,所有的结点也都不会发生故障,试问在这种情况下,TCP 的可靠交付的功能是否就是多余的?】
以上列举的问题表明,必须依靠 TCP 的可靠交付功能才能保证在目的主机的目的进程中接收到正确的报文
【TCP 重传机制】
计算超时计时器重传时间的自适应算法:
△☼▽
分析:
第 1 个确认到达后:RTT = 0.1×30ms+0.9×26ms = 26.4ms
第 2 个确认到达后:RTT = 0.1×26.4ms+0.9×32ms = 31.44ms
第 3 个确认到达后:RTT = 0.1×31.44ms+0.9×24ms = 24.7ms
注意一点,只有 TCP 才需要计算 RTT,而 UDP 不需要计算 RTT
【TCP 中活动窗口值的设置】
TCP 使用滑动窗口机制来进行流量控制,其窗口尺寸的设置很重要,
△☼▽
分析:A,理论如上所述
【TCP 流量控制】
△☼▽(2011 年真题)
分析:B,第 3 个段的序号为 900,那么第 2 个段的序号即为 500,主机乙期望收到第 2 个段,故确认序号为 500(第一个段的序号是 200 ~ 499,第二个段的序号为 500 ~ 899)
△☼▽(2009 年真题)
分析:D,第一段的序列号为 200 ~ 499,第二个段的序列号为 500 ~ 999,乙正确接收这两个段后,应该希望主机甲接下来发送 1000 号帧,故发送给主机甲的确认序列号为 1000
△☼▽
分析:C,TCP 通过滑动窗口实现了以字节为单位的确认,因此窗口大小的单位为字节。假设发送窗口的大小为 N,这意味着发送端在没有收到确认的情况下可以连续发送 N 个字节
分析:B,当序列号循环使用时,具有相同序列号的 TPDU 应该从网络中已经消失。既然使用 8 位序列号,也就是序列号可以从 0 ~ 255,现在存活时间是 20s,也就是 20s 的时间内发送方的 TPDU 的数据不能多于 255 个。所以,最大数据率为 255×256×8bit/20s = 26112 bit/s
△☼▽
分析:
(1)99-70+1 = 30,故第一个报文段携带了 30B 数据
(2)ack = 100
(3)179-100+1 = 80,故第二个报文段携带了 80B 数据
(4)ack = 70
【TCP 拥塞控制】
2)快重传
首先要求接收方每收到一个失序的报文段后就立即发出重复确认。这样做可以让发送方及早知道有报文段没有到达接受方。发送方只要连续收到 3 个重复确认就应当立即重传对方尚未收到的报文段
△☼▽
分析:C,理论如上所述
3)发送窗口的确定
理论: 发 送 窗 口 的 上 限 值 = m i n { r w n d , c w n d } 发送窗口的上限值\mathbf{=min\left\{rwnd, cwnd\right\}} 发送窗口的上限值=min{rwnd,cwnd}
△☼▽
分析:A,发送窗口的上限值 = min {4000,2000} = 2000,而甲向乙连续发送两个最大段后,只收到第一个段的确认,故此时甲还可以向乙发送的最大季节数位 2000 - 1000 = 1000
4)慢启动时轮次的问题
先举个例子,1 → \rightarrow → 2 → \rightarrow → 4 → \rightarrow → 8,经历了 3 个轮次(即 3 个 RTT),为什么呢?
注意,是每收到 1 个对新报文的确认就使发送方的拥塞窗口加 1,所以第一个轮次结束,发送方收到 1 个确认,拥塞窗口加 1,故第二轮次中发送两个报文,而第二轮次结束时收到 2 个确认,拥塞窗口加 2,依次类推
5)若干相关习题
① 基础
△☼▽
分析:C,新 ssthresh = 8KB,1、2、4、8、9,故第 4 个RTT后,拥塞窗口的大小为 9KB
分析:A,当 t 时刻发生超时时,把 ssthresh 设为 8 的一半,即为 4,且拥塞窗口设为 1KB,然后经历 10 个 RTT 后,拥塞窗口的大小依次为 1、2、4、5、6、7、8、9、10、11、12,而发送窗口取当时的拥塞窗口和接收窗口的最小值,而接收窗口始终为 10KB,所以此时的发送窗口为 10KB
△☼▽
分析:B,新 ssthresh = 6,1→2→4→8→9→10→11→12→1→2→4→6(注意,是第 12 次传输开始时,不是第 12 轮次结束)
△☼▽
分析:D,新 ssthresh = 16,1、2、4、8、16,共经过 4 个 RTT
△☼▽
分析:新的 ssthresh = 32,1、2、4、8、16、32,共经过 5 个 RTT,拥塞窗口的大小变为 32 达到新的 ssthresh,即该链接在超时处理后处于慢开始阶段的时间为 3×5s = 15s
△☼▽
分析:新 ssthresh = 9,1、2、4、8、9,故在第 4 次突发传输成功后,拥塞窗口的大小将变成 9KB
△☼▽
分析:
(1)初始阈值为 16,因为拥塞窗口达到 16KB 之后呈线性增长
(2)有超时发生,在传输轮次为 12 时发生了超时,从图中可以看出拥塞窗口在 传输轮次 12 之后变为 1KB
(3)采用了慢开始和拥塞避免算法
△☼▽
分析:
(1)忽略第一问没啥价值
(2)慢开始时间间隔为 [1, 6] 和 [23, 26]
(3)拥塞避免时间间隔为 [7, 16] 和 [17, 22]
(4)第 16 轮次检测到丢失报文段时使用的是快恢复算法,故此时发送方是通过收到了 3 个重复的确认检测到报文段丢失的;第 22 轮次之后是恢复到慢开始,故此时是通过超时检测到报文段丢失的
(5)第 1 轮时,ssthresh = 32,;第 18 轮次时,ssthresh = 21;第 24 轮次时,ssthresh = 13
(6)cwnd = 4, 新的 ssthresh = 4
② 加了缓存的情况
△☼▽(2015 年真题)
分析:4 个 RTT 后,乙收到的数据全部存入缓存,不被取走,接受窗口只剩下 1KB( 16 − 1 − 2 − 4 − 8 16-1-2-4-8 16−1−2−4−8)缓存,使得甲的发送窗口为 1KB
△☼▽ (完全窗口的概念)
分析:B,这里根据解析来看,发送方发出一个完全窗口,是指发送窗口达到 24KB,并且注意,这里最大报文段长度为 2KB,按照 MSS = 1KB 的情况的电话是 1→2→4→8→16,将每个阶段都乘以 2,于是 2→4→8→16→min{32, 24} = 24,共经过 4 个轮次
分析:A,1+2+4+8+16 = 31,经过 4 个 RTT 后,接收窗口已经缓存了 31KB 数据,此时接收窗口为 64KB-31KB = 33KB,下一个 RTT 发送窗口达到 32KB( < 33B),故总共经过 5×5ms
△☼▽(2016 年真题)
分析:
(1)第二次握手 TCP 的 SYN = 1,ACK = 1,确认序号 ack = 100+1 = 101
(2)注意是确认段,第一轮次收到 1 个确认,第二轮次收到 2 个确认,第三轮次收到 4 个确认,第四轮次应该收到 8 个确认,此时 H3 收到的第 8 个确认即是第四轮次中的第一个确认,每收到 1 个对新报文的确认就使发送方的拥塞窗口加 1,因此拥塞窗口为 9,而 S 收到了 8KB 数据,接收缓冲还剩 12KB,故此时的接收窗口为 12,发送窗口 = min{9,12} = 9KB
(3)当 H3 的发送窗口等于 0 时,已经发送了 20KB 数据,故下一个待发段的序号为 20K+100+1=20581;根据第(2)问的描述,第四轮次过后,S 收到了 15KB 数据,接收窗口为 5KB,第四轮结束拥塞窗口为 16,此时发送窗口 = min{16,5},故在第五轮次结束,H3 的发送窗口等于 0,因此平均数据传输速率为 20KB/(5×200ms)=20KB/s=20.48kbps
(4)通信结束后,H3 向 S 发送连接释放报文段,S 收到 H3 的连接释放报文段后,马上发出确认报文,此时 S 已经没有数据需要传输,于是也马上发出连接释放报文段,H3 在收到 S 的连接释放报文段后,发出确认,S 在收到 H3 的确认后就释放 TCP 连接了。因此,S 释放该连接的最短时间为:1.5RTT = 300ms(注意是最短,所以我们视 S 发送确认报文和紧接着发送连接释放报文段只占用了 0.5RTT)
【为什么说 UDP 是面向报文的,TCP 是面向字节流的?】
【如果用户要传送的数据的字节长度超过 TCP 报文段中的序号字段可能编出的最大序号,问还能否TCP来传送?】
即使用户要传送的数据的字节长度超过 TCP 报文段中的序号字段可能编出的最大序号,也还可以使用 TCP 来传送。当今的因特网用户速率还不是那么高到离谱,且分组的生命期受限。TCP 的序列字段有32位,可以循环使用序列号,这样就可保证当序号重复使用时,旧序号的数据早已通过网络到达终点了
【TCP 未按序号到达怎么处理?】
如果收到的报文段无差错,只是未按序号,则 TCP 对此未作明确规定,而是让 TCP 的实现者自行确定。试讨论两种可能的方法的优劣:
1)将不按序的报文段丢弃
2)先将不不按序的报文段暂存于接收缓存内,待所缺序号的报文段收齐后再一起上交应用层
答: 第一种方法其实就是后退 N 帧协议所使用的处理方式,这种方法将不按序的报文段丢弃,会引起被丢弃报文段的重复传送,增加对网络带宽的消耗,但由于用不着将该保报文段暂存,可以避免对接收方缓冲区的占用
第二种方法就是选择重传协议所使用的处理方式,该方法不按序的报文段暂存于接收缓存内,待所缺序号的报文段收齐后再一起上交应用层,这样有可能避免发送方对已经被接收方接收的不按序的报文段的重传,减少了对网络带宽的消耗,但增加了接收方缓冲区的开销
【客户/服务器模型】
【P2P】
所谓 P2P 体系结构就是在这样的网络应用中,没有(或只有极少数的)固定的服务器,而绝大多数的交互都是使用对等方式进行的
实际上,P2P 模型从本质上来看仍然是客户/服务器方式,只是对等连接中的每一个主机既是客户又是服务器
P2P 模型带来的好处是,任何一台主机都可以成为服务器,改变了原来需要专用服务器的模式,很显然,多个客户机之间可以直接共享文档。此外,可以借助 P2P 网络模型解决专用服务器的性能瓶颈(如播放流媒体时对服务器的压力过大,而通过 P2P 模型,可以利用大量的客户机来提供服务)
P2P模型主要特点如下:
△☼▽(2019 年真题)
分析:B,通过上述理论可知,A)、D)选项正确;在 C/S 模型中,客户是服务发起方,服务器被动接受各地客户的请求,但客户之间不能直接通信,例如 Web 应用中两个浏览器之间并不能直接通信
【DNS 系统】
1)域名
任何一个连在因特网上的主机和路由器都有一个唯一的层次结构,即域名
尽管 DNS 能够完成域名到 IP 地址的映射,但实际上 IP 地址和域名并非一一对应。如果一个主机通过两块网卡连接在两个网络上,则具有两个 IP 地址,但这两个 IP 地址可能就映射到同一个域名上。如果一个主机具有两个域名管理机构分配的域名,则这两个域名就可能具有相同的 IP 地址。显然,域名和 MAC 地址也不是一一对应的,因为一个主机可以通过两块网卡连接在两个网络上,所以有两个 MAC 地址
2)域名服务器
DNS 服务器管辖的范围不是以域为单位,而是以区为单位,区一定小于域
3)主域名服务器与辅助域名服务器
DNS 服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其他的是辅助域名服务器。当主域名服务器出现故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行,这样就保证了数据的一致性。所以,辅助域名服务器既可以运行域名服务器软件,也有域名数据库。另外,一个域名有且只有一个主域名服务器
4)域名解析过程
分析:C,最少情况下:当本机 DNS 高速缓存中存有该域名的 DNS 信息时,则不需要查询任何域名服务器,这样最少发出 0 次 DNS 查询;最多情况下:因采用迭代查询方式,在最坏情况下,需要依次迭代向本地域名服务器、根域名服务器(.com)、顶级域名服务器(xyz.com)、权限域名服务器(abc.xyz.com)发出 DNS 查询请求,因此最多发出 4 次 DNS 查询
△☼▽(2010 年真题)
分析:A,如果主机所询问的本地域名服务器不知道被查询域名的 IP 的地址,那么本地域名服务器就以 DNS 客户的身份向其他服务器继续发出查询请求报文,而不是让该主机自己进行下一步的查询,所以主机只需向本地域名服务器发送一条域名请求即可;其次,因为递归查询一定要查到主机需要的 IP 地址才返回,所以本地域名服务器只需发送一条域名请求给根域名服务器即可
【FTP】
1)基本工作原理
FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求
主进程的工作步骤如下:
(考虑一个 FTP 服务器同时服务多个客户进程,那么服务器在收到客户机的请求后会和客户机重新商议端口的问题,即考虑使用临时端口来替换出 20 号、21 号端口,因此,服务器就可以继续使用 20 号端口和 21 号端口进行监听,所以不存在端口被一直占用的问题)
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口 21,同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口 20 与客户进程所提供的端口号建立数据传送连接
△☼▽(2017 年真题)
分析:C,注意上面加粗的语句的表述,客户端用于建立数据连接的端口是客户进程告诉服务器进程的,也就是说客户端是否使用 20 号端口不一定,但服务器是使用 20 号端口与客户端提供的一个端口进行数据传送的
2)为什么 FTP 要需要两个独立的连接,即控制连接和数据连接?
在 FTP 的实现中,客户与服务器之间采用了两条传输连接,其中控制连接用于传输各种 FTP 命令,而数据连接用于文件的传送。之所以这样设计,是因为使用两条独立的连接可以使 FTP 变得更加简单、更容易实现、更有效率;同时在文件传输过程中还可以利用控制连接控制传输过程,如客户可以请求终止传输
3)细节理解
△☼▽
分析:C,记住就行
△☼▽
分析:D,FTP 的数据端口号是控制端口号 - 1
【为什么在服务器端除了使用熟知端口外,还需要使用临时端口?】
TCP/IP 只能有一个熟知端口,这样才能使各地的客户机找到这个服务器,但建立多条连接又必须有多个端口。因此,在按照并发方式工作的服务器中,主服务器进程在熟知端口等待客户机发来的请求。主服务器进程一旦接收到客户机的请求,就立即创建一个从属服务器进程,并指明从属服务器进程使用一个临时端口和该客户机建立 TCP 连接,然后主服务器进程继续在原来的熟知端口等待,向其他客户及提供服务
【主机 A 向下载文件 ftp://ftp.abc.eu.cn/file,大概描述下载过程中主机和服务器的交互过程】
【SMTP】
SMTP 是一个基于 ACSII 码的协议,它只能够传送 7 比特的 ACSII 码,如果要传输非 ACSII 码的数据,需要使用 MIME 协议来将数据转换成 ACSII 码的形式
从下图可知,SMTP 协议用于用户代理向邮件服务器发送邮件,或在邮件服务器之间发送邮件
【POP3】
【MIME】
1)quoted-printable 编码
ACSII 码字符保持不变,非 ACSII 码字符用 =XX 表示,其中 XX 是该字符的十六进制值,具体编码规则如下:
△☼▽
分析:0100 1100 和 0011 1100 是可打印的 ASCII 编码,将 1001 1101 表示为十六进制是 9D,在前面加上等号得 =9D,其 ASCII 编码为 00111101 00111001 01000100(需要查 ASCII 表对应转换) ,因此最后传送的 ASCII 数据为 01001100 00111101 00111001 01000100 00111001
2)base64 编码
不管是否是 ACSII 码字符,每 3 个字符用另 4 个 ACSII 码字符表示,具体编码规则如下:
△☼▽
分析:B
0 ~ 25 (011001):A ~ Z,26 (011010) ~ 51(110011):a ~ z,52 (110100) ~ 61 (111101):0 ~ 9,62 (111110):+,63 (111111):/
110011 001000 000100 111000 → \rightarrow → z I E 4 → 转 A S C I I 码 \overset{转 ASCII 码}{\rightarrow} →转ASCII码 122 73 69 52 → 转 二 进 制 \overset{转二进制}{\rightarrow} →转二进制 (0111 1010) (0100 1001) (0100 0101) (0011 0100)
△☼▽
分析:C,根据上述理论描述可以得到如下的计算式 99 × 8 6 × 8 b i t \frac{99\times8}{6}\times8bit 699×8×8bit
【WWW】
△☼▽
分析:C,http 是内容标识符,表示使用的是 HTTP,http://www.zju.edu.cn 为域名或称主机名,/docs/cindex.html 为特定 web 资源名,即主机上的 web 文件
△☼▽
分析:D,即超链接
【HTTP】
1)持久连接/非持久连接
Connection:连接方式,Close 表示为非持续连接方式,keep-alive 表示持续连接方式
非持久连接:每一个网页元素对象的传输都需要单独建立一个 TCP 连接,换句话说,每请求一个万维网文档所需的时间是该文档的传输时间加上两倍往返时间(一个 RTT 用于 TCP 连接,另一个 RTT 用于请求和接收文档)
持久连接:万维网服务器在发送响应后仍然保持这条连接,同一个客户和服务器可以继续在这条连接上传送后续的 HTTP 请求和响应报文。持久连接又分为流水线和非流水线两种方式。对于非流水线方式,客户只能在收到前一个请求的响应后才能发送新的请求。而流水线方式是 HTTP 客户每遇到一个对象引用就立即发出一个请求,因而 HTTP 客户可以一个接一个连续第发出各个引用对象的请求。如果所有的请求和响应都是连续发送的,那么所有引用到的对象共经历一个 RTT 延迟
△☼▽(2015 年真题)
分析:C,根据上述理论,该浏览器请求使用的应是非持续连接方式;Cookie 值是由服务器产生的,HTTP 请求报文中有 Cookie 报头表示曾经访问过 www.test.edu.cn 服务器
△☼▽
分析:
(1)首先要指出的是图 6-18 中每行前面的 0000,0010,0020,0030,0040 不属于以太网帧的内容
IP 地址在 IP 报文中,应先找到 MAC 帧的数据部分,在按 IP 分组首部结构找到目的 IP 地址,即 40 aa 62 20,转换为十进制为 64.170.198.32
目的 MAC 地址为前 6 字节,即 00-21-27-21-51-ee,由于下一跳即为默认网关 10.2.128.1,故此时的目的 MAC 地址即为默认网关 10.2.128.1 端口的物理地址
(2)使用 ARP 协议确定目的 MAC地址,封装该协议请求报文的以太网帧的目的 MAC 地址为 ff-ff-ff-ff-ff-ff
(3)采用非流水线方式,客户机在收到一个请求响应后才能发送下一次请求,第一个请求用于请求 web 页面,后有 5 个小图像,故一共经过了 6 个RTT
(4)10.2.128.100 为私有地址,经路由器转发时源 IP 地址要发生变化,即变成 NAT 路由器的一个全球 IP 地址,也就是将 IP 地址 10.2.128.100 改为 101.12.123.15,即源 IP 地址 0a 02 80 64 改为 65 0c 7b 0f;另外,IP 分组每经过一个路由器,生存时间 TTL 减一,故生存时间字段由 80 改为 7f;当然,此时还需要重新计算首部校验和;最后,如果 IP 分组的长度超过链路所要求的最大长度,则 IP 分组就需要分片,此时 IP 分组的总长度字段、标志字字段以及片偏移字段都要发生改变
△☼▽
分析:
(1)非持续
因 web 页面的基本 HTML 文件、HTTP 请求报文、TCP 握手报文大小可忽略不计,所以不计发送时延。TCP 前两次握手消耗 1 R T T 1RTT 1RTT,第三次握手捎带一个 HTTP 请求,消耗 0.5 R T T 0.5RTT 0.5RTT,传送 HTML 文件消耗 0.5 R T T 0.5RTT 0.5RTT,到此为止共消耗 2 R T T = 300 m s 2RTT=300ms 2RTT=300ms,接着传送 10 10 10 个 gif,需 10 10 10 次 TCP 连接,传 1 1 1 个gif 消耗 ( 150 + 150 + 35 ) m s = 335 m s (150+150+35)ms=335ms (150+150+35)ms=335ms,故,总共消耗 300 m s + 335 m s × 10 = 3650 m s 300ms+335ms\times10 = 3650ms 300ms+335ms×10=3650ms
(2)持续
在此模式下,不管传输多少数据,只需要建立一次 TCP连接,故,总共消耗 150 m s × 2 + ( 150 m s + 35 m s ) × 10 150ms\times2+(150ms+35ms)\times10 150ms×2+(150ms+35ms)×10
△☼▽
分析:
IP 地址解析需要 R T T 1 + R T T 2 + ⋯ + R T T n RTT_1+RTT_2+\cdots+RTT_n RTT1+RTT2+⋯+RTTn
建立 TCP 连接和请求网页需要 2 R T T w 2RTT_w 2RTTw
故,一共经过 R T T 1 + R T T 2 + ⋯ + R T T n + 2 R T T w RTT_1+RTT_2+\cdots+RTT_n+2RTT_w RTT1+RTT2+⋯+RTTn+2RTTw 的时间
△☼▽
分析:首先要知道的是这 4 个对象不是同一层次的,应该是一个树的结构,树高为 2,如下所示:
(1)对于没有并行 TCP 连接的非持续 HTTP,每访问一个 URL 对象就要建立一个 TCP 连接,故总的所需时间为 R T T 1 + R T T 2 + ⋯ + R T T n + 8 R T T w RTT_1+RTT_2+\cdots+RTT_n+8RTT_w RTT1+RTT2+⋯+RTTn+8RTTw
(2)对于使用并行 TCP 连接的非持续 HTTP,对一级建立一个 TCP,耗时 1 R T T w 1RTT_w 1RTTw,向二级并发建立 TCP,耗时 1 R T T w 1RTT_w 1RTTw,再向每一级请求 www 文档,各耗时 1 R T T w 1RTT_w 1RTTw(注意是向每一级请求,这里有两级,所以是 2 R T T w 2RTT_w 2RTTw),故总的所需时间为 R T T 1 + R T T 2 + ⋯ + R T T n + 4 R T T w RTT_1+RTT_2+\cdots+RTT_n+4RTT_w RTT1+RTT2+⋯+RTTn+4RTTw
(3)对于使用流水线方式的持续 HTTP,计算机只需建立一个对象流水线的连接,耗时 1 R T T w 1RTT_w 1RTTw,并保持,向一级对象请求万维网文档耗时 1 R T T w 1RTT_w 1RTTw,向二级对象请求万维网文档耗时 1 R T T w 1RTT_w 1RTTw,故总的所需时间为 R T T 1 + R T T 2 + ⋯ + R T T n + 3 R T T w RTT_1+RTT_2+\cdots+RTT_n+3RTT_w RTT1+RTT2+⋯+RTTn+3RTTw
【当用户在 Web 浏览器中输入域名 www.csbiji.com 访问该网站时,可能会依次发送那些报文?】
注意本题也可换种方式询问,如整个过程中会用到什么协议?本质与此题是一样的。千万要记住加上 UDP,因为 DNS 需要使用 UDP,这点很容易被忽视
【应用层协议与传输层协议的的关系总结】
分析:首先需将域名转换为 IP 地址,故应用层需要使用 DNS 协议,DNS 协议需在传输层使用 UDP;HTTP 在传输层使用 TCP
【轮询】
分析:C, 15 × 60 0.4 = 2250 \frac{15\times60}{0.4}=2250 0.415×60=2250
【Cookie 运行过程】