计算机网络(1-1)

接上篇:

所以,浏览器在查询目标地址的IP地址时,只需要调用Socket库中的gethostbyname程序即可,如下图所示:

调用解析器后,解析器会向DNS服务器发送查询消息,然后DNS服务器会返回响应消息。响应消息中包含查询到的IP地址,解析器会取出IP地址,并将其写入浏览器指定的内存地址中。只要运行图1.11中的这一行程序,就可以完成前面所有这些工作,我们也就完成了IP地址的查询。接下来,浏览器在向Web服务器发送消息时,只要从该内存地址取出IP地址,并将它与HTTP请求消息一起交给操作系统就可以了。

下面讲解析器内部查询IP的原理,如下图:

它也需要讲请求消息委托给操作系统的协议栈,然后发送给就近的DNS服务器,只是就近的DNS服务器的IP地址,操作系统中已提前设置上,不需要再去查询。

发送给就近的服务器后,需要全世界的DNS服务器大接力,才能查找到目标IP。

三、DNS服务器查询的过程

DNS内部查询时,根据客户端发送过来的域名、CLASS和记录类型,和表格中这三个数据进行对比,找到相应的响应数据即IP地址或邮件服务器域名等。现在互联网所有class均为IN,记录类型中A表示IP,MX表示邮件服务器等。

域名中越靠后越大,最大的为根服务器“/”,其次为cn,com,jp等。根服务器一共对应13个ip地址,每个ip地址对应多个DNS服务器遍布全球各地,每个DNS服务器都注册了根服务器的地址,所以就近的服务器在查找目标IP时,自身服务器没有,边可直接讲请求消息告诉根服务器,然后根服务器告诉其下一级DNS服务器如com的IP,然后向该级服务器查找,逐次向下级服务器查找,直到找到目标IP,如下图:

为了加快DNS服务器的响应速度,就近的DNS服务器会进行一定时期的缓存。

四、委托协议栈发送消息

具体过程如下:

首先,建立套接字,每一个窗口都会建立一个套接字,创建套接字后,浏览器会收到一个描述符,使用客户端内部,讲套接字和每个页面对应,同时会有一个端口号,供与网络中服务器使用。

然后进行连接,连接时需要服务器IP地址和端口号,这里服务器的端口号一般有规则,如web服务器,端口号统一使用80,同时也将客户端的IP地址和该套接字对应的端口号告诉服务器。

之后,就可以进行发送和接收,将接受到的数据放在缓存区。

最后,进行关闭通道。刚开始,每次发送完消息,服务器会触发close,但是每次都需要这四个过程,服务器效率太低,所以在http1.1中,当浏览器所有的请求数据完成后,浏览器触发close。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值