复习题
非专用的因特网 | 所在的应用层协议 |
---|---|
Web | HTTP |
文件传输 | FTP |
远程登录 | Telent |
SMTP | |
P2P | BitTorrent |
网络体系结构是指如五层Internet架构。应用程序体系结构是由应用程序开发人员设计的,它规定了应用程序的广泛结构(例如客户机-服务器或P2P)。
发起请求的是客户端,接收请求的是服务器。
不。在P2P文件共享应用程序中,接收文件的对等点通常是客户机,发送文件的对等点通常是服务器。
目标主机的IP地址和目标进程中套接字的端口号。
使用UDP,事务可以在一个往返时间(RTT)内完成——客户机将事务请求发送到UDP套接字,服务器将响应发送回客户机的UDP套接字。对于TCP,至少需要两个rtt—一个用于设置TCP连接,另一个用于客户机发送请求,服务器发送回应答。
例如,使用谷歌文档的远程字处理就是这样一个例子。但是,因为谷歌文档在Internet上运行(使用TCP),所以没有提供计时保证。
可靠数据传输:TCP
(带宽)吞吐量:都不提供
定时:都不提供
安全性:都不提供
SSL 在应用层操作。SSL 套接字从应用层获取未加密的数据,对其进行加密,然后将其传递给 TCP 套接字。如果应用程序开发人员希望使用 SSL 增强 TCP,则必须在应用程序中包含 SSL 代码。UDP 不能使用 SSL。
握手协议是指主要用来让客户端及服务器确认彼此的身份的一类网络协议。除此之外,为了保护 SSL 记录封包中传送的数据,握手协议还能协助双方选择连接时所使用的加密算法、MAC 算法及相关密钥。在传送应用程序的数据前,必须使用 握手协议来完成上述事项。
与这些协议相关联的应用程序要求以正确的顺序接收所有应用程序数据,并且没有间隙。TCP提供此服务,而UDP不提供此服务。
当用户第一次访问站点时,服务器创建一个惟一的标识号,在其后端数据库中创建一个条目,并将该标识号作为cookie号返回。这个cookie号存储在用户的主机上,由浏览器管理。在随后的每次访问(和购买)期间,浏览器将cookie编号发送回站点。因此,站点知道这个用户(更准确地说,这个浏览器)什么时候访问站点。
Web缓存可以使所需的内容“更接近”用户,可能是与用户的主机连接的同一局域网。Web缓存可以减少所有对象的延迟,甚至是没有缓存的对象,因为缓存减少了链接上的通信量。
Telnet 在 Windows 7 中默认不可用。要使它可用,去控制面板,程序和功能,打开或关闭 Windows 功能,检查 Telnet 客户端。要启动 Telnet,在 Windows 命令提示符中,发出以下命令> Telnet webserverver 80
FTP使用两个并行TCP连接,一个连接用于发送控制信息(例如传输文件的请求),另一个连接用于实际传输文件。由于控制信息不是通过文件发送的同一连接发送的,FTP将控制信息发送到带外。
消息首先通过HTTP从Alice的主机发送到她的邮件服务器。然后Alice的邮件服务器通过SMTP将消息发送到Bob的邮件服务器。然后Bob通过POP3将消息从邮件服务器传输到主机。
略
通过下载和删除,在用户从POP服务器检索消息之后,这些消息将被删除。
在下载和保存配置中,在用户检索消息后不会删除消息。
是的,组织的邮件服务器和Web服务器可以有相同的主机名别名。MX记录用于将邮件服务器的主机名映射到其IP地址。
能,但是如果用户使用gmail帐户,您将无法看到发送方的IP地址。
Bob也没有必要向Alice提供块。Alice必须在Bob的前4个邻居中Bob才能向Alice发送数据块;即使Alice在30秒的间隔内向Bob提供块,这种情况也可能不会发生。
P2P文件共享系统中的覆盖网络由参与文件共享系统的节点和节点间的逻辑链接组成。如果节点a和节点B之间存在半永久TCP连接,则节点a到节点B之间存在逻辑链路(图论术语中的“边”)。覆盖网络不包括路由器。
Mesh DHT:
优点是为了将消息路由到最接近密钥的对等节点(具有ID),只需要一次跳转;
缺点是每个对等点必须跟踪DHT中的所有其他对等点。
循环DHT:
优点是每个对等点只需要跟踪几个其他对等点;
缺点是需要O(N)跳来将消息路由到最接近密钥的对等点。
文件传输
即时通讯
视频
分布式计算
对于UDP服务器,不存在欢迎套接字(serverSocket),来自不同客户机的所有数据都通过这个套接字进入服务器。对于TCP服务器,有一个欢迎套接字,每当客户机启动到服务器的连接时,就会创建一个新的套接字。因此,为了支持n个并发连接,服务器需要n+1个套接字。
对于TCP应用程序,客户机一执行,它就试图启动与服务器的TCP连接。如果TCP服务器没有运行,那么客户机将无法建立连接。对于UDP应用程序,客户机不会在执行后立即启动连接(或尝试与UDP服务器通信)
习题
a.
×
因为在对于一个 web page中,每一个object都需要发出一个 request ,然后收到相应的 response,所以 request 一个 web page时,所有object 的 request 和 response 都是成对出现的
b.
√
在一个持久连接中,因为已经客户端浏览器已经服务器建立了 TCP 连接,在此基础上就可以连续传递多个 object,当所有 object 的 request 和来自服务器的 response 都收到后,TCP 连接才关闭,故这两个不同的网页可以在同一个持久连接中传送。
c.
×
在非持久连接中,对于要传送的每一个 object 都需要建立相应的TCP连接,在对应于每一个 object 的 TCP 连接建立完成后,客户端就向服务器发送 request ,然后在服务器收到 request 之后就会发回一个包含客户端请求的 object 的 response 然后就关闭 TCP 连接,因此在一个 TCP 连接中不可能有两个不同的 HTTP request .
d.
×
DATE 是提供日期和时间标志,说明报文是什么时间创建的
e.
×
可以有空的报文体
访问控制命令:USER, PASS, ACT, CWD, CDUP, SMNT, REIN, QUIT。
传输参数命令:端口,PASV,类型 STRU,模式。
服务命令:RETR, STOR, STOU, APPE, ALLO, REST, RNFR, RNTO, ABOR, DELE, RMD, MRD, PWD, LIST, NLST, SITE, SYST, STAT, HELP, NOOP。
应用层协议:DNS 和 HTTP
传输层协议:DNS 的 UDP;TCP HTTP
a.
gaia.cs.umass.edu/cs445 /index.html
b.
HTTP / 1.1
c.
持续连接,keep-alive :300
d.
HTTP 报文中没有 IP 地址。
e.
Mozilla / 5.0。服务器需要浏览器类型信息将相同对象的不同版本发送到不同类型的浏览器
a.
状态码 200 和 OK 表示服务器能够成功定位文档。答覆于 2008 年 3月 7 日(星期二)格林威治标准时间 12:39:45。
b.
最后一次修改 html 是在 2005 年 12 月 10 日星期六 18:27:46 GMT。
Last-Modified: Sat, 10 Dec 2005 18:27:46 GMT
c.
返回的文档中有 3874 字节。
Content-Length: 3874
d.
返回文档的前五个字节为:
a.
客户端或服务器都可以向另一方表明,它将关闭持久连接
b.
HTTP不提供任何加密服务
c.
(来自 RFC 2616)“使用持久连接的客户机应该限制它们维护到给定服务器的同时连接的数量。单用户客户机与任何服务器或代理连接不应超过 2 个
d.
可能,当服务器决定关闭“空闲”连接时,客户机可能已经开始发送新的请求。从服务器的角度来看,连接在空闲时被关闭,但从客户的角度来看,请求正在进行中。
得到 IP 地址的时间为 RTT1 + RTT2 + … + RTTn
得到 IP 后,本机与服务器需要三次握手,第一次建立链接,第二次发出请求,第三次传送对象,由于对象传送时间为 0 ,所以获取网页需要的时间为 2RTT0。
接收到该对象的时间为 2RTT0 + RTT1 + RTT2 + … + RTTn
a.
没有并行非持续连接中,每次引用对象都必须重新建立链接。
建立链接 + 获取对象 = 2 RTT0
总时间为:获取对象花费的时间为:8 * 2RTT0 。
2 RTT0 + RTT1 + RTT2 + … + RTTn + 8 * 2RTT0 =
18RTT0 + RTT1 + RTT2 + … + RTTn
b.
有并行非持续连接中,只需建立一次 HTTP 连接
获取对象花费的时间为 2RTT0。
总时间为:2RTT0 + RTT1 + RTT2 + … + RTTn + 2RTT0 =
4RTT0 + RTT1 + RTT2 + … + RTTn
c.
带流水线的持续 HTTP 中,只需建立一次 HTTP 连接,连接期间可以处理多个请求/响应,获取对象花费的时间为 RTT0。
总时间为:3 RTT0 + RTT1 + RTT2 + … + RTTn
d.(不带流水)
与带流水区别,非流水持续 HTTP 中,每个对象需要花费 1 个 RTT0,
获取对象花费的时间为 8 RTT0。
总时间为:8 RTT0 + 2 RTT0 + RTT1 + RTT2 + … + RTTn
a.
Δ \Delta Δ:跨越接入链路发送一个对象的平均时间
β \beta β:该对象接入链路的平均到达率
Δ \Delta Δ = (850,000 bits)/(15,000,000 bits/sec) = 0.0567 sec
Δ \Delta Δ β \beta β = (16 requests/sec)(0.0567 sec/request) = 0.907
平均接入时延 : Δ \Delta Δ/(1- Δ \Delta Δ β \beta β)= (0.0567 sec)/(1 - 0.907) = 0.6 seconds
总的平均响应时延 = 平均接入时延 + 平均因特网时延 = 0.6 sec + 3 sec = 3.6 sec.
b.
因为有40%的请求网络满足,所以访问链路的流量强度减少了40%。
因此平均接入时延: Δ \Delta Δ/(1- Δ \Delta Δ β \beta β)= (0.0567 sec)/[1 – (0.6)(0.907)] = 0.12 sec。
如果请求由缓存器满足的话,其响应时间近似为 0 sec。
当缓存器未命中时,缓存丢失的平均响应时间是 0.12 sec + 3sec = 3.12 sec。
因此平均响应时间是:(0.4)(0 sec) + (0.6)(3.12 sec) = 1.872 sec。
因此平均响应时间由 3.6 sec 减少到 1.872sec。
todo
a.
能,因为Bob使用非持续 HTTP 并行实例,有更多的连接,他可以得到更多的链路带宽。
b.
是的,Bob仍然需要执行并行下载;否则,他将得到比其他4个用户更少的带宽。
略
The MAIL FROM:在 SMTP中,是来自 SMTP 客户端的消息,它标识发送到SMTP服务器的邮件消息的发送方。
The From:本身不是SMTP消息,而是邮件消息主体中的一行。
SMTP使用仅包含句号的行来标记消息主体的结束。HTTP使用“Content-Length header字段”表示消息体的长度。不,HTTP不能使用SMTP使用的方法,因为HTTP消息可以是二进制数据,而在SMTP中,消息体必须是7位ASCII格式。
MTA (Mail Transfer Agents) 是邮件传输代理的缩写。主机将消息发送给 MTA。然后,该消息按照 mta 序列到达接收方的邮件阅读器。我们可以看到,这条垃圾邮件遵循一个 MTAs 链。一个诚实的 MTA 应该在收到信息的地方报告。注意,在这条消息中,“asusus-4b96([58.88.21.177])”没有从哪里收到电子邮件。由于我们假设只有发起者是不诚实的,所以“usus-4b96([58.88.21.177])”一定是发起者。
UIDL缩写为“惟一id列表”。当POP3客户机发出UIDL命令时,服务器将使用用户邮箱中所有消息的唯一消息ID进行响应。这个命令对于“下载并保存”很有用。通过维护一个出现在早期会话中检索到的消息的文件列表,客户机可以使用UIDL命令来确定服务器上已经看到了哪些消息。
略
a.
对于给定的域名(如ccn.com)、IP地址或网络管理员名称,可以使用whois 数据库定位相应的注册商、whois服务器、DNS服务器等。
b.
略
c.
略
d.
略
e.
略
f.
攻击者可以使用 whois 数据库和 nslookup工具来确定目标机构的 IP 地址范围、DNS 服务器地址等。
g.
通过分析攻击包的源地址,受害者可以使用whois获取攻击来自的域的信息,并可能通知源域的管理员。
略
我们可以定期对本地 DNS 服务器中的 DNS 缓存进行快照。出现在 DNS 缓存中最频繁的Web服务器是最流行的服务器。这是因为如果更多的用户对 Web 服务器感兴趣,那么该服务器的 DNS 请求将更频繁地由用户发送。因此,Web 服务器将更频繁地出现在 DNS 缓存中。
是的,我们可以使用 dig 在本地 DNS 服务器上查询那个网站。
例如,“dig cnn.com”将返回查找cnn.com的查询时间。如果在几秒钟之前访问了 cnn.com,则 cnn.com 的条目将缓存在本地 DNS 缓存中,因此查询时间为 0 msec。否则,查询时间很长。
略
略
略
覆盖网络中有N个节点。有N(N-1)/2条边。
略
Peer 3 知道Peer 5 刚刚离开系统,所以Peer 3 向它的第一个继承者(Peer 4)请求它的直接继承者(Peer 8)的标识符,然后Peer 3 将使Peer 8 成为第二个继承者。
第 6 位会先给第 15 位发送一条消息,说“第 6 位的前驱和后继是谁?”这条消息通过 DHT 被转发,直到到达 peer 5, peer 5 意识到它将是 6 的前驱,而它的当前后继,peer 8,将成为 6 的后继。接下来,对等点 5 将此前驱和后继信息发送回 6。现在,Peer 6 可以加入DHT,方法是让 Peer 8 成为它的后继,并通知 Peer 5,它应该将后继更改为 6。
对于每个键,我们首先计算其与所有对等点之间的距离(使用d(k,p)),然后将键存储在最接近键的对等点中(即距离值最小)。
可能,随机地将键分配给对等点根本不考虑底层网络,因此很可能会导致不匹配。较短的逻辑路径可能对应较长的物理路径。
a.
如果先运行TCPClient,那么客户机将尝试与不存在的服务器进程建立TCP连接。将不会建立TCP连接。
b
UDPClient不与服务器建立TCP连接。因此,如果首先运行UDPClient,然后运行UDPServer,然后在键盘上键入一些输入,那么一切都可以正常工作。
c.
如果使用不同的端口号,那么客户端将试图建立一个TCP连接与错误的进程或不存在的进程。会发生错误。
在原始程序中,UDPClient在创建套接字时不指定端口号。在本例中,代码允许底层操作系统选择端口号。在另一行中,当UDPClient执行时,将创建一个端口号为5432的UDP套接字。
UDPServer 需要知道客户机端口号,以便能够将数据包发送回正确的客户机套接字。DPServer 通过分解从客户机接收的数据报来确定客户机端口号。因此,UDP 服务器可以使用任何客户机端口号,包括 5432。因此,UDPServer 不需要修改。
优点:可以更快地下载文件。
缺点:可能会占用带宽,从而显著降低共享相同物理链接的其他用户的下载速度。
对于远程登录(telnet和ssh)之类的应用程序,面向字节流的协议非常普遍,因为应用程序中没有消息边界的概念。当用户键入字符时,我们只需将该字符放入 TCP 连接。在其他应用程序中,我们可能会发送一系列在它们之间有固有边界的消息。例如,当一个SMTP 邮件服务器向另一个 SMTP 邮件服务器发送多个电子邮件消息时。由于 TCP 没有表示边界的机制,应用程序必须添加标识本身,以便应用程序的接收端能够区分一条消息和另一条消息。如果将每个消息放入一个不同的 UDP 段,接收端将能够区分各种消息,而不需要应用程序的发送端添加任何指示。
TCP 是流式的数据传输,消息没有边界,需要应用层自己去定义消息边界,而 UDP 是数据报传输,所以协议保证了一次只能接收一个数据报。
要创建 web 服务器,我们需要在主机上运行 web 服务器软件。许多供应商出售 web 服务器软件。然而,当今最流行的 web 服务器软件是Apache,它是开源的,而且是免费的。多年来,开源社区对它进行了高度优化。
键是infohash,值存放 infohash 指定的文件的一个IP地址。
我的 Github:Github
个人网站: 天狼星的博客
CSDN: CSDN
E-mail: [email protected]
QQ:1136513099
答案下载:https://download.csdn.net/download/sirius_hly/10830333
参考:https://blog.csdn.net/zyj061/article/details/50511076
转载请注明出处,如有错误,欢迎指正,感激不尽,多谢。
推荐阅读
史上最全,最完美的 JAVA 技术体系思维导图总结,没有之一!