计算机网络 基础面试第三弹

这篇具有很好参考价值的文章主要介绍了计算机网络 基础面试第三弹。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. http的长连接和短连接

  1. 短连接:
    短连接是指每次客户端请求与服务器响应完成后,连接就会关闭。也就是说,每次请求都需要重新建立连接,完成一次请求后立即关闭连接。这意味着每个HTTP请求都需要经历连接建立、数据传输和连接关闭的过程。

短连接的特点包括:

  • 每个请求都需要建立和关闭连接,增加了网络开销和延迟。
  • 服务器需要为每个请求分配资源,包括建立和销毁连接的开销。
  • 适用于一次性请求和响应较少的场景,如简单的网页浏览。
  1. 长连接(Keep-Alive):
    长连接是指客户端和服务器之间建立一次连接后,可以在该连接上发送多个请求和响应。在长连接中,连接在完成一次请求和响应后不会立即关闭,而是保持打开状态,以便后续的请求和响应可以在同一个连接上进行。

长连接的特点包括:

  • 避免了频繁建立和关闭连接的开销,减少了网络延迟。
  • 同一个连接上可以发送多个请求和接收多个响应,提高了性能和效率。
  • 需要服务器和客户端都支持长连接,否则会被当作短连接处理。

在HTTP/1.0中,短连接是默认的连接方式,每次请求都会建立新的连接。而在HTTP/1.1及以后的版本中,长连接成为默认的连接方式,可以在请求头中使用"Connection: keep-alive"来指定使用长连接

2. RPC协议和 Http协议区别

  1. 抽象层次:
  • RPC协议:RPC协议是一种更高层次的协议,它允许应用程序之间进行远程过程调用。在RPC中,客户端可以像调用本地函数一样调用远程服务器上的函数,而无需了解底层的通信细节。
  • HTTP协议:HTTP协议是一种应用层协议,用于在客户端和服务器之间传输超文本数据。它是一种无状态的协议,客户端通过发送请求,服务器通过发送响应来完成通信。
  1. 数据格式:
  • RPC协议:RPC协议通常使用二进制格式对数据进行编码和传输。这种格式效率较高,可以减少数据大小和传输时间。常见的RPC协议包括 gRPC、Thrift等。
  • HTTP协议:HTTP协议使用文本格式进行数据编码和传输,常见的格式是JSON、XML或表单数据。文本格式易于阅读和调试,但相对于二进制格式来说,占用更多的网络带宽和传输时间。
  1. 通信方式:
  • RPC协议:RPC协议通常采用双向通信方式,客户端发起请求,服务器返回响应。客户端和服务器之间可以进行双向数据传输,从而支持更复杂的通信模式。
  • HTTP协议:HTTP协议通常采用客户端-服务器模式,客户端向服务器发送请求,服务器返回响应。在标准的HTTP中,服务器不能主动向客户端发送数据,需要客户端主动发送请求。
  1. 应用场景:
  • RPC协议:RPC协议通常用于构建分布式系统和服务间的通信。它可以用于跨语言和跨平台的通信,支持高性能和高并发的请求处理。RPC协议在微服务架构中被广泛应用。
  • HTTP协议:HTTP协议通常用于Web应用程序的通信。它是基于互联网的标准协议,用于在客户端和服务器之间传输超文本数据。HTTP协议广泛用于Web浏览器和服务器之间的通信,支持传输各种类型的内容。

3. Socket 创建客户端和服务器的交互步骤

  1. 服务器端创建Socket:

    • 服务器应用程序首先创建一个服务器Socket对象,绑定到特定的IP地址和端口号上。
    • 使用socket()函数创建Socket对象,并使用bind()函数将其绑定到服务器的IP地址和端口号上。
  2. 服务器端监听连接请求:

    • 服务器Socket对象调用listen()函数开始监听来自客户端的连接请求。
    • 服务器处于等待连接的状态,等待客户端发起连接请求。
  3. 客户端创建Socket并连接到服务器:

    • 客户端应用程序创建一个客户端Socket对象。
    • 使用socket()函数创建Socket对象。
    • 使用connect()函数将客户端Socket连接到服务器的IP地址和端口号。
  4. 服务器端接受连接请求:

    • 服务器Socket对象调用accept()函数接受客户端的连接请求。
    • 当客户端发起连接请求时,服务器调用accept()函数接受连接,并创建一个新的Socket对象来处理与该客户端的通信。
  5. 客户端和服务器进行数据交换:

    • 客户端和服务器之间可以使用send()recv()等函数进行数据交换。
    • 客户端使用send()函数将数据发送给服务器。
    • 服务器使用recv()函数接收客户端发送的数据。
    • 服务器使用send()函数将响应数据发送给客户端。
    • 客户端使用recv()函数接收服务器发送的响应数据。
  6. 关闭连接:

    • 当通信结束后,客户端和服务器都可以调用close()函数关闭Socket连接。

