1

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

 2 years ago
source link: https://www.v2ex.com/t/875756
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  问与答

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

  uiosun · 8 小时 54 分钟前 · 1135 次点击

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

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

19 条回复    2022-08-27 18:04:15 +08:00
kenneth104

kenneth104      8 小时 46 分钟前

网络 IO ,这话题感觉很大?
是特指 sockets 套接字么?
fengchen0vr

fengchen0vr      8 小时 46 分钟前   ❤️ 2

硬件方面,中断之类的会占用 cpu
软件方面,发包延时,队列
uiosun

uiosun      8 小时 43 分钟前

@kenneth104 面试官就问我网络 IO ,没有特指……所以我也不知道到底是 socket 、eproll 或者啥了
documentzhangx66

documentzhangx66      8 小时 37 分钟前

既然面试官没特指,那你就给他上一课,从网络被发明时讲起嘛,然后讲到各种网络协议、现代网络结构、各种网络硬件与软件,等等。
kenneth104

kenneth104      8 小时 37 分钟前

是挺笼统的问题,尝试在你认知内回答就好。。感觉不用硬顶着回答
wellsc

wellsc      8 小时 35 分钟前

有点反智了
ryd994

ryd994      8 小时 22 分钟前 via Android

如果你不知道有啥用,那就没啥用。计算机是一门实践技术,要用什么学什么。
bigbyto

bigbyto      8 小时 3 分钟前 via iPhone   ❤️ 3

IO 是很多东西的基础,不理解的话也很难理解其他框架,容易人云亦云。

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

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

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

https://wiyi.org/linux-io-model.html
bigbyto

bigbyto      7 小时 59 分钟前 via iPhone

再举个例子,tomcat 和 netty 一个是阻塞 io ,一个非阻塞(多路复用),让你去调整它们的线程池,不懂 io 的话,你就不知道怎么调,只能瞎蒙。
myd

myd      7 小时 42 分钟前

线上系统偶尔会出现网络问题,不了解原理的话很难定位问题
darkengine

darkengine      7 小时 16 分钟前   ❤️ 1

前端:大部分 UI 卡顿跟网络 IO 有关
后端:服务的并发、请求调度跟网络有关,随着分布式的发展,连存储都跟网络 IO 有关。

你说理解网络 IO 有啥用
Helsing

Helsing      7 小时 10 分钟前 via iPhone

简单点说,网络 IO 设计的不好会影响网络吞吐量,进而影响访问速度,下游或用户就会发现服务访问慢,直接感受就是体验不好,最后就有可能导致用户流失。用户流失那钱就没了。
zzzkkk

zzzkkk      7 小时 4 分钟前

@rd949
现在税后有 9 万刀吗
uiosun

uiosun      6 小时 37 分钟前

@bigbyto 感谢,很专业很细节了!

排斥倒没有,因为我这个人属于兴趣导向型,如果觉得一个东西没用,就没啥动力去理解它的细节。
fkdtz

fkdtz      6 小时 31 分钟前

现如今的业务场景几乎没有只需要单机处理就能满足的,而且摩尔定律早已失效,提升单机性能已达极限,所以基本上都是分布式系统了。
网络 IO 之于分布式系统,就像文件 IO 之于单机系统。
利用 IO 的特点,发挥最佳性能,如果不理解 IO ,就没办法实现。
janus77

janus77      6 小时 23 分钟前

八股文确实是没用啊,不过是大部分基层工作没用,随着你技术的深入就会发现用处了。我也不知道他现在有什么用,但并不妨碍我继续学他
fox0001

fox0001      4 小时 27 分钟前 via Android

1 )不知道你面试的什么工作和职位,很难判断。

2 )“网络 IO”这几个字很模糊,或者说范围大。或者问问面试官想要问什么?
Jooooooooo

Jooooooooo      1 小时 47 分钟前

redis 为什么是单线程的?
akira

akira      1 小时 11 分钟前

对 CRUD boy 确实没啥用。 一个公司里面 有那么 2 个人会就行了。
大部分公司没人会也没啥事。。。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK