We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 772e3c4 commit a6d7566Copy full SHA for a6d7566
network.txt
@@ -506,3 +506,18 @@
506
(tips:1、首先根据ip 和 路由表决定数据从哪个网卡发出
507
2、如果ARP缓存中没有ip对应的MAC,则发送ARP广播到路由器
508
3、路由器会返回自己的MAC地址)
509
+
510
+33、什么是C10K问题,解法是?
511
+ (tips:字面上解释C10K就是可以支持并发10K个连接;早期的Apache采用线程模型,即一个连接一个线程处理,
512
+ 这就限制了并发连接数,当并发数量增加后,受限于内核,系统性能下降。
513
+ 解决方法:采用epoll接口实现事件驱动模型,请求的处理时间复杂度不再是O(n^2),
514
+ 之前是O(n^2)是因为select/poll等接口的定义需要遍历两遍socket列表)
515
516
+34、什么是C10M问题,解法是?
517
+ (tips:C10M 相比于 C10K 不仅仅是并发连接数上的增加,
518
+ 还有延迟,数据传输速度上更高的要求;现在的内核数据面和控制面是统一的,
519
+ 这样的模式不利于高速数据传输,即常说的网络栈太长,也即DPDK等提出的原因
520
+ C10M 涉及下面几个方面的扩展
521
+ 1、Packet层面,Packet bypass 内核,让应用更快速的接收到数据,需要自己实现Driver
522
+ 2、多核编程,这里的思路和之前多核编程提及的一样,即 数据分化,减少锁的使用,原子指令的支持
523
+ 3、内存方面,内存的预分配,专用分配,这一点slab已经实现,hugepage的使用)
0 commit comments