写点什么

测试人面试 常被问到的计算机网络题,高薪回答模板来了!

作者:伤心的辣条
  • 2022 年 5 月 09 日
  • 本文字数:2825 字

    阅读完需:约 9 分钟

测试人面试 常被问到的计算机网络题,高薪回答模板来了!

前言:进行软件测试面试时,相信大家或多或少都会被问到一些关于计算机网络的问题,今天这篇文章就目前反馈比较多的计算机网络面试题及答案做了一个整理,在找工作的你,赶紧看过来~


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


应用层: 网络服务与最终用户的一个接口。

协议有:HTTP FTP TFTP DNS 协议等;


表示层: 数据的表示、安全、压缩的格式;


会话层: 建立、管理、终止会话。对应主机进程,指本地主机与远程主机正在进行的会话


传输层:定义传输数据的协议端口号,以及流控和差错校验。协议有:TCP UDP 协议。


网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。协议有:ICMP IP(IPV4 IPV6)


数据链路层: 建立逻辑连接、进行硬件地址寻址功能。将比特组合成字节进而组合成帧,用 MAC 地址访问介质,错误发现但不能纠正。


物理层: 建立、维护、断开物理连接。


Q 2. TCP 协议的三次握手过程?


TCP 协议要建立连接的时候,需要经历三次握手的过程:


第一次握手: 是客户端向服务器发起的,用来申请建立连接的,这个报文中的 SYN 标志位标记为 1,所以我们也叫作 SYN 包;


第二次握手:是服务器回复客户端的,用来确认并接受连接请求的,这个报文中的 SYN 位和 ACK 位都标记为 1,所以叫做 SYN-ACK 报文;


第三次握手:仍然是客户端发给服务器的,用来确认服务器的回复消息,这个报文中的 ACK 标志位标记为 1,所以我们也叫作 ACK 包。


这就是 TCP 协议的三次握手过程。


Q 3. 有了解 TCP 握手是握几次吗?为什么要握三次手?


3 次。


客户端发送请求建立连接的数据包可能会滞留在网络中,等到后续这个连接断开之后再次到达服务器,那么服务器会发送消息告诉客户端可以发送消息,但是客户端不会理会服务器也不会发送消息,服务器端处于等待状态,会造成资源浪费


Q 4. TCP 协议的 4 次挥手?


TCP 协议完成了数据发送之后,就会断开连接,此时就需要经历四次挥手的过程:


第一次挥手:是客户端向服务器发起的,用来申请断开连接的,这个报文中的 FIN 标志位标记为 1,所以我们也叫作 FIN 包;


第二次挥手:是服务器回复客户端的,用来确认客户端的上一个断开连接请求的,所以是一个 ACK 报文;


第三次挥手:仍然是服务器发给客户端的,用来告知客户端服务器的数据发送完毕了,需要断开连接;这个报文中的 FIN 标志位标记为 1,所以也是一个 FIN 包。


第四次挥手:是客户端回复服务器的,确认服务器的上一个断开连接请求,所以也是一个 ACK 报文;


这就是 TCP 协议的四次挥手过程。


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


三次握手是 TCP 协议建立连接的过程,建立连接,我只需要确认一下你在我也在就好了啊,三次握手够了;


但是四次挥手是 TCP 协议是为了断开连接的,所以需要确保我既结束发送数据,也结束接收数据;开始客户端先结束发送并告知服务器,服务器确认后就结束接收了;这两次挥手完成后,客户端还在接收数据哦,服务器也还在发送;所以需要服务器也发送一次 FIN 包,告知我也结束数据发送了,客户端确认后,才双方都关闭发送和接收数据通道,所以必须要四次~


Q 6. tcp 和 udp 的区别?

TCP 协议和 UDP 协议都是传输层的两个协议:它们的区别主要有如下 3 个方面:


第一:TCP 是面向连接,就像打电话要先拨号建立连接一样,而 UDP 是无连接的,即发送数据之前不需要建立连接。


第二:TCP 可以提供可靠的服务,能保证数据传输无差错,不丢失,不重复,且按序到达;而 UDP 协议只是尽最大努力交付,即不保证可靠交付。


第三:因为 TCP 以上两个特点,所以对应传输效率相对较低,而 UDP 效率高,所以一些注重速度而不在乎的丢包的场景,会选择用 UDP 协议,比如 IP 电话,流媒体等。


Q 7. 你了解 http 协议有哪些响应状态码?


状态码有如下几种:

1xx(临时响应):表示临时响应并需要请求者继续执行操作的状态代码。


2xx (成功):表示成功处理了请求的状态代码。


3xx (重定向):表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向。


4xx(请求错误):这些状态代码表示请求可能出错,妨碍了服务器的处理。


5xx(服务器错误):这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。


Q 8. HTTP 和 HTTPS 的区别?


1.从安全性来说:http 明文传输,易受攻击,无法确认双方身份,也无法保证数据的完整性;https 使用 ssl 加密传输协议,信息是密文,可以认证双方身份,防止信息被截取篡改,安全性相比 http 要高


2.从端口来看:http 默认端口 80,https 默认端口 443


3.灵活性上:http 简单快速,使用灵活;https 技术门槛较高,多数个人或私人网站难以支撑


4.访问速度:http 协议简单,http 服务器的程序规模小,因而通信速度很快;https 加重了服务端负担,需要更多的资源来支撑,降低了用户的访问速度


5.经济适用度:http 没有额外的费用要求,https 协议 CA 机构颁发的证书都是需年费的,此外对接 https 协议也需要额外的技术支持


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

https 协议通过 SSL 协议外壳来实现它的安全性,主要体现在三个方面:


第一: 数据是加密的,SSL 协议通过非对称秘钥分发的方式完成秘钥的协商,然后通过对称秘钥的加密方式完成数据的加密;


第二:会验证对方身份。服务端和客户端双方会需要向 CA 机构申请证书,再 SSL 握手阶段会验证双方证书是否可信,从而验证双方的身份,防止第三方冒充;


第三:保证数据的完整性。每次的数据都会加上 MAC 摘要并签名,接收的数据和发送的数据这个摘要信息一致的,就表示数据没有被篡改过。


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


1.首先它会进行 DNS 的域名解析;

2.建立 TCP 连接;发起 tcp 的三次握手

3.发送一个 HTTP 的请求;

4.服务器处理相关的请求并返回处理后的结果;

5.关闭 TCP 连接;

6.浏览器接收到服务器给到的 HTML 代码,开始解析;

7.浏览器将解析后的资源(如 js、CSS、图片等)进行请求,并对页面进行渲染呈现给用户。


如果对 python 自动化测试、web 自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点这自行获取…



最后: 可以在公众号:伤心的辣条 ! 自行领取一份 216 页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux 必备、Shell、互联网程序原理、Mysql 数据库、抓包工具专题、接口测试工具、测试进阶-Python 编程、Web 自动化测试、APP 自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。


学习技术千万不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:746506216(里面有各种软件测试资源和技术讨论)


喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

发布于: 刚刚阅读数: 2
用户头像

一个乐于分享技术的测试人... 2022.03.18 加入

公众号:【伤心的辣条】主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。

评论

发布
暂无评论
测试人面试 常被问到的计算机网络题,高薪回答模板来了!_Python_伤心的辣条_InfoQ写作社区