请教一下:理解网络 IO 有什么用? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
uiosun
V2EX    问与答

请教一下:理解网络 IO 有什么用?

  •  
  •   uiosun 2022-08-27 10:20:44 +08:00 2948 次点击
    这是一个创建于 1221 天前的主题,其中的信息可能已经有所发展或是发生改变。

    面试有被问到网络 IO 的问题,这玩意儿到底有啥用处?(理解它的必要性、使用场景等)

    网上的博客都在说细节,就把它当作八股文的一部分,我想知道一些实际的用途

    19 条回复    2022-08-27 18:04:15 +08:00
    kenneth104
        1
    kenneth104  
       2022-08-27 10:28:49 +08:00
    网络 IO ,这话题感觉很大?
    是特指 sockets 套接字么?
    fengchen0vr
        2
    fengchen0vr  
       2022-08-27 10:29:00 +08:00   3
    硬件方面,中断之类的会占用 cpu
    软件方面,发包延时,队列
    uiosun
        3
    uiosun  
    OP
       2022-08-27 10:32:38 +08:00
    @kenneth104 面试官就问我网络 IO ,没有特指……所以我也不知道到底是 socket 、eproll 或者啥了
    documentzhangx66
        4
    documentzhangx66  
       2022-08-27 10:37:54 +08:00
    既然面试官没特指,那你就给他上一课,从网络被发明时讲起嘛,然后讲到各种网络协议、现代网络结构、各种网络硬件与软件,等等。
    kenneth104
        5
    kenneth104  
       2022-08-27 10:38:24 +08:00
    是挺笼统的问题,尝试在你认知内回答就好。。感觉不用硬顶着回答
    wellsc
        6
    wellsc  
       2022-08-27 10:40:22 +08:00
    有点反智了
    ryd994
        7
    ryd994  
       2022-08-27 10:53:04 +08:00 via Android
    如果你不知道有啥用,那就没啥用。计算机是一门实践技术,要用什么学什么。
    bigbyto
        8
    bigbyto  
       2022-08-27 11:11:47 +08:00 via iPhone   4
    IO 是很多东西的基础,不理解的话也很难理解其他框架,容易人云亦云。

    比如 tomcat 是如何操作 web request 的,你不理解 io 模型,就不理解为什么要那样设计。

    还有 kafka 为什么性能那么高?就是因为 zero-copy 和顺序 io 以及充分利用了 page cache 等等。

    这是个基础,别因为是八股文就排斥。之前写过一篇 io 的,自认为还可以,有兴趣可以参考一下。

    https://wiyi.org/linux-io-model.html
    bigbyto
        9
    bigbyto  
       2022-08-27 11:15:44 +08:00 via iPhone
    再举个例子,tomcat 和 netty 一个是阻塞 io ,一个非阻塞(多路复用),让你去调整它们的线程池,不懂 io 的话,你就不知道怎么调,只能瞎蒙。
    myd
        10
    myd  
       2022-08-27 11:33:24 +08:00
    线上系统偶尔会出现网络问题,不了解原理的话很难定位问题
    darkengine
        11
    darkengine  
       2022-08-27 11:59:22 +08:00   2
    前端:大部分 UI 卡顿跟网络 IO 有关
    后端:服务的并发、请求调度跟网络有关,随着分布式的发展,连存储都跟网络 IO 有关。

    你说理解网络 IO 有啥用
    Helsing
        12
    Helsing  
       2022-08-27 12:05:35 +08:00 via iPhone
    简单点说,网络 IO 设计的不好会影响网络吞吐量,进而影响访问速度,下游或用户就会发现服务访问慢,直接感受就是体验不好,最后就有可能导致用户流失。用户流失那钱就没了。
    zzzkkk
        13
    zzzkkk  
       2022-08-27 12:11:23 +08:00
    @rd949
    现在税后有 9 万刀吗
    uiosun
        14
    OP
       2022-08-27 12:37:45 +08:00
    @bigbyto 感谢,很专业很细节了!

    排斥倒没有,因为我这个人属于兴趣导向型,如果觉得一个东西没用,就没啥动力去理解它的细节。
    fkdtz
        15
    fkdtz  
       2022-08-27 12:44:20 +08:00
    现如今的业务场景几乎没有只需要单机处理就能满足的,而且摩尔定律早已失效,提升单机性能已达极限,所以基本上都是分布式系统了。
    网络 IO 之于分布式系统,就像文件 IO 之于单机系统。
    利用 IO 的特点,发挥最佳性能,如果不理解 IO ,就没办法实现。
    rb6221
        16
    rb6221  
       2022-08-27 12:51:50 +08:00
    八股文确实是没用啊,不过是大部分基层工作没用,随着你技术的深入就会发现用处了。我也不知道他现在有什么用,但并不妨碍我继续学他
    fox0001
        17
    fox0001  
       2022-08-27 14:48:09 +08:00 via Android
    1 )不知道你面试的什么工作和职位,很难判断。

    2 )“网络 IO”这几个字很模糊,或者说范围大。或者问问面试官想要问什么?
    Jooooooooo
        18
    Jooooooooo  
       2022-08-27 17:28:15 +08:00
    redis 为什么是单线程的?
    akira
        19
    akira  
       2022-08-27 18:04:15 +08:00
    对 CRUD boy 确实没啥用。 一个公司里面 有那么 2 个人会就行了。
    大部分公司没人会也没啥事。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5353 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 06:43 PVG 14:43 LAX 22:43 JFK 01:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86