考点七:以WWW为例结束应用层的学习
这里用一个例子回顾一下我们学习的内容,以浏览清华大学网站为例,访问的网址是http://www.tsinghua.edu.cn。
(1)浏览器分析超链接指向页面的URL,浏览器向DNS请求解析www.tsinghua.edu.cn 的IP地址,DNS客户机进行域名的解析过程如图6-16所示,具体介绍如下:
①DNS客户机向本地域名服务器发送请求,查询http://www.tsinghua.edu.cn主机的IP地址。
②本地域名服务器查询数据库,发现没有域名为http://www.tsinghua.edu.cn的主机,于是将请求发送给根域名服务器。
③根域名服务器查询数据库,发现没有这个主机域名记录,但是根域名服务器知道cn 域名服务器可以解析这个域名,于是将cn域名服务器的IP地址返回给本地域名服务器。
④本地域名服务器向cn域名服务器查询http://www.tsinghua.edu.cn主机的IP地址;cn域名服务器查询数据库,也没有相关记录,但是知道http://edu.cn域名服务器可以解析这个域名,于是将http://edu.cn域名服务器的IP地址返回给本地域名服务器。
⑤本地域名服务器再向http://edu.cn域名服务器查询http://www.tsinghua.edu.cn主机IP地址;http://edu.cn域名服务器查询数据库,也没有相关记录,但是知道http://tsinghua.edu.cn域名服务器可以解析这个域名,于是将http://tsinghua.edu.cn的域名服务器IP地址返回给本地域名服务器。
图6-16 DNS客户机进行域名的解析过程
⑥本地域名服务器http://tsinghua.edu.cn域名服务器查询http://www.tsinghua.edu.cn主机的IP地址;http://tsinghua.edu.cn域名服务器查询数据库,发现有主机域名记录,于是给本地域名服务器返回http://www.tsinghua.edu.cn对应的IP地址。
⑦最后本地域名服务器将http://www.tsinghua.edu.cn的IP地址返回给客户机,整个解析过程完成。
(2)域名系统(DNS)解析出清华大学服务器的IP地址,并且把IP地址返回给客户机(图6-17)。
图6-17 数据传输过程示意图
(3)浏览器与服务器通过“三次握手”建立TCP连接,其实是通过套接字[(客户机IP:2001)<->(服务器IP:80)]建立浏览器与服务器之间的连接。在传输过程中,会使用序号、确认、超时和自动重传机制确保可靠传输,同时使用拥塞控制算法进行拥塞。并结合TCP首部,分装传输层的数据格式:TCP数据段。
(4)TCP数据段向下发给网络层,网络层通过AS间路由协议BGP或AS内路由协议RIP和OSPF实现路径的选择,借助于路由转发算法实现IP分组转发,同时使用ARP协议实现IP地址到MAC地址的映射,从而实现网络层到数据链路层的数据转换。当然,当出现错误时,ICMP协议可以报告发送过程中遇到的错误。
(5)IP分析交付给数据链路层后,被封装成帧,其封装方法会包括首位定界及计数方法。同时会使用介质的静态划分协议(CDMA、FDMA等)和争用型介质访问(CMSA、CSMA/CD等),如果使用广域网就会使用PPP协议。
(6)帧被传送到物理层,通过物理层的机械特性可以实现这些不同介质的连接。同时使用编码或调制可以实现不同介质上传输信号的识别,透明地传输比特流。至此客户机发送的请求就发送到了物理介质上,这个过程也称为封装,每层的功能是通过各层的首部中的数据项实现的。在服务器上,进行上述过程的逆过程,也称为解封装。