计算机网络面经

文章目录

  • 基础
  • HTTP
    • HTTP报文结构 (注意)
    • RPC和http的区别
  • TCP
    • TCP报文结构(注意)
  • IP

基础

HTTP

HTTP报文结构 (注意)

请求行:请求方法get/post,url,http版本
请求头:用户标识,请求体长度,类型,cookie
请求体:内容
状态行:状态码,状态消息、(http版本)
响应头:内容长度,内容类型
响应体:内容

RPC和http的区别

RPC是远程过程调用,允许一个程序调用位于另一台计算机上的子程序或服务,就像调用本地函数一样,相较于http更专注于远程过程调用和高效的通信;而HTTP则更适用于传输超文本和其他资源。

  1. tcp粘包怎么处理:约定bit数切割

TCP粘包是指TCP的缓冲区内包含多个应用层报文

原因: 一个TCP报文包含多个应用层报文接收方未能及时从TCP缓冲区中读取数据

解决方法: 应用层报文添加包含数据长度的头部设置应用层报文的开始与结束标志应用层报文固定长度

  1. https和http区别

端口不同:HTTP使用的是80端口,HTTPS使用443端口;HTTP(超文本传输协议)信息是明文传输,HTTPS运行在SSL(Secure Socket Layer)之上,添加了加密和认证机制,更加安全;HTTPS由于加密解密会带来更大的CPU和内存开销;HTTPS通信需要证书,一般需要向证书颁发机构(CA)购买

  1. TLS4次握手:

客户端发起加密通信请求,协商加密和摘要算法->服务端确定加密和摘要算法和数字证书(CA)->客户端校验证书,取出公钥,对前面协商的2个随机数+再生成一个随机数加密成【会话密钥】,后续使用这个密钥加密传输;发送随机数+加密方式改变+握手结束通知->服务器使用私钥生成【会话密钥】,握手结束。

  1. ssl连接过程

协商加密和摘要算法->返回证书-> 验证证书合法性,利用公钥获得数字签名->公钥加密对称秘钥和对称秘钥加密的报文摘要->服务器根据私钥获得对称秘钥,解密报文摘要,和计算的报文摘要对比->ssl建立完成

  1. 非对称加密和对称加密

对称加密:加密和解密采用相同的密钥。如:DES、RC2、RC4 非对称加密:需要两个密钥:公钥和私钥。如果用公钥加密,需要用私钥才能解密。如:RSA * 区别:对称加密速度更快,通常用于大量数据的加密;非对称加密安全性更高(不需要传送私钥)

对称密钥加密来保证通信内容的保密性和传输效率,同时使用非对称密钥加密来保证通信双方的身份验证和会话密钥的安全传输。

  1. CA具体如何实现数字签名认证的

服务器把自己的公钥注册到CA

CA用自己的私钥将服务器的公钥数字签名并颁发数字证书

客户端拿到服务器的数字证书后,使用CA的公钥确认服务器的数字证书的真实性

从数字证书获取服务器公钥后使用它对报文加密后发送,服务器用私钥对报文解密

  1. 摘要算法

客户端在发送明⽂之前会通过摘要算法算出明⽂的摘要值,发送的时候把「摘要值 + 明⽂」⼀同加密成密⽂后,发送给服务器,服务器解密后,⽤相同的摘要算法算出发送过来的明⽂,通过⽐较客户端携带的「摘要值」和当前算出的「摘要值」,若「摘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/69478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速集成DeepSeek到项目

DeepSeek API-KEY 获取 登录DeekSeek 官网,进入API 开放平台 2. 创建API-KEY 复制API-KEY进行保存,后期API调用使用 项目中集成DeepSeek 这里只展示部分核心代码,具体请查看源码orange-ai-deepseek-biz-starter Slf4j AllArgsConstructo…

PHP函数介绍—get_headers(): 获取URL的响应头信息

概述:在PHP开发中,我们经常需要获取网页或远程资源的响应头信息。PHP函数get_headers()能够方便地获取目标URL的响应头信息,并以数组形式返回。本文将介绍get_headers()函数的用法,以及提供一些相关的代码示例。 get_headers()函…

保姆级教程Docker部署Zookeeper模式的Kafka镜像

目录 一、安装Docker及可视化工具 二、Docker部署Zookeeper 三、单节点部署 1、创建挂载目录 2、命令运行容器 3、Compose运行容器 4、查看运行状态 5、验证功能 四、部署可视化工具 1、创建挂载目录 2、Compose运行容器 3、查看运行状态 一、安装Docker及可视化工…

Docker容器访问外网:启动时的网络参数配置指南

在启动Docker镜像时,可以通过设置网络参数来确保容器能够访问外网。以下是几种常见的方法: 1. 使用默认的bridge网络 Docker的默认网络模式是bridge,它会创建一个虚拟网桥,将容器连接到宿主机的网络上。在大多数情况下,使用默认的bridge网络配置即可使容器访问外网。 启动…

Java 使用腾讯翻译 API 实现含 HTML 标签文本精准翻译工具

