Skip to content

Commit 81872a0

Browse files
committed
add tcp status related
1 parent add87a6 commit 81872a0

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

network.txt

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@
351351
为 min(listen_backlog, /proc/sys/net/core/somaxconn),
352352
当命令输出中这两个参数相等时,表示当前accept队列满,考虑调大somaxconn数值;
353353
如果是已经建立好的链接,Recv-Q表示内核已经收到但是应用还没有读取的数据量,
354-
Send-Q表示还在SendBuf中,没有ack的数据量)
354+
Send-Q表示还在SendBuf中,没有ack的数据量,单位是字节)
355355

356356
109、当半连接队列满时,新来的连接的处理方式为?
357357
(tips:丢弃新来的连接请求,客户端的connect会超时)
@@ -516,6 +516,35 @@
516516
143、网络模块中的连接表是全局的,在recv中,计算四元组hash,然后在连接表中找到sock,
517517
完成后续的通信过程
518518

519+
144、tcp用到的mem参数有如下几个:
520+
(
521+
net.core.rmem_default 所有socket的读取buffer默认值
522+
net.core.rmem_max 所有socket的读取buffer最大值,可以由setsockopt SO_RECVBUF 修改,单位字节
523+
net.core.wmem_default 所有socket的发送buffer默认值
524+
net.core.wmem_max 所有socket的发送buffer最大值,可以由setsockopt SO_SNDBUF 修改,单位字节
525+
net.ipv4.tcp_mem tcp socket 能用到的mem量,分 min pressure max,以page为单位
526+
net.ipv4.tcp_rmem 单tcp socket 能用到的接收buffer量,分 min pressure max,调用setsockopt修改rmem后,内核的自适应调节功能关闭
527+
net.ipv4.tcp_wmem 单tcp socket 能用到的发送buffer量,分 min pressure max,调用setsockopt修改wmem后,内核的自适应调节功能关闭
528+
)
529+
530+
145、tcp各个状态简述
531+
532+
FIN_WAIT_1,主动调用close的一方在发送了FIN包之后的状态,当收到对方的ack后,状态流转到FIN_WAIT_2;如果没有收到ack,那么重新发送FIN包
533+
FIN_WAIT_2,处于FIN_WAIT_1状态的socket收到FIN的ack后,状态转为FIN_WAI_2,socket在这个状态的超时时间为tcp_fin_timeout,如果系统中有较多的
534+
此状态的socket,那么表示对端可能异常,没有正确的调用close
535+
time_wait,主动关闭的一方在收到对方发送的FIN后,回复ACK,状态转为time_wait,在2 msl 时间后,socket 关闭
536+
close_wait,被动关闭的一方收到对端的FIN包后,状态转为close_wait,注意,这个状态没有超时时间,需要后端配合来释放socket链接
537+
last_ack,被动关闭的一方发送FIN后,状态转为last_ack,如果没有收到对方的ack,需要重传,如果收到ack,那么socket状态为closed
538+
539+
540+
146、什么是orphan sockets
541+
(tips:orphan socket可以理解为没有和fd关联的socket,对应TCP中socket的状态为 FIN_WAIT_1,LAST_ACK,TCP_CLOSING,
542+
其中TCP_CLOSING用于表示同时关闭的场景,即在FIN_WAIT_1状态下同时受到FIN包
543+
CLOSE_WAIT 不计入 orphan socket
544+
TIME_WAIT 不计入 orphan socket
545+
FIN_WAIT_2 根据 fin_timeout 不同时长,有可能计入
546+
如果系统上orphan socket 过多,那么需要统计处于哪个状态的socket较多,再结合[145]来分析)
547+
519548
// http
520549
1、什么是CNAME?
521550

@@ -557,6 +586,12 @@
557586
15、标准http header中的字段都是大小写不敏感的,浏览器已经对这个进行了处理,
558587
在做服务端开发,或者客户端解析时需要注意
559588

589+
16、http协议中的Connection header定义了当前Trans完成后,服务端怎么处理当前这个连接。
590+
默认为 close,即常见的短链接
591+
如果为 Keep-Alive,那么链接将会维持
592+
http Header中同样有Keep-Alive字段,可以定义timeout 和 max 字段来控制当前链接的超时时间
593+
和发送的request数量
594+
560595
// 其他相关
561596
1、iptables实现原理,使用了哪些算法?
562597

0 commit comments

Comments
 (0)