计算机网络

本文最后更新于 2024年12月15日 下午

计算机网络

1. 介绍一下 OSI 七层模型

OSI七层模型和TCP/IP四层模型

OSI 模型 作用
应用层 这一层就是将通信模型定制化成一个协议,比如适合于超文本传输的协议HTTP,具备安全性传输的HTTPS,还有一些比如FTP,POP3,SMTP等。
表示层 该层主要作用是数据格式的编码和转换。即HTTP请求头/响应头部分,如: Content-Type:application/json; charset=utf-8
会话层 会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。session+cookie就是这一层。
传输层 传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务。包括处理差错控制和流量控制等。该层向上层应用屏蔽了底层通信细节。上层应用只需要按照传输层的规范,向传输层提交数据传输任务,其余的事情不需要上层应用关系。我们常见的TCP/IP协议中的TCP就作用在这一层。
网络层 该层通过IP将大大小小的局域网形成一个互联互通的互联网。在计算机网络中进行通信的两个计算机之间会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是为两台通信的计算机之间选择合适的路由和交换节点,确保数据及时传送。网络层将数据链路层提供的数据帧组成数据包,包中有网络层包头,也就是IP相关信息,以便路由。通过IP地址,实现网络寻址,即IP寻址,通过路由算法进行最优的网络路由。
数据链路层 该层主要负责建立和管理不同计算机节点间的数据链路,并提供差错检测、封装成帧、透明传输的能力。数据链路层又分为两个层:媒体访问控制子层(MAC)和逻辑链路控制子层(LLC)
物理层 物理层负责把电脑连接起来,形成一个网络,它传输的是计算机最底层的01信号

2. 输入网址后会发生什么

  1. URL解析
    • 浏览器首先对输入的URL进行解析,识别出协议(如http或https)、域名、路径以及任何查询参数。
  2. DNS查询
    • 浏览器检查本地缓存中是否有该域名对应的IP地址。
    • 如果缓存中没有,浏览器会向DNS服务器发送请求,将域名转换为IP地址。这个过程可能涉及递归查询或迭代查询,从根域名服务器开始,逐级向下查询,直到找到与域名对应的IP地址。
  3. 建立TCP连接
    • 获取到IP地址后,浏览器通过三次握手过程与服务器建立TCP连接。
    • 客户端发送第一次握手时,TCP头部会填上SYN标记位,同时填上目标端口和源端口。源端口时浏览器随机生成的,目标端口根据HTTP和HTTPS分别为80和443。然后到网络层,会加上IP头,同时填上目标IP和源IP地址。然后通过ARP协议获取路由器的MAC地址,加上MAC头并填上目标MAC地址和源MAC地址。然后到物理层之后会把数据包转发给路由器,由路由器找到目标服务器。目标服务器收到客户端的SYN报文后,会行营第二次握手。
    • 当双方都完成三次握手后,如果是HTTPS协议,客户端还要跟服务端进行TLS四次握手之后,才算完成建立连接。
  4. 发送HTTP请求
    • 一旦TCP连接建立,浏览器会向服务器发送HTTP请求,请求特定的网页资源。请求中包含多种头信息,如浏览器类型、可接受的响应格式、cookie等。
  5. 服务器处理请求
    • 服务器接收到请求后,会根据URL执行相应的操作,如执行服务器端脚本、从数据库获取数据、组装最终的HTML内容等。
  6. 服务器返回HTTP响应
    • 服务器处理完请求后,会以HTTP响应的形式回应,通常包含请求的HTML文件,以及状态码、服务器信息、内容类型等。
  7. 浏览器接收响应并渲染网页
    • 浏览器接收到HTTP响应后,开始解析HTML、CSS和JavaScript,渲染出网页。
    • 在渲染过程中,浏览器可能会向服务器发送额外请求,加载HTML中引用的图片、CSS文件或JavaScript文件。
    • 如果网页包含JavaScript,浏览器会执行这些脚本代码,它们可以动态修改HTML和CSS,并与服务器交互获取额外数据。
  8. 完成显示
    • 最终,浏览器向用户展示完全渲染好的网页。

3. 介绍一下DNS解析

回答:DNS 属于应用层的协议,是将域名转换为对应的 IP 地址的过程,以便用户能够通过易于记忆的域名来访问互联网上的服务器。查询过程如下:

  1. 首先浏览器会检查本地缓存中是否有该域名对应的 IP 地址。
  2. 如果本地缓存中没有,它会向本地 DNS 服务器发起查询请求。本地DNS服务器会先在自己的缓存中查找,成功则返回查询结果(主机和本地域名服务器之间的查询方式是递归查询)。
  3. 如果也没有找到,它会代表客户端向根 DNS 服务器发起查询请求。根DNS服务器会返回负责该顶级域名的权威DNS服务器的 IP 地址,然后本地 DNS 服务器继续向这个权威DNS服务器查询,直到得到最终的 IP 地址(本地域名服务器和其他域名服务器之间的查询方式是迭代查询)。
  4. 一旦获得 IP 地址,本地 DNS 服务器会将其缓存起来,并将结果返回给客户端,以便下次同样的查询可以直接从缓存中获取,提高解析效率。

4. DNS解析用什么协议,为什么

回答DNS解析主要使用UDP协议,并结合TCP协议进行特定操作

  • UDP协议:UDP(User Datagram Protocol)是一种无连接的传输层协议,提供简单的数据报文传输服务。在DNS解析中,由于UDP协议不需要建立连接,因此可以减少通信延迟,其快速和低开销的特性适用于DNS查询这种需要快速响应的场景。
  • TCP协议:虽然DNS主要使用UDP协议进行查询和响应,但在某些情况下也会使用TCP协议。例如,当DNS查询的结果超过512字节时,UDP可能无法一次性传输完整的数据,这时就需要使用TCP协议来保证数据的完整性和可靠性。此外,一些DNS服务器也支持TCP协议,以便在需要时提供更可靠的数据传输服务。

计算机网络
http://cloudyw.cn/2024/12/14/计算机网络/
作者
cloudyW
发布于
2024年12月14日
许可协议