个人简介

Echo Blog


江湖无名 安心练剑
  • NET 网络专题汇总-06-06-如何优化 TCP?
    如何优化 TCP? TCP 性能的提升不仅考察 TCP 的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。 TCP 协议是由操作系统实现,所以操作系统提供了不少调节 TCP 的参数。 $ ls -l /proc/sys/net/ipv4/tcp* 如何正确有效的使用这些参数,来提高 TCP 性能是一个不那么简单事情。 我们需要针对 TCP 每个阶段的问题来对症下...
    2023-02-22 00:00:00 | Net
  • NET 网络专题汇总-06-05-TCP 半连接队列和全连接队列
    说明 网上许多博客针对增大 TCP 半连接队列和全连接队列的方式如下: 增大 TCP 半连接队列的方式是增大 /proc/sys/net/ipv4/tcp_max_syn_backlog; 增大 TCP 全连接队列的方式是增大 listen() 函数中的 backlog; 这里先跟大家说下,上面的方式都是不准确的。 “你怎么知道不准确?” ...
    2023-02-22 00:00:00 | Net
  • NET 网络专题汇总-06-04-TCP 实战抓包分析
    TCP 实战抓包分析 为了让大家更容易「看得见」 TCP,我搭建不少测试环境,并且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。 接下来丢包、乱序、超时重传、快速重传、选择性确认、流量控制等等 TCP 的特性,都能「一览无余」。 没错,我把 TCP 的”衣服扒光”了,就为了给大家看的清楚,嘻嘻。 显形“不可见”的网络包 网络世界中的数据包交互我们肉眼是看不见的,它...
    2023-02-22 00:00:00 | Net
  • NET 网络专题汇总-06-TCP 重传、滑动窗口、流量控制、拥塞控制
    TCP 相信大家都知道 TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。 那么,TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输的。 今天,将重点介绍 TCP 的重传机制、滑动窗口、流量控制、拥塞控制。 重传...
    2023-02-22 00:00:00 | Net
  • NET 网络专题汇总-05-TCP 四次挥手
    TCP 四次挥手过程是怎样的? 天下没有不散的宴席,对于 TCP 连接也是这样, TCP 断开连接是通过四次挥手方式。 双方都可以主动断开连接,断开连接后主机中的「资源」将被释放,四次挥手的过程如下图: 客户端打算关闭连接,此时会发送一个 TCP 首部 FIN 标志位被置为 1 的报文,也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状态。 ...
    2023-02-22 00:00:00 | Net
  • NET 网络专题汇总-05-TCP 三次握手
    大纲 TCP 基本认识 TCP 头格式有哪些? 我们先来看看 TCP 头的格式,标注颜色的表示与本文关联比较大的字段,其他字段不做详细阐述。 序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。 确认应答号:指下一次「期望」收到的数据的序列号,发送端收到这个确认应...
    2023-02-22 00:00:00 | Net
  • NET 网络专题汇总-04-键入网址到网页显示,期间发生了什么?
    键入网址到网页显示,期间发生了什么? 想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。 还别说,这问题真挺常问的,前几天坐在我旁边的主管电话面试应聘者的时候,也问了这个问题。 接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么? 孤单小弟 —— HTTP 浏览器做的第一步工作是解析 URL 首先浏览器做的第一步工作就是要对 ...
    2023-02-22 00:00:00 | Net
  • NET 网络专题汇总-04-Linux 系统是如何收发网络包的?
    网络模型 为了使得多种设备能通过网络相互通信,和为了解决各种不同设备在网络互联中的兼容性问题,国际标准化组织制定了开放式系统互联通信参考模型(Open System Interconnection Reference Model),也就是 OSI 网络模型,该模型主要有 7 层,分别是应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层。 每一层负责的职能都不同,如下: ...
    2023-02-22 00:00:00 | Net