一、翻译标签文本工具 package org.springblade.common.utils;import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern;public class TencentTranslationForHTML {public static void main(String[] args) {Stri…

白话文实战Nacos(保姆级教程)

前言 上一篇博客 我们创建好了微服务项目,本篇博客来体验一下Nacos作为注册中心和配置中心的功能。 注册中心 如果我们启动了一个Nacos注册中心,那么微服务比如订单服务,启动后就可以连上注册中心把自己注册上去,这过程就是服务注册。每个微服务,比如商品服务都应该注册…

docker 安装 Prometheus、Node Exporter 和 Grafana

Docker Compose 配置文件 docker-compose.yml services:prometheus:image: prom/prometheus:latestcontainer_name: prometheusvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml # 挂载配置文件 - prometheus_data:/prometheus # 持久化数据存储 command:- --…

RocketMQ、RabbitMQ、Kafka 的底层实现、功能异同、应用场景及技术选型分析

1️⃣ 引言 在现代分布式系统架构中,📩消息队列(MQ)是不可或缺的组件。它在系统🔗解耦、📉流量削峰、⏳异步处理等方面发挥着重要作用。目前,主流的消息队列系统包括 🚀RocketMQ、&…

C语言基础08:运算符+流程控制总结

运算符 算术运算符 结果:数值 、-、*、\、%、(正)、-(负)、、-- i和i 相同点:i自身都会增1 不同点:它们运算的最终结果是不同的。i:先使用,后计算;i&am…

Node.js开发属于自己的npm包(发布到npm官网)

在 Node.js 中开发并发布自己的 npm 包是一个非常好的练习,可以帮助我们更好地理解模块化编程和包管理工具,本篇文章主要阐述如何使用nodejs开发一个属于自己的npm包,并且将其发布在npm官网。在开始之前确保已经安装了 Node.js 和 npm。可以在…

如何在RTACAR中配置IP多播(IP Multicast)

一、什么是IP多播 IP多播(IP Multicast)是一种允许数据包从单一源地址发送到多个目标地址的技术,是一种高效的数据传输方式。 多播地址是专门用于多播通信的IP地址,范围从 224.0.0.0到239.255.255.255 与单播IP地址不同&#x…

android的DataBinding的使用

参考: Android基础入门:dataBinding的简单使用 Android DataBinding的使用

12.翻转、对称二叉树,二叉树的深度

反转二叉树 递归写法 很简单 class Solution { public:TreeNode* invertTree(TreeNode* root) {if(rootnullptr)return root;TreeNode* tmp;tmproot->left;root->leftroot->right;root->righttmp;invertTree(root->left);invertTree(root->right);return …

网络安全行业的冬天

冬天已经来了,春天还会远吗?2022年10月28日,各个安全大厂相继发布了财报,纵观2022年前三季度9个月,三六零亏了19亿,奇安信亏了11亿,深信服亏了6亿,天融信亏了4亿,安恒亏了…

MYSQL索引与视图

一、新建数据库 mysql> create database mydb15_indexstu; mysql> use mydb15_indexstu; 二、新建表 (1)学生表Student mysql> create table Student(-> Sno int primary key auto_increment,-> Sname varchar(30) not null unique,-…

深度优先搜索(DFS)——八皇后问题与全排列问题

( ^ _ ^ ) 数据结构好难哇(哭 1.BFS和DFS 数据结构空间性质DFSstackO(h)不具有最短性质BFSqueueO(2^h)具有最短路性质 空间上DFS占优势,但是BFS具有最短性 (若所有权重都是1,则BFS一定最短)&…

Flink 内存模型各部分大小计算公式

Flink 的运行平台 如果 Flink 是运行在 yarn 或者 standalone 模式的话,其实都是运行在 JVM 的基础上的,所以首先 Flink 组件运行所需要给 JVM 本身要耗费的内存大小。无论是 JobManager 或者 TaskManager ,他们 JVM 内存的大小都是一样的&a…

Vue07

一、Vuex 概述 目标:明确Vuex是什么,应用场景以及优势 1.是什么 Vuex 是一个 Vue 的 状态管理工具,状态就是数据。 大白话:Vuex 是一个插件,可以管理 Vue 通用的数据 (多组件共享的数据)。例如:购物车数…

Linux内核中的软中断与NAPI机制:高效处理网络数据包

在现代操作系统中,中断处理是系统性能的关键因素之一,尤其是在处理高负载的网络数据包时。Linux内核通过软中断(SoftIRQ)和NAPI(New API)机制,实现了高效的网络数据包处理。本文将深入探讨软中断和NAPI机制的原理、实现方式以及它们在处理网络数据包中的作用。 一、软中…

Linux 安装 Ollama

1、下载地址 Download Ollama on Linux 2、有网络直接执行 curl -fsSL https://ollama.com/install.sh | sh 命令 3、下载慢的解决方法 1、curl -fsSL https://ollama.com/install.sh -o ollama_install.sh 2、sed -i s|https://ollama.com/download/ollama-linux|https://…