Linux服务器开发,Posix API与网络协议栈
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习socket是插座,fd和tcb控制块。服务器只有65545个端口,那为什么能做到100w的连接呢?一个fd就有一个tcb,一百万个fd就要有
────────────────────────────────────────────────────────────────
┌————————————┐
│▉▉♥♥♥♥♥♥♥♥ 99% │ ♥❤ 鱼沈雁杳天涯路,始信人间别离苦。
└————————————┘
对你的感情正在充电中,请稍侯…
────────────────────────────────────────────────────────────────
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习
────────────────────────────────────────────────────────────────
服务器只有65545个端口,那为什么能做到100w的连接呢?
一个fd就有一个tcb,一百万个fd就要有一百万个tcb,通过五元组进行区分,只要五元组的数量足够多,连接就可以很多。
- send()函数只负责将数据拷贝。
- push标志位置1,立即推给应用程序去处理。
- 协议头上面加上长度,加上分隔符。顺序是先发的先到、
- ip层也并不能保证发送的顺序。
延迟ACK
ACK回复只回复到比丢失帧帧号小但是最大的帧。
TCP如此优秀,那为什么还要选择UDP?
弱网环境下,TCP丢包延迟ACK导致多次重传,并且实时性无法保证。
TCP为什么是四次挥手?
恩师表示三次挥手也是可以的,就像男女分开,三次分手就是毫无人性的表示立刻同意分手,当机立断。而四次分手,男方经过慎重思考后决定再去分手。隐身如果交往之时也是同样的可以分为四次拉手。
服务器出现大量的close_wait如何解决?
- 先调用close,都关闭了就解决啦。
- 将业务信息抛到子线程。
如何终止到fin_wait_2?
卡在fin_wait_2想取消,进程是关不掉的。
- 要么这个问题就不解,再起个连接又能怎么样?
- 设置keepalive
更多推荐
所有评论(0)