计算机网络高频面试题

目录

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

二、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
 

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

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

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

发布了82 篇原创文章 · 获赞 20 · 访问量 2138

猜你喜欢

转载自blog.csdn.net/love_MyLY/article/details/104052649