代码示例:

import socket

# 创建服务器Socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定IP地址和端口号
server_address = ('localhost', 8888)
server_socket.bind(server_address)

# 监听连接请求
server_socket.listen(1)
print('服务器已启动,等待连接...')

# 接受客户端连接
client_socket, client_address = server_socket.accept()
print('客户端已连接:', client_address)

# 接收客户端发送的数据
data = client_socket.recv(1024)
print('接收到的数据:', data.decode())

# 发送响应数据给客户端
response = 'Hello, client!'
client_socket.send(response.encode())

# 关闭连接
client_socket.close()
server_socket.close()  

4. 路由器和交换机分别在OSI 7层模型中的哪一层

路由器位于OSI模型的第三层,即网络层。它在网络层上操作,负责根据目标IP地址进行数据包的转发和路由选择,以便将数据包从源主机发送到目标主机,跨越不同的网络。路由器通过查看数据包的目标IP地址和路由表来做出转发决策,以保证数据包的正确传递。

交换机位于OSI模型的第二层,即数据链路层。它在数据链路层上操作,主要负责局域网内部的数据帧转发和交换。交换机根据数据帧中的目标MAC地址,通过学习和维护交换表(也称为MAC表)来决定将数据帧转发到哪个端口,以实现局域网内部的高效通信。

5. 正向代理与反向代理

正向代理

正向代理是位于客户端和目标服务器之间的代理服务器。当客户端发送请求时,请求首先被发送到正向代理服务器,然后由代理服务器转发请求到目标服务器,并将目标服务器的响应返回给客户端。客户端通常不直接与目标服务器通信,而是通过正向代理服务器中转。

正向代理的主要功能如下:

隐藏客户端的真实IP地址,提供匿名性。

访问受限资源:通过正向代理可以绕过网络访问限制,访问被封锁的资源。

缓存:代理服务器可以缓存目标服务器的响应,提高客户端的访问速度。

安全性:代理服务器可以提供额外的安全层,例如过滤恶意请求或实施访问控制策略。

示例应用场景:企业内部部署的代理服务器,员工通过该代理服务器访问互联网资源。

反向代理:

反向代理是位于目标服务器和客户端之间的代理服务器。当客户端发送请求时,请求首先被发送到反向代理服务器,然后由代理服务器根据负载均衡算法和路由规则将请求转发到后端的目标服务器,最后将目标服务器的响应返回给客户端。客户端感知不到目标服务器的存在,只与反向代理服务器进行通信。

反向代理的主要功能如下:

负载均衡:反向代理可以根据负载均衡算法将请求分发到多个后端服务器,提高系统的性能和可扩展性。

缓存:反向代理可以缓存目标服务器的响应,减轻后端服务器的负载,提高响应速度。

安全性:反向代理可以作为防火墙,保护后端服务器免受恶意请求的攻击。

SSL加密:反向代理可以提供SSL终端,对客户端和后端服务器之间的通信进行加密。

示例应用场景:Web应用程序的负载均衡和高可用性部署,客户端通过反向代理访问后端多个服务器。

6. TCP 协议如何提高传输效率

    1. 滑动窗口(Sliding Window):
      TCP使用滑动窗口机制来控制发送方和接收方之间的数据流量。发送方根据接收方的确认信息和网络状况调整发送窗口的大小,以便在不引起网络拥塞的情况下提高传输效率。较大的窗口大小允许发送方在等待确认之前发送更多的数据。

    2. 拥塞控制(Congestion Control):
      TCP拥塞控制机制用于避免网络拥塞。它通过监测网络的拥塞状况并相应地调整发送速率来保证网络的稳定性和公平性。拥塞控制算法包括慢启动、拥塞避免和快重传等,它们在不同的情况下调整发送方的发送速率,以防止数据包丢失和网络拥塞。

    3. 带宽延迟积(Bandwidth-Delay Product):
      TCP利用带宽延迟积来确定合适的窗口大小。带宽延迟积是指在网络中发送方和接收方之间的链路上可以容纳的未确认数据量。通过设置合适的窗口大小,TCP可以充分利用网络的带宽资源,提高传输效率。

    4. 选择性重传(Selective Retransmission):
      当TCP检测到丢失的数据包时,它会选择性地重传丢失的数据包,而不是重新发送整个窗口的数据。这样可以减少不必要的重传和网络带宽的浪费,提高传输效率。

    5. Nagle算法:
      Nagle算法用于减少小数据包的发送次数,从而提高网络的利用率。该算法将多个小数据包合并成一个较大的数据包进行发送,以减少网络开销和传输延迟。

    6. TCP/IP堆栈优化:
      操作系统和网络设备可以对TCP/IP协议栈进行优化,包括TCP缓冲区大小的调整、快速重传和快速恢复机制的实现、延迟确认等,以提高TCP的传输效率和性能。文章来源地址https://www.toymoban.com/news/detail-710773.html

