ubuntu开启BBR加速

BBR是google的TCP阻塞控制算法,可以最大程度的利用带宽,提升网络传输速率。

Linux kernel 4.9 及以上已支持 tcp_bbr

阅读全文

ubuntu安装nginx启用HTTPS并端口重定向

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。

阅读全文

Python字符编码

常见错误

UnicodeEncodeError
UnicodeDecodeError

阅读全文

Python之禅

Python之禅

The Zen of Python,by Tim Peters

阅读全文

HTTP请求与响应详解

HTTP

简介

HTTP协议(HyperText Transfer Protocol,超文本传输协议)。
是一种发布和接收 HTML页面的方法。HTTP的端口号为80。

阅读全文

理解HTTPS

概述

本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。

阅读全文

DNS详解

DNS源起

要想访问网络上的一台计算机,我们必须要知道它的IP地址,但是这些地址(比如243.185.187.39)只是一串数字,没有规律,因此我们很难记住。并且如果一台计算机变更IP后,它必须通知所有的人。

阅读全文

TCP协议的细节——TCP重新发送

TCP片段丢失

接收方可以通过校验TCP头部中checksum区域来检验TCP片段是否出错。我们已经接触过了IP协议详解的checksum算法。TCP片段的checksum算法与之类似。IP协议的checksum只校验头部,TCP片段头部的checksum会校验包括IP头部、TCP头部和TCP数据在内的整个序列,确保IP地址、端口号和其他相关信息正确。如果TCP片段出错,接收方可以简单的丢弃该TCP片段,也就相当于TCP片段丢失。

阅读全文

TCP协议的细节——TCP滑窗管理

累计ACK

在TCP连接中讲到,我们通过将ACK回复“附着”在其他数据片段的方式,减少了ACK回复所消耗的流量。但这并不是全部的故事。TCP协议并不是对每个片段都发送ACK回复。TCP协议实际采用的是累计ACK回复。接收方往往利用一个ACK回复来知会连续多个片段的成功接收。通过累计ACK,所需要的ACK回复通常可以降到50%。

阅读全文

TCP协议的细节——TCP三次握手过程

TCP三次握手过程:

阅读全文