测试开发面试题--计算机网络篇

1. OSI模型和TCP/IP模型

OSI模型:

  • 物理层(Physical Layer):负责比特流的传输,包括电缆、接头、电信号等物理介质。
  • 数据链路层(Data Link Layer):负责帧的传输,处理错误检测和纠正,常见协议有以太网(Ethernet)。
  • 网络层(Network Layer):负责分组的传输和路由选择,常见协议有IP。
  • 传输层(Transport Layer):负责端到端的数据传输,常见协议有TCP和UDP。
  • 会话层(Session Layer):负责建立、管理和终止会话。
  • 表示层(Presentation Layer):负责数据的表示、加密和解密。
  • 应用层(Application Layer):为应用程序提供网络服务,常见协议有HTTP、FTP、SMTP等。

TCP/IP模型:

  • 网络接口层(Network Interface Layer):对应于OSI的物理层和数据链路层。
  • 网络层(Internet Layer):对应于OSI的网络层,主要协议是IP。
  • 传输层(Transport Layer):对应于OSI的传输层,主要协议是TCP和UDP。
  • 应用层(Application Layer):对应于OSI的会话层、表示层和应用层,常见协议有HTTP、FTP、SMTP等。

2. TCP和UDP的区别

TCP(Transmission Control Protocol):

  • 面向连接的协议
  • 提供可靠的数据传输。
  • 进行流量控制和拥塞控制。
  • 传输顺序保证
  • 使用三次握手建立连接,四次挥手断开连接

UDP(User Datagram Protocol):

  • 无连接的协议
  • 提供不可靠的数据传输。
  • 不进行流量控制和拥塞控制。
  • 不保证传输顺序
  • 适用于需要快速传输和低延迟的场景,如视频流和在线游戏。

3. 什么是DNS?DNS解析的过程是怎样的?

DNS(Domain Name System):DNS是用于将域名转换为IP地址的系统,使用户能够通过易记的域名访问网站而不是IP地址。

DNS解析过程:

  1. 用户在浏览器中输入域名,DNS查询请求被发送到本地DNS服务器。
  2. 本地DNS服务器检查缓存是否有该域名的IP地址。
  3. 如果缓存没有,本地DNS服务器将查询请求发送到根DNS服务器。
  4. 根DNS服务器返回顶级域(如.com)的权威DNS服务器地址。
  5. 本地DNS服务器向顶级域权威DNS服务器发送查询请求。
  6. 顶级域权威DNS服务器返回目标域的权威DNS服务器地址。
  7. 本地DNS服务器向目标域的权威DNS服务器发送查询请求。
  8. 目标域权威DNS服务器返回对应的IP地址。
  9. 本地DNS服务器缓存该IP地址,并返回给用户的浏览器。
  10. 浏览器使用该IP地址访问目标网站。

举例说明

	1、首先在打开浏览器以后,比如输入http://www.xzx.cn的域名,它首先是由浏览器发起一个DNS解析请求,如果本地缓存服务器中找不到结果,则首先会向根服务器查询,根服务器里面记
	
	录的都是各个顶级域所在的服务器的位置,当向根请求http://www.xzx.cn的时候,根服务器就会返回.cn服务器的位置信息。
	
	2、递归服务器拿到.cn的权威服务器地址以后,就会寻问cn的权威服务器,知不知道xzx.cn的位置。这个时候cn权威服务器查找并返回http://xzx.cn服务器的地址。
	
	3、继续向http://xzx.cn的权威服务器去查询这个地址,由http://xzx.cn的服务器给出了地址:202.173.11.10
	
	4、最终才能进行http的链接,顺利访问网站。
	
	5、一旦递归服务器拿到解析记录以后,就会在本地进行缓存,如果下次客户端再请求本地的递归域名服务器相同域名的时候,就不会再这样一层一层查了,因为本地服务器里面已经有缓存

4. HTTP和HTTPS的区别。

  • HTTP(HyperText Transfer
    Protocol):是一种无状态的协议,用于在Web浏览器和Web服务器之间传输超文本数据。HTTP传输的数据未加密。
  • HTTPS(HyperText Transfer Protocol
    Secure):是HTTP的安全版本,通过SSL/TLS协议对数据进行加密。HTTPS确保数据在传输过程中保密性、完整性和真实性。

5. 什么是三次握手和四次挥手?

三次握手:用于建立TCP连接的过程。

  • SYN:客户端发送一个SYN(同步序列编号)包给服务器,表示请求建立连接。
  • SYN-ACK:服务器接收到SYN包后,返回一个SYN-ACK包,表示同意建立连接,并向客户端确认同步序列编号。
  • ACK:客户端接收到SYN-ACK包后,发送一个ACK(确认)包,表示连接建立成功。

四次挥手:用于断开TCP连接的过程。

  • FIN:客户端发送一个FIN(结束)包,表示请求断开连接。
  • ACK:服务器接收到FIN包后,发送一个ACK包,表示确认断开请求。
  • FIN:服务器发送一个FIN包,表示准备断开连接。
  • ACK:客户端接收到FIN包后,发送一个ACK包,表示连接断开。

6. 负载均衡的概念及其实现方式。

负载均衡是一种技术,用于分配网络流量或计算任务到多个服务器,以提高系统的性能和可靠性。常见的负载均衡实现方式包括:

  • DNS负载均衡:通过DNS服务器将域名解析到不同的IP地址,分配请求到多个服务器。
  • 硬件负载均衡:使用专用的负载均衡设备进行流量分配。
  • 软件负载均衡:使用软件如Nginx、HAProxy等进行流量分配。
  • 轮询(Round Robin):按顺序将请求分配给服务器。
  • 加权轮询(Weighted Round Robin):根据服务器的权重进行请求分配。
  • 最小连接数:将请求分配给当前连接数最少的服务器。

相关推荐

  1. 测试开发面试--计算机网络

    2024-06-07 07:22:02       10 阅读
  2. 计算机网络-面试

    2024-06-07 07:22:02       31 阅读
  3. 计算机网络面试

    2024-06-07 07:22:02       17 阅读
  4. 计算机网络测试

    2024-06-07 07:22:02       33 阅读
  5. 计算机网络、浏览器面试

    2024-06-07 07:22:02       29 阅读
  6. 一些计算机网络面试

    2024-06-07 07:22:02       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 07:22:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 07:22:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 07:22:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 07:22:02       18 阅读

热门阅读

  1. 门诊住院处方

    2024-06-07 07:22:02       9 阅读
  2. ios 获取图片的一部分区域

    2024-06-07 07:22:02       8 阅读
  3. MYSQL服务器系统变量的使用

    2024-06-07 07:22:02       7 阅读
  4. 深度学习 - 构建神经网络

    2024-06-07 07:22:02       8 阅读
  5. 删除MongoDB索引和缓存问题

    2024-06-07 07:22:02       8 阅读
  6. [Unity]播放音频卡顿问题

    2024-06-07 07:22:02       10 阅读
  7. iOS 实现蓝牙设备重连的四种方式

    2024-06-07 07:22:02       6 阅读
  8. Git常用指令

    2024-06-07 07:22:02       7 阅读