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

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

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.正向思维(一般用于冒烟测试)简述:指软件可以在正常运行状态下所表现出来的特征目的:根据需求标准检查系统功能是否正常实现2.逆向思维简述:根据结果逆推条件用处:减少多余的测试用...

App不同上线情况对应着怎样的测试流程?

App不同上线情况对应着怎样的测试流程?

一个App软件从研发提测到版本上线经过了哪些测试流程呢?有些测试童鞋认为就是进行功能测试,没bug了就提交审核,审核通过就直接上线了,其实不然,有些步骤是需要特别关注的,否则极易造成线上bug,本文就通过两步介绍一款App从提测到上线的具体测试流程一、第一步------------了解上线的各种组合...

简单的web自动化环境安装

简单的web自动化环境安装

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

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

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

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

什么样的项目适合自动化?

什么样的项目适合自动化?

需求稳定,不会频繁变更自动化测试最大的挑战就是需求的变化,而自动化脚本本身就需要修改、扩展、debug,去适应新的功能,如果投入产出比太低,那么自动化测试也失去了其价值和意义;折中的做法是选择相对稳定的模块和功能进行自动化测试,变动较大、需求变更较频繁的部分用手工测试;多平台运行,组合遍历型、大量的...

接口文档

接口文档

一、示例: 1.1:通过登录界面登录百度流程:如上图:我们在界面的登陆框输入正确的用户名和密码,点击登录,登录成功。1.2:程序内部流程:(1)前端发送请求到服务端,(2)服务端收到请求去数据库查数据,发现有这个帐号,密码也正确(3)服务端返回给前端登录成功,以及该帐号下的数据(4)前端解...