资讯详情

面试招聘——计算机网络专场(一)

目录

  • 握手三次,挥手四次
  • TCP 如何保证可靠的传输
  • CRC 循环校验算法
  • 如何使用 UDP 实现可靠传输
  • HTTPs 与 HTTP
    • HTTP连接管理
    • HTTPS 与 HTTP的区别
    • HTTPS 为什么客户端信任第三方证书?
  • HTTP 方法
    • HTTP 请求/响应步骤:
    • HTTP请求消息Response
    • HTTP 异常状态码
    • GET与POST
    • HTTP 场景长连接短连接
  • ARP 攻击
    • ARP协议
    • ARP攻击的发现
    • ARP攻击过程
    • ARP攻击的防护
  • NAT 原理
    • NAT是什么
    • NAT分类
    • NAT原理
    • NAT应用
    • NAT缺陷
  • DNS 服务器与提供内容的服务器的区别
  • DNS 劫持的原则和实现
  • 对称加密和非对称加密的区别是什么
  • AES 的过程
  • 什么是安全攻击?
  • DDOS 什么,如何预防
    • DDOS攻击过程和目标
    • DDOS解决方案

握手三次,挥手四次

三次握手 ??所谓三次握手TCP建立连接。一方接必须由一方主动打开,另一方被动打开。以下是客户主动发起连接的图表: 在这里插入图片描述

??握手前主动打开连接的客户端CLOSED阶段,被动打开的服务器端也结束CLOSED并进入阶段LISTEN阶段。然后开始三次握手:

  • :首先,客户端将一段时间发送到服务器端TCP其中: 标记位为SYN,表示要求建立新的连接; 序号为Seq=X;初始化序号ISN动态随机; 然后客户端进入SYN-SENT阶段。
  • :服务器端从客户端接收服务器端TCP报文结束后,结束LISTEN阶段。回到一段TCP其中: 标志位为SYN和ACK,表示“确认客户端的报文Seq序号有效,服务器可以正常接收客户端发送的数据,并同意创建新的连接 序号为Seq=y; 确认号为Ack=x 1.表示收到客户端的序号Seq并将其值加1作为自己的确认号Ack服务器端进入SYN-RCVD阶段。
  • :客户端接收到来自服务器端的确认收到数据的TCP报告结束后,从客户端到服务器的数据传输是正常的SYN-SENT回到最后一段。TCP其中: 标志位为ACK,表示“确认收到服务器端同意连接的信号”(即告诉服务器,我知道你收到我发的数据了); 序号为Seq=x 1.表示收到服务器端的确认号Ack,并将其值作为自己的序号值; 确认号为Ack=y 1.表示收到服务器端号Seq,并将其值加1作为自己的确认号Ack的值; 然后客户端进入ESTABLISHED阶段。 服务器从客户端收到确认服务器数据TCP从服务器到客户端的数据传输是正常的。SYN-SENT阶段,进入ESTABLISHED阶段。

??传输到客户端和服务器端TCP报文中,双方确认号Ack和序号Seq所有的值对方Ack和Seq在计算值的基础上,这确保了TCP报纸传输的连贯性。一旦出现一方发出的信息TCP如果报纸丢失,就不能继续"握手",以此确保了"三次握手"顺利完成。 Q:为什么握手三次? ??为了防止服务器端打开一些无用的连接,增加服务器成本,防止故障的连接请求报告段突然传输到服务端,导致错误。

??由于网络传输延迟(通过网络光纤和各种中间代理服务器),在传输过程中,如客户端发起SYN=创建连接请求(第一次握手)。如果服务器端直接创建此连接并返回包含SYN、ACK和Seq等内容的数据包给客户端,这个数据包因为网络传输的原因丢失了,丢失之后客户端就一直没有接收到服务器返回的数据包。

??客户端可能会设置一个超时间,并关闭连接创建的请求。然后发出创建连接的请求,但服务器端不知道。如果服务器端客户端没有第三次握手告诉服务器端传输到服务器端的数据,服务器端不知道客户端是否收到服务器端返回的信息。这个过程可以理解为: ??这样,如果没有要求创建或关闭服务器端口,服务器端口将始终打开。当客户端因加班而重新发出请求时,服务器将重新打开端口连接。然后,服务器端上未收到请求数据的最后一个端口将始终打开。从长远来看,如果有更多这样的端口,将严重浪费服务器端的费用。

??另一种情况是无效客户端发送的请求信息,由于某种原因传输到服务器端,服务器端认为是客户端发送的有效请求,接收后出现错误。

??因此,我们需要第三次握手来确认这个过程,这样客户端和服务器端就可以及时检测到网络等问题导致的连接创建失败,从而关闭服务器端的端口,减少服务器成本,接收失败请求的错误。

四次挥手 那TCP 四次挥手是为了确保通信双方关闭连接,具体流程如下:

1)客户端 A 发送一个 FIN,关闭客户 A 到服务器 B 数据传输; 2)服务器 B 收到这个 FIN,它发回一个 ACK,确认序号是收到的序号 1。和 SYN 一样,一个 FIN 占用一个序号; 3)服务器 B 关闭客户端 A 发送一个连接 FIN 给客户端 A; 4)客户端 A 发回 ACK 确认报纸,并将确认序号设置为接收序号 1。 Q:为什么连接协议是三次握手,而关闭连接是四次握手?

??这是因为服务端 LISTEN 状态下的 SOCKET 当收到 SYN 报文建连请求后,可以使用 ACK 和 SYN(ACK 和 SYN 起同步作用)放在报纸上发送。但关闭连接时,收到对方时 FIN 报告通知时,只是说对方没有数据发送给你,但是,因此,您不能立即关闭连接,也就是说,您可能需要将传输过程中的数据传输给另一方,或者在发送之前,您仍然需要将一些数据传输给另一方(然后关闭连接)FIN 对方同意现在可以关闭连接,所以它在这里 ACK 报文和 FIN 在大多数情况下,报纸是分开发送的。

Q:为什么客户端在?TIME_WAIT 状态还需要等待 2MSL回来之前 CLOSED 状态?

??;当客户端发出最后一个ACK在确认报文时,服务器端无法确定能够收到该报文。因此,客户端正在发送ACK确认报纸后,将设置2个时间MSL的计时器。MSL指的是Maximum Segment Lifetime:一段TCP报纸在传输过程中的最大生命周期。2MSL即服务器端发出FIN发布的报文和客户端ACK确认报纸能保持最大有效时间(一次来回)。服务器端在1MSL未收到客户端发送的内部信息ACK如果确认报纸,将再次发送给客户端FIN报文;

序列号的初始化 ISN(s) ISN代表什么?意义何在?

??ISN,字节数据节数据编号的起源使对方能够生成合法的接收窗口。

ISN是固定的吗?

??动态随机。

ISN为什么要动态随机?

??为了避免被第三方猜测,增加安全性,被第三方伪造RST报文Reset。

刚才你提到第三方可以伪造RST成功需要满足哪些条件? ??需要sequence number 位于对方合法接收窗口内。 而由于ISN是动态随机的,很难猜出对方合法接收窗口。ISN = 0,很容易猜出来;

第一次三次握手可以携带数据吗?为什么? ??不,三次握手还没有完成;

对方不能在握手成功后将数据缓存并提交给应用程序吗? ??这样会放大SYN FLOOD攻击。如果攻击者伪造了成千上万的握手报纸,并携带了1K 字节数据,而

锐单商城 - 一站式电子元器件采购平台