当前位置: 首页 > news >正文

计算机网络高频面试题

  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地址,导致用户访问错误的网站。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • sql面试题
  • 二次开发源码 借贷系统uniapp/借贷认证系统/小额信贷系统/工薪贷APP/资金贷系统h5
  • idea:解决Maven报错 Properties in parent definition are prohibited
  • 如何追查一个packet在linux 系统哪里丢失
  • urllib的使用
  • opencv学习:图像视频的读取截取部分图像数据颜色通道提取合并颜色通道边界填充数值计算图像融合
  • 14-- 二重积分
  • ubuntu系统Docker常用命令
  • 【Python】爬虫实战01:获取豆瓣Top250电影信息
  • 信创学习笔记(四),信创之数据库DB思维导图
  • NoSql选择题解
  • ubuntu 物理内存爆炸而不使用虚拟内存的问题
  • 速部署 HBase 测试环境
  • C# 设计一个可变长度的数据通信协议编码和解码代码。
  • 快速排序及归并排序的实现与排序的稳定性
  • [NodeJS] 关于Buffer
  • 5、React组件事件详解
  • Angular 响应式表单之下拉框
  • create-react-app做的留言板
  • Fastjson的基本使用方法大全
  • java正则表式的使用
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Laravel 菜鸟晋级之路
  • mysql_config not found
  • MySQL数据库运维之数据恢复
  • PHP的Ev教程三(Periodic watcher)
  • SpriteKit 技巧之添加背景图片
  • VUE es6技巧写法(持续更新中~~~)
  • Web Storage相关
  • Web设计流程优化:网页效果图设计新思路
  • 从零搭建Koa2 Server
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 批量截取pdf文件
  • 消息队列系列二(IOT中消息队列的应用)
  • 组复制官方翻译九、Group Replication Technical Details
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (4)logging(日志模块)
  • (Qt) 默认QtWidget应用包含什么?
  • (安卓)跳转应用市场APP详情页的方式
  • (搬运以学习)flask 上下文的实现
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)ssm码农论坛 毕业设计 231126
  • (数据结构)顺序表的定义
  • (一)SvelteKit教程:hello world
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)Windows2003安全设置/维护
  • (转)视频码率,帧率和分辨率的联系与区别
  • .NetCore发布到IIS
  • .考试倒计时43天!来提分啦!
  • /bin/rm: 参数列表过长"的解决办法
  • :O)修改linux硬件时间
  • :中兴通讯为何成功
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • [ C++ ] STL---string类的模拟实现