List five nonproprietary Internet applications and the application-layer protocols that they use.
答案:
Web: HTTP
文件传输:FTP
邮件:SMTP
远程登录:Telnet
网络新闻:NNTP
What is the difference between network architecture and application architecture?
网络体系结构是大体固定的,大致展现为五层协议栈,而应用的结构由开发者决定,可以是C-S,可以是P2P。(也不排除会有其他结构)
For a communication session between a pair of processes, which process is the client and which is the server?
一开始发起通信的是客户端,一开始在等待信号开始通信的是服务器。
For a P2P file-sharing application, do you agree with the statement, “There is no notion of client and server sides of a communication session”? Why or why not?
不同意,在P2P文件共享时,发送文件的是服务器,接收文件的是客户端。
What information is used by a process running on one host to identify a process running on another host?
IP地址
Suppose you wanted to do a transaction from a remote client to a server as fast as possible. Would you use UDP or TCP? Why?
UDP, 它的传输速率更快。
Referring to Figure 2.4 , we see that none of the applications listed in Figure 2.4 requires both no data loss and timing. Can you conceive of an application that requires no data loss and that is also highly time-sensitive?
交通信号灯网络。
List the four broad classes of services that a transport protocol can provide. For each of the service classes, indicate if either UDP or TCP (or both) provides such a service.
可靠数据传输(数据不丢失)
吞吐量(保证吞吐量大于某值)
定时(保证数据准时抵达)
安全性(数据不被窃取)
TCP:可以保证可靠数据传输,UDP不可以。
而其他三项服务,UDP和TCP均不能提供。
Recall that TCP can be enhanced with SSL to provide process-to-process security services, including encryption. Does SSL operate at the transport layer or the application layer? If the application developer wants TCP to be enhanced with SSL, what does the developer have to do?
SSL运行在应用层。需要在客户端和服务器端都包含SSL代码,并且在开发时调用SSL的接口。
What is meant by a handshaking protocol?
在发送真正的数据之前,服务器和客户端互相发送控制包。这一过程称为握手。
Why do HTTP, SMTP, and POP3 run on top of TCP rather than on UDP?
三者均不允许数据缺失。TCP可以满足要求。
Consider an e-commerce site that wants to keep a purchase record for each of its customers. Describe how this can be done with cookies.
用户在第一次浏览该网站时,网站服务器会生成一个识别码,且HTTP响应报文会有一个首部行“set-cookie”,根据该HTTP报文,浏览器在它的cookie文件中会添加记录,记录的内容包括网站的识别码以及需要记录的内容。
当用户再次访问该网站,浏览器会将对应的cookie记录发送到网站服务器,网站可以根据cookie的内容了解用户之前的使用记录。
Describe how Web caching can reduce the delay in receiving a requested object. Will Web caching reduce the delay for all objects requested by a user or for only some of the objects? Why?
代理服务器在浏览时会保存初始服务器的副本,用户在请求数据时,首先会向代理服务器请求,假如代理服务器中存有初始服务器最新数据的副本,代理服务器就可以直接将数据发送给用户。由于代理服务器与用户相连的带宽一般远大于初始服务器,这样的访问时延远小于直接访问初始服务器。
由于Web缓存技术显著减少了访问远程服务器的流量,所以能减少所有的时延,即使请求的对象未能在缓存区命中。
Telnet into a Web server and send a multiline request message. Include in the request message the If-modified-since: header line to force a response message with the 304 Not Modified status code
略。(我没尝试成功)
List several popular messaging apps. Do they use the same protocols as SMS?
QQ、微信等。他们使用的协议与SMS不同。
Suppose Alice, with a Web-based e-mail account (such as Hotmail or Gmail), sends a message to Bob, who accesses his mail from his mail server using POP3. Discuss how the message gets from Alice’s host to Bob’s host. Be sure to list the series of application-layer protocols that are used to move the message between the two hosts.
step 1: Alice将邮件全部信息提交到她的邮件服务器中。该过程使用HTTP协议
step 2: Alice的邮件服务器从邮件数据中识别出Bob的服务器地址,并使用SMTP协议,将邮件内容发送给Bob的邮件服务器
step 3:Bob的邮件应用通过POP3协议,从他的邮件服务器中拉取到所需的邮件数据。
Print out the header of an e-mail message you have recently received. How many Received: header lines are there? Analyze each of the header lines in the message.
header:
X-ANY-EXTHEADER:DMARC_CHECK_OKANY_CN_EXT_SUBJECT_UTF8_96,ANY_CN_RAWBODY_001,ANY_EXT_CN_FROM_008,BAYES_50,CN_UTF8_BODY_45,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HTML_MESSAGE,MIME_HTML_ONLY: 7.3;
DAILY-FROM:[email protected]
Return-Path: [email protected]
Any-Greylist: local_grey found by anygreymilter 0.1; Fri Sep 10 17:46:07 2021
DKIM-Filter: OpenDKIM Filter v2.10.3 mails.edu.cn 4H5WGR65dxzLjcj
Authentication-Results: mails.edu.cn;
dkim=pass (2048-bit key) header.d=account.mathworks.com [email protected] header.b=A4pcqICw
Received: from m225-204.mailgun.net (m225-204.mailgun.net [159.135.225.204])
by mails.edu.cn (AnyMacro(G7)) with ESMTPS id 4H5WGR65dxzLjcj
for ; Fri, 10 Sep 2021 17:46:07 +0800 (CST)
DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=account.mathworks.com;
q=dns/txt; s=krs; t=1631267167; h=Content-Transfer-Encoding:
Mime-Version: Content-Type: Subject: From: To: List-Unsubscribe:
Message-Id: Sender: Date;
bh=UTIUYtGS5BnXlPRdaoUg/r/0rR0XeX3xCdJvumQwOsM=; b=A4pcqICwbccv+djnLTUGjWTMRRPCjGHWt74Pbbbkr7uiqZLzOi5/x8zvw7fLjyu2bySFXzW5
w/1KTYndrPcvDSBvuAAl0UlCW1oH7lDkjtObG+HNOxGDWIpV/6cz8zYZpvS/oUzpVKnz+kXr
O3os2rrVrNVUjwyYzjNkC8i/oIFjYCRbDercPLWOKu/st37iZiehlpSR1rbP8QfJPzwWcsRo
ihdD+I33NOqZtNc9lV2RrokR1UHQITMuWkiWsSvZOfUpSMOmpu+JOMz0cPLgPv8AhkwfBQET
ZuFCnKT8it6AAmCQPf/cGjeoyKI4NDuElgjfqyD/CbO4IBOYEe4JFQ==
X-Mailgun-Sending-Ip: 159.135.225.204
X-Mailgun-Sid: WyIwMjk3NCIsICJsaXVzcTU1MTlAbWFpbHMuamx1LmVkdS5jbiIsICIwN2U3MmUiXQ==
Received: by luna.mailgun.net with HTTP; Fri, 10 Sep 2021 09:46:02 +0000
Date: Fri, 10 Sep 2021 09:46:02 +0000
Sender: [email protected]
Message-Id: <[email protected]>
有两个Received。
第一个:
Received: from m225-204.mailgun.net (m225-204.mailgun.net [159.135.225.204])
by mails.edu.cn (AnyMacro(G7)) with ESMTPS id 4H5WGR65dxzLjcj
for ; Fri, 10 Sep 2021 17:46:07 +0800 (CST)
第二个:
Received: by luna.mailgun.net with HTTP; Fri, 10 Sep 2021 09:46:02 +0000
Date: Fri, 10 Sep 2021 09:46:02 +0000
Sender: [email protected]
Message-Id: <[email protected]>
两个Received表示邮件从发送服务器到目的服务器一共经过了3个SMTP服务器。
第二个Received表示邮件从发送端的SMTP服务器发送到第二个SMTP服务器。
发送到luna.mailgun.net
第一个Received表示邮件从链路上的第二个服务器发送到目的服务器。
起点是m225-204.mailgun.net [159.135.225.204]
终点是mails.edu.cn
From a user’s perspective, what is the difference between the download-and-delete mode and the download-and-keep mode in POP3?
下载并删除模式:客户端接收到邮件后,服务器会将该邮件删除。
下载并保留模式:客户端接收到邮件后,服务器仍保留该邮件。
Is it possible for an organization’s Web server and mail server to have exactly the same alias for a hostname (for example, foo.com)? What would be the type for the RR that contains the hostname of the mail server?
可以的。
MX记录用于将邮件服务器的主机名映射到其IP地址。(所以RR究竟是什么我也不知道)
Look over your received e-mails, and examine the header of a message sent from a user with a .edu e-mail address. Is it possible to determine from the header the IP address of the host from which the message was sent? Do the same for a message sent from a Gmail account.
从.edu发送的邮件上能看到,但从Gmail发送的邮件不能看到。
In BitTorrent, suppose Alice provides chunks to Bob throughout a 30-second interval. Will Bob necessarily return the favor and provide chunks to Alice in this same interval? Why or why not?
不是必须的。Alice未必是Bob的前4个对等方之一。(即使Alice每隔30秒向Bob发送数据包)
Consider a new peer Alice that joins BitTorrent without possessing any chunks. Without any chunks, she cannot become a top-four uploader for any of the other peers, since she has nothing to upload. How then will Alice get her first chunk?
对等方会以30秒的间隔随机寻找一个新的对等方并发送数据,Alice就很可能会被某个对等方选中并收到他的数据,之后Alice也就拥有了数据块。
What is an overlay network? Does it include routers? What are the edges in the overlay network?
P2P文件共享系统中的覆盖网络由参与文件共享系统的节点和节点之间的逻辑链路组成。
覆盖网络不包括路由器。
如果a和B之间存在半永久性TCP连接,则从节点a到节点B之间存在逻辑链路(图论术语中的“边”)。
CDNs typically adopt one of two different server placement philosophies. Name and briefly describe them
第一种布局理念:深入。将CDN广泛布置在ISP中,由于CDN的放置位置遍及全世界,这样可以大大减少时延。但是由于CDN数量多且分散,带来了很大的管理和维护压力。
第二种布局理念:邀请做客。将CDN集中放置,通常安放在IXP处。与“深入”相比,优点是管理成本、带宽成本低。缺点是时延略长和吞吐量略小。
Besides network-related considerations such as delay, loss, and bandwidth performance, there are other important factors that go into designing a CDN server selection strategy. What are they?
1、如何选择CND集群?即用户应当访问哪一个CDN集群呢?
2、如何平衡负载。避免某些CDN过载而另外一些CDN很少被使用。
3、如何选择CDN存储的策略。选择存储哪些数据可以使CDN的加速效果更好?
4,降低成本。包括维护成本、流量成本等。
In Section 2.7, the UDP server described needed only one socket, whereas the TCP server needed two sockets. Why? If the TCP server were to support n simultaneous connections, each from a different client host, how many sockets would the TCP server need?
对于UDP服务器,没有欢迎套接字,来自不同客户端的所有数据都通过这个套接字进入服务器。对于TCP服务器,有一个欢迎套接字,每次客户端启动到服务器的连接时,都会创建一个新套接字。因此,为了支持n个同时连接,服务器需要n+1个套接字。
For the client-server application over TCP described in Section 2.7 , why must the server program be executed before the client program? For the client-server application over UDP, why may the client program be executed before the server program?
TCP程序中,客户端一旦启动,就会请求与服务器连接,假如服务器不是正在运行,就无法建立连接。
UDP程序中,客户端启动时不会立即与服务器连接。