一、三次握手
TCP 协议的三次握手和四次挥手分别表示了 TCP 连接的建立和释放过程,在整个 TCP 协议是一个很重要的内容,同时也是面试时的常见考点。
趁着找工作的劲,使用
socket+tcpdump分析了一下工作流程,socket 客户端代可以在 socket 介绍及函数原语找到。服务端的代码可以在 socket 的 select 模型找到。
socket 中各函数对应的 TCP 状态演示图:

TIME-WAIT 状态是 TCP 四次挥手中的状态,在我的认知中,它是客户端 socket 的状态。但是最近遇到了个问题是:服务端上某个处于监听状态的 socket 有很多连接都处于这个状态。 当然在某些特定的场景下,服务端出现大量 TIME-WAIT 状态的 socket 状态是合理的,例如爬虫服务器,它要主动发起大 ... 阅读更多
一、问题现象 客户报障,说使用了我们的网关设备后网络经常中断。具体的情形是用我们设备做代理上网后,流量图显示流量每隔两分钟就会直线下跌一次,同时就伴随着内网用户断网。 经过排查后发现问题原因是设备负载太高了导致,出问题时候的负载趋势图为: 从图形来看,负载是每 1-2 分钟就会上升一次,而且上升得特别明 ... 阅读更多
一、关于滑动窗口协议 在 TCP 协议中,所有的 SEQ 包发送出去都必须要受到对方的 ACK 才认为是发送成功,如果长时间没有收到 ACK 回复确认,发送方需要重新发送该包。而如果发送方每次都是发送一个包,然后等到接收方回复 ACK 了再发送下一个包,那么数据包的传输效率就相当低了。滑动窗口协议的作用就是为了解决这个 ... 阅读更多
一、 RTT 和 RTO 的概念 TCP 作为一个面向连接的、可靠的传输协议,内部实现了一个重传计时器来保证数据能传输到对方。每发送一个数据包,就给这个数据设置一个重传计时器。如果在计时器超时之前收到了针对这个数据包的 ack,就取消这个计时器。如果没有收到,则开始发起重传。计时器超时的时间被称为 RTO,这个时 ... 阅读更多
ARQ 全称是 Automatic repeat request,是 TCP 中实现可靠传输的重传协议,它的核心思想是停止等待协议。 一、停止等待协议 停止等待协议是数据链路层中最基础的协议,在数据发送出去后,如果没有收到对端的回复,会一直等待对方回复。直到触发超时机制再自动重传,确保数据传输的可靠性。 一 ... 阅读更多
一、 IPv6 表示法 IPv6 于上世纪 90 年代提出,当时提出的目的是为了扩展极度匮乏的 IPv4 地址。 然而到现在二十多年的发展历程中,虽然一直都在强调要推广它的使用,但至今依旧是不温不火的状态。 IPv6 地址有 128 位,是 IPv4 长度的 4 倍,IPv4 一般使用点来隔开每一个字节,如 192.168.10. ... 阅读更多
MTU: Maximum transmission unit,最大传输单元,IP 报文段的最大大小。 MSS: Maximum segment size,最大的帧大小,是 TCP 数据段的最大大小。 其中 MTU 工作于数据链路层,取决于网络环境。而 MSS 只是 TCP 负载部分的大小,它受限于 MTU 。要注意的是 M ... 阅读更多
TCP 协议的三次握手和四次挥手分别表示了 TCP 连接的建立和释放过程,在整个 TCP 协议是一个很重要的内容,同时也是面试时的常见考点。
趁着找工作的劲,使用
socket+tcpdump分析了一下工作流程,socket 客户端代可以在 socket 介绍及函数原语找到。服务端的代码可以在 socket 的 select 模型找到。
socket 中各函数对应的 TCP 状态演示图:

使用 CDN 的时候遇到了跨域的问题,在网上找解决方法都是说在 nginx 里面加上请求头,然而设置了请求头后发现还是没有解决问题。所以为了解决问题,并且彻底弄清楚这其中的原理,花了半天时间仔细分析了一下。 一、什么是跨域 1.1 跨域描述 跨域是一种安全机制,使浏览器只能在页面内执行同源站点的脚本文件,避 ... 阅读更多
一、概述 超文本传输协议 (Hypertext Transfer Protocol, HTTP) 是当今网络的重要角色之一,也是万维网 (World Wide Web, WWW) 的核心组成。它的特点为: 无连接:HTTP 是一个无连接的协议,虽然基于 TCP,但是每次进行数据交互之前,无需先建立 HTTP 连接。 ... 阅读更多