当前位置:首页 > 软件测试 > 正文内容

作为测试,面试常被问到的计算机网络题

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

答案:

应用层: 网络服务与最终用户的一个接口。协议有:HTTP FTP TFTP DNS协议等;

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

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

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

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

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

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

 

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

答案:

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

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

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

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

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

 

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

答案:

3次。

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

 

4. TCP协议的4次挥手?

答案:

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

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

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

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

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

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

 

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

答案:

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

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

 

6. tcp和udp的区别?

答案:

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

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

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

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

 

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

答案:

状态码有如下几种:

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

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

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

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

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

 

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协议也需要额外的技术支持

 

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

答案:

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

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

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

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

 

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

答案:

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

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

  3. 发送一个HTTP的请求;

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

  5. 关闭TCP连接;

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

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


扫描二维码推送至手机访问。

版权声明:本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:luxd@aliyun.com,感谢支持理解。


本文链接:https://luxd.cc/post/248.html

“作为测试,面试常被问到的计算机网络题” 的相关文章

淘宝购物车的测试点有什么?

淘宝购物车的测试点有什么?

1.界面测试打开淘宝购物车页面后,页面的布局是否合理,是否完整。不同卖家的商品在不同的table区域显示,区分明显。页面的功能按钮可以正常显示。商品的最下方显示失效宝贝。页面的最低端显示“你可能喜欢”向下滑动页面,在购物车顶端展示“购物车”。购物车中如果存在有商品降价、库存不足、限购件数等,在商品详...

三分钟教会你如何编写完整的测试用例

三分钟教会你如何编写完整的测试用例

对于新人入门而言.大家可能总感觉测试的用例设计不是很合理.接下来简单跟大家聊聊如何在工作中设计测试用例,让自己的工作效率能快速提高对于测试一套完整的测试用例,我们在书写过程中需要对用例都从下列五个维度进行考虑1.测试计划首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相 应的测试需求...

项目中测试人员是如何拆分功能模块的

项目中测试人员是如何拆分功能模块的

 实际项目工作中,刚入职的测试人员经常出现一个问题:“新项目以前从未接触过,不知道如何下手?”鉴于此,我分享一下思路:作为测试人员如何在一个新项目中更好的拆分功能模块并设计出较完善的测试用例。5W2H分析法了解项目背景根据产品需求确认功能模块产品功能的拆分及用例设计回顾总结及改进提升一.&...

如何快速入门Jmeter直连数据库?

如何快速入门Jmeter直连数据库?

所谓直连数据库,就是编写脚本让 JMeter 直接访问并操作数据库可以将接口响应的结果与直连数据库响应的结果做比对,判断接口实现是否符合预期,较之于人工访问数据库,更高效快捷jmeter直连数据库步骤:1. 准备关联jar包2. 配置数据库连接信息3.&nbs...

简单的web自动化环境安装

简单的web自动化环境安装

1.浏览器安装    在这里我们选择安装最新版本的火狐浏览器,直接选择默认安装即可,安装完成后讲浏览器安装路径加入环境变量。由于是最新版本(目前是:66.0.3),所以需要浏览器驱动。     浏览器驱动地址:https://github....

接口测试神器 Jmeter 如何实现测试关联

接口测试神器 Jmeter 如何实现测试关联

小白必看,接口测试神器 Jmeter 如何实现测试关联 前言:三四月份赶上跳槽高峰期,面试中,接口测试部分的关联是经常被提及的知识点之一,经常有同学因此错失良机,“关联”可谓是重中之重了,今天就写一篇关于Jmeter关联的文章,以作备忘。所谓关联,通俗的讲,就是一个请求...