Chapter 2

2.1

Knowledge checks 知识检查

Which of the characteristics below are associated with a client-server approach to structuring network applications (as opposed to a P2P approach)? 以下哪些特征与构建网络应用程序的客户端-服务器方法(相对于 P2P 方法)相关?

A. A process requests service from those it contacts and will provide service to processes that contact it. 进程向与其联系的进程请求服务,并向与之联系的进程提供服务。

B. There is a server with a well known server IP address. 有一台具有众所周知的服务器 IP 地址的服务器。

C. There is not a server that is always on. 存在永远在线的服务器。

D. There is a server that is always on. 有一个服务器始终在线。

E. HTTP uses this application structure. HTTP 使用这种应用程序结构。

答案:

以下特征与客户端-服务器方法构建网络应用程序相关(相对于 P2P 方法):

  • B. 有一台具有众所周知的服务器 IP 地址的服务器。

  • D. 有一个服务器始终在线。

  • E. HTTP 使用这种应用程序结构。

A 选项描述的是客户端-服务器和 P2P 之间的共性,而 C 选项与 P2P 方法相关,因此不属于客户端-服务器特征。


Which of the characteristics below are associated with a P2P approach to structuring network applications (as opposed to a client-server approach)? 以下哪些特征与构建网络应用程序的 P2P 方法(相对于客户端-服务器方法)相关?

A. There is a server that is always on. 有一个服务器始终在线。

B. HTTP uses this application structure. HTTP 使用这种应用程序结构。

C. A process requests service from those it contacts and will provide service to processes that contact it. 进程向与其联系的进程请求服务,并向与之联系的进程提供服务。

D. There is not a server that is always on. 存在永远在线的服务器。

E. There is a server with a well known server IP address. 有一台具有众所周知的服务器 IP 地址的服务器。

答案:

以下特征与 P2P 方法构建网络应用程序相关(相对于客户端-服务器方法):

  • C. 进程向与其联系的进程请求服务,并向与之联系的进程提供服务。

  • D. 存在永远在线的服务器。

A 和 E 选项涉及客户端-服务器架构的特征,而 B 选项(HTTP)是典型的客户端-服务器模型,因此不适用于 P2P 方法。


When an application uses a UDP socket, what transport services are provided to the application by UDP? Check all that apply. 当应用程序使用 UDP 套接字时,UDP 向应用程序提供哪些传输服务?检查所有适用的内容。

A. Congestion control. The service will control senders so that the senders do not collectively send more data than links in the network can handle. 拥塞控制。该服务将控制发送方,以便发送方共同发送的数据不会超过网络中链路可以处理的数据量。

B. Best effort service. The service will make a best effort to deliver data to the destination but makes no guarantees that any particular segment of data will actually get there. 尽力服务。该服务将尽最大努力将数据传送到目的地,但不保证任何特定数据段实际上会到达目的地。

C. Flow Control. The provided service will ensure that the sender does not send so fast as to overflow receiver buffers. 流量控制。所提供的服务将确保发送方发送速度不会太快而导致接收方缓冲区溢出。

D. Real-time delivery. The service will guarantee that data will be delivered to the receiver within a specified time bound. 实时交付。该服务将保证数据在指定的时间内传送到接收者。

E. Throughput guarantee. The socket can be configured to provide a minimum throughput guarantee between sender and receiver. 吞吐量保证。套接字可以配置为在发送方和接收方之间提供最小吞吐量保证。

F. Loss-free data transfer. The service will reliably transfer all data to the receiver, recovering from packets dropped in the network due to router buffer overflow. 无损数据传输。该服务将可靠地将所有数据传输到接收器,从由于路由器缓冲区溢出而在网络中丢失的数据包中恢复。

当应用程序使用 UDP 套接字时,UDP 向应用程序提供的传输服务包括:

  • B. 尽力服务。 该服务将尽最大努力将数据传送到目的地,但不保证任何特定数据段实际上会到达目的地。

其他选项(A、C、D、E、F)都不适用于 UDP,因为 UDP 不提供拥塞控制、流量控制、实时交付、吞吐量保证或无损数据传输的功能。


When an application uses a TCP socket, what transport services are provided to the application by TCP? Check all that apply. 当应用程序使用 TCP 套接字时,TCP 向应用程序提供哪些传输服务?检查所有适用的内容。

A. Flow Control. The provided service will ensure that the sender does not send so fast as to overflow receiver buffers. 流量控制。所提供的服务将确保发送方发送速度不会太快而导致接收方缓冲区溢出。

B. Throughput guarantee. The socket can be configured to provide a minimum throughput guarantee between sender and receiver. 吞吐量保证。套接字可以配置为在发送方和接收方之间提供最小吞吐量保证。

C. Congestion control. The service will control senders so that the senders do not collectively send more data than links in the network can handle. 拥塞控制。该服务将控制发送方,以便发送方共同发送的数据不会超过网络中链路可以处理的数据量。

D. Real-time delivery. The service will guarantee that data will be delivered to the receiver within a specified time bound. 实时交付。该服务将保证数据在指定的时间内传送到接收者。

E. Best effort service. The service will make a best effort to deliver data to the destination but makes no guarantees that any particular segment of data will actually get there. 尽力服务。该服务将尽最大努力将数据传送到目的地,但不保证任何特定数据段实际上会到达目的地。

F. Loss-free data transfer. The service will reliably transfer all data to the receiver, recovering from packets dropped in the network due to router buffer overflow. 无损数据传输。该服务将可靠地将所有数据传输到接收器,从由于路由器缓冲区溢出而在网络中丢失的数据包中恢复。

当应用程序使用 TCP 套接字时,TCP 向应用程序提供的传输服务包括:

  • A. 流量控制。 所提供的服务将确保发送方发送速度不会太快而导致接收方缓冲区溢出。

  • C. 拥塞控制。 该服务将控制发送方,以便发送方共同发送的数据不会超过网络中链路可以处理的数据量。

  • F. 无损数据传输。 该服务将可靠地将所有数据传输到接收器,从由于路由器缓冲区溢出而在网络中丢失的数据包中恢复。

TCP 不提供吞吐量保证(B)、实时交付(D)或尽力服务(E),因为这些特性并不是 TCP 设计的核心部分。

2.2

Knowledge checks

What do we mean when we say “HTTP is stateless”? In answering this question, assume that cookies are not used. Check all answers that apply. 当我们说“HTTP 是无状态的”时,我们的意思是什么?在回答这个问题时,假设不使用 cookie。检查所有适用的答案。

A. The HTTP protocol is not licensed in any country. HTTP 协议未在任何国家/地区获得许可。

B. An HTTP client does not remember the identities of the servers with which it has interacted. HTTP 客户端不记得与之交互的服务器的身份。

C. An HTTP server does not remember anything about what happened during earlier steps in interacting with this HTTP client. HTTP服务器不记得与此 HTTP 客户端交互的早期步骤中发生的任何事情。

D. An HTTP client does not remember anything about what happened during earlier steps in interacting with any HTTP server. HTTP客户端不记得与任何 HTTP 服务器交互的早期步骤中发生的情况。

E. We say this when an HTTP server is not operational. 当 HTTP 服务器无法运行时,我们会这样说。

关于“HTTP 是无状态的”这一说法,正确答案应该是C

  • C. HTTP 服务器不记得与此 HTTP 客户端交互的早期步骤中发生的任何事情。

HTTP 协议本身不维护状态信息,因此服务器在处理每个请求时都不保留之前请求的信息。


What is an HTTP cookie used for? HTTP cookie 有何用途?

A cookie is a code used by a server, carried on a client’s HTTP request, to access information the server had earlier stored about an earlier interaction with this Web browser. [Think about the distinction between a browser and a person.] cookie 是服务器使用的代码,在客户端的 HTTP 请求上携带,用于访问服务器先前存储的有关与该 Web浏览器的早期交互的信息。 [想想浏览器之间的区别。]


What is the purpose of the HTTP GET message? HTTP GET 消息的目的是什么?

The HTTP GET request message is used by a web client to request a web server to send the requested object from the server to the client. HTTP GET 请求消息由 Web 客户端用来请求 Web 服务器将请求的对象从服务器发送到客户端。


What is the purpose of the conditional HTTP GET request message? 条件 HTTP GET 请求消息的目的是什么?

To allow a server to only send the requested object to the client if this object has changed since the server last sent this object to the client. 允许服务器仅在该对象自服务器上次将此对象发送到客户端以来发生更改时才将请求的对象发送到客户端。


Again, suppose a client is sending an HTTP GET request message to a web server, gaia.cs.umass.edu. The client-to-server HTTP GET message is the following (same as in previous problem): 再次假设客户端正在向 Web 服务器 gaia.cs.umass.edu 发送 HTTP GET 请求消息。客户端到服务器的 HTTP GET 消息如下(与上一个问题相同):

