- DNS
DNS全称是域名系统,整个网络架构是采用分布式的域名系统。
主要是用作将域名转换成IP地址,www.baidu.com,获取服务器IP地址。
解析过程如下:
1.UDP承载DNS解析报文,在本地域名服务器上查找相应的ip地址,找到了就返回报文,进程获得目的主机的ip地址之后进行通信,若本地域名服务器中找不到相应的IP地址,则将本地域名服务器作为DNS客户端,向其他服务器发出解析请求,直到能够找到响应该请求的服务器。这是一个递归过程。
2.本地域名服务器如果存有顶级域名服务器的IP则,直接向顶级域名服务器发起DNS解析报文,如果没有,则向根域名服务器发起DNS解析报文;如果上级服务器能够找到域名对应的IP则,返回,如果找不到,会告诉本地域名服务器下一个应该询问的服务器的是谁;对于本地域名服务器来说,这个问询过程是一个迭代过程。
面试中经常被问到的一个问题是,从输入URL到页面加载完成的过程中都发生了什么?
过程概述:- 浏览器根据域名解析出目的服务器对应的IP
- 首先根据域名在本地主机的缓存中查找是否有与之对应的IP地址,没有,则向本地域名服务器发起DNS请求;
- 如果我在学校接入互联网,那么此时的本地域名服务器就在学校,大部分情况下能够查找成功,会返回相应的响应报文;
- 如果查找失败,会向根域名服务器发起请求,根域名服务器一般存储各个顶级域名服务器的IP,例如,它会有.com对应服务器的IP;
- 然后本地域名服务器向顶级域名服务器发起DNS请求,迭代查询,知道找到对应的IP;
注意,DNS请求是通过UDP承载的。
- 根据IP地址与服务器建立socket连接
- 知道了IP地址,就可以与服务器通过三次握手建立TCP连接,三次握手过程中,若一方收不到确认信号,协议会要求重新发送信号;
- 浏览器与服务器通信:浏览器发送http报文,服务器处理http报文
- 连接建立之后,主机就可以与服务器进行通信,网页请求是一个单向请求的过程;
- 浏览器根据url生成http请求,http报文中包含请求方式,请求内容;
- 服务器获取http请求之后,进行解析,得到对应的HTNL文件;
- 服务器将相应的HTML文件发送给客户端;
- 客户端在执行过程中,会继续向服务器请求网页需要的.jpg图片等。
- 浏览器与服务器断开连接
- 四次挥手断开连接。
- 浏览器根据域名解析出目的服务器对应的IP
- HTTP
80端口,HTTPs是443端口。 - FTP
文件传送协议,用于在计算机主机间传输文件。它是通过TCP协议来承载的。
FTP使用客户服务器方式。一个服务器可以接受多个客户端的请求,具体过程如下:- 打开知名端口21;
- 在服务器端,有两类进程,主进程和从属进程,主进程用来接收客户端请求,从属进程用来处理客户端请求;
- 从属进程处理完请求之后,会关闭连接,它在运行期间还可能创建其他子进程;
- 继续等待客户端发起请求。
- 服务器通过21端口与客户端建立了连接,但是通过20端口与客户端传输数据。
- TELNET
远程终端协议,通过TCP连接登录到另一台主机,能将用户在本地终端的操作传递到远程主机,同时也能将远程主机的输出通过TCP连接返回到用户屏幕。 - SMTP
用于传输电子邮件
应用层常见协议
最新推荐文章于 2023-09-27 19:45:38 发布