欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算机网络高频面试题

程序员文章站 2022-06-13 11:38:27
...

目录

一、计算机网络的三种模型?

二、TCP、UDP 协议有什么区别?

三、在浏览器输入一个地址,到显示这个页面的过程(过程中使用了哪些协议)?

四、HTTP长连接与短连接

五、说说 TCP 建立连接时的三次握手?

六、TCP 断开连接的四次挥手,以及为什么要四次挥手?


 

 

一、计算机网络的三种模型?

计算机网络高频面试题

 

 

二、TCP、UDP 协议有什么区别?

  1. 特点:
    TCP 是面向连接的,以字节流形式传输,提供可靠传输,但 传输效率低,所需资源多;
    UDP 是无连接的,以数据报文段形式传输,不保证可靠传输,但 传输效率高,所需资源少。
  2. 应用场景:
    TCP  用于要求通信数据保证可靠的服务,比如文件传输,邮件传输,远程登录等;
    UDP 用于要求通信速度快的服务,比如 视频语音通话,赛事直播等。
  3. TCP 首部字节是 20~60 个;
    UDP 首部字节是 8 个字节,这8个字节由4个字段组成。

 

 

三、在浏览器输入一个地址,到显示这个页面的过程(过程中使用了哪些协议)?

过程:

  1. 域名解析,浏览器查找域名对应的IP地址。
  2. 与服务器建立连接
  3. 发送HTTP请求
  4. 服务器响应HTTP请求并返回HTTP报文
  5. 浏览器解析并渲染页面
  6. 连接结束

使用的协议:

  1. DNS:域名系统协议,根据域名获取对应IP。 ==》DNS百科
  2. TCP:传输控制协议,与服务器建立TCP连接。==》TCP百科
  3. IP:发送数据时在网络层使用的协议。==》IP百科
  4. OPSF:IP数据包在路由器之间选择路由的协议。==》OPSF百科
  5. ARP:路由器与服务器通信时,将ip地址转换为MAC地址的协议。==》ARP百科
  6. HTTP:在TCP建立连接后,使用HTTP协议访问页面。==》HTTP百科

 

 

四、HTTP长连接与短连接

HTTP/1.0
默认使用短连接。客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。

HTTP/1.1
默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入 Connection:keep-alive 这行代码。
在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。但是 Keep-Alive 其实也不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。
 

 

五、说说 TCP 建立连接时的三次握手?

第一次握手: 用户端 将带有SYN标志的数据包        发送给   服务端;
第二次握手: 服务端 将带有SYN/ACK标志的数据包    发送给   用户端;
第三次握手: 用户端 将带有ACK标志的数据包        发送给   服务端;

图解: 

计算机网络高频面试题

 

那为什么需要三次握手? 为什么SYN 和 ACK 需要传回?

这个我们先看个图:(感觉挺生动的~哈哈哈)

计算机网络高频面试题

简单来说:

三次握手时为了建立可靠的通信信道。

传回SYN:证明用户端到服务端的通道没有问题;

传回ACK:证明服务端到用户端的通道没有问题。

 

 

六、TCP 断开连接的四次挥手,以及为什么要四次挥手?

四次挥手:

计算机网络高频面试题

第一次挥手:主动关闭方-发送一个 FIN,用来关闭数据传送

第二次挥手:被动关闭方-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个 FIN 将占用一个序号

第三次挥手:被动关闭方-关闭与 主动关闭方 的连接,发送一个FIN 主动关闭方

第四次挥手:主动关闭方 发回 ACK 报文确认,并将确认序号设置为收到序号加1
 

 

 

为什么要四次挥手,举个我觉得生动形象的例子:

计算机网络高频面试题

 

哈哈哈,可能有人觉得形象,有人觉得抽象~~ 要详细讲的话,有时间再补充,或者单独写一篇文章讲。

 

若有什么讲的对不对或不好的地方,欢迎留言指正和交流!

 

相关标签: 计算机网络