首页 > 其他分享 >计网八股

计网八股

时间:2024-11-20 17:18:00浏览次数:1  
标签:八股 HTTP ACK TCP 计网 连接 服务端 客户端

计网

网络OSI模型和TCP/IP模型

OSI 网络模型主要有 7 层,分别是应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层

TCP模型 应用层,传输层,网络层和网络接口层

  • tcp 在传输层
  • ip 在网络层

HTTP、HTTPS、CDN、DNS、FTP 都是应用层协议

用同一个 TCP 连接来发送和接收多个 HTTP 请求/应答,避免了连接建立和释放的开销,这个方法称为 HTTP 长连接

建立 TCP -> 请求资源 -> 响应资源 -> 释放连接,那么此方式就是 HTTP 短连接

HTTPS握手过程

在将 TLS 证书部署服务端时,证书文件其实就是服务端的公钥,会在 TLS 握手阶段传递给客户端,而服务端的私钥则一直留在服务端,一定要确保私钥不能被窃取。

在 RSA 密钥协商算法中,客户端会生成随机密钥,并使用服务端的公钥加密后再传给服务端。根据非对称加密算法,公钥加密的消息仅能通过私钥解密,这样服务端解密后,双方就得到了相同的密钥,再用它加密应用消息。

TLS 第一次握手,客户端生产的随机数(Client Random),后面用于生成「会话秘钥」条件之一

TLS 第二次握手,服务器生产的随机数(Server Random),客户端获取服务器的数字证书

TLS 第三次握手,客户端一个随机数,生成本次通信的会话秘钥

TLS 第四次握手,加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信,握手阶段已经结束

HTTP进行TCP连接之后,在什么情况下会中断

无响应或close

DNS 基于UDP协议实现,DNS使用UDP协议进行域名解析和数据传输

cookie和session有什么区别

Cookie的数据存储在客户端,Session的数据存储在服务器端,服务器为每个用户分配一个唯一的Session ID,cookie不安全,可以设置时间,session在浏览器关闭时结束,默认情况下禁用 Cookie 后,Session 是无法正常使用的

JWT 令牌都有哪些字段

头部和载荷均为JSON格式,使用Base64编码进行序列化,而签名部分是对头部、载荷和密钥进行签名后的结果

为什么有HTTP协议了?还要用RPC

RPC 其实比 HTTP 出现的要早,RPC性能还行

HTTP长连接与WebSocket有什么区别

全双工和半双工,应用场景

Nginx支持的负载均衡算法包括

轮询,IP哈希,URL哈希,最短响应时间,加权轮询

tcp的头部

序列号,确认应答号,控制位(ACK,SYN,FIN...)

TCP三次握手过程

客户端初始化序列号,SYN=1

服务端初始化序列号,SYN=1,ACK=1,确认应答号

客户端ACK=1,确认应答号,连接建立

tcp为什么需要三次握手建立连接

为了防止旧的重复连接初始化造成混乱

在两次握手的情况下,服务端没有中间状态给客户端来阻止历史连接

同步双方初始序列号

ACK 报文是不会有重传的,当 ACK 丢失了,就由对方重传对应的报文

大量SYN包发送给服务端服务端会发生什么事情

有可能会导致TCP 半连接队列打满,这样当 TCP 半连接队列满了,后续再在收到 SYN 报文就会丢弃,导致客户端无法和服务端建立连接

增大 TCP 半连接队列,减少 SYN+ACK 重传次数

TCP 四次挥手过程

客户端主动调用关闭连接的函数,于是就会发送 FIN 报文

服务端收到了 FIN 报文,然后马上回复一个 ACK 确认报文,继续 read 接收缓冲区已接收的数据

服务端就会发一个 FIN 包

客户端接收到服务端的 FIN 包,并发送 ACK 确认包给服务端

服务端收到 ACK 确认包后,就进入了最后的 CLOSE 状态,客户端经过 2MSL 时间之后,也进入 CLOSE 状态

第三次挥手一直没发

孤儿连接,在 60 秒后还没有收到 FIN 报文,连接就会直接关闭

为什么四次挥手之后要等2MSL

网络中可能存在来自发送方的数据包

服务端出现大量的timewait

短链接太多,长连接超时

TCP和UDP区别是什么

TCP 是面向连接,TCP 是一对一,拥塞控制、流量控制,TCP 是流式传输,没有边界,但保证顺序和可靠

TCP为什么可靠传输

序列号,确认应答,超时重传,流量控制,拥塞控制

ddos攻击?怎么防范

DDoS 攻击是通过连接互联网的计算机网络进行的,僵尸网络

