Web和HTTP
- HTTP基于TCP协议
- HTTP是无状态协议, 不保存客户的任何状态信息
非持续连接与持续连接
- 非持续连接: 一系列请求中的每个请求由单独的TCP连接发送.
- 持续连接: 所有请求及响应经由相同的TCP连接发送
- 往返时间(RTT): 一个短分组从客户到服务器然后再返回客户所花费的时间, RTT包含分组传播时延, 分组在中间路由器和交换机上的排队时延和分组处理时延.
一个http请求总的响应时间为两个RTT加上服务器传输文件的时间. - http默认模式是使用带流水线的持续连接.
FTP
- FTP使用两个并行的TCP连接来传输文件, 一个是控制连接, 一个数数据连接
电子邮件
- 电子邮件系统由3个部分组成: 用户代理(user agent), 邮件服务器(mail server), 简单邮件传输协议(SMTP).
- 邮件服务器形成电子邮件体系结构的核心. 每个接收方在其中的某个邮件服务器上有一个邮箱.
- 发送过程: 从发送方的用户代理开始, 传输到发送方的邮件服务器, 在传输到接收方的邮件服务器, 在这里被分发到接收方的邮箱中.
- 如果服务器不能将邮件发送, 则报文会在服务器的一个报文队列(message queue)中保持并尝试再次发送, 若几天后仍不能成功则删除该报文.
- SMTP使用持续连接, 如果有几个报文发往同一个接收邮件服务器, 它可以通过同一个TCP连接发送这些报文. 对于每一个新的报文, 客户用一个MAIL FROM: crepes.fr开始, 用一个.指示结束., 当全部邮件发送完后发送QUIT.
DNS: 因特网的目录服务
- 域名系统(Domain Name System, DNS)
- DNS运行在UDP协议上, 使用53端口.
DNS工作机理
- 分布式, 层次数据库: DNS使用了大量的DNS服务器, 以层次方式组织, 并且分布在全世界范围内. 大致来说, 分为三种类型DNS服务器: 根DNS服务器, 顶级域(Top-Level Domain, TLD)DNS服务器和权威DNS服务器.
- 因特网上有13个根服务器(标号从A到M), 每台服务器其实是一个冗余服务器网络.
- 顶级域服务器负责顶级域名如com, org, net, edu和gov以及所有国家的顶级域名如uk, fr, ca ,jp.
- 因特网上具有公共可访问主机的每个组织必须提供公共可访问的DNS记录, 这些记录将主机名映射为IP地址. 一个组织机构的权威DNS服务器收藏了这些DNS记录.
- 本地DNS服务器: 每个ISP(如一个大学, 一个系, 等等)都有一台本地DNS服务器, 当主机与某个ISP连接时, 该ISP提供一台主机的IP地址, 该主机具有多台本地DNS服务器的IP地址.
- 共同实现DNS分布式数据库的所有DNS服务器储存了资源记录(Resource Record), 资源记录是一个4元组(Name, Value, Type, TTL)
P2P应用
- 服务器-客户端的分发时间: 令N为对等方的数量, F为文件大小,
u
x
u_x
ux为服务器上载速率,
d
m
i
n
d_{min}
dmin为具有最小下载速率的对等方的下载速率.
D c s = m a x { N F u s , F d m i n } D_{cs}=max\{\frac{NF}{u_s},\frac{F}{d_{min}}\} Dcs=max{usNF,dminF} - p2p体系分发时间:
D P 2 P = m a x { F u s , F d m i n , N F u s + ∑ i = 1 N u i } D_{P2P}=max\{\frac{F}{u_s},\frac{F}{d_{min}},\frac{NF}{u_s+\sum_{i=1}^N u_i}\} DP2P=max{usF,dminF,us+∑i=1NuiNF}
环状DHT
-
将对等方组织为一个环, 每个对对等方仅与他的直接后继和直接前任联系(模2^n)
-
某对等方要知道哪个对等方负责某键时, 需要生成一个报文并绕环顺时针发送该报文.
-
具有捷径的环形DHT:
-
GHT能被设计成每个对等方的邻居数量以及每个请求的报文数量均为O(log N)
对等方扰动
- 对等方离开时, 前任对等方用它的第二个后继来代替第一个后继, 再表示第二个后继
- 对等方13加入时, 向对等方1发送一条报文, , 该报文将DHT到达对等方12, 而它认识到自己时13的前任, 并且他的后继将成为13的后继, 接下来等对等方12向12发送他的前任和后继信息, 此时对等方能加入DHT, 并表示后继为对等方15, 并通知12改变其对等方为13.