网络协议相关面试题

说一下你理解的七层网络模型?

七层网络模型(OSI模型)是一种抽象的网络参考模型,用于描述计算机网络中不同层级之间的功能和协议。它将网络通信分解为七个层级,每个层级负责不同的功能:

  • 物理层(Physical Layer):负责传输比特流,将数据转换为电子信号在物理媒介上传输。

  • 数据链路层(Data Link Layer):负责将数据分割为数据帧,并在物理网络中传输。处理与物理层的接口,提供错误检测和纠正,以确保可靠的数据传输。

  • 网络层(Network Layer):负责为数据包选择合适的路径,并进行路由和转发决策,实现不同网络之间的互联。

  • 传输层(Transport Layer):负责在源主机和目标主机之间建立端到端的可靠数据传输。常见的传输层协议有TCP和UDP。

  • 会话层(Session Layer):负责建立、管理和维护应用程序之间的会话。

  • 表示层(Presentation Layer):负责数据的格式化和解析,确保应用程序能够正确解释接收到的数据。

  • 应用层(Application Layer):提供应用程序访问网络的接口,包括常见的协议如HTTP、FTP和DNS。

TCP 协议的三次握手过程?

为什么要握三次手?

TCP协议的三次握手是指在建立TCP连接时的步骤,确保双方都能正常发送和接收数据。具体过程如下:

1)客户端发送一个带有SYN(同步)标志的数据包给服务器,请求建立连接,并进入SYN_SENT状态。

2)服务器收到SYN数据包后,回复一个带有SYN/ACK(同步/确认)标志的数据包给客户端,确认收到连接请求,并进入SYN_RECV状态。

3)客户端收到服务器的SYN/ACK数据包后,再回复一个带有ACK(确认)标志的数据包给服务器,确认收到服务器的确认请求,双方进入ESTABLISHED(已建立连接)状态。

三次握手过程的目的是确保双方都同意建立连接,并互相通知对方自己的初始序列号,以便进行后续的数据传输。

TCP 协议的 4 次挥手?

TCP协议的四次挥手是指关闭TCP连接的步骤,确保双方都完成了数据的发送和接收,并安全地关闭连接。具体过程如下:

1)客户端发送一个带有FIN(结束)标志的数据包给服务器,请求关闭连接,并进入FIN_WAIT_1状态。

2)服务器收到FIN数据包后,回复一个带有ACK标志的数据包给客户端,确认收到请求,并进入CLOSE_WAIT状态。此时服务器仍可以发送数据给客户端。

3)服务器关闭与应用程序的连接后,发送一个带有FIN标志的数据包给客户端,请求关闭连接,并进入LAST_ACK状态。

4)客户端收到服务器的FIN数据包后,再回复一个带有ACK标志的数据包给服务器,确认收到请求。客户端等待一段时间后,也关闭连接,并进入TIME_WAIT状态。服务器收到客户端的确认后,进入CLOSED状态。

四次挥手过程中,双方都需要确认彼此的关闭请求和确认请求,以确保数据的完整传输和连接的正常关闭。

为什么握手需要三次,挥手却需要四次呢?

握手需要三次是因为双方要建立双向的通信信道,而挥手需要四次是因为在关闭连接时,双方还需要确认彼此的关闭请求和确认请求。

tcp 和 udp 的区别?

TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)是两种常用的传输层协议。主要区别如下:

  • 可靠性:TCP 是面向连接的,提供可靠的数据传输,保证数据的完整性和顺序;而 UDP 是面向无连接的,不保证数据的可靠性,传输速度较快。

  • 功能:TCP 提供流量控制、拥塞控制、重传机制等功能,适合传输大量数据和对可靠性要求较高的场景;UDP 提供简单的传输功能,适用于实时性要求较高但可靠性要求相对较低的场景。

  • 连接状态:TCP 是面向连接的协议,需要经过三次握手建立连接,然后传输数据,再经过四次挥手关闭连接;UDP 是无连接的,每个数据包都是独立的,没有建立和关闭连接的过程。

HTTP 和 HTTPS 的区别?

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在计算机网络上传输数据的两种协议。它们之间的主要区别在于安全性和数据传输方式。

  • 安全性:HTTP是明文传输协议,数据在传输过程中不经过加密,容易被第三方窃听和篡改。而HTTPS使用SSL/TLS加密协议对数据进行加密传输,确保数据的机密性和完整性,提供更高的安全性保护。

  • 数据传输方式:HTTP使用TCP/IP协议传输数据,数据传输的端口为80。而HTTPS在HTTP的基础上加入了SSL/TLS协议,在HTTP上建立了一条安全通道,使用加密的SSL/TLS连接进行数据传输,端口为443。

  • 证书验证:HTTPS使用数字证书对网站身份进行验证,防止中间人攻击。浏览器会对服务器的证书进行验证,确认其合法性和可信度。如果验证失败,浏览器会发出警告,提示用户潜在风险。HTTP没有证书验证机制,因此容易遭受中间人攻击和数据篡改。

  • SEO:搜索引擎优化方面,HTTPS在搜索引擎算法中有一定的加权优势。很多搜索引擎更倾向于显示和推荐使用HTTPS协议的网站,这有助于网站提升搜索排名和用户信任度。

总的来说,HTTP和HTTPS之间主要的区别在于安全性和数据传输方式。使用HTTPS可以保护数据的机密性和完整性,防止被窃听和篡改,同时通过证书验证确认网站的合法性。因此,对于涉及敏感信息传输的场景,如网上银行、电子商务等,建议使用HTTPS协议以提供更高的安全级别。

https 协议比 http 安全,是如何实现的呢?

HTTPS 比 HTTP 安全是因为它通过使用 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议对通信进行加密和身份验证。具体实现方式如下:

  • 加密:HTTPS 使用公钥加密和私钥解密的方式,通过 SSL/TLS 协议建立安全的通信通道,确保数据在传输过程中不会被窃听或篡改。

  • 身份验证:HTTPS 通过数字证书来验证网站的身份。数字证书由权威的证书颁发机构(CA)签发,包含网站公钥和相关信息,客户端可以使用证书验证网站的真实性。

这种加密和身份验证的机制可以防止中间人攻击、数据篡改和信息泄露等安全问题。

当一个用户在浏览器输入 url 打开一个网页的时候,从输入到加载完整个过程经历了什么? 

当一个用户在浏览器输入 URL 打开一个网页时,以下是整个过程的详细步骤:1)用户在浏览器中输入 URL(Uniform Resource Locator)。

2)浏览器解析 URL,获取主机名和端口号。

3)浏览器发起 DNS(Domain Name System)解析,将主机名解析为对应的 IP 地址。

4)浏览器与服务器建立 TCP 连接。

5)建立 TCP 连接后,浏览器发送 HTTP 请求给服务器。

6)服务器收到请求后,处理请求并返回 HTTP 响应。响应中包含页面的 HTML、CSS、JavaScript 等资源。

7)浏览器解析响应,渲染页面并显示给用户。

8)如果页面中有其他的资源(例如图片、样式文件、脚本文件等),则浏览器会重复步骤5-7,进行加载和渲染。

9)页面加载完成后,用户可以与网页进行交互,点击链接或提交表单等操作。

10)用户关闭页面或者浏览器时,浏览器与服务器进行 TCP 的四次挥手过程,关闭连接。

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

猜你喜欢

转载自blog.csdn.net/wx17343624830/article/details/133383600