计算机网络之应用层
应用层
1. 域名系统(DNS)
DNS完成了域名到IP地址之间相互转换的服务,由若干个域名服务器程序完成,每个服务器只保留一部分数据,是一个分布式数据库。
因特网采用了层次树状结构的命名方法,任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
从上到下依次为:根域名、顶级域名、二级域名。
域名 ::= {<三级域名>.<二级域名>.<顶级域名>},如:blog.****.com
DNS可以使用UDP或者TCP进行传输,使用端口号53,多数情况下DNS使用UDP进行传输。有两种情况会使用TCP传输:
- 如果返回的响应超过的512字节(DNS将UDP数据包限制在512字节内)。
- 区域传送(主域名服务器向辅助域名服务器传送变化数据)。
域名解析过程
主机向本地域名服务器查询一般采用递归查询,如果本地域名服务器中没有所要查询域名的IP地址,那么本地域名服务器将以DNS客户的身份,向其他根域名服务器发出查询请求。本地域名服务器向根域名服务器查询采用迭代查询。当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器下一步应该向哪一个域名服务器进行查询,然后让本地域名服务器进行后续的查询。
假设使用一个新安装的浏览器访问百度,敲入网址www.baidu.com并按下回车之后,浏览器首先尝试从本机的Host文件中查找网址对应的IP地址,若在Host文件中没有找到,则使用DNS协议来获取IP(先向本地DNS服务器发送请求,若无则向更高层次的DNS服务器求助),然后利用TCP协议的3次握手建立TCP连接。接着用HTTP协议请求网页内容,向百度的服务器发送HTTP请求报文,若服务器禁止访问会返回"Forbidden",如果服务器的服务挂掉了回复"内部服务错误",如果它正常才回"OK"并传送数据。
2. 动态主机配置协议DHCP
DHCP提供了即插即用的连网机制,可以避免一台新主机加入网络后手动配置IP地址等信息。DHCP工作过程:
- 客户端发送Discover报文,该报文的目的地址为255.255.255.255:67,源地址为 0.0.0.0:68,被放入UDP中,该报文被广播到同一个子网的所有主机上。如果客户端和DHCP服务器不在同一个子网,就需要使用中继代理。
- DHCP服务器收到Discover报文后,发送Offer报文给客户端,该报文包含了客户端所需要的信息。因为客户端可能收到多个DHCP服务器提供的信息,因此客户端需要进行选择。
- 如果客户端选择了某个DHCP服务器提供的信息,那么就发送Request报文给该 DHCP服务器。
- DHCP服务器发送Ack报文,表示客户端此时可以使用提供给它的信息。