轻松办理百万并发的Nginx,你知道它是怎么处理赏罚这些收集变乱的吗
接下来看上面这张图,好比主机 A 就是一台家里的条记本电脑,那么主机 B 就是一台处事器,上面跑着 Nginx 处事。从主机 A 发送一个 HTTP 的 GET 哀求到主机 B,这样的一个进程中首要经验了哪些变乱?通过上图数据流部门可以看出: 应用层里发送了一个 GET 哀求 -> 到了传输层,这一步首要在做一件事,就是赏识器打开了一个端口,在 windows 的使命打点器中可以看到这一点,他会把这个端口记下来以及把 Nginx 打开的端口好比 80 可能 443 也记到传输层 -> 然后在收集层会记下我们主机地址的 IP 和方针主机,也就是 Nginx 地址处事器公网 IP -> 到链路层往后 -> 颠末以太网 -> 达抵家里的路由器(收集层),家中的路由器会记录下地址运营商的一些下一段的 IP -> 通过广域网 -> 跳转到主机 B 地址的呆板中 -> 报文会颠末链路层 -> 收集层 -> 到传输层,在传输层操纵体系就知道是给谁人打开了 80 可能 443 的历程,这个历程天然就是 Nginx -> 那么 Nginx 在他的 HTTP 状态处理赏罚机内里(应用层)就会处理赏罚这个哀求。 在上述进程中收集报文饰演了一个奈何的脚色呢? 数据链路层会在数据的前面 Header 部门和 Footer 部门添加上源 MAC 地点和源目标地点 -> 到了收集层则是 Nginx 的公网地点(目标 IP 地点)和赏识器的公网地点(源 IP 地点)-> 到了 TCP 层(传输层),指定了 Nginx 打开的端口(目标端口)和赏识器打开的端口(源端口)-> 然后应用层就是 HTTP 协议了。 这就是一个报文,也就是说我们发送的 HTTP 协议会被切割成许多小的报文,在收集层会切割叫 MTU,以太网的每个 MTU 是 1500 字节;在 TCP 层(传输层)呢会思量中间每个环节中最大的一个 MTU 值,这个时辰每每每个报文只有几百字节,这个报文巨细我们称为叫 MSS ,以是每收到一个 MSS 小于这么巨细的一个报文时着实就是一个收集变乱。 这个时辰,我们来看下 TCP 协议中很多变乱是奈何和我们一般挪用的一些接口(好比Accept、Read、Write、Close)是奈何关联在一路的? TCP 协议与非阻塞接口 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |