哈喽大家好,我是chowley,QALog创始人,测试开发工程师
这次的测试八股系列专栏由我来主写,给大家带来亿点点硬货,我总结了市面上主流的测试计网八股,今天是系列的第一篇,废话少说直接开整!
Q1:介绍一下OSI七层模型、每层的作用
从下往上:
- 物理层(Physical Layer):负责在物理媒介上透明的传输原始比特流,确保比特流能够在通信媒介上稳定、可靠地传输,而不对传输的数据进行任何形式的处理,主要关注数据的传输速率、电压等物理特性。
- 数据链路层(Data Link Layer):处理节点之间的数据帧传输,确保在通信实体之间可靠地传输数据。
它有两个特性:
(1)帧编码的目的是为了确保数据能够正确地在物理媒介上传输,并且接收端能够正确地解码和处理接收到的数据。
(2)误差纠正控制通过在数据帧中添加冗余信息(如校验位、奇偶校验等)来检测和纠正这些错误,从而提高数据传输的可靠性和准确性。 - 网络层(Network Layer):负责数据包的路由和转发,实现不同网络之间的通信,如 IP 协议就在这一层工作。
路由算法可以分为静态路由和动态路由两种类型:
(1)静态路由(Static Routing):管理员手动配置路由表,指定每个目标网络的下一跳路由器。这种方式适用于网络拓扑结构稳定的情况,但不适合大型或动态网络。
(2)动态路由(Dynamic Routing):路由器之间通过路由协议(如RIP、OSPF、BGP等)交换路由信息,根据网络状态动态调整路由表。动态路由能够自适应网络变化,适用于大型复杂网络。 - 传输层(Transport Layer):提供端到端的数据传输服务,负责数据的可靠传输和流量控制,如 TCP 协议。
- 会话层(Session Layer):负责建立、管理和终止会话,为应用程序之间的通信提供服务。保证了通信的可靠性和有效性,使得不同终端的程序之间能够进行有效的数据交换。
- 表示层(Presentation Layer):处理数据的表示格式,确保一个系统的应用层数据可以被另一个系统理解。涉及到编解码、加密解密、压缩解压缩等。
- 应用层(Application Layer):为用户提供应用服务,是用户直接接触的网络层,常见的应用有 HTTP、FTP、SMTP 等。
OSI层级按照功能划分,每一层都有特定的任务和责任,层级之间协同工作以实现用户数据的传输和通信。
Q2:讲一下计网中常用的协议有哪些?
计算机网络中常用的协议有很多,主要用于不同层次的通信。以下是一些常见的协议:
-
物理层:主要协议有 RS-232、RS-485、Ethernet 等,用于在物理媒介上传输比特流。
-
数据链路层:主要协议有以太网(Ethernet)、PPP(Point-to-Point Protocol)、HDLC(High-Level Data Link Control)等,用于在直接相连的节点之间传输数据帧。
-
网络层:主要协议有 IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)等,用于在不同网络之间传输数据包,并处理数据包的路由和转发。
-
传输层:主要协议有 TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)等,用于在端到端的通信中提供可靠的数据传输服务。
-
应用层:主要协议有 HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等,用于不同应用之间的数据交换和通信。
这些协议在计算机网络中起着至关重要的作用,通过协议规定了数据的传输格式、通信规则和传输方式,保证了网络通信的正常进行。
Q3:TCP/IP模型呢?
TCP/IP 模型是一个将网络通信划分为四个层次的参考模型,与 OSI 模型类似,但具有更简单的结构。它包括以下四层:
-
应用层(Application Layer):提供用户应用程序间的通信。包括 HTTP、FTP、SMTP 等协议。
-
传输层(Transport Layer):负责端到端的通信。包括 TCP 和 UDP 协议。
-
网络层(Internet Layer):负责将数据包从源主机传输到目的主机。包括 IP、ICMP、ARP 等协议。
-
链路层(Link Layer):负责将数据帧从一个节点传输到相邻节点。包括以太网、PPP 等协议。
TCP/IP 模型中的每一层都有特定的功能和责任,协同工作以实现网络通信。与 OSI 模型不同,TCP/IP 模型将会话层、表示层和物理层的功能合并到了应用层和链路层中,使得模型结构更简单、更实用。
Q4:说一下HTTP和HTTPS的区别
HTTP(HyperText Transfer Protocol)和 HTTPS(HTTP Secure)是用于传输数据的两种协议,它们之间的主要区别在于安全性和加密方式:
-
安全性:HTTP 是一种不安全的协议,数据传输是明文的,容易被窃听和篡改。而 HTTPS 则通过 SSL/TLS 协议加密数据传输,运行在TCP上,提供了更高的安全性,能够有效防止数据被窃听和篡改。
-
加密方式:HTTPS 使用 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议来加密数据传输。SSL/TLS 使用公钥加密和私钥解密的方式,保证数据在传输过程中的机密性和完整性。
-
端口号:HTTP 默认使用端口 80 进行通信,而 HTTPS 默认使用端口 443。
-
URL 形式:HTTP 的 URL 以 "http://" 开头,而 HTTPS 的 URL 以 "https://" 开头。
总的来说,HTTPS 比 HTTP 更安全,适用于对数据传输安全性要求较高的场景,如网上支付、用户登录等。
Q5:介绍一下HTTP状态码
HTTP 状态码是服务器向客户端返回的一个三位数字代码,用于表示服务器对请求的处理结果。常见的 HTTP 状态码有以下几类:
-
1xx(信息性状态码):表示请求已被接收,继续处理。
-
2xx(成功状态码):表示请求已成功被服务器接收、理解、并接受。
- 200 OK:请求成功。常用于 GET 和 POST 请求。
-
3xx(重定向状态码):表示需要客户端进一步的操作才能完成请求。
- 301 Moved Permanently:永久重定向,请求的资源已被永久移到新位置。
- 302 Found:临时重定向,请求的资源已被临时移到新位置。
-
4xx(客户端错误状态码):表示客户端发出的请求有错误。
- 400 Bad Request:客户端请求的语法错误,服务器无法理解。
- 401 Unauthorized:请求要求用户的身份认证。
- 403 Forbidden:服务器理解请求客户端的请求,但是拒绝执行此请求。
- 404 Not Found:服务器无法找到请求的资源。
-
5xx(服务器错误状态码):表示服务器在处理请求时发生了错误。
- 500 Internal Server Error:服务器遇到了一个未曾预料的状况,导致无法完成对请求的处理。
- 503 Service Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
HTTP 状态码可以帮助开发人员快速定位和解决网络请求中出现的问题,对于调试和排查网络请求错误非常有用。
总结
上面的五个问题相信大家都听说过,基本上是计网的必备内容,可以关注我,下篇随后更新!
好了,以上就是本文的全部内容,如有问题可留言讨论。
本人正在组建校招测试开发方向的交流社区,如果您对测试求职方面感兴趣,欢迎加入了解。
我是chowley,一个专注互联网技术和产品质量保障领域的博主,我们下次再见!
欢迎点赞、评论、收藏,it's important for me.
Searching for QALog.