计算机网络知识重点总结

122 阅读5分钟

从输入一个URL到浏览器显示的过程

  1. 输入地址

当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址。对于 google的chrome 的浏览器,他甚至会直接从缓存中把网页展示出来,就是说,你还没有按下 enter,页面就出来了。

  1. 浏览器查找域名的 IP 地址

  2. 请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。(局部域)

  3. 如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地DNS服务器 。本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。(本地域)

  4. 查询你输入的网址的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。如果没有,本地DNS服务器还要向DNS根服务器进行查询。(根域)

  5. 根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。这种过程是迭代的过程。

  6. 本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。

  7. 最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

  8. 简单点来说就是有局部、本地域、根域、一级域、二级域这样子。

  9. 同一个网络下,IP地址是计算机的唯一标识

TCP/IP的三握四挥

层次功能
物理层(最底层)定义网络的接口标准
数据链路层定义帧的开始和结束以及实现透明传输,差错校验
网络层负责选择最佳路径和规划IP地址
传输层实现可靠传输,流量控制
会话层实现管理对话和同步
表示层完成某些特定功能
应用层(最上层)所有能产生流量的程序
  1. 三握

首先客户机向服务器发送 image.png 2. 四挥

四次挥手的原因是确保服务器响应数据的完整性:因为在客户端发送FIN告知发送完毕的时候,此时客户端还是需要接收服务器返回的数据的,数据还没有传输完成 image.png 需要说明的地方

ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1

SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。

FIN (finish):完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。

补充说明

补充一点理解:

客户端输入URL地址,DNS就会解析域名得到服务器的IP地址,服务器在对应的端口监听客户端的请求,端口通过TCP/IP协议建连接。这也是为什么在数据交互的时候我们称之为路由端口,路由就是用来接收请求响应数据的,路由是基于TCP/IP连接,网络层又有TCP/IP协议,所以说路由器基于网络层实现。

状态码

200 - 请求成功

301 - 资源(网页等)被永久转移到其它URL

404 - 请求的资源(网页等)不存在

500 - 内部服务器错误

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误