应用层
为什么需要应用层
运输层给应用进程提供了端到端的通信服务,但不同的网络进程之间,还需要有不同的通信规则,因此运输层之上还需要有应用层。
应用层协议定义:
- 应⽤进程交换的报⽂类型,请求还是响应?
- 各种报⽂类型的语法、语义;
- 进程何时、如何发送报⽂,以及对报⽂进⾏响应的规则。
应用层功能与协议:
- 域名服务:DNS;
- ⽂件传输:FTP;
- 电⼦邮件:SMTP、POP3;
- 远程登陆:TELNET;
- WWW服务:HTTP。
工作模式
应用层有两种工作模式: Client/Server 模式和 P2P 模式。
Client/Server
服务器:
- 提供⽹络服务的设备(由硬件和服务软件组成);
- 永久提供服务;
- 有永久性访问地址/域名;
- 通常采⽤多线程或多进程实现。
客户机:
- 请求服务的主机;
- 与服务器通信,使⽤服务器提供的服务;
- 间歇性接⼊⽹络;
- 可能使⽤动态IP地址;
- 不与其他客户直接通信。
P2P-特殊的客户服务器⽅式
- 不存在永远在线的服务器;
- 每个主机既可提供服务,也可以请求服务;
- 任意端系统/节点之间可以直接通信;
- 结点间歇性接⼊⽹络;
- 结点可能改变IP地址。
优点
- 可扩展性好;
- ⽹络健壮性好;
- 资源分散管理。
域名系统
域名系统是互联网使用的命名系统,用来便于人们使用的机器名字转换成 IP 地址。点分⼗进制的 IP 地址不容易记住⽽使⽤域名,类似⼈们的身份证号码不易记住⽽使⽤姓名。数字适合于机器,名字适合于⼈类。
域名结构,级别最低的域名卸载最左边,级别最高的域名就写在最右边。
根域名服务器
根域名服务器是最高层次,最重要的域名服务器。根域名服务器知道所有的顶级域名服务器的域名和 IP 地址。本地域名服务器要对互联⽹上任何⼀个域名进⾏解析,如果⾃⼰⽆法解析,⾸先求助根域名服务器。
域名解析的过程
- 主机向本地域名服务器的查询采⽤递归查询。如果本地域名服务器不能解析域名的 IP 地址,本地域名服务器就以 DNS 客户的身份,向根域名服务器发出查询请求报⽂;
- 本地域名服务器向根域名服务器的查询采⽤迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报⽂时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下⼀步应当向哪⼀个域名服务器进⾏查询”。
DNS 服务器高速缓存
每个域名服务器都会维护一个高速缓存,存放最近用过的名字以及从何处获取名字的映射信息的记录。
可⼤⼤减轻根域名服务器的负荷,使互联⽹上的 DNS 查询请求和回答报⽂的数量⼤为减少。
为保持高速缓存中的内容正确,域名服务器需要为每项内容设置过期计时器,然后过期删除。
FTP
FTP 文件传输协议,是互联网中使用最广泛的文件传输协议。
- FTP 实现的是