学 Linux 网络编程,对网络协议的学习有多大帮助

2020-11-06 10:26:53 +08:00
 IndexOutOfBounds

RT

另一个类似的问题:
学 Linux 系统编程,对操作系统的学习有多大帮助

ps: 学习重点是后端需要掌握的

3840 次点击
所在节点    Linux
19 条回复
woowei
2020-11-06 10:40:15 +08:00
内功。潜移默化的。一时半会看不到效果
zhoudaiyu
2020-11-06 10:58:22 +08:00
想问问 LZ 怎么是从什么渠道学的网络基础,比如 TCP/IP 协议这种
chamuyaye
2020-11-06 11:04:25 +08:00
网上资料都是零零碎碎的,有没有比较全的
libook
2020-11-06 11:09:57 +08:00
想学网络协议首先要去看网络协议的标准文档,大多网络协议都是跨操作系统的,不同操作系统上的实现可能有区别,你了解了协议本身的标准之后可以看各种实现程序的文档和源码。

想学操作系统的话首先要学习操作系统的基础知识,如进程管理、内存管理、网络管理等,然后去看操作系统的一些实现方案,如 Linux 、Unix,看各自是采用了哪些设计来实现的各种管理机制。

如果不用 C/C++/Rust 等系统开发语言做网络底层的编程的话,Linux 网络编程对你帮助可能不大,因为很多语言的网络 API 都帮你做好了各种工作,多数情况下你只需要关注应用层,有的库甚至把 HTTP 、TLS 这些应用层的大部分工作都帮你做好了。

如果是做后端服务的话,网络方面大多现成的可靠方案可以直接拿来用,难点主要在于系统架构方面,如性能优化、容灾、中间件的运用等。
IndexOutOfBounds
2020-11-06 12:28:20 +08:00
@chamuyaye
@zhoudaiyu

视频:黑马的 Linux 网络编程
书籍:TCP/IP 网络编程(尹圣雨)(入门)
UNIX 网络编程(翻译听说不太好,又挺厚的,没敢看)
IndexOutOfBounds
2020-11-06 12:28:43 +08:00
@woowei
@libook

好的,谢谢!
jtsai
2020-11-06 12:32:02 +08:00
协议这种东西 学完就忘了 因为是一些死规定,感觉了解个大概要做应用查资料就好
IndexOutOfBounds
2020-11-06 12:49:43 +08:00
@zhoudaiyu 回过头来才发现问的是网络基础,哈哈,我当时是在 b 站看的视频,零零碎碎也看了些博客。不过现在细节已经忘得差不多了,真想学下网络编程顺带复习下
zhoudaiyu
2020-11-06 12:56:35 +08:00
@IndexOutOfBounds 我看的是韩立刚的,感觉还行,看书看不太下去
IndexOutOfBounds
2020-11-06 13:07:11 +08:00
@zhoudaiyu 我也是👀的韩立刚,我看书也看不下去。
感觉书适合看了视频一段时间后去看,复习顺带深入
b00tyhunt3r
2020-11-06 13:10:07 +08:00
@libook
那么 C/C++/Rust 等系统开发语言做网络底层的编程应该如何入门呢
fasionchan
2020-11-06 13:20:23 +08:00
最近计划写一个以计算机网络为主题的入门教程,计划涵盖 TCP/IP 协议、套接字编程、以及基于 Linux 的各种网络实验。等我写完或许可以参考下~

不过,刚刚起步,提纲倒是列好了,正从以太网写起:

https://www.yuque.com/coding-fan/network

我个人偏向慢工出细活,所以更新进度不会很快。另外因能力有限,也希望大家能帮忙提提意见,如果有空一起来写就更好了!
IndexOutOfBounds
2020-11-06 15:01:05 +08:00
@fasionchan 支持!
建议没啥,就明确一下教程面向初学者,还是有基础的吧。
毕竟要让初学者看懂,有基础的有收获,篇幅和难度都挺大的
chaleaoch
2020-11-06 15:22:16 +08:00
网络协议是指什么 TCP/IP 帮助很大.

不过还有茫茫多的三层 二层协议需要学习.
=========================
Linux 系统编程,对操作系统的学习有多大帮助
我觉得有很大帮助,不过短期看不到效果.
不过现在这社会都是快节奏,如果是上班族,并且没时间, 建议直接学操作系统,理解概念不动手,毕竟现在工作还是上层居多.如果不是面向工资编程的话. 那看楼主自己兴趣志向了.
fasionchan
2020-11-06 15:56:51 +08:00
@IndexOutOfBounds 主要面向初学者。面向专业人士,目前已经有不少经典名著了,但初学者一开始能难看懂这些名著。我多年前也是先经过一些摸爬滚打后重读名著才拍案叫好,但为啥我刚开始学网络时却看不懂呢?不禁感慨连连~这也是我想写入门级教程的出发点,作为名著的补充,希望对初学者更友好一些。

按照我的想法,教程会介绍常用网络协议的基本原理,深度不会很深,甚至会删去一些繁文缛节,但讲解会更加细致。此外,我会安排更多网络实验、网络编程这样的实践环节,对加深协议了解、上手协议应用,应该会有帮助。
clxtmdb
2020-11-06 16:28:15 +08:00
真想深入的话,建议这个方向: [ Linux 网络子系统]
后面遇到内核处理的瓶颈推荐这本书《 Linux 开源网络全栈详解:从 DPDK 到 OpenFlow 》
kuro1
2020-11-06 16:37:58 +08:00
大学必修课《计算机网络》
IndexOutOfBounds
2020-11-06 17:34:17 +08:00
@clxtmdb emm,多谢,但我并不想深入,只是在学习网络原理的路上,本着理论➕实践的原则,想接触下网络编程
MarkLeeyun
2021-06-18 14:29:35 +08:00
@zhoudaiyu 我也想问,请问您解决了吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/722283

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX