avatar
文章
378
标签
435
分类
13
首页
留言板
知识库
归档
标签
分类
关于
Dai Wei
搜索
首页
留言板
知识库
归档
标签
分类
关于

Dai Wei

Linux 基础知识总结
发表于2018-06-29|计算机基础
初识 Linux 不必先背命令,先建立三张地图:发行版怎么选、根目录下每个目录管什么、遇到问题该用哪组命令。本文按这三条线索整理 Linux 入门知识。 内核与发行版严格说 Linux 只是内核——负责进程、内存、文件系统和设备管理的那部分。厂商和社区把内核连同包管理器、工具链、文档打包成开箱即用的系统,就是发行版。主流谱系可分两支: 谱系 代表 定位 Debian 系 Debian、Ubuntu 社区驱动,apt 包管理;Ubuntu LTS 在桌面与云上都很常见 RHEL 系 RHEL、Rocky、AlmaLinux 商业企业级,dnf/yum 包管理,强调稳定与支持周期 CentOS 的老定位(RHEL 的免费重编译版)已随 CentOS Linux 停更成为历史,现行的 CentOS Stream 是 RHEL 的上游滚动分支,性质不同。学习企业环境选 Rocky/AlmaLinux,快速上手选 Ubuntu LTS,追求轻量稳定选 Debian。选型时关注两点:支持周期是否覆盖你的使用时长,以及目标生产环境用哪一支——学练环境...
从输入 URL 到页面展示到底发生了什么?
发表于2018-06-21|计算机基础
在地址栏敲下网址、按下回车,到页面完整出现在屏幕上,中间要经过 DNS 解析、TCP 建连、TLS 握手、HTTP 交互、服务器处理和浏览器渲染等一系列环节。这道题是面试常客,因为它能把从应用层到链路层的核心协议一次性串起来。 它解决什么问题单独背协议容易断片:知道 TCP 有三次握手,却不知道它在访问网页时发生在哪一步;知道 DNS 是域名解析,却说不清谁来发查询、问谁要答案。”输入 URL 后发生了什么”给出的不是新知识点,而是一张地图——把每个协议放回它在链路中的位置,看清每一步”做什么、为什么需要它、和上下层怎么交接”。理解了这条主线,页面打开慢、HTTPS 配置错误、跨域失败这类实际问题,才有分段定位的框架。 核心原理:全流程鸟瞰先把主线画出来,再逐段展开: 输入 URL → 查浏览器缓存 → DNS 解析(域名→IP) → TCP 三次握手 → TLS 握手(仅 HTTPS) → 发送 HTTP 请求 → 服务器处理并响应 → 浏览器解析渲染(DOM/CSSOM/渲染树/布局/绘制/合成) → 连接复用或关闭 注意各层协议的衔接点:D...
TCP TIME_WAIT 详解:为什么要等、会不会出问题、能不能复用?
发表于2018-06-13|计算机基础
TIME_WAIT 是主动关闭方发出最后一个 ACK 之后进入的 2MSL 等待。它不是多余的仪式:一边给可能丢失的最后 ACK 留补救机会,一边等旧连接的滞留报文从网络里彻底消散。它是协议设计的正常一环,真正要警惕的是短连接风暴下的端口耗尽和被误用的内核参数。 它解决什么问题四次挥手的最后一步,主动关闭方回完 ACK 为什么不能立刻关门走人?因为此刻有两件事还没有着落: 最后一个 ACK 可能丢在路上。被动方收不到确认,会超时重传 FIN;若主动方已经彻底消失,这个重传的 FIN 将无人应答。 旧连接的报文可能还在网络里游荡。TCP 连接靠四元组(源 IP、源端口、目的 IP、目的端口)唯一标识,旧连接刚关就用同一四元组开新连接,滞留的旧报文可能被当成新连接的数据收下。 这两个问题都没有别的机制兜底,于是协议安排主动关闭方在原地等一段足够长的时间——这就是 TIME_WAIT。 核心原理理由一:让最后一个 ACK 有补救机会主动方 A 被动方 B | <---------- FIN -------- | | ------...
TCP 如何保证可靠传输?重传、滑动窗口与拥塞控制详解
发表于2018-06-05|计算机基础
IP 层只承诺尽力投递,丢包、乱序、重复、损坏都可能发生。TCP 的”可靠”不是一句口号,而是序列号确认、超时与快速重传、SACK、滑动窗口、拥塞控制这一整套机制协同运转的结果。本文按”确认、重传、流控、拥塞控制”四层递进展开。 它解决什么问题底层网络对 TCP 有四个”不保证”:不保证送达、不保证按序、不保证不重、不保证内容不变。TCP 要在这之上给应用层一条有序、无重复、无差错、不丢字节的字节流,就必须逐一补上短板: 编号与确认:知道哪些字节到了、哪些没到; 重传:把没到的补上; 流量控制:发送速率不超过接收方的消化能力; 拥塞控制:注入网络的数据不超过网络的承载能力。 还有一个常被误解的边界:TCP 可靠的是字节流,不是应用层的一条条”消息”。消息边界要由上层协议自己定义,这正是粘包、拆包问题的根源。 核心原理序列号与累积确认TCP 给字节流里的每个字节编号——序列号是字节序号,不是报文段序号。接收方回复的 ACK 采用累积确认:ACK=n 表示”n 之前的字节我全部收到了,接下来请从 n 开始发”。此外每个报文段都带端到端校验和,校验失败的段直接丢弃、不...
TCP Keepalive 和 HTTP Keep-Alive 有什么区别?
发表于2018-05-29|计算机基础
TCP Keepalive 与 HTTP Keep-Alive 除了名字相似,没有任何关系:前者是传输层内核对空闲连接做的存活探测,后者是应用层让多个 HTTP 请求复用同一条 TCP 连接的机制。一个回答”对端还在吗”,一个回答”这条连接能不能接着用”。 问题的本质:不同层次解决不同问题两者处于协议栈的不同层,目标完全不同: 维度 HTTP Keep-Alive TCP Keepalive 层次 应用层(HTTP) 传输层(TCP) 目的 复用连接,省掉重复握手/挥手 探测死连接,回收内核资源 默认行为 HTTP/1.1 起默认开启 默认关闭,需 SO_KEEPALIVE 显式打开 控制方 Web 服务器/客户端配置 操作系统内核 关闭策略 到超时或次数上限即可主动关 对端能回 ACK 就一直维持 HTTP Keep-Alive:连接复用HTTP/1.0 默认短连接:一次请求/响应结束就关闭 TCP。一个网页几十个资源各建一次连接,三次握手和慢启动的开销非常可观。HTTP/1.1 把...
为什么 TCP 是面向字节流,UDP 是面向报文?(传输层)
发表于2018-05-21|计算机基础
TCP 的”字节流”指它只保证字节可靠、有序到达,不保留任何一次写入的边界;UDP 的”面向报文”指应用交下来的每一份数据都作为独立数据报收发,边界天然存在。所谓粘包、拆包,不是 TCP 的缺陷,而是应用层没有自己定义消息边界的必然结果。 问题的本质:边界由谁负责设想应用连续发出两条消息 hello 和 world。 走 UDP 时,两次发送对应两个数据报,接收端每调用一次 recvfrom() 就取走一个完整报文,不会读到 helloworld,也不会读到半个报文——UDP 接收队列里的一个元素就是一个数据报。 走 TCP 时,两次 send() 只是把字节拷进内核发送缓冲区。这些字节何时发出、合并成几个报文段、对端一次 recv() 能拿到多少,由 MSS、滑动窗口、拥塞控制和 Nagle 算法等共同决定,和应用的写入次数没有对应关系。接收端可能一次读到 helloworld(粘包),也可能分三次读到 hel、lowor、ld(拆包)。 应用视角: [hello] [world] 两条消息TCP 视角: h e l l o w o r l d ...
计算机网络常见面试题总结(下)
发表于2018-05-13|计算机基础
网络面试的下半场落在传输层与网络层:TCP 为什么可靠、握手挥手为什么是这个次数、连接数到底受什么限制,再到 IPv6、NAT、ARP 的分工。本篇选十一道题做深,每题给出结论、原理与可延伸的加分点。 考察地图 TCP 与 UDP 基础:两者区别与选型、字节流与报文(粘包拆包)。考察对传输本质的理解。 连接管理:三次握手为什么不是两次、四次挥手与 TIME_WAIT。考察连接状态机。 可靠性与连接维护:可靠传输机制、双层 Keepalive 之分、65535 连接数迷思。 IP 与地址:客户端真实 IP 获取、IPv4 vs IPv6、NAT、ARP。 建议自行查阅:基于 TCP/UDP 的协议清单、IP 地址过滤、MAC 地址细节、HTTP 各版本基于什么传输——HTTP/3 与 QUIC 在上篇已展开,这里不再重复。 TCP 与 UDP 基础TCP 与 UDP 有什么区别?结论:三条根差异——TCP 面向连接、可靠、字节流;UDP 无连接、尽力交付、保留报文边界。其余差异都是这三条的展开。 原理:展开成七个维度。连接:TCP 先握手后传输再挥手,UD...
计算机网络常见面试题总结(上)
发表于2018-05-05|计算机基础
网络面试的上半场集中在应用层:一条「输入 URL 到页面展示」的主线,串起 HTTP 版本演进、HTTPS 安全设计、会话保持与实时通信选型。本篇选十道题做深,每题给出结论、原理与可延伸的加分点。 考察地图 全景链路:输入 URL 到页面展示。所有应用层追问的母体,必须能脱稿讲。 HTTP 与 HTTPS:HTTP vs HTTPS、RSA 与 ECDHE、HTTP/1.1 vs HTTP/2、HTTP/2 vs HTTP/3。考察版本演进背后的工程动机,而非背特性表。 会话与方法:无状态协议如何保存用户状态、GET 与 POST。考察语义理解。 实时通信:WebSocket、长短轮询、SSE 的取舍。 诊断与解析:Ping 与 TCP 连通性的关系、DNS 解析过程。 建议自行查阅:OSI 七层与 TCP/IP 四层对照、HTTP 状态码清单、常见 Header 字段、URI 与 URL 的区别、DNS 劫持应对——偏记忆,面试中多作开场铺垫,较少成为胜负手。 全景链路从输入 URL 到页面展示,到底发生了什么?结论:一句...
OSI 七层模型与 TCP/IP 四层模型详解
发表于2018-04-27|计算机基础
网络分层是学习计算机网络的第一张地图,没有它,HTTP、TCP、IP、MAC、DNS 这些名词只会堆成一锅粥。本文讲清 OSI 七层与 TCP/IP 四层各自的职责划分、数据封装解封装的全过程,以及”教科书讲七层、实践用四层”背后的原因。 它解决什么问题计算机网络天然复杂:要让两台相隔千里的机器交换数据,得同时解决物理信号、相邻节点传输、跨网寻址、可靠交付、格式约定等一大堆问题。如果把它们揉进一个巨型协议,既设计不出来,也没法维护和替换。分层模型把大问题切成若干边界清晰的小问题,每层只专注一类职责,并为上层提供稳定接口。OSI 七层和 TCP/IP 四层就是两套最有代表性的切法:前者理论完备,后者是互联网的真实实现。 核心原理:两套模型各层做什么OSI 七层模型由国际标准化组织提出,自顶向下依次是: 应用层:为应用程序提供网络服务接口,定义信息交换的格式与规则,代表协议有 HTTP、SMTP、FTP、DNS。 表示层:处理数据格式转换、加密解密、压缩解压,让不同系统能理解彼此的数据表示。 会话层:负责建立、管理和终止会话,控制对话的同步与检查点。 传输层...
网络攻击常见手段总结(安全)
发表于2018-04-20|计算机基础
网络攻击手法繁多,底层逻辑却相通:利用协议设计时的信任假设,或攻防双方的资源不对称。本文挑四类高频攻击——SYN Flood、DNS 劫持、中间人攻击、CSRF/XSS——每个都按”一句话原理、攻击链条、防御措施”拆解。 DDoS 与 SYN FloodDDoS(分布式拒绝服务)是用大量”肉鸡”同时向目标发起请求,耗尽带宽或系统资源,让正常用户得不到服务。SYN Flood 是其中最经典的一种,原理一句话:攻击者只发 SYN 不回 ACK,让服务器为大量永远完不成的握手分配并持有半连接资源。 正常三次握手中,服务器收到 SYN 后回复 SYN-ACK,把这条半开连接放进队列、启动重传定时器,等待客户端的 ACK。攻击链条如下: 攻击者(或僵尸网络) --SYN(伪造源IP)--> 服务器服务器 --SYN-ACK--> 伪造的源地址(石沉大海)服务器: 半连接队列被占满, 定时器多次重传, 直到超时释放正常用户: SYN 到达时队列已满, 直接被丢弃 --> 拒绝服务 关键在于资源不对称:发一个 SYN 几乎零成本,服务器却要分配内核结构并重传多...
1…313233…38
avatar
Dai Wei
软件开发者,记录技术探索与实践
文章
378
标签
435
分类
13
Follow Me
公告
分享软件开发、工程实践与持续学习中的思考。
最新文章
AI 代码评审怎么做得又准又省:确定性流水线 + Agent 的混合架构实践2026-09-20
Trae + MiniMax 多场景实战:Redis 故障排查与跨语言重构2026-08-28
Kimi K3 实战:全栈项目、Java 项目改造与 3A 游戏 Demo2026-08-23
测试开发学习路线(2026 最新版):AI 时代如何从测试走向质量工程2026-08-20
IDEA + Qoder 插件多场景实战:接口优化与代码重构2026-08-18
分类
  • AI 编程28
  • Java103
  • 人工智能39
  • 分布式系统26
  • 学习路线5
  • 开发工具11
  • 技术动态1
  • 数据库42
标签
Random类 Paxos AGENTS.md Static关键词 阻塞 redo log 跳表 DBMS 关键字 Kimi 对象流 消息推送 虚拟线程 TIME_WAIT 知识库 实时 Agent Seata 学习笔记 操作系统 DNS 滑动窗口 异常 并行 学习规划 Java26 原子广播 final关键字 Workflow JWT GROUP BY Java14 AI 编程 Runtime 单例设计模式 工程化 敏感词 第三方模型 备份 Linux 代码审查
归档
  • 九月 2026 1
  • 八月 2026 7
  • 七月 2026 7
  • 六月 2026 6
  • 五月 2026 7
  • 四月 2026 6
  • 三月 2026 4
  • 二月 2026 5
网站信息
文章数目 :
378
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2017 - 2026 By Dai Wei框架 Hexo 8.1.2|主题 Butterfly 5.7.0
搜索
数据加载中