本章要点:
- 2.1 网络应用的原则
- 2.2 Web和HTTP
- 2.3 FTP
- 2.4 邮件服务:SMTP,POP3,IMAP
- 2.5 DNS
- 2.6 P2P文件共享
- 2.7 TCP socket编程
- 2.8 UDP socket编程
- 2.9 创建一个Web服务器
2.1 网络应用的原则
应用架构
- Client/Server
- P2P
- 混合式
应用层协议定义
- 消息的类型:请求(request)或回应(response)。
- 语法:消息的每一个区域有几位。
- 语义:每一位是什么意思。
- 动作:进程怎样以及如何发送&回应消息。
应用需要什么样的传输层服务
- 数据丢失
- 时间
- 带宽
不同的应用对这三个的要求是不一样的,像与文件有关的,如HTTP和email,不允许有数据丢失但是可以有一定的时延,对带宽也没有很高的要求。而像音频视频和在线游戏,则对允许有一定数据的丢失,但是对时延的要求比较高,带宽也有一定要求,如音频传输需要带宽在5kbps-1M,在线视频传输需要带宽在10kbps-5Mbs。
2.2 Web&HTTP
HTTP属于Client/Server模型。
HTTP使用了传输层的TCP服务。
默认端口80。
HTTP1.0
非永久性HTTP,假设需要请求一个页面的10张图像,则需要建立10个连接。
HTTP1.1
永久性HTTTP,同上,可以在一个请求之后再继续请求,不需要再次请求连接。这里永久性连接分为有流水线和无流水线。
Cookies
保存口令。
Web caches
相当于一个备份服务器,减少源服务器的请求瓶颈,如果cache服务器有请求内容,则返回;如果没有,则继续请求源服务器。
Web cache一般分为学校cache、公司cache和居民cache。除了降低对源服务器的请求外,还可以避免网络拥挤,减少数据在网络间的传输。
2.3 FTP
C/S模型;
默认端口21(控制),20(数据传输)。
2.4 Email:SMTP,POP3,
SMTP
端口号25。
发送的邮件只能是ASCII编码。
POP3
端口号110。
用于从自己的服务器拉(pull)邮件,读取方式有读取并删除和读取并保存。
无状态。
2.5 DNS :因特网目录服务
域名到IP的转换。
- 分布式数据库
- 属于应用层协议:使用了UDP服务
DNS查询
- 当一个主机(如me.lzu.edu.cn)需要查询一个域名(www.hust.edu.cn)对应的IP地址时。注意顶级域名后面还有一个.,只不过一般省略掉了。
- 首先询问本地DNS服务器(dns.lzu.edu.cn),如果本地没有记录则需要向最近的根DNS服务器(可能是日本‘dns.’,但现在中国已经有了根域名服务器可以解析.cn)进行查询。
- 根服务器返回(dns.cn.)所在的地址,本地继续进行查询,直到返回目的IP地址。
这个过程第1步是递归查询,后面的都是迭代查询。理解这两个查询可以借助编程的思想,递归不直接返回上一个函数执行结果,而是继续返回函数,到最后一步返回值,然后沿源路径一步一步返回值。而迭代的每一步都直接返回值到上一步。重点在于,通不通过源路径返回。通过就是递归。(待斟酌)
DNS缓存
本地DNS服务器可以缓存DNS映射,以便下一次查询,也可以缓存TLD服务器的IP地址,因而允许本地DNS绕过查询链中的根DNS服务器(这经常发生)。
DNS记录和报文
实现DNS分布式数据库的所有DNS服务器共同存储着资源记录(resource record, RR)。RR提供了主机名到IP地址的映射。
- 资源记录 =(Name, Value, Type, TTL)
当向某些注册登记机构注册域名network.com时,需要向该机构提供你的基本权威DNS服务器和辅助权威DNS服务器的名字和IP地址。假定该名字和IP地址是dns1.network.com和dns2.netwok.com以及212.212.212.1和212.212.212.2。对这两个权威DNS服务器的每一个,该注册登记机构确保将一个类型NS和一个类型A的记录输入TLD com服务器。特别是对于用于network.com的基本权威服务器,该注册登记机构将下列两条资源记录插入该DNS系统中。
- (network.com, dns1.network.com, NS)
- (dns1, network.com, 212.212.212.1, A)
2.6 P2P文件共享——2000s因特网流量担当(超过Web)
一个基本问题:为什么P2P节点越多,速度越快?
答:共享文件资源,共享带宽。就近传输,减少了在网络上的拥堵和C/S模型的带宽瓶颈。
如何确定对方有相应的文件?
方法 | 技术 | 缺点 |
---|---|---|
集中式目录 | 使用集中式目录服务器,保存所有用户可以共享的文件目录。 | 单点故障;性能瓶颈;侵犯版权 |
查询洪泛 | 覆盖网络,向邻居发送查询,邻居继续向邻居的邻居查询。 | 拓展性差; |
利用不均匀性 | 类似于集中式目录,只不过有多个目录“服务器”(组长对等方)。 | 基本上避免了上面的缺点。 |
第三种方法也用了一些方法改善它的性能:
- 请求排队:限制上载的数量,超过时排队。
- 激励优先权:上载量越多,优先权越高。
- 并行下载:允许从多个节点下载文件的不同部分。
在上分布式课程的时候,金老师讲了P2P是一个很好的技术,在2008年的时候,开发出了第一个P2P视频软件。目的是为了更好地看球赛。但是P2P也有一些问题,如版权问题,法律问题。大家都直到的快播,正是因为没有对内容进行很好地审查导致出了问题。P2P的目的是为了分享,但是也存在一些节点,它们是自私的,只下载不分享。为了鼓励人们分享,先行者们发明了很多激励机制等等。
网友评论