理解和区分,TCP,HTTP,Socket,端口,连接数,并发和 QPS

概述#

这篇文章主要介绍一些常见且容易混淆的概念

TCP#

TCP 是传输层的协议,也是一种封包格式,TCP 协议按这个格式封装成 IP 包,发送到网络中进行传输

TCP 报文格式#

我们看到 TCP 报文源端口和目的端口都是 16 位,0-65535, 这个是计算机系统端口数最大 65535 的原因.

TCP 三次握手#

这方面的资料太多,这里就不赘述了
http://www.jianshu.com/p/ef892323e68f

HTTP#

HTTP 是 TCP 协议之上的一层封装

HTTP 请求报文格式#

HTTP 响应报文格式#

Socket#

Socket 其实是操作系统提供的用于操作网络传输协议 (TCP,UDP 等) 的 API, 相当于操作系统负责把 TCP,UDP 等协议翻译成 IP 包发送和接收

端口#

我们通常谈论的端口,一般是指 Socket 端口,Socket 可以操作多种协议,包括 UDP,TCP 等

连接数#

通常连接数指 Socket 连接数,注意 Socket 区分一个连接的唯一标识是:
源 IP - 源端口 - 传输协议 - 目的 IP - 目的端口

所以连接数不等于端口数,并没有 65535 限制

并发#

我们使用 ab 测试的时候,会用到 -c 参数,concurrent, 这个是同时发起的请求数,不等于 QPS

QPS#

QPS 是每秒处理的请求数

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 6年前 自动加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。