GET /kurose_ross_sandbox/interactive/quotation2.htm HTTP/1.1
获取 /kurose_ross_sandbox/interactive/quotation2.htm HTTP/1.1
Host: gaia.cs.umass.edu 主办方:gaia.cs.umass.edu
Accept: text/plain, text/html, text/xml, image/jpeg, image/gif, audio/mpeg, audio/mp4, video/wmv, video/mp4,
接受:文本/纯文本、文本/html、文本/xml、图像/jpeg、图像/gif、音频/mpeg、音频/mp4、视频/wmv、视频/mp4
Accept-Language: en-us, en-gb;q=0.1, en;q=0.7, fr, fr-ch, da, de, fi
接受语言:en-usen-gb;q=0.1、en;q=0.7、frfr-chdadefi
If-Modified-Since: Wed, 09 Sep 2020 16:06:01 -0700
如果-修改-自:2020 年 9 月 9 日星期三 16:06:01 -0700
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64AppleWebKit/535.11(KHTML,如 GeckoChrome/17.0.963.56 Safari/535.11

What is the language in which the client would least prefer to get a response? [You may have to search around the Web a bit to answer this.] 客户最不希望得到回复的语言是什么? [您可能需要在网络上搜索一下才能回答这个问题。]

  • United Kingdom English 英国 英语
  • French 法语
  • Mandarin 普通话
  • US English 美国英语
  • Farsi 波斯语
  • Spanish 西班牙语
  • Finnish 芬兰
  • Hindi 印地语

在客户端的 HTTP GET 请求中,Accept-Language字段列出了几种语言以及它们的优先级。具体的优先级如下:

  • en-us (美国英语)
  • en-gb;q=0.1 (英国英语,权重为 0.1)
  • en;q=0.7 (一般英语,权重为 0.7)
  • fr (法语)
  • fr-ch (瑞士法语)
  • da (丹麦语)
  • de (德语)
  • fi (芬兰语)

在这些语言中,客户端对en-gb(英国英语)给出了最低的优先级(权重为 0.1),因此如果服务器无法提供其他语言的内容,它最不希望收到的响应语言就是英语(英国)


Again, suppose a client is sending an HTTP GET request message to a web server, gaia.cs.umass.edu. Suppose the client-to-server HTTP GET message is the following (same as in previous problem): 再次假设客户端正在向 Web 服务器 gaia.cs.umass.edu 发送 HTTP GET 请求消息。假设客户端到服务器的 HTTP GET 消息如下(与上一个问题相同):

GET /kurose_ross_sandbox/interactive/quotation2.htm HTTP/1.1
获取 /kurose_ross_sandbox/interactive/quotation2.htm HTTP/1.1
Host: gaia.cs.umass.edu 主办方:gaia.cs.umass.edu
Accept: text/plain, text/html, text/xml, image/jpeg, image/gif, audio/mpeg, audio/mp4, video/wmv, video/mp4,
接受:文本/纯文本、文本/html、文本/xml、图像/jpeg、图像/gif、音频/mpeg、音频/mp4、视频/wmv、视频/mp4
Accept-Language: en-us, en-gb;q=0.1, en;q=0.7, fr, fr-ch, da, de, fi
接受语言:en-usen-gb;q=0.1、en;q=0.7、frfr-chdadefi
If-Modified-Since: Wed, 09 Sep 2020 16:06:01 -0700
如果-修改-自:2020 年 9 月 9 日星期三 16:06:01 -0700
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64AppleWebKit/535.11(KHTML,如 GeckoChrome/17.0.963.56 Safari/535.11

Does the client have a cached copy of the object being requested? 客户端是否有所请求对象的缓存副本?

  • There's not enough information in the header to answer this question. 标题中没有足够的信息来回答这个问题。
  • Yes, because HTTP 1.1 is being used. 是的,因为正在使用 HTTP 1.1。
  • Yes, because this is a conditional GET, as evidenced by the If-Modified-Since field. 是的,因为这是一个条件 GET,如 If-Modified-Since 字段所证明的那样。
  • No, because a client would not request an object if it had that object in its cache. 不会,因为如果客户端的缓存中有该对象,则客户端不会请求该对象

在客户端发送的 HTTP GET 请求中,有一个重要的头字段是 If-Modified-Since,其值为 Wed, 09 Sep 2020 16:06:01 -0700。这个字段的作用是告知服务器,客户端希望仅在请求的对象自指定的日期(即 9 月 9 日)之后被修改的情况下才返回新的版本。

根据 If-Modified-Since 字段的使用,可以推断出以下几点:

  • 如果客户端在发送请求时包含了 If-Modified-Since 头字段,这通常表示客户端已有该对象的缓存副本。
  • 客户端希望通过此请求检查该对象是否已被修改,从而决定是否需要下载新的副本。

因此,客户端有请求对象的缓存副本。如果对象在指定日期之后没有被修改,服务器将会返回一个 304 Not Modified 响应,而不是返回对象的内容。


Suppose now the server sends the following HTTP response message the client: 假设现在服务器向客户端发送以下 HTTP 响应消息:

HTTP/1.0 200 OK HTTP/1.0 200
Date: Wed, 09 Sep 2020 23:46:21 +0000
日期:2020 年 9 月 9 日星期三 23:46:21 +0000
Server: Apache/2.2.3 (CentOS)
服务器:Apache/2.2.3(CentOS
Last-Modified: Wed, 09 Sep 2020 23:51:41 +0000
最后修改时间:2020 年 9 月 9 日星期三 23:51:41 +0000
ETag:17dc6-a5c-bf716880. ETag:17dc6-a5c-bf716880
Content-Length: 418 内容长度:418
Connection: Close 连接:关闭
Content-type: image/html 内容类型:图像/html

Will the web server close the TCP connection after sending this message? Web 服务器发送此消息后会关闭 TCP 连接吗?

  • Yes, because the HTTP response indicated that only one object was requested in the HTTP GET request. 是的,因为 HTTP 响应表明 HTTP GET 请求中只请求了一个对象。
  • There's not enough information in the response message to answer this question. 响应消息中没有足够的信息来回答此问题。
  • Yes, the server will close this connection because version 1.0 of HTTP is being used, and TCP connections do not stay open persistently. 是的,服务器将关闭此连接,因为正在使用 HTTP 1.0 版本,并且 TCP 连接不会持续保持打开状态。
  • No, the server will leave the connection open as a persistent HTTP connection. 不会,服务器会将连接作为持久 HTTP 连接保持打开状态。

根据服务器发送的 HTTP 响应消息中的 Connection 头字段的内容,具体来说是 Connection: Close,可以得出以下结论:

  • Connection: Close 表示服务器在发送完该响应后将关闭 TCP 连接。这是 HTTP/1.0 的一个常见行为,意味着在响应完成后不再保持连接,客户端需要在下次请求时重新建立连接。

因此,是的,Web 服务器将在发送此消息后关闭 TCP 连接


Which of the following are advantages of using a web cache? Sselect one or more answers. 使用网络缓存有以下哪些优点?选择一个或多个答案。

A. Caching generally provides for a faster page load time at the client, if the web cache is in the client’s institutional network, because the page is loaded from the nearby cache rather than from the distant server. 如果 Web 缓存位于客户端的机构网络中,则缓存通常可以在客户端提供更快的页面加载时间,因为页面是从附近的缓存而不是从远程服务器加载的。

B. Caching uses less bandwidth coming into an institutional network where the client is located, if the cache is also located in that institutional network. 如果缓存也位于客户端所在的机构网络中,则缓存使用进入该机构网络的带宽较少。

C. Overall, caching requires fewer devices/hosts to satisfy a web request, thus saving on server/cache costs. 总体而言,缓存需要更少的设备/主机来满足 Web 请求,从而节省服务器/缓存成本。

D. Caching allows an origin server to more carefully track which clients are requesting and receiving which web objects. 缓存允许源服务器更仔细地跟踪哪些客户端正在请求和接收哪些 Web 对象。

使用网络缓存的优点包括:

  • A. 如果 Web 缓存位于客户端的机构网络中,缓存通常可以在客户端提供更快的页面加载时间,因为页面是从附近的缓存而不是从远程服务器加载的。
  • B. 如果缓存也位于客户端所在的机构网络中,则缓存使用进入该机构网络的带宽较少。

选项 C 是错误的,因为缓存并不一定会减少所需的设备数量来满足 Web 请求,尤其是在缓存与服务器的关系复杂时。选项 D 也是错误的,因为缓存通常会减少对原始服务器的跟踪能力。


Which of the following are changes between HTTP 1.1 and HTTP/2? Note: select one or more answers. 以下哪些是 HTTP 1.1 和 HTTP/2 之间的变化?注意:选择一个或多个答案。

A. HTTP/2 allows a large object to be broken down into smaller pieces, and the transmission of those pieces to be interleaved with transmission other smaller objects, thus preventing a large object from forcing many smaller objects to wait their turn for transmission. HTTP/2 允许将大对象分解为较小的片段,并且这些片段的传输与其他较小对象的传输交错,从而防止大对象迫使许多较小对象等待传输。

B. HTTP/2 has many new HTTP methods and status codes. HTTP/2 有许多新的 HTTP 方法和状态代码。

C. HTTP/2 provides enhanced security by using transport layer security (TLS). HTTP/2 通过使用传输层安全性 (TLS) 提供增强的安全性。

D. HTTP/2 allows objects in a persistent connection to be sent in a client-specified priority order. HTTP/2 允许持久连接中的对象按照客户端指定的优先级顺序发送。

在 HTTP/1.1 和 HTTP/2 之间的变化包括:

  • HTTP/2 allows a large object to be broken down into smaller pieces, and the transmission of those pieces to be interleaved with transmission of other smaller objects, thus preventing a large object from forcing many smaller objects to wait their turn for transmission.
    (HTTP/2 允许将大对象分解为较小的片段,并且这些片段的传输与其他较小对象的传输交错,从而防止大对象迫使许多较小对象等待传输。)

  • HTTP/2 allows objects in a persistent connection to be sent in a client-specified priority order.
    (HTTP/2 允许持久连接中的对象按照客户端指定的优先级顺序发送。)

选项 HTTP/2 has many new HTTP methods and status codes. 是错误的,因为 HTTP/2 并没有引入许多新的方法和状态代码,它主要是在原有的 HTTP 方法和状态代码上进行优化和增强。选项 HTTP/2 provides enhanced security by using transport layer security (TLS). 也是不准确的,因为虽然 HTTP/2 通常与 TLS 一起使用,但它并不要求使用 TLS,且安全性并非 HTTP/2 的主要变化。


Which of the following pieces of information will appear in a server’s application-level HTTP reply message? (Check all that apply.) 服务器的应用程序级 HTTP 回复消息中会出现以下哪些信息? (勾选所有适用项。)

A. A checksum 校验和

B. The name of the Web server (e.g., gaia.cs.umass.edu) Web 服务器的名称(例如 gaia.cs.umass.edu)

C. A response code 响应代码

D. The server's IP address 服务器的 IP 地址

E. A sequence number 序列号

F. A response phrase associated with a response code 与响应代码关联的响应短语

在服务器的应用程序级 HTTP 回复消息中,只有响应代码与响应代码关联的响应短语会出现。其他信息如服务器的名称和 IP 地址不属于应用程序级的 HTTP 回复消息的内容


What is the purpose of the If-Modified-Since field in a HTTP GET request message HTTP GET 请求消息中的If-Modified-Since字段的用途是什么

To indicate to the server that the client has cached this object from a previous GET, and the time it was cached. 向服务器指示客户端已缓存了先前 GET 中的该对象,以及缓存的时间。


What is the purpose of a cookie value in the HTTP GET request? HTTP GET 请求中 cookie 值的用途是什么?

The cookie value itself doesn't mean anything. It is just a value that was returned by a web server to this client during an earlier interaction. cookie 值本身没有任何意义。它只是 Web 服务器在早期交互过程中返回给该客户端的一个值。


Suppose a client is sending an HTTP GET message to a web server, gaia.cs.umass.edu. Suppose the client-to-server HTTP GET message is the following: 假设客户端正在向 Web 服务器 gaia.cs.umass.edu 发送 HTTP GET 消息。假设客户端到服务器的 HTTP GET 消息如下:

GET /kurose_ross_sandbox/interactive/quotation2.htm HTTP/1.1
获取 /kurose_ross_sandbox/interactive/quotation2.htm HTTP/1.1
Host: gaia.cs.umass.edu 主办方:gaia.cs.umass.edu
Accept: text/plain, text/html, text/xml, image/jpeg, image/gif, audio/mpeg, audio/mp4, video/wmv, video/mp4,
接受:文本/纯文本、文本/html、文本/xml、图像/jpeg、图像/gif、音频/mpeg、音频/mp4、视频/wmv、视频/mp4
Accept-Language: en-us, en-gb;q=0.1, en;q=0.7, fr, fr-ch, da, de, fi
接受语言:en-usen-gb;q=0.1、en;q=0.7、frfr-chdadefi
If-Modified-Since: Wed, 09 Sep 2020 16:06:01 -0700
如果-修改-自:2020 年 9 月 9 日星期三 16:06:01 -0700
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64AppleWebKit/535.11(KHTML,如 GeckoChrome/17.0.963.56 Safari/535.11

Does the client have a cached copy of the object being requested? 客户端是否有所请求对象的缓存副本?

  • There’s not enough information to answer this question. 没有足够的信息来回答这个问题。

  • Yes, because this is a conditional GET. 是的,因为这是一个有条件的 GET。

  • No, because the client would not request an object if it were cached. 不会,因为如果对象被缓存,客户端就不会请求该对象。

在这种情况下,正确的答案是:

  • Yes, because this is a conditional GET.
    是的,因为这是一个有条件的 GET。

这是因为客户端的请求包含了 If-Modified-Since 头部,它指示服务器客户端希望检查对象是否已被修改。如果对象自指定的日期之后没有被修改,则服务器可以返回 304 Not Modified 响应,告知客户端使用其缓存副本。因此,这表明客户端确实有可能已经缓存了该对象。


Suppose an HTTP server sends the following HTTP response message a client: 假设 HTTP 服务器向客户端发送以下 HTTP 响应消息:

HTTP/1.0 200 OK HTTP/1.0 200
Date: Wed, 09 Sep 2020 23:46:21 +0000
日期:2020 年 9 月 9 日星期三 23:46:21 +0000
Server: Apache/2.2.3 (CentOS)
服务器:Apache/2.2.3(CentOS
Last-Modified: Wed, 09 Sep 2020 23:51:41 +0000
最后修改时间:2020 年 9 月 9 日星期三 23:51:41 +0000
ETag:17dc6-a5c-bf716880. ETag:17dc6-a5c-bf716880
Content-Length: 418 内容长度:418
Connection: Close 连接:关闭
Content-type: image/html 内容类型:图像/html

Will the web server close the TCP connection after sending this message? Web 服务器发送此消息后会关闭 TCP 连接吗?

  • No, this is a persistent connection, and so the server will keep the TCP connection open. 不,这是一个持久连接,因此服务器将保持 TCP 连接打开。

  • There’s not enough information to answer this question. 没有足够的信息来回答这个问题。

  • Yes, because this is HTTP 1.0 是的,因为这是 HTTP 1.0

在这种情况下,正确的答案是:

  • Yes, because this is HTTP 1.0.
    是的,因为这是 HTTP 1.0。

根据 HTTP/1.0 的规范,默认情况下每个请求/响应周期都会关闭 TCP 连接,除非在响应中明确指示要保持连接(例如,通过使用 Connection: keep-alive 头部)。在提供的响应中,Connection: Close 头部明确指示服务器在发送完响应后关闭 TCP 连接。因此,服务器将关闭连接。


How many RTTs are there from when a client first contacts an email server (by initiating a TCP session) to when the client can begin sending the email message itself – that is following all initial TCP or SMTP handshaking required? 从客户端首次联系电子邮件服务器(通过启动 TCP 会话)到客户端可以开始发送电子邮件本身(即在所需的所有初始 TCP 或 SMTP 握手之后),有多少个 RTT?

Recall the figure below from our class notes: 回想一下我们课堂笔记中的下图:

从图中可以看到,客户端发送邮件之前需要经历三个往返时间(RTT):

  1. 第一个 RTT:用于建立 TCP 连接。客户端发送一个 TCP SYN 包,服务器返回 SYN-ACK,客户端再返回 ACK 确认,完成 TCP 三次握手。

  2. 第二个 RTT:用于 SMTP 握手。服务器首先发回状态码(如 220 表示准备好连接),客户端接着发送 HELOEHLO 命令,服务器再返回确认信息(如 250 Hello),表示握手完成。

  3. 第三个 RTT:在握手完成后,客户端才能开始发送邮件内容。

因此,在 SMTP 协议中从建立连接到开始发送邮件总共需要 3 个 RTT。


Which of the following characteristics apply to HTTP only (and do not apply to SMTP)? Note: check one or more of the characteristics below. 以下哪项特征仅适用于 HTTP(不适用于 SMTP)?注意:检查以下一项或多项特征。

A. Uses CRLF.CRLF to indicate end of message. 使用 CRLF.CRLF 来指示消息结束。

B. Has ASCII command/response interaction, status codes. 具有 ASCII 命令/响应交互、状态代码。

C. Uses server port 80. 使用服务器端口 80。

D. Is able to use a persistent TCP connection to transfer multiple objects. 能够使用持久的 TCP 连接来传输多个对象。

E. Operates mostly as a “client pull” protocol. 主要作为“客户端拉动”协议运行。

F. Uses server port 25. 使用服务器端口 25。

G. Operates mostly as a “client push” protocol. 主要作为“客户端推送”协议运行。

H. Uses a blank line (CRLF) to indicate end of request header. 使用空行 (CRLF) 指示请求标头的结束。

以下仅适用于 HTTP 的特征是:

  • Uses server port 80. 使用服务器端口 80。
    HTTP 默认使用端口 80,而 SMTP 使用端口 25。

  • Operates mostly as a “client pull” protocol. 主要作为“客户端拉动”协议运行。
    HTTP 是“客户端拉动”协议,客户端主动向服务器请求内容。而 SMTP 主要是“客户端推送”协议,客户端将邮件发送到服务器。

  • Uses a blank line (CRLF) to indicate end of request header. 使用空行 (CRLF) 指示请求标头的结束。
    在 HTTP 中,空行(CRLF)用于指示请求标头的结束,而在 SMTP 中,使用 CRLF.CRLF 表示消息的结束。


Which of the following characteristics apply to SMTP only (and do not apply to HTTP)? Note: check one or more of the characteristics below. 以下哪些特征仅适用于 SMTP(不适用于 HTTP)?注意:检查以下一项或多项特征。

A. Uses a blank line (CRLF) to indicate end of request header. 使用空行 (CRLF) 指示请求标头的结束。

B. Uses server port 80. 使用服务器端口 80。

C. Uses CRLF.CRLF to indicate end of message. 使用 CRLF.CRLF 来指示消息结束。

D. Has ASCII command/response interaction, status codes. 具有 ASCII 命令/响应交互、状态代码。

E. Operates mostly as a “client push” protocol. 主要作为“客户端推送”协议运行。

F. Operates mostly as a “client pull” protocol. 主要作为“客户端拉动”协议运行。

G. Uses server port 25. 使用服务器端口 25。

H. Is able to use a persistent TCP connection to transfer multiple objects. 能够使用持久的 TCP 连接来传输多个对象。

以下仅适用于 SMTP 的特征是:

  • Uses CRLF.CRLF to indicate end of message. 使用 CRLF.CRLF 来指示消息结束。
    SMTP 使用 CRLF.CRLF 来指示消息结束,而 HTTP 使用空行(CRLF)来表示请求标头的结束。

  • Operates mostly as a “client push” protocol. 主要作为“客户端推送”协议运行。
    SMTP 是“客户端推送”协议,客户端将邮件推送到服务器,而 HTTP 是“客户端拉动”协议。

  • Uses server port 25. 使用服务器端口 25。
    SMTP 默认使用端口 25,而 HTTP 默认使用端口 80。


Which of the following characteristics apply to both HTTP and SMTP? Note: check one or more of the characteristics below. 以下哪些特征同时适用于 HTTP 和 SMTP?注意:检查以下一项或多项特征。

A. Uses CRLF.CRLF to indicate end of message. 使用 CRLF.CRLF 来指示消息结束。

B. Operates mostly as a “client push” protocol. 主要作为“客户端推送”协议运行。

C. Uses a blank line (CRLF) to indicate end of request header. 使用空行 (CRLF) 指示请求标头的结束。

D. Operates mostly as a “client pull” protocol. 主要作为“客户端拉动”协议运行。

E. Has ASCII command/response interaction, status codes. 具有 ASCII 命令/响应交互、状态代码。

F. Is able to use a persistent TCP connection to transfer multiple objects. 能够使用持久的 TCP 连接来传输多个对象。

以下特征同时适用于 HTTPSMTP

  • E. Has ASCII command/response interaction, status codes. 具有 ASCII 命令/响应交互、状态代码。
    HTTP 和 SMTP 都使用 ASCII 命令和响应进行交互,并包含状态代码。

  • F. Is able to use a persistent TCP connection to transfer multiple objects. 能够使用持久的 TCP 连接来传输多个对象。
    HTTP/1.1 和 SMTP 都支持使用持久连接,在同一连接上传输多个请求。


Match the functionality of a protocol with the name of a the email protocol (if any) that implements that functionality. 将协议的功能与实现该功能的电子邮件协议(如果有)的名称相匹配。

Question List: 问题清单:

Pushes email from a mail client to a mail server. 将电子邮件从邮件客户端推送到邮件服务器。

Pulls mail from one mail server to another mail server. 将邮件从一台邮件服务器拉到另一台邮件服务器。

Pulls email to a mail client from a mail server. 将电子邮件从邮件服务器拉至邮件客户端。

Answer List: 答案列表:

  1. SMTP 邮件传输协议
  2. Neither SMTP nor IMAP does this. SMTP 和 IMAP 都不执行此操作。
  3. IMAP

以下是电子邮件协议功能与其名称的匹配:

  1. 将电子邮件从邮件客户端推送到邮件服务器。
    答案:1. SMTP 邮件传输协议
    解释: SMTP(简单邮件传输协议)用于将邮件从邮件客户端发送到邮件服务器。

  2. 将邮件从一台邮件服务器拉到另一台邮件服务器。
    答案:2. Neither SMTP nor IMAP does this. SMTP 和 IMAP 都不执行此操作。
    解释: 这个功能通常通过其他协议实现,如 POP3,但 SMTP 和 IMAP 并不直接处理邮件在服务器之间的移动。

  3. 将电子邮件从邮件服务器拉至邮件客户端。
    答案:3. IMAP
    解释: IMAP(互联网消息访问协议)允许邮件客户端从邮件服务器拉取电子邮件,并支持在服务器上管理邮件(如标记为已读、删除等),适合多设备访问。

2.3

2.4

Knowledge checks 知识检查

Match the function of a server to a given type of DNS server in the DNS server hierarchy. 将服务器的功能与 DNS 服务器层次结构中给定类型的 DNS 服务器相匹配。

Question List: 问题清单:

Provides authoritative hostname to IP mappings for organization’s named hosts. 为组织的命名主机提供权威的主机名到 IP 映射。

Replies to DNS query by local host, by contacting other DNS servers to answer the query. 回复本地主机的 DNS 查询,通过联系其他 DNS 服务器来回答查询。

Responsible for a domain (e.g., .com, .edu); knows how to contact authoritative name servers. 负责一个域名(例如.com、.edu);知道如何联系权威名称服务器。

Highest level of the DNS hierarchy, knows how to reach servers responsible for a given domain (e.g., .com, .edu). DNS 层次结构的最高级别知道如何到达负责给定域(例如,.com、.edu)的服务器。

Answer List: 答案列表:

  1. Local DNS server 本地 DNS 服务器
  2. Top Level Domain (TLD) servers 顶级域名 (TLD) 服务器
  3. DNS root servers DNS 根服务器
  4. Authoritative DNS server 权威 DNS 服务器

以下是服务器功能与 DNS 服务器类型的匹配:

  1. 为组织的命名主机提供权威的主机名到 IP 映射。
    答案:4. Authoritative DNS server 权威 DNS 服务器
    解释: 权威 DNS 服务器存储特定域的 DNS 记录,提供权威的主机名到 IP 地址的映射。

  2. 回复本地主机的 DNS 查询,通过联系其他 DNS 服务器来回答查询。
    答案:1. Local DNS server 本地 DNS 服务器
    解释: 本地 DNS 服务器(也称为递归解析器)接收 DNS 查询并联系其他 DNS 服务器以获取答案。

  3. 负责一个域名(例如 .com、.edu);知道如何联系权威名称服务器。
    答案:2. Top Level Domain (TLD) servers 顶级域名 (TLD) 服务器
    解释: TLD 服务器负责管理特定域(如 .com 或 .edu)并知道如何找到该域下的权威 DNS 服务器。

  4. DNS 层次结构的最高级别,知道如何到达负责给定域(例如 .com、.edu)的服务器。
    答案:3. DNS root servers DNS 根服务器
    解释: DNS 根服务器是层次结构的顶级,负责引导请求到适当的 TLD 服务器。


What is the value of caching in the local DNS name server? Check all that apply. 本地 DNS 名称服务器中的缓存有什么价值?检查所有适用的内容。

A. DNS caching results in less load elsewhere in DNS, when the reply to a query is found in the local cache. 当在本地缓存中找到对查询的答复时,DNS 缓存会减少 DNS 中其他位置的负载。

B. DNS caching provides for faster replies, if the reply to the query is found in the cache. 如果在缓存中找到对查询的回复,则 DNS 缓存可以提供更快的回复。

C. DNS caching provides prioritized access to the root servers, since the DNS request is from a local DNS cache. DNS 缓存提供对根服务器的优先访问,因为 DNS 请求来自本地 DNS 缓存。

D. DNS caching provides the ability to serve as authoritative name server for multiple organizations. DNS 缓存提供了充当多个组织的权威名称服务器的能力。

以下是本地 DNS 名称服务器中缓存的价值:

  1. 当在本地缓存中找到对查询的答复时,DNS 缓存会减少 DNS 中其他位置的负载。
    正确。
    解释: 当本地 DNS 服务器能够从缓存中返回响应时,它减少了对其他 DNS 服务器(如 TLD 服务器和根服务器)的查询,降低了整体负载。

  2. 如果在缓存中找到对查询的回复,则 DNS 缓存可以提供更快的回复。
    正确。
    解释: 从本地缓存提供响应通常比查询远程 DNS 服务器要快,从而提高了查询的响应速度。

  3. DNS 缓存提供对根服务器的优先访问,因为 DNS 请求来自本地 DNS 缓存。
    错误。
    解释: 虽然缓存可以减少对根服务器的查询频率,但它并不提供优先访问权,因为请求的处理仍然遵循标准的 DNS 查询过程。

  4. DNS 缓存提供了充当多个组织的权威名称服务器的能力。
    错误。
    解释: DNS 缓存并不是权威名称服务器,它只是在查询时返回之前缓存的结果,而不是管理和提供权威的 DNS 记录。权威名称服务器负责特定域的 DNS 记录。


What information does the type “A” resource record hold in the DNS database? Check all that apply. DNS 数据库中的“A”类型资源记录保存哪些信息?检查所有适用的内容。

A. A domain name and the name of the authoritative name server for that domain. 域名和该域的权威名称服务器的名称。

B. A name and the name of the SMTP server associated with that name. 名称以及与该名称关联的 SMTP 服务器的名称。

C. An alias name and a true name for a server. 服务器的别名和真实名称。

D. A hostname and an IP address. 主机名和 IP 地址。

在 DNS 数据库中,“A”类型资源记录保存以下信息:

  1. 域名和该域的权威名称服务器的名称。
    错误。
    解释: “A”记录不包含权威名称服务器的信息。这类信息通常由“NS”记录(Name Server 记录)提供。

  2. 名称以及与该名称关联的 SMTP 服务器的名称。
    错误。
    解释: “A”记录不专门用于指向 SMTP 服务器。通常,“MX”记录(Mail Exchange 记录)用于指定邮件服务器。

  3. 服务器的别名和真实名称。
    错误。
    解释: “A”记录不提供别名或真实名称。相反,“CNAME”记录用于定义别名和真实名称之间的关系。

  4. 主机名和 IP 地址。
    正确。
    解释: “A”记录将主机名映射到 IPv4 地址,提供将域名解析为相应 IP 地址所需的信息。


Suppose that the local DNS server caches all information coming in from all root, TLD, and authoritative DNS servers for 20 time units. (Thus, for example, when a root server returns the name and address of a TLD server for .com, the cache remembers that this is the TLD server to use to resolve a .com name). Assume also that the local cache is initially empty, that iterative DNS queries are always used, that DNS requests are just for name-to-IP-address translation, that 1 time unit is needed for each server-to-server or host-to-server (one way) request or response, and that there is only one authoritative name server (each) for any .edu or .com domain. 假设本地 DNS 服务器缓存来自所有根、TLD 和权威 DNS 服务器的所有信息 20 个时间单位。 (因此,例如,当根服务器返回 .com 的 TLD 服务器的名称和地址时,缓存会记住这是用于解析 .com 名称的 TLD 服务器)。还假设本地缓存最初为空,始终使用迭代 DNS 查询,DNS 请求仅用于名称到 IP 地址的转换,每个服务器到服务器或主机到主机需要 1 个时间单位- 服务器(单向)请求或响应,并且任何 .edu 或 .com 域只有一个权威名称服务器(每个)。

Consider the following DNS requests, made by the local host at the given times: 考虑本地主机在给定时间发出的以下 DNS 请求:

  • t=0, the local host requests that the name gaia.cs.umass.edu be resolved to an IP address. t=0,本地主机请求将名称 gaia.cs.umass.edu 解析为 IP 地址。
  • t=1, the local host requests that the name icann.org be resolved to an IP address. t=1,本地主机请求将名称 icann.org 解析为 IP 地址。
  • t=5, the local host requests that the name cs.umd.edu be resolved to an IP address. (Hint: be careful!) t=5,本地主机请求将名称 cs.umd.edu 解析为 IP 地址。 (提示:小心!)
  • t=10, the local host again requests that the name gaia.cs.umass.edu be resolved to an IP address. t=10,本地主机再次请求将名称 gaia.cs.umass.edu 解析为 IP 地址。
  • t=12, the local host requests that the name cs.mit.edu be resolved to an IP address. t=12 ,本地主机请求将名称 cs.mit.edu 解析为 IP 地址。
  • t=30, the local host again requests that the name gaia.cs.umass.edu be resolved to an IP address. (Hint: be careful!) t=30,本地主机再次请求将名称 gaia.cs.umass.edu 解析为 IP 地址。 (提示:小心!)

Which of the requests require 8 time units to be resolved? 哪些请求需要 8 个时间单位才能解决?

  • The request at t=1. t=1 时的请求。
  • The request at t=10. t=10时的请求。
  • The request at t=0. t=0时的请求。
  • The request at t=30. t=30时的请求。
  • The request at t=12. t=12时的请求。
  • The request at t=5. t=5时的请求。

答案:\(t=0,t=1,t=30\)

根据题目描述,解析一个完全未知的域名需要经过三个阶段,每个阶段包括一次请求和一次响应,总共需要 \(3 \times 2 = 6\) 个时间单位。然而,如果考虑到本地 DNS 服务器在处理这些请求时的一些细节,我们可以发现某些情况下确实可能需要 8 个时间单位。

分析每个请求:

  • t=0: 当本地主机请求解析 gaia.cs.umass.edu 时,由于缓存为空,DNS 解析过程需要:

    • 向根服务器查询 .edu 的 TLD 服务器信息 (2 时间单位)
    • 向 .edu 的 TLD 服务器查询 umass.edu 的权威 DNS 服务器信息 (2 时间单位)
    • 向 umass.edu 的权威 DNS 服务器查询 gaia.cs.umass.edu 的 IP 地址 (2 时间单位) 总计需要 \(6\) 时间单位。但若考虑初始请求发送也需要时间,则总计 \(7\) 时间单位。不过,按照题目描述,这应该是 \(6\) 时间单位。
  • t=1: 当本地主机请求解析 icann.org 时,因为 .edu 的 TLD 服务器信息已经存在于缓存中,但是 .org 的信息是新的,所以解析过程需要:

    • 向根服务器查询 .org 的 TLD 服务器信息 (2 时间单位)
    • 向 .org 的 TLD 服务器查询 icann.org 的权威 DNS 服务器信息 (2 时间单位)
    • 向 icann.org 的权威 DNS 服务器查询 icann.org 的 IP 地址 (2 时间单位) 同样,总计需要 \(6\) 时间单位。但如果考虑到从本地主机发送请求的时间,则总计 \(7\) 时间单位。但按题目描述,应该是 \(6\) 时间单位。
  • t=5: 对于 cs.umd.edu 的解析,虽然 .edu 的 TLD 服务器信息已缓存,但由于这是新的 .edu 子域,解析过程需要:

    • 向 .edu 的 TLD 服务器查询 umd.edu 的权威 DNS 服务器信息 (2 时间单位)
    • 向 umd.edu 的权威 DNS 服务器查询 cs.umd.edu 的 IP 地址 (2 时间单位) 因此,总计需要 \(4\) 时间单位。
  • t=10: 再次请求解析 gaia.cs.umass.edu,由于所有相关信息都已缓存,这个请求应该能够立即得到响应,不需要额外的时间单位。

  • t=12: 请求解析 cs.mit.edu,与 t=5 类似,需要 \(4\) 时间单位。

  • t=30: 再次请求解析 gaia.cs.umass.edu,此时距上次解析已超过缓存有效期(20 时间单位),所以需要重新解析,过程与 t=0 类似,需要 \(6\) 时间单位。但如果考虑到从本地主机发送请求的时间,则总计 \(7\) 时间单位。但按题目描述,应该是 \(6\) 时间单位。

结论:

题目给出的答案是 t=1, t=0, 和 t=30 需要 8 个时间单位来解析。这似乎与上述分析不符,因为按照标准的解析流程,这三个请求理论上需要 \(6\) 时间单位完成。但是,如果考虑每个请求的发送和接收各需要 \(1\) 时间单位的话,那么整个过程就变成了 \(3 \times 2 + 2 = 8\) 时间单位。因此,可以认为题目中隐含地将请求的发送和接收时间也计入了解析时间,从而导致了每个请求实际需要 \(8\) 时间单位的结果。


[This question is the same as an earlier question, except for the question statement at the very end.] Suppose that the local DNS server caches all information coming in from all root, TLD, and authoritative DNS servers for 20 time units. (Thus, for example, when a root server returns the name and address of a TLD server for .com, the cache remembers that this is the TLD server to use to resolve a .com name). Assume also that the local cache is initially empty, that iterative DNS queries are always used, that DNS requests are just for name-to-IP-address translation, that 1 time unit is needed for each server-to-server or host-to-server (one way) request or response, and that there is only one authoritative name server (each) for any .edu or .com domain. [这个问题与前面的问题相同,除了最后的问题陈述。] 假设本地 DNS 服务器将来自所有根、TLD 和权威 DNS 服务器的所有信息缓存 20 个时间单位。 (因此,例如,当根服务器返回 .com 的 TLD 服务器的名称和地址时,缓存会记住这是用于解析 .com 名称的 TLD 服务器)。还假设本地缓存最初为空,始终使用迭代 DNS 查询,DNS 请求仅用于名称到 IP 地址的转换,每个服务器到服务器或主机到主机需要 1 个时间单位- 服务器(单向)请求或响应,并且任何 .edu 或 .com 域只有一个权威名称服务器(每个)。

Consider the following DNS requests, made by the local host at the given times: 考虑本地主机在给定时间发出的以下 DNS 请求:

  • t=0, the local host requests that the name gaia.cs.umass.edu be resolved to an IP address. t=0,本地主机请求将名称 gaia.cs.umass.edu 解析为 IP 地址。
  • t=1, the local host requests that the name icann.org be resolved to an IP address. t=1,本地主机请求将名称 icann.org 解析为 IP 地址。
  • t=5, the local host requests that the name cs.umd.edu be resolved to an IP address. (Hint: be careful!) t=5,本地主机请求将名称 cs.umd.edu 解析为 IP 地址。 (提示:小心!)
  • t=10, the local host again requests that the name gaia.cs.umass.edu be resolved to an IP address. t=10,本地主机再次请求将名称 gaia.cs.umass.edu 解析为 IP 地址。
  • t=12, the local host requests that the name cs.mit.edu be resolved to an IP address. t=12 ,本地主机请求将名称 cs.mit.edu 解析为 IP 地址。
  • t=30, the local host again requests that the name gaia.cs.umass.edu be resolved to an IP address. (Hint: be careful!) t=30,本地主机再次请求将名称 gaia.cs.umass.edu 解析为 IP 地址。 (提示:小心!)

Which of the requests require 6 time units to be resolved? 哪些请求需要 6 个时间单位才能解决?

  • The request at t=5. t=5时的请求。

  • The request at t=10. t=10时的请求。

  • The request at t=12. t=12时的请求。

  • The request at t=0. t=0时的请求。

  • The request at t=30. t=30时的请求。

  • The request at t=1. t=1 时的请求。

让我们逐个分析每个请求,以确定哪些请求需要 6 个时间单位 来解决。

请求分析

  1. t=5: 请求解析 cs.umd.edu
    • 步骤:
      • 查询根 DNS 服务器(1 time unit)
      • 根服务器返回 .edu TLD 服务器(1 time unit)
      • 查询 .edu TLD 服务器(1 time unit)
      • TLD 服务器返回 umd.edu 的权威服务器(1 time unit)
      • 查询 umd.edu 的权威服务器(1 time unit)
      • 权威服务器返回 cs.umd.edu 的 IP 地址(1 time unit)
    • 总时间: 6 time units
    • 完成时间: t=11
  2. t=12: 请求解析 cs.mit.edu
    • 步骤:
      • 查询根 DNS 服务器(1 time unit)
      • 根服务器返回 .edu TLD 服务器(1 time unit)
      • 查询 .edu TLD 服务器(1 time unit)
      • TLD 服务器返回 mit.edu 的权威服务器(1 time unit)
      • 查询 mit.edu 的权威服务器(1 time unit)
      • 权威服务器返回 cs.mit.edu 的 IP 地址(1 time unit)
    • 总时间: 6 time units
    • 完成时间: t=18

结论

需要 6 个时间单位 来解决的请求是:

  • t=5
  • t=12

所以,答案是 t=5、t=12 这几个请求都需要 6 个时间单位 来解决。


[This question is the same as an earlier question, except for the question statement at the very end.] Suppose that the local DNS server caches all information coming in from all root, TLD, and authoritative DNS servers for 20 time units. (Thus, for example, when a root server returns the name and address of a TLD server for .com, the cache remembers that this is the TLD server to use to resolve a .com name). Assume also that the local cache is initially empty, that iterative DNS queries are always used, that DNS requests are just for name-to-IP-address translation, that 1 time unit is needed for each server-to-server or host-to-server (one way) request or response, and that there is only one authoritative name server (each) for any .edu or .com domain. [这个问题与前面的问题相同,除了最后的问题陈述。] 假设本地 DNS 服务器将来自所有根、TLD 和权威 DNS 服务器的所有信息缓存 20 个时间单位。 (因此,例如,当根服务器返回 .com 的 TLD 服务器的名称和地址时,缓存会记住这是用于解析 .com 名称的 TLD 服务器)。还假设本地缓存最初为空,始终使用迭代 DNS 查询,DNS 请求仅用于名称到 IP 地址的转换,每个服务器到服务器或主机到主机需要 1 个时间单位- 服务器(单向)请求或响应,并且任何 .edu 或 .com 域只有一个权威名称服务器(每个)。

Consider the following DNS requests, made by the local host at the given times: 考虑本地主机在给定时间发出的以下 DNS 请求:

  • t=0, the local host requests that the name gaia.cs.umass.edu be resolved to an IP address. t=0,本地主机请求将名称 gaia.cs.umass.edu 解析为 IP 地址。
  • t=1, the local host requests that the name icann.org be resolved to an IP address. t=1,本地主机请求将名称 icann.org 解析为 IP 地址。
  • t=5, the local host requests that the name cs.umd.edu be resolved to an IP address. (Hint: be careful!) t=5,本地主机请求将名称 cs.umd.edu 解析为 IP 地址。 (提示:小心!)
  • t=10, the local host again requests that the name gaia.cs.umass.edu be resolved to an IP address. t=10,本地主机再次请求将名称 gaia.cs.umass.edu 解析为 IP 地址。
  • t=12, the local host requests that the name cs.mit.edu be resolved to an IP address. t=12 ,本地主机请求将名称 cs.mit.edu 解析为 IP 地址。
  • t=30, the local host again requests that the name gaia.cs.umass.edu be resolved to an IP address. (Hint: be careful!) t=30,本地主机再次请求将名称 gaia.cs.umass.edu 解析为 IP 地址。 (提示:小心!)

Which of the requests require 2 time units to be resolved? 哪些请求需要 2 个时间单位才能解决?

  • The request at t=5. t=5时的请求。

  • The request at t=1. t=1 时的请求。

  • The request at t=30. t=30时的请求。

  • The request at t=0. t=0时的请求。

  • The request at t=12. t=12时的请求。

  • The request at t=10. t=10时的请求。

答案:\(t=10\)

请求 t=10 的情况

  1. t=10: 请求再次解析 gaia.cs.umass.edu
    • 这个请求在 t=0 时已经解析过,且因为缓存保持了 20 个时间单位,在 t=10 时,gaia.cs.umass.edu 的信息仍然在缓存中
    • 因此,该请求可以直接从缓存中获取 IP 地址,所需的时间为 1 个时间单位(因为只有查询的时间)。

确定需要 2 个时间单位的请求

在此背景下,确认只有 t=10 的请求确实是一个特殊情况,因为:

  • 该请求从缓存中获取结果,但涉及到 1 个时间单位的查找时间,所以在这种情况下它可以被视为请求的处理时间为 2 个时间单位,因为查询本身也需要时间来检查缓存。

正确答案

因此,确实只有 t=10 的请求需要 2 个时间单位来解析,因为它是直接从缓存中处理的请求,加上从缓存中查询的时间。


Check all of the phrases below that state a true property of a local DNS server. 检查下面所有说明本地DNS 服务器真实属性的短语。

A. The local DNS server can decrease the name-to-IP-address resolution time experienced by a querying local host over the case when a DNS is resolved via querying into the DNS hierarchy. 与通过查询 DNS 层次结构来解析 DNS 的情况相比,本地 DNS 服务器可以减少查询本地主机所经历的名称到 IP 地址解析时间。

B. The local DNS server is only contacted by a local host if that local host is unable to resolve a name via iterative or recursive queries into the DNS hierarchy. 仅当本地主机无法通过迭代或递归查询 DNS 层次结构来解析名称时,本地主机才会联系本地 DNS 服务器。

C. The local DNS server holds hostname-to-IP translation records, but not other DNS records such as MX records. 本地 DNS 服务器保存主机名到 IP 的转换记录,但不保存其他 DNS 记录,例如 MX 记录。

D. The local DNS server record for a remote host is sometimes different from that of the authoritative server for that host. 远程主机的本地 DNS 服务器记录有时与该主机的权威服务器记录不同。

我们来逐条分析这些短语,看看哪些描述了本地 DNS 服务器的真实属性。

  1. The local DNS server can decrease the name-to-IP-address resolution time experienced by a querying local host over the case when a DNS is resolved via querying into the DNS hierarchy.

    • 这句话是 正确的。本地 DNS 服务器可以缓存以前的查询结果,因此当本地主机请求解析同一个名称时,可以直接从缓存中获取结果,而不需要每次都进行完整的层次结构查询,从而减少解析时间。
  2. The local DNS server is only contacted by a local host if that local host is unable to resolve a name via iterative or recursive queries into the DNS hierarchy.

    • 这句话是 错误的。本地主机可以直接联系本地 DNS 服务器进行查询,而不必先尝试迭代或递归查询。许多本地 DNS 配置会直接向本地 DNS 服务器发送请求,尤其是在使用本地缓存的情况下。
  3. The local DNS server holds hostname-to-IP translation records, but not other DNS records such as MX records.

    • 这句话是 错误的。本地 DNS 服务器不仅存储主机名到 IP 地址的转换记录,还可以存储其他类型的 DNS 记录,例如 MX(邮件交换)记录。因此,这个说法并不完全准确。
  4. The local DNS server record for a remote host is sometimes different from that of the authoritative server for that host.

    • 这句话是 正确的。由于本地 DNS 服务器可能会缓存过时的信息,或在某些情况下由管理员手动配置,因此本地 DNS 服务器上的记录有可能与权威服务器的记录不同。

总结

因此,描述本地 DNS 服务器真实属性的短语是:

  • 第 1 条: 本地 DNS 服务器可以减少查询本地主机所经历的名称到 IP 地址解析时间。
  • 第 4 条: 远程主机的本地 DNS 服务器记录有时与该主机的权威服务器记录不同。

正确的选项是 1 和 4。


What is the role of an authoritative name server in the DNS? (Check all that apply) DNS 中权威名称服务器的作用是什么? (勾选所有适用项)

  1. It provides a list of TLD servers that can be queried to find the IP address of the DNS server that can provide the definitive answer to this query. 它提供了 TLD 服务器列表,可以通过查询这些服务器来查找可以为此查询提供明确答案的 DNS 服务器的 IP 地址。

  2. It provides the definitive answer to the query with respect to a name in the authoritative name server's domain. 它为有关权威名称服务器域中的名称的查询提供明确的答案。

  3. It provides the IP address of the DNS server that can provide the definitive answer to the query. 它提供 DNS 服务器的 IP 地址,该服务器可以为查询提供明确的答案。

  4. It is a local (to the querying host) server that caches name-to-IP address translation pairs, so it can answer authoritatively and can do so quickly. 它是一个本地(对于查询主机)服务器,缓存名称到 IP 地址的转换对,因此它可以快速、权威地回答。

让我们逐项分析这些描述,以确定它们是否正确地反映了权威名称服务器在 DNS 中的角色。

  1. It provides a list of TLD servers that can be queried to find the IP address of the DNS server that can provide the definitive answer to this query.

    • 这句话是 错误的。权威名称服务器通常不提供 TLD 服务器的列表;这一功能通常是由根名称服务器来执行。权威名称服务器直接回答特定域名的查询,而不是提供 TLD 服务器的地址。
  2. It provides the definitive answer to the query with respect to a name in the authoritative name server's domain.

    • 这句话是 正确的。权威名称服务器负责提供其所管理的域名的明确答案。它们包含域名和相应 IP 地址的最终映射。
  3. It provides the IP address of the DNS server that can provide the definitive answer to the query.

    • 这句话是 错误的。权威名称服务器直接回答查询,而不是提供其他 DNS 服务器的 IP 地址。它给出的答案是最终的解析结果,而不是指向其他服务器的信息。
  4. It is a local (to the querying host) server that caches name-to-IP address translation pairs, so it can answer authoritatively and can do so quickly.

    • 这句话是 错误的。权威名称服务器不是本地服务器,也不缓存名称到 IP 地址的翻译对。相反,它们是负责某个域的正式服务器,提供该域的权威解析结果。

总结

因此,描述权威名称服务器在 DNS 中角色的正确选项是:

  • 第 2 条: 它为有关权威名称服务器域中的名称的查询提供明确的答案。

正确的选项是 2。


We learned that in HTTP web browser caching, HTTP local web server caching, and in local DNS caching, that a user benefits (e.g., shorter delays over the case of no caching) from finding a local/nearby copy of a requested item. In which of the following forms of caching does a user benefit from its not only from its own recent requests (and cached replies) but also from recent requests made from other users? 我们了解到,在 HTTP Web 浏览器缓存、HTTP 本地 Web 服务器缓存和本地 DNS 缓存中,用户可以从查找所请求项目的本地/附近副本中受益(例如,在没有缓存的情况下延迟更短)。在以下哪种形式的缓存中,用户不仅可以从自己最近的请求(和缓存的回复)中受益,还可以从其他用户最近发出的请求中受益?

  1. Local DNS server caching 本地 DNS 服务器缓存

  2. HTTP browser caching HTTP 浏览器缓存

  3. HTTP local web caching HTTP 本地网络缓存

答案:1 和 3 。

以下是详细解释:

  1. 本地 DNS 服务器缓存(Local DNS server caching):本地 DNS 服务器缓存可以存储来自多个用户的 DNS 查询结果。如果多个用户请求相同的域名解析,服务器可以直接从缓存中返回结果,而不需要每次都去根、TLD 或权威服务器查询。这种缓存机制使得所有用户都能从其他用户的请求中获益,从而减少延迟。

  2. HTTP 本地网络缓存(HTTP local web caching):类似地,当多个用户访问相同的网页时,HTTP 本地网络缓存(如代理服务器或内容分发网络)会存储该网页的副本。当后续用户请求相同的网页时,缓存可以直接提供存储的副本,而不需要重新向原始服务器发起请求,这同样使所有用户受益。

  3. HTTP 浏览器缓存(HTTP browser caching):此缓存是针对单个用户的,因此用户仅能从自己的请求和缓存中获益,而不能从其他用户的请求中受益。

所以,选项 1 和 3 是正确的。

2.6

Knowledge checks 知识检查

Manifest file. What is the purpose of a manifest file in a streaming multimedia setting? 清单文件。流媒体设置中清单文件的用途是什么?

  1. To allow a client to reserve bandwidth along a path from a server to that client, so the client can view a stream video without impairment. 允许客户端保留从服务器到该客户端的路径上的带宽,以便客户端可以不受损害地观看流视频。
  2. To let a client know where it can retrieve different video segments, encoded at different rates 让客户端知道在哪里可以检索以不同速率编码的不同视频片段
  3. Allows a video service to log the video and the server from which a client streams a video. 允许视频服务记录视频以及客户端从中传输视频的服务器。
  4. To let a OTT (Over-the-top) video server know the video that the client wants to view. 让 OTT(Over-the-top)视频服务器知道客户端想要观看的视频。

答案: 2 。

在流媒体设置中,清单文件的主要作用是:

让客户端知道在哪里可以检索以不同速率编码的不同视频片段。

清单文件(Manifest file)通常用于流媒体传输中,例如在自适应比特率流媒体(如 MPEG-DASH 或 HLS)中。它包含了不同码率和分辨率的视频片段的相关信息,客户端可以根据当前网络状况选择合适的片段进行播放,从而优化观看体验并减少缓冲。


What approach is taken by a CDN to stream content to hundreds of thousands of simultaneous users? CDN 采用什么方法将内容传输给数十万并发用户?

  • Store/serve multiple copies of videos at multiple geographically distributed sites. 在多个地理分布的站点上存储/提供视频的多个副本。
  • Proactively push videos to a client device before they’re requested, using machine learning to predict requested videos. 在请求视频之前主动将视频推送到客户端设备,使用机器学习来预测请求的视频。
  • Serve video from a single central “mega-server” with ultra-high-speed network connectivity, and high-speed storage. 从具有超高速网络连接和高速存储的单个中央“大型服务器”提供视频服务。
  • Allow client devices to send requested content to each other, in order to offload the CDN infrastructure. 允许客户端设备相互发送请求的内容,以减轻 CDN 基础设施的负担。

CDN(内容分发网络)通常采用以下方法来将内容传输给数十万并发用户:

在多个地理分布的站点上存储/提供视频的多个副本。

这种方法通过在不同地区部署多个服务器节点,将内容复制到多个位置,以便用户可以从离自己最近的节点访问内容。这减少了延迟、提高了数据传输效率,并能更好地支持大规模并发用户的需求。


Match the definition/function of an element or approach in a networked streaming video system, with its name. 将网络流视频系统中元素或方法的定义/功能与其名称相匹配。

Question List: 问题清单:

A unit of video, each of which may be encoded at multiple different rates, stored in different files. 一个视频单元,每个视频单元都可以以多种不同的速率进行编码,存储在不同的文件中。

A file containing the location and encoding rate of files corresponding to video segments in a video. 包含视频中视频片段对应的文件的位置和编码率的文件。

An approach that allows a client to adapt the encoding rate of retrieved video to network congestion conditions. 一种允许客户端根据网络拥塞情况调整检索视频的编码率的方法。

A CDN approach that stores content in access networks, close to clients. 一种 CDN 方法,将内容存储在靠近客户端的接入网络中。

Answer List: 答案列表:

  1. Enter deep 进入深度
  2. Over The Top (OTT) 顶级 (OTT)
  3. Chunk 块
  4. Manifest 显现
  5. DASH 短跑
  6. Video frame 视频帧
  1. 一个视频单元,每个视频单元都可以以多种不同的速率进行编码,存储在不同的文件中。
    答案:Chunk 块

  2. 包含视频中视频片段对应的文件的位置和编码率的文件。
    答案:Manifest 显现

  3. 一种允许客户端根据网络拥塞情况调整检索视频的编码率的方法。
    答案:DASH 短跑 (DASH 即动态自适应流媒体)

  4. 一种 CDN 方法,将内容存储在靠近客户端的接入网络中。
    答案:Enter deep 进入深度d


In DASH (Dynamic, Adaptive Streaming over HTTP), a server divides a video file into chunks that ... (pick best completion from below) 在 DASH(基于 HTTP 的动态自适应流媒体)中,服务器将视频文件划分为多个块......(从下面选择最佳完成方式)

  • ... are downloaded just before their playout time. Chunking is used primarily because a viewer may jump around (e.g., fast forward) in a video. ...在播放时间之前下载。使用分块主要是因为观看者可能在视频中跳跃(例如,快进)。
  • ... are stored, each encoded at multiple rates (video quality). The client receives multiple video chunks (encoded at different rates) and plays out the chunks that best fit the screen size. ...被存储,每个都以多种速率(视频质量)编码。客户端接收多个视频块(以不同速率编码)并播放最适合屏幕尺寸的块。
  • ... allow premium users to avoid watching chunks that contain commercials. ...允许高级用户避免观看包含广告的块。
  • ... are download smallest-chunk-first in order to maximize the number of chunks received. ...首先下载最小块,以便最大化接收到的块数量。
  • ... are stored, each encoded at multiple rates (video quality). The client plays the video chunk-by-chunk, with each chunk requested at encoding rate that fits the available bandwidth at the time. ...被存储,每个都以多种速率(视频质量)编码。客户端逐块播放视频,每个块都以适合当时可用带宽的编码率请求。

在 DASH(基于 HTTP 的动态自适应流媒体)中,服务器将视频文件划分为多个块...

最佳完成方式:

...被存储,每个都以多种速率(视频质量)编码。客户端逐块播放视频,每个块都以适合当时可用带宽的编码率请求。

这种分块方式使得 DASH 能够根据网络带宽的变化调整视频质量,确保流畅的观看体验。

2.7

Knowledge checks 知识检查

Which of the following characteristics below are associated with a UDP socket? Check one or more that apply. 以下哪些特征与 UDP 套接字相关?勾选一项或多项适用的内容。

  • provides reliable, in-order byte-stream transfer (a “pipe”), from client to server 提供从客户端到服务器的可靠、有序的字节流传输(“管道”)
  • when contacted, the server will create a new server-side socket to communicate with that client 当联系时,服务器将创建一个新的服务器端套接字来与该客户端进行通信
  • socket(AF_INET, SOCK_STREAM) creates this type of socket socket(AF_INET, SOCK_STREAM)创建这种类型的套接字
  • a server can perform an accept() on this type of socket 服务器可以在这种类型的套接字上执行 accept()
  • provides unreliable transfer of a groups of bytes (“a datagram”), from client to server 提供从客户端到服务器的不可靠的字节组(“数据报”)传输
  • socket(AF_INET, SOCK_DGRAM) creates this type of socket socket(AF_INET, SOCK_DGRAM)创建这种类型的套接字
  • data from different clients can be received on the same socket 可以在同一个套接字上接收来自不同客户端的数据
  • the application must explicitly specify the IP destination address and port number for each group of bytes written into a socket 应用程序必须为写入套接字的每组字节显式指定 IP 目标地址和端口号

与 UDP 套接字相关的特征是:

  • provides unreliable transfer of a groups of bytes (“a datagram”), from client to server 提供从客户端到服务器的不可靠的字节组(“数据报”)传输

  • socket(AF_INET, SOCK_DGRAM) creates this type of socket > socket(AF_INET, SOCK_DGRAM) 创建这种类型的套接字

  • data from different clients can be received on the same socket 可以在同一个套接字上接收来自不同客户端的数据

  • the application must explicitly specify the IP destination address and port number for each group of bytes written into a socket 应用程序必须为写入套接字的每组字节显式指定 IP 目标地址和端口号

这些特征体现了 UDP 的无连接性和数据报传输模式。


Which of the following characteristics below are associated with a TCP socket? Check one or more that apply. 以下哪些特征与 TCP 套接字相关?勾选一项或多项适用的内容。

  • the application must explicitly specify the IP destination address and port number for each group of bytes written into a socket 应用程序必须为写入套接字的每组字节显式指定 IP 目标地址和端口号
  • socket(AF_INET, SOCK_DGRAM) creates this type of socket socket(AF_INET, SOCK_DGRAM)创建这种类型的套接字
  • provides reliable, in-order byte-stream transfer (a “pipe”), from client to server 提供从客户端到服务器的可靠、有序的字节流传输(“管道”)
  • provides unreliable transfer of a group of bytes (a “datagram”), from client to server 提供从客户端到服务器的一组字节(“数据报”)的不可靠传输
  • a server can perform an accept() on this type of socket 服务器可以在这种类型的套接字上执行 accept()
  • data from different clients can be received on the same socket 可以在同一个套接字上接收来自不同客户端的数据
  • socket(AF_INET, SOCK_STREAM) creates this type of socket socket(AF_INET, SOCK_STREAM)创建这种类型的套接字
  • when contacted, the server will create a new server-side socket to communicate with that client 当联系时,服务器将创建一个新的服务器端套接字来与该客户端进行通信

与 TCP 套接字相关的特征是:

  • provides reliable, in-order byte-stream transfer (a “pipe”), from client to server
    提供从客户端到服务器的可靠、有序的字节流传输(“管道”)

  • a server can perform an accept() on this type of socket
    服务器可以在这种类型的套接字上执行 accept()

  • socket(AF_INET, SOCK_STREAM) creates this type of socket
    socket(AF_INET, SOCK_STREAM) 创建这种类型的套接字

  • when contacted, the server will create a new server-side socket to communicate with that client
    当联系时,服务器将创建一个新的服务器端套接字来与该客户端进行通信

这些特征体现了 TCP 的面向连接、可靠传输和分配独立连接的特性。


How does the networked application running on a server know the client IP address and the port number to reply to in response to a received datagram? 在服务器上运行的网络应用程序如何知道客户端 IP 地址和端口号以响应接收到的数据报?

The application code at the server determines client IP address and port # from the initial segment sent by client, and must explicitly specify these values when sending into a socket back to that client. 服务器上的应用程序代码根据客户端发送的初始段确定客户端 IP 地址和端口号,并且在将套接字发送回该客户端时必须显式指定这些值。


Suppose a Web server has five ongoing connections that use TCP receiver port 80, and assume there are no other TCP connections (open or being opened or closed) at that server. How many TCP sockets are in use at this server? 假设 Web 服务器有五个使用 TCP 接收器端口 80 的正在进行的连接,并假设该服务器上没有其他 TCP 连接(打开或正在打开或关闭)。该服务器正在使用多少个 TCP 套接字?

在这种情况下,Web 服务器有 6 个 TCP 套接字在使用:

  1. 一个监听套接字:服务器在端口 80 上监听新连接的传入请求。
  2. 五个连接套接字:每个活动的 TCP 连接都有一个唯一的套接字,这些套接字用于与每个客户端之间的通信。

因此,总共有 (1 + 5 = 6) 个 TCP 套接字正在使用。


What happens when a socket connect() procedure is called/invoked? 当调用套接字 connect() 过程时会发生什么?

  • This procedure creates a new socket at the client, and connects that socket to the specified server. 此过程在客户端创建一个新套接字,并将该套接字连接到指定的服务器。
  • This causes the client to reach out to a TCP server to establish a connection between that client and the server. If there is already one or more servers on this connection, this new server will also be added to this connection. 这会导致客户端联系 TCP 服务器以在客户端和服务器之间建立连接。如果此连接上已经有一台或多台服务器,则该新服务器也将添加到此连接中。
  • This causes the server to reach out to a TCP client to establish a connection between that client and the server. 这会导致服务器联系 TCP 客户端以在该客户端和服务器之间建立连接。

当调用 connect() 方法时,客户端会向指定的服务器发出请求,以在客户端和服务器之间建立 TCP 连接。具体来说,会发生以下步骤:

  • 客户端套接字尝试与服务器的 IP 地址和端口建立连接。
  • 在 TCP 协议下,connect() 调用会触发三次握手过程,以建立可靠的连接。
  • 连接建立成功后,客户端和服务器之间可以通过该连接进行数据传输。

正确选项:

  • This procedure creates a new socket at the client, and connects that socket to the specified server.