计算机网络高频面试题

  1. 从输入URL到展现页面的全过程

    • 用户在浏览器中输入URL。
    • 浏览器解析URL,确定协议、主机名和路径。
    • 浏览器查找本地DNS缓存,如果没有找到,向DNS服务器发起查询请求。
    • DNS服务器解析主机名,返回IP地址。
    • 浏览器使用IP地址建立TCP连接(经过三次握手)。
    • 浏览器发送HTTP请求到服务器。
    • 服务器处理请求,并返回HTTP响应。
    • 浏览器接收响应内容,可能是HTML、CSS、JavaScript等。
    • 浏览器解析HTML,构建DOM树,执行JavaScript,渲染页面。
    • 页面加载完成,显示给用户。
  2. TCP三次握手以及四次挥手的流程

    • 三次握手
      1. 客户端发送SYN包(请求建立连接)到服务器。
      2. 服务器收到SYN包后,发送SYN-ACK包(确认连接请求)。
      3. 客户端收到SYN-ACK包后,发送ACK包(确认连接建立)。
    • 四次挥手
      1. 客户端发送FIN包(请求关闭连接)。
      2. 服务器收到FIN包后,发送ACK包,并准备关闭。
      3. 服务器发送FIN包(请求关闭另一端连接)。
      4. 客户端收到FIN包后,发送ACK包(确认关闭)。

    为什么需要三次握手以及四次挥手

    • 三次握手确保双方都能发送和接收数据,建立可靠的连接。
    • 四次挥手允许双方独立关闭连接,确保所有数据都被接收。
  3. TCP与UDP在网络协议中的哪一层,他们之间有什么区别?

    • TCP和UDP都是传输层协议。
    • TCP是面向连接的、可靠的协议,提供数据传输的确认和重传机制。
    • UDP是无连接的、不可靠的协议,没有确认或重传机制,但传输速度快。
  4. HTTP与HTTPS有哪些区别?

    • HTTPS在HTTP的基础上增加了SSL/TLS协议,提供了数据加密、完整性校验和身份验证。
    • HTTPS比HTTP更安全,可以防止数据在传输过程中被窃听或篡改。
  5. 简述DDOS攻击原理,如何防范它?

    • DDOS(分布式拒绝服务)攻击原理是通过大量请求占用目标服务器的资源,使其无法响应正常用户的请求。
    • 防范方法包括使用防火墙过滤恶意流量、使用CDN分散流量、限制单个IP的请求频率等。
  6. 简述HTTP1.0,1.1,2.0的主要区别

    • HTTP/1.0不支持持久连接,每个请求/响应都需要建立和关闭一个TCP连接。
    • HTTP/1.1支持持久连接,可以复用TCP连接,减少了连接建立和关闭的开销。
    • HTTP/2.0进一步优化了性能,支持头部压缩、多路复用等技术,减少了延迟。
  7. 简述TCP的TIME_WAIT和CLOSE_WAIT

    • TIME_WAIT:主动关闭连接的一方在发送完最后一个ACK包后,进入TIME_WAIT状态,等待足够的时间确保被动关闭方接收到最终的确认,防止旧的连接请求干扰新的连接。
    • CLOSE_WAIT:当一方接收到对方的FIN包并发送ACK包后,进入CLOSE_WAIT状态,等待本地应用程序关闭连接。如果应用程序不及时关闭,会导致资源占用。
  8. TCP的TIME_WAIT和CLOSE_WAIT

    • TIME_WAIT:TCP连接的主动关闭端在发送完最后一个确认(ACK)包后,会进入TIME_WAIT状态,保持该状态一定时间,以确保被动关闭端能够收到连接关闭的确认。这可以防止旧的连接请求干扰新的连接。
    • CLOSE_WAIT:当TCP连接的接收端收到关闭连接的请求(FIN包),它会发送一个确认(ACK),然后进入CLOSE_WAIT状态,等待本地应用层关闭连接。如果应用层没有及时关闭连接,CLOSE_WAIT状态会持续存在,可能导致资源占用。
  9. TCP中常见的拥塞控制算法

    • 慢启动(Slow Start):开始时以较低的速率发送数据,逐渐增加发送窗口大小,直到达到拥塞发生。
    • 拥塞避免(Congestion Avoidance):在检测到拥塞迹象后,缓慢增加窗口大小,避免拥塞。
    • 快重传(Fast Retransmit):当连续收到三个相同的ACK时,立即重传丢失的数据包,而不是等待超时。
    • 快恢复(Fast Recovery):在重传丢失的数据包后,适当调整拥塞窗口,避免发送速率急剧下降。
  10. BGP协议和OSPF协议的区别

    • BGP (边界网关协议):是一种用于互联网上进行网络之间的路由和可达性信息传递的协议,主要用于互联网的自治系统(AS)之间的路由。
    • OSPF (开放最短路径优先):是一种内部网关协议,用于在单一自治系统内部进行路由信息的传递和计算最短路径。
  11. TCP的keepalive了解吗?以及它和HTTP的keepalive的区别

    • TCP keepalive:是一种心跳机制,用于检测死连接。在一定时间内没有数据传输时,TCP会发送探测包以检查连接是否仍然有效。
    • HTTP keepalive:也称为持久连接,允许多个HTTP请求和响应复用同一个TCP连接,减少了连接建立和关闭的开销。
  12. OSI七层模型,TCP,IP属于哪一层

    • OSI七层模型包括:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
    • TCP (传输控制协议):属于传输层,负责在网络中提供可靠的数据传输服务。
    • IP (网际协议):属于网络层,负责在网络中路由数据包。
  13. traceroute有什么作用?

    • traceroute是一个网络诊断工具,用于显示数据包从源到目的地的路径,以及每个跳点的延迟时间。它帮助网络管理员诊断网络问题和了解数据包的路由情况。
  14. DNS查询服务器的基本流程是什么?DNS劫持是什么?

    • DNS查询流程
      1. 客户端向本地DNS服务器发起查询请求。
      2. 本地DNS服务器查询其缓存,如果未找到,则向根DNS服务器查询。
      3. 根DNS服务器响应并指引到顶级域DNS服务器。
      4. 顶级域DNS服务器提供负责特定域的权威DNS服务器地址。
      5. 本地DNS服务器从权威DNS服务器获取最终的IP地址并返回给客户端。
    • DNS劫持:是一种网络攻击手段,攻击者通过篡改DNS服务器的记录,将域名解析到错误的IP地址,导致用户访问错误的网站。

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

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

相关文章

Kafka配置SASL认证

Kafka加密 Kafka认证方式 在本博客中我们使用SASL/PLAIN的方式来进行Kafka加密 环境准备 Kafka集群环境 请参考之前的Kafka集群搭建 kafka-broker1kafka-broker2 集群配置SASL/PLAIN认证 用户校验 修改server.properties 让其支持Kafka的认证(每一个broker节点都需要修改这…

jail内部ubuntu apt升级失败问题解决

在FreeBSD jail 里安装启动Ubuntu jammy系统,每次装好执行jexec ubjammy sh进入Ubuntu系统后,执行apt update报错。 这个问题困惑了好久,突然有一天仔细去看报错信息,查看了(man 5 apt.conf) ,才搞定问题。简单来说就是…

MySQL 数据库(基础)- 函数

MySQL 数据库(基础)- 函数 介绍 函数 是指一段可以被另一段程序调用的程序或代码。也意味着,这一段程序或代码在 MySQL 中已经给我们提供了,我们需要做的就是在合适的业务场景调用对应的函数,完成对应的业务需求即可…

python的简单爬取

需要的第三方模块 requests winr打开命令行输入cmd 简单爬取的基本格式(爬取百度logo为例) import requests url"http://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" resprequests.get(url)#回应 #保存到本地 with open(&…

中国物流信息软件系统(WMS等)行业概览,2027年将达到235.1亿元

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载 这份文件是《2023年中国物流信息软件系统行…

【Python】下载与安装

目录 一、 下载安装Python 1. 配置环境变量 2. 检查是否配置成功 一、 下载安装Python 在我上传的资源可以免费下载!!! https://download.csdn.net/download/m0_67830223/89536665?spm1001.2014.3001.5501https://download.csdn.net/dow…

浅谈后置处理器之JSON提取器

浅谈后置处理器之JSON提取器 JMeter 的 JSON 提取器(JSON Extractor)是一个强大的后置处理器,它允许用户从HTTP响应、数据库查询或其他类型的响应中提取JSON数据,并将这些数据存储为变量,以便在后续的请求中重用。这对…

Mojo AI编程语言(三)数据结构:高效数据处理

目录 1. Mojo AI编程语言简介 2. 数据结构在数据处理中的重要性 3. Mojo AI中的基础数据结构 3.1 数组 3.2 列表 3.3 字典 4. 高效数据结构的实现与优化 4.1 哈希表 4.2 树结构 4.3 图结构 5. 高效数据处理技术 5.1 并行处理 5.2 内存优化 5.3 数据压缩 6. 实战…

【Redis】哨兵(sentinel)

文章目录 一、哨兵是什么?二、 哨兵sentinel文件参数三、 模仿主机redis宕机四、哨兵运行流程和选举原理SDOWN主观下线ODOWN客观下线 五、 使用建议 以下是本篇文章正文内容 一、哨兵是什么? 哨兵巡查监控后台master主机是否故障,如果故障了…

js项目生产环境中移除 console

1、terser-webpack-plugin webpack 构建的项目中安装使用 安装: npm install terser-webpack-plugin --save-dev 配置 在webpack.config.js文件中 new TerserPlugin({terserOptions: {output: {comments: false, // 去除注释},warnings: false, // 去除黄色警告,co…

nx上darknet的使用-目标检测-自定义训练与制作预训练模型

目录 1 训练yolov4-tiny 1.1 文件准备 1.1.1 Annotations 1.1.2 JPEGImages 1.1.3 labels 1.1.4 trained_models 1.1.5 classes.name 1.1.6 create_labels_txt.py 1.1.7 custom_training.data 1.1.8 get_labels.py 1.1.9 get_train_val.py 1.1.10 train…

python制作甘特图的基本知识(附Demo)

目录 前言1. matplotlib2. plotly 前言 甘特图是一种常见的项目管理工具,用于表示项目任务的时间进度 直观地看到项目的各个任务在时间上的分布和进度 常用的绘制甘特图的工具是 matplotlib 和 plotly 主要以Demo的形式展示 1. matplotlib 功能强大的绘图库&a…

内网对抗-基石框架篇单域架构域内应用控制成员组成用户策略信息收集环境搭建

知识点: 1、基石框架篇-单域架构-权限控制-用户和网络 2、基石框架篇-单域架构-环境搭建-准备和加入 3、基石框架篇-单域架构-信息收集-手工和工具1、工作组(局域网) 将不同的计算机按照功能分别列入不同的工作组。想要访问某个部门的资源,只要在“网络…

Electron运行报错:Error Cannot find module ‘node_moduleselectroncli.js‘

Electron运行报错:Error: Cannot find module ‘node_modules\electron\cli.js’ 顾名思义,命令行执行Electron .时候,会优先从项目目录查找对应依赖,如果是报错显示是找不到项目目录下的依赖,我们可以从安装在全局的…

DAMA学习笔记(五)-数据存储和操作

1.引言 数据存储与操作包括对存储数据的设计、实施和支持,最大化实现数据资源的价值,贯穿于数据创建/获取到处置的整个生命周期。 数据存储与操作包含两个子活动(图6-1)。 图6-1 语境关系图:数据存储与操作 (1) 数据库…

记录vite项目中Cornerstone的兼容问题(持续更新)

🔎 在vite项目中打包提示错误 ESM integration proposal for Wasm" is not supported currently. ⛳️ 问题描述 Error: Could not load /home/xxx/xxx/node_modules/icr/polyseg-wasm/dist/ICRPolySeg.wasm (imported by node_modules/icr/polyseg-wasm/di…

js ES6 part3

Number 是内置构造函数&#xff0c;用来创建数值 const price 12.345console.log(price.toFixed(2))//保留两位小数 12.35 综合案例购物车 <body><div class"list"><!-- <div class"item"><img src"https://yanxuan-item…

【代码随想录】【算法训练营】【第66天】 [卡码95]城市间货物运输II [卡码96]城市间货物运输III

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 卡码网。 day 66&#xff0c;周五&#xff0c;ding ding~ [卡码95] 城市间货物运输II 题目描述 卡码95 城市间货物运输II 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 …

数据结构(Java):队列Queue集合力扣面试OJ题

1、队列 1.1 队列的概念 队列是一个特殊的线性表&#xff0c;只允许在一端&#xff08;队尾&#xff09;进行插入数据操作&#xff0c;在另一端&#xff08;对头&#xff09;进行删除数据。队列具有先进先出FIFO(First In First Out)的特性。 入队&#xff1a;数据只能从队尾…

有奖竞猜!斗牛士军团与法兰西骑士的终极之战,谁将笑傲欧洲之巅?

痛快看球&#xff0c;畅玩游戏&#xff0c;AGON爱攻带你进入酣畅淋漓的足球世界&#xff01; 7月15日&#xff0c;绿茵赛场硝烟再起&#xff0c;两支身披荣光的王者之师&#xff0c;一路过关斩将&#xff0c;最终会师决赛。一场万众瞩目的巅峰对决即将拉开帷幕&#xff0c;究竟…