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

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

1. TCP三次握手和四次挥手

TCP三次握手的过程如下:

  1. 第一步(SYN):客户端向服务器发送一个带有SYN(同步)标志的TCP包,指示客户端希望建立连接。这个包包含一个随机的初始序列号(ISN)。

  2. 第二步(SYN-ACK):服务器收到客户端的SYN包后,会发送一个带有SYN和ACK(确认)标志的TCP包作为回应。服务器也会为自己选择一个初始序列号,并将客户端的初始序列号加一作为确认号。

  3. 第三步(ACK):客户端收到服务器的SYN-ACK包后,会发送一个带有ACK标志的TCP包作为确认。客户端将服务器的初始序列号加一作为确认号。

TCP四次挥手的过程如下:

  1. 第一步(FIN):当客户端决定关闭连接时,它发送一个带有FIN(结束)标志的TCP包给服务器,表示客户端不再发送数据。

  2. 第二步(ACK):服务器收到客户端的FIN包后,发送一个带有ACK标志的TCP包作为确认。服务器仍然可以发送数据给客户端,因为这个ACK只是确认收到了客户端的FIN。

  3. 第三步(FIN):当服务器也决定关闭连接时,它发送一个带有FIN标志的TCP包给客户端,表示服务器不再发送数据。

  4. 第四步(ACK):客户端收到服务器的FIN包后,发送一个带有ACK标志的TCP包作为确认。这个ACK告诉服务器,客户端已经接收到了服务器的FIN,连接可以安全关闭。

  5.  

2. 为什么TCP需要三次握手而不是二次

  1. 确认双方的发送和接收能力:在进行握手之前,无法确定双方的发送和接收能力是否正常。通过三次握手,客户端和服务器都能确保对方能够接收自己发送的数据。如果只有两次握手,那么无法确认对方是否能够正常接收数据。

  2. 防止已失效的连接请求被接受:考虑这样一种情况,客户端发送了一个连接请求,但由于某种原因在网络中滞留,导致服务器没有收到该请求。如果只有两次握手,那么客户端会以为连接已经建立,但实际上服务器并不知道这个连接,这样会导致资源的浪费。通过三次握手,服务器可以确认客户端的请求是有效的,并避免处理无效的连接请求。

  3. 防止已失效的连接请求被重复打开:考虑这样一种情况,客户端发送了一个连接请求,服务器接收到并发送了确认,但由于网络问题,客户端没有收到服务器的确认。如果只有两次握手,客户端会重新发送连接请求,然后连接就建立了。而实际上,之前的连接请求已经到达服务器并得到了确认,这样就会导致重复打开相同的连接。通过三次握手,可以确保之前的连接已经失效,并避免重复打开连接。

总而言之,通过三次握手,TCP协议能够确保连接的可靠性和一致性,同时避免了因网络问题或延迟而导致的连接建立错误。

3. GET请求和 POST 请求的区别

  1. 数据传输方式:

    • GET请求:通过URL参数传输数据。参数以键值对的形式附加在URL的末尾,例如:http://example.com/path?param1=value1&param2=value2。GET请求将数据作为URL的一部分,因此在请求中可以直接看到传输的数据。
    • POST请求:通过请求体传输数据。数据被封装在请求的消息体中发送给服务器,而不是作为URL的一部分。因此,在请求中无法直接看到传输的数据。
  2. 数据传输安全性:

    • GET请求:由于数据暴露在URL中,因此在传输过程中可能被拦截和截取。这意味着敏感信息(例如密码)不应该以明文形式出现在GET请求的URL中。
    • POST请求:由于数据传输在请求体中,并且在传输过程中不可见,相对来说比GET请求更安全,适合传输敏感信息。
  3. 数据长度限制:

    • GET请求:由于数据通过URL参数传输,URL的长度是有限制的。不同的浏览器和服务器对URL长度的限制不同,但通常存在长度限制,超过限制可能导致截断或请求失败。
    • POST请求:由于数据传输在请求体中,没有明确的长度限制。但是,服务器和应用程序可能有对请求体大小的限制。
  4. 数据语义:

    • GET请求:GET请求通常用于获取资源或从服务器获取数据。它是幂等的,即多次相同的GET请求应该返回相同的结果,不会对服务器产生副作用。
    • POST请求:POST请求通常用于向服务器提交数据,用于创建、更新或修改资源。它可能会对服务器产生副作用,例如在数据库中创建新的记录。
  5. 缓存:

    • GET请求:由于GET请求的幂等性,响应可以被缓存。浏览器或代理服务器可以缓存GET请求的响应,以提高性能和减少网络流量。
    • POST请求:POST请求的响应默认情况下不会被缓存,因为POST请求可能会对服务器产生副作用,每次请求的结果可能不同。