到了这里,关于计算机网络 基础面试第三弹的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络---第三天

                                                        OSI参考模型与TCP/IP模型 背景:①兼容性较差,接口不统一            ②不利于排错与维护            ③设备成本高 概念:OSI参考模型定义了网络中设备所遵守的层次结构 优点:①开放的

    2024年04月13日
    浏览(37)
  • 【计算机网络 - 第三章】运输层

    目录 一、多路复用和多路分解 1、运输层端口号 2、概述 3、原理  1、无连接的多路复用与多路分解 - UDP 2、面向连接的多路复用与多路分解 - TCP 二、无连接运输——UDP用户数据报协议 1、UDP概述 2、UDP的优点 三、可靠数据传输原理 1、概述 2、rdt1.0——可靠信道上的可信数据

    2024年02月11日
    浏览(52)
  • [计算机网络]第三章——传输层

    仅供交流,请勿转载,侵权必删,写作业时请勿直接抄袭 传输层协议为运行在不同主机上的 应用进程之间 提供了 逻辑通信( logic communication) 功能。从应用程序的角度看,通过逻辑通信,运行不同进程的主机好像直接相连一样;实际上,这些主机也许位于地球的两侧,通过很多

    2023年04月08日
    浏览(46)
  • 第三章 数据链路层【计算机网络】

    2023-7-7 16:29:11 以下内容源自《【计算机网络】》 仅供学习交流使用 第二章 物理层【计算机网络】 计算机网络(第8版) 谢希仁 编著 3.1.1 数据链路和帧 3.1.2 三个基本问题 数据链路层协议有许多种,但有A个基本问题是: 封装成帧、透明传输和差错检测 。下面分别讨论这三个

    2024年02月13日
    浏览(50)
  • 计算机网络第三章问答题

    答:(1)以太网交换机实质上就是一个 多接口的网桥 。 每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都 工作在全双工方式 。 以太网交换机具有 并行性 。 相互通信的主机都是独占传输媒体,无碰撞地传输数据 以太网交换机的 接口有存储器 ,能在

    2024年02月20日
    浏览(58)
  • 计算机网络第三章——数据链路层(中)

    数声风笛离亭晚,君向潇湘我向秦 主要任务:为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输 介质访问控制(Medium Access Control,MAC)子层: 用来决定广播信道中信道分配 总线型和星型都是广播式通信,看一下目的地址是否是本主机,若是

    2024年02月09日
    浏览(53)
  • 计算机网络第三章——数据链路层(上)

    提示:节物风光不相待。桑田碧海须臾改 这一章主要学习数据链路层的功能和应用, 功能中最主要的也是最重要的就是封装成帧和透明传输 ,封装成帧就是帮我过滤一下物理层,这里就是将物理层的几个bit封装成帧, 帧就是数据链路层的传输单位或者说是传输单元 ,透明

    2024年02月08日
    浏览(55)
  • 计算机网络-笔记-第三章-数据链路层

    一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 三、第三章——数据链路层 1、数据链路层概述(帧) (1)封装成帧、差错检测、可靠传输(简单介绍) (2)CS

    2024年02月10日
    浏览(56)
  • 计算机网络第三章——数据链路层(下)

    提示:任何命运无论多么复杂,都只是反映在一瞬间 局域网也有无线局域网, 局域网的特性主要由三个要素决定:拓扑结构、传输介质,介质访问控制方式,最重要的是介质访问控制方式,它决定着局域网的技术特性 我们日常生活中局域网主要是使用总线型这种结构,若是中

    2024年02月09日
    浏览(57)
  • 计算机网络第三节物理层

    目录 一,第二章  物理层(数据通信有关) 1.物理层引入的目的 2.物理层如何实现屏蔽 二,物理层引入的数据通信基础 1.通信模型 2.通信模型中的技术术语 三,数据通信的基础知识 1,数据通信模型 2,数据通信的基本概念 四,信道传输容量及速率 五,传输介质 1)导向性

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包