增强网络基础设施,流量清洗和负载均衡

DNS劫持的原理是攻击者在用户查询DNS服务器时篡改响应,将用户请求的域名映射到攻击者控制的虚假IP地址上,使用户误以为访问的是正常网站

ARQ

停止等待ARQ:超时重传,丢失确认,迟到确认(丢弃重复)

连续ARQ:流水线传输,累积确认(按序最后一个),滑动窗口,回退N帧,选择重传

标签:八股,HTTP,ACK,TCP,计网,连接,服务端,客户端
From: https://www.cnblogs.com/nowiam/p/18558856

相关文章

  • java高频面试题(八股文)
    基础/集合1.ArrayList/LinkedList有什么区别?1、数据结构: 在数据结构上,ArrayList 和 LinkedList 都是 “线性表”,都继承于 Java 的 List 接口。另外 LinkedList 还实现了 Java 的 Deque 接口,是基于链表的栈或队列,与之对应的是 ArrayDeque 基于数组的栈或队......
  • Java八股-Spring三级缓存,自动装配原理
    文章目录Spring的Bean生命周期Spring三级缓存循环依赖的解决过程结论Q&AQ:二级缓存是否是多余的?上面这个图只有一级缓存和三级缓存也能解决循环依赖,还能解决代理对象的问题了Q:光有一级缓存能不能解决@Autowire级别的循环依赖问题?Q:光有一级缓存和二级缓存,能不能解决@Aut......
  • 如果让你来设计网络
    如果让你来设计网络你是一台电脑,你的名字叫A很久很久之前,你不与任何其他电脑相连接,孤苦伶仃。​​直到有一天,你希望与另一台电脑B建立通信,于是你们各开了一个网口,用一根网线连接了起来。​​用一根网线连接起来怎么就能"通信"了呢?我可以给你讲IO、讲中断、讲缓冲区,但这......
  • 最全JAVA面试八股文,终于整理完了
    1、Java线程具有五中基本状态(1)新建状态(New):当线程对象对创建后,即进入了新建状态,如:Threadt=newMyThread();(2)就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是......
  • 纯靠背八股文,能通过现在的Java面试吗?
    程序员面试背八股,可以说是现在互联网开发岗招聘不可逆的形式了,其中最卷的当属Java!(网上动不动就是成千上百道的面试题总结)你要是都能啃下来,平时技术不是太差的话,面试基本上问题就不会太大。这时候尴尬的现象就出现了:虽然八股文背的好并不能代表这个人有实际工作能力,但企业还是......
  • 2024年Java 八股文-基础篇
    1.为什么说Java语言“编译与解释并存”?高级编程语言按照程序的执行方式分为编译型和解释型两种。简单来说,编译型语言是指编译器针对特定的操作系统将源代码一次性翻译成可被该平台执行的机器码;解释型语言是指解释器对源程序逐行解释成特定平台的机器码并立即执行。比如,你......
  • 2024年最全java面试题(八股文)
    1.Java基础1.1为什么Java代码可以实现一次编写、到处运行?在程序运行前,Java源代码(.java)需要经过编译器编译成字节码(.class)。在程序运行时,JVM负责将字节码翻译成特定平台下的机器码并运行,也就是说,只要在不同的平台上安装对应的JVM,就可以运行字节码文件。1.2一个Java文件里......
  • 大模型的会终结程序员面试八股文的情况吗?
    先说结论,很遗憾的是,即便大模型已经完全能回答几乎100%的面试八股文,即便面试八股文对工作中几乎没有任何帮助,但是今后的面试中,依然充斥的八股文,依然是主流。大语言模型改变了今后的软件开发流程大语言模型的出现正在悄然改变软件开发的面貌,尤其是像ChatGPT4OwithCanvas......
  • 前端八股(1)
    跟着视频捋八股,效果还是可以的,就是得需要先有基础才能听得懂讲啥以下是一些八股记录(简单版),可以帮助记忆关键词,从而后续自己拓展目录一、CSS1.说一下css的盒模型2.csS选择器的优先级?3.隐藏元素的方法有哪些?4.px和rem的区别是什么?5.重绘重排有什么区别?6.让一个元素......
  • 前端八股(2)
    第二部分,也是简单版,记录下目录第一部分四、vue1.v-if和v-show的区别?2.如何理解MVVM的?3.v-for中的key值的作用是什么?4.说一下你对vue生命周期的理解5.在created和mounted去请求数据,有什么区别?6.vue中的修饰符有哪些?7.elementui是怎么做表单验证的?8.vue如何进行......