Skip to content

Commit 4e28245

Browse files
authored
Update tcp_interview.md
accpet 改成 accept
1 parent bb14919 commit 4e28245

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

‎network/3_tcp/tcp_interview.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ net.ipv4.tcp_abort_on_overflow
459459

460460
*避免 SYN 攻击方式二*
461461

462-
我们先来看下 Linux 内核的 `SYN` 队列(半连接队列)与 `Accpet` 队列(全连接队列)是如何工作的?
462+
我们先来看下 Linux 内核的 `SYN` 队列(半连接队列)与 `Accept` 队列(全连接队列)是如何工作的?
463463

464464
![正常流程](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3hpYW9saW5jb2Rlci9JbWFnZUhvc3QyLyVFOCVBRSVBMSVFNyVBRSU5NyVFNiU5QyVCQSVFNyVCRCU5MSVFNyVCQiU5Qy9UQ1AtJUU0JUI4JTg5JUU2JUFDJUExJUU2JThGJUExJUU2JTg5JThCJUU1JTkyJThDJUU1JTlCJTlCJUU2JUFDJUExJUU2JThDJUE1JUU2JTg5JThCLzI2LmpwZw?x-oss-process=image/format,png)
465465

@@ -468,7 +468,7 @@ net.ipv4.tcp_abort_on_overflow
468468
- 当服务端接收到客户端的 SYN 报文时,会将其加入到内核的「 SYN 队列」;
469469
- 接着发送 SYN + ACK 给客户端,等待客户端回应 ACK 报文;
470470
- 服务端接收到 ACK 报文后,从「 SYN 队列」移除放入到「 Accept 队列」;
471-
- 应用通过调用 `accpet()` socket 接口,从「 Accept 队列」取出连接。
471+
- 应用通过调用 `accept()` socket 接口,从「 Accept 队列」取出连接。
472472

473473
![应用程序过慢](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3hpYW9saW5jb2Rlci9JbWFnZUhvc3QyLyVFOCVBRSVBMSVFNyVBRSU5NyVFNiU5QyVCQSVFNyVCRCU5MSVFNyVCQiU5Qy9UQ1AtJUU0JUI4JTg5JUU2JUFDJUExJUU2JThGJUExJUU2JTg5JThCJUU1JTkyJThDJUU1JTlCJTlCJUU2JUFDJUExJUU2JThDJUE1JUU2JTg5JThCLzI3LmpwZw?x-oss-process=image/format,png)
474474

@@ -495,7 +495,7 @@ net.ipv4.tcp_syncookies = 1
495495
- 当 「 SYN 队列」满之后,后续服务器收到 SYN 包,不进入「 SYN 队列」;
496496
- 计算出一个 `cookie` 值,再以 SYN + ACK 中的「序列号」返回客户端,
497497
- 服务端接收到客户端的应答报文时,服务器会检查这个 ACK 包的合法性。如果合法,直接放入到「 Accept 队列」。
498-
- 最后应用通过调用 `accpet()` socket 接口,从「 Accept 队列」取出的连接。
498+
- 最后应用通过调用 `accept()` socket 接口,从「 Accept 队列」取出的连接。
499499

500500
---
501501

@@ -808,9 +808,9 @@ TCP 保活的这个机制检测的时间是有点长,我们可以自己在应
808808
Linux内核中会维护两个队列:
809809

810810
- 半连接队列(SYN 队列):接收到一个 SYN 建立连接请求,处于 SYN_RCVD 状态;
811-
- 全连接队列(Accpet 队列):已完成 TCP 三次握手过程,处于 ESTABLISHED 状态;
811+
- 全连接队列(Accept 队列):已完成 TCP 三次握手过程,处于 ESTABLISHED 状态;
812812

813-
![ SYN 队列 与 Accpet 队列 ](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3hpYW9saW5jb2Rlci9JbWFnZUhvc3QyLyVFOCVBRSVBMSVFNyVBRSU5NyVFNiU5QyVCQSVFNyVCRCU5MSVFNyVCQiU5Qy9UQ1AtJUU0JUI4JTg5JUU2JUFDJUExJUU2JThGJUExJUU2JTg5JThCJUU1JTkyJThDJUU1JTlCJTlCJUU2JUFDJUExJUU2JThDJUE1JUU2JTg5JThCLzM1LmpwZw?x-oss-process=image/format,png)
813+
![ SYN 队列 与 Accept 队列 ](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3hpYW9saW5jb2Rlci9JbWFnZUhvc3QyLyVFOCVBRSVBMSVFNyVBRSU5NyVFNiU5QyVCQSVFNyVCRCU5MSVFNyVCQiU5Qy9UQ1AtJUU0JUI4JTg5JUU2JUFDJUExJUU2JThGJUExJUU2JTg5JThCJUU1JTkyJThDJUU1JTlCJTlCJUU2JUFDJUExJUU2JThDJUE1JUU2JTg5JThCLzM1LmpwZw?x-oss-process=image/format,png)
814814

815815
```c
816816
int listen (int socketfd, int backlog)
@@ -823,7 +823,7 @@ int listen (int socketfd, int backlog)
823823
824824
在 Linux 内核 2.2 之后,backlog 变成 accept 队列,也就是已完成连接建立的队列长度,**所以现在通常认为 backlog 是 accept 队列。**
825825
826-
**但是上限值是内核参数 somaxconn 的大小,也就说 accpet 队列长度 = min(backlog, somaxconn)。**
826+
**但是上限值是内核参数 somaxconn 的大小,也就说 accept 队列长度 = min(backlog, somaxconn)。**
827827
828828
想详细了解 TCP 半连接队列和全连接队列,可以看这篇:[TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?](https://mp.weixin.qq.com/s/2qN0ulyBtO2I67NB_RnJbg)
829829
@@ -861,4 +861,4 @@ int listen (int socketfd, int backlog)
861861
862862
**小林是专为大家图解的工具人,Goodbye,我们下次见!**
863863
864-
![img](https://cdn.jsdelivr.net/gh/xiaolincoder/ImageHost2/%E5%85%B6%E4%BB%96/%E5%85%AC%E4%BC%97%E5%8F%B7%E4%BB%8B%E7%BB%8D.png)
864+
![img](https://cdn.jsdelivr.net/gh/xiaolincoder/ImageHost2/%E5%85%B6%E4%BB%96/%E5%85%AC%E4%BC%97%E5%8F%B7%E4%BB%8B%E7%BB%8D.png)

0 commit comments

Comments
 (0)