4. 浏览器输入URL处理过程

  1. URL解析:浏览器会解析输入的URL,将其分解成不同的组成部分。这些部分包括协议(如HTTP或HTTPS)、主机名(如example.com)、端口号(如果指定了特定端口,默认为80或443)、路径(如/page)和查询参数(如?param1=value1)等。

  2. DNS解析:浏览器将主机名(例如example.com)发送给DNS(域名系统)服务器,以获取对应的IP地址。DNS服务器会返回一个或多个IP地址,浏览器会选择其中一个作为目标服务器的IP地址。

  3. 建立TCP连接:使用目标服务器的IP地址和指定的端口号,浏览器尝试建立与服务器的TCP连接。这涉及到三次握手过程,确保客户端和服务器之间的可靠连接。

  4. 发起HTTP请求:一旦建立了TCP连接,浏览器会构建HTTP请求消息。该消息包括请求方法(如GET或POST)、路径、查询参数、请求头(如User-Agent、Accept等)和请求体(对于POST请求)。然后,浏览器将该请求消息发送给服务器。

  5. 服务器处理请求:服务器接收到浏览器的请求后,会根据请求的路径和参数执行相应的处理逻辑。这可能涉及到读取文件、调用后端API、查询数据库等操作。

  6. 服务器发送响应:服务器根据请求的处理结果生成HTTP响应消息。响应消息包括状态码(如200表示成功、404表示未找到等)、响应头(如Content-Type、Content-Length等)和响应体(包含实际的数据或HTML内容等)。服务器将响应消息发送回浏览器。

  7. 接收和解析响应:浏览器接收到服务器的响应后,会根据响应头中的信息进行处理。这可能包括处理Cookie、缓存响应、解压缩响应等操作。同时,浏览器会解析响应体中的数据,如HTML内容、CSS样式表、JavaScript代码等。

  8. 渲染页面:一旦浏览器解析完响应体中的HTML、CSS和JavaScript,它会开始渲染页面。这包括将HTML解析为DOM树、应用CSS样式、执行JavaScript代码、加载和显示图像等操作。

  9. 关闭TCP连接:当浏览器完成页面渲染后,它会关闭与服务器的TCP连接。这是通过四次挥手过程完成的,确保双方都知道连接已经关闭。

5. HTTPS 实现原理

HTTPS(HyperText Transfer Protocol Secure)是在传输层上基于TLS/SSL协议的安全版本的HTTP协议。它使用加密和身份验证机制,确保在客户端和服务器之间传输的数据的保密性和完整性。下面是HTTPS的实现原理:

  1. 客户端发起连接请求:当用户在浏览器中输入HTTPS的URL时,浏览器会向服务器发起连接请求。这个请求是通过默认的HTTPS端口(通常为443)发送的。

  2. 服务器证书:服务器在回应客户端的连接请求时,会将自己的公钥和数字证书一起发送给客户端。数字证书是由受信任的证书颁发机构(CA)颁发的,用于验证服务器的身份。

  3. 客户端验证证书:客户端收到服务器的证书后,会验证证书的合法性。它会检查证书的有效性、是否由受信任的CA签发、是否过期等。如果证书验证通过,客户端可以继续与服务器建立安全连接;否则,会出现警告或错误提示。

  4. 客户端生成会话密钥:如果服务器的证书验证通过,客户端会生成一个随机的会话密钥,用于后续的对称加密通信。会话密钥是一个对称密钥,意味着它在客户端和服务器之间共享。

  5. 客户端发送加密请求:客户端会使用服务器的公钥对会话密钥进行加密,然后将加密后的会话密钥发送给服务器。这样,只有服务器能够解密会话密钥,确保了会话密钥的安全传输。

  6. 服务器解密会话密钥:服务器收到客户端发送的加密会话密钥后,使用自己的私钥对其进行解密,恢复得到原始的会话密钥。

  7. 客户端和服务器建立加密通信:客户端和服务器现在都拥有相同的会话密钥,它们使用对称加密算法来加密和解密通过网络传输的数据。这样,客户端和服务器之间的通信就变得安全起来,第三方无法轻易地获取或篡改传输的数据。

通过以上步骤,HTTPS实现了数据的加密和服务器身份的验证。它提供了端到端的安全性,确保敏感信息在传输过程中不被窃取或篡改。同时,HTTPS还可以防止中间人攻击,因为第三方无法轻易地解密和篡改通过SSL/TLS协议加密的数据。

6. 对称加密和非对称加密区别

  1. 密钥数量:

    • 对称加密:对称加密使用相同的密钥进行加密和解密。这意味着加密和解密双方需要共享相同的密钥。因此,对称加密只需要一个密钥。
    • 非对称加密:非对称加密使用一对密钥,分别是公钥和私钥。公钥用于加密数据,私钥用于解密数据。这意味着加密和解密使用的是不同的密钥。因此,非对称加密需要两个密钥。
  2. 加密和解密速度:

    • 对称加密:对称加密算法通常比非对称加密算法更快速和高效,因为加密和解密使用相同的密钥,算法较为简单。
    • 非对称加密:非对称加密算法相对较慢,因为加密和解密使用不同的密钥,算法较为复杂。
  3. 密钥分发:

    • 对称加密:在对称加密中,密钥需要在加密和解密双方之间进行安全地分发。这可能存在安全性问题,因为如果密钥在传输过程中被窃取,加密的数据也将不再安全。
    • 非对称加密:非对称加密中,公钥可以公开分发,而私钥必须保持机密。这样,无需在加密和解密双方之间共享私钥,提供了更好的密钥管理和分发的安全性。
  4. 安全性:文章来源地址https://www.toymoban.com/news/detail-710472.html

    • 对称加密:对称加密算法在加密和解密过程中使用相同的密钥,因此,如果密钥被泄露,加密的数据将容易受到攻击。对称加密的安全性依赖于密钥的保密性。
    • 非对称加密:非对称加密使用不同的密钥进行加密和解密,并且私钥必须保持机密。即使公钥被泄露,攻击者也无法轻易获取私钥,因此非对称加密提供了更高的安全性。

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

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

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

相关文章

  • 2023届计算机保研面试基础专业问题(数据结构、算法、计算机语言、计算机网络、数据库、操作系统、数学)

    以下的专业相关基础问题,是在2022年暑期准备面试过程中,断断续续准备的,最终上岸厦大啦,也希望这些内容对后面准备保研的学弟学妹们有帮助。少即是多、快即是慢,希望大家也不必太焦虑,慢慢来比较快! 堆、栈、队列、链表等数据结构 树:红黑树、二叉树的各类

    2024年02月15日
    浏览(56)
  • 计算机网络第二章(谢希仁)

    解决问题: 在各种线路上如何传送比特流 主要任务:确定与传输媒体的接口的一些特性。( 传输媒体不是指的是具体的传输媒体 ) 主要如下: 1. 典型的数据通信模型 2. 相关术语 通信的目的是传送消息。 数据:运送消息的实体( 也就是说的有意义的符号序列 ) 信号:数据的电

    2024年01月16日
    浏览(44)
  • 第二章 物理层【计算机网络】

    2023-7-7 16:07:57 以下内容源自《【计算机网络】》 仅供学习交流使用 第一章 计算机网络概述【计算机网络】 计算机网络(第8版) 谢希仁 编著 透明地传输比特流 2.2.1 数据通信系统的模型 2.2.2有关信道的几个基本概念 单工、半双工、全双工 2.2.3 信道的极限容量 奈氏准则、香

    2024年02月13日
    浏览(41)
  • 计算机网络|第二章:应用层

    分层体系结构回顾 在本章中,我们学习有关网络应用的原理和实现方面的知识。 我们从定义关键的应用层概念开始,其中包括应用程序所需要的网络服务、客户和服务器、进程和运输层接口。 详细考察几种网络应用程序,包括Web、电子邮件、DNS、对等文件分发和视频流。

    2024年02月01日
    浏览(47)
  • 【计算机网络】第二章 应用层 3

    Email 应用的特性 异步 应用,方便用户 提 供 一对多 通信 价格低廉   主要包含 : o 用户代理 (user agents,UA) o 邮件服务器 (mail servers) o 邮件传输协议: SMTP o 邮件访问协议: POP3 或 IMAP 用户代理 o 客户端程序 o 提 供编辑、发送、显示邮件和邮件发送情况报告等功能 邮件服务器

    2023年04月09日
    浏览(34)
  • 【计算机网络笔记】第二章物理层

    ①机械特性:接口是怎样的(接口所用接线器的形状和尺寸,引脚数目和排列,固定和锁定装置等)。 ②电气特性:用多少的电 ③功能特性:线路上电平电压的特性 ④过程特性:实现不同功能所发射信号的顺序 (P42) ①模拟信号:代表消息的参数的取值是连续的,特定频

    2024年02月14日
    浏览(40)
  • 【王道·计算机网络】第二章 物理层

    1.1 物理层接口特性 物理层解决如何在连接各种计算机的传输媒体上 传输比特流 ,不指定具体的传输媒体 主要任务:确定与传输媒体接口有关的一些特性 → 定义标准 接口特性: 机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数

    2024年02月04日
    浏览(57)
  • 计算机网络-笔记-第二章-物理层

    一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 二、第二章——物理层 1、物理层的基本概念 2、物理层下面的传输媒体 (1)光纤、同轴电缆、双绞线、电力线【导

    2024年02月11日
    浏览(45)
  • 计算机网络第二章——物理层(上)

    提示:男儿何不带吴钩,收取关山五十州 奈氏准则和香农定理都是用来求信道极限的数据传输速率的,区别就是所处的背景环境不同,编码是把数据调成数字信号的过程,调制是调成模拟信号的过程,因为根据信道的不同,信号形式应该也要有不同,需要在发送信息之前,先

    2024年02月07日
    浏览(59)
  • 计算机网络第二章(谢希仁第八版)

    作者:爱塔居 专栏:计算机网络 作者简介:大三学生,希望和大家一起进步 文章目录 目录 文章目录 前言 一、物理层的基本概念 1.1 物理层协议的主要任务 1.2 传输媒体(了解) 二、传输方式 2.1 串行传输和并行传输 2.2 同步传输和异步传输 2.3 单向通信(单工)、双向交替

    2024年02月04日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包