V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
IndexOutOfBounds
V2EX  ›  Linux

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

  •  
  •   IndexOutOfBounds · 2020-11-06 10:26:53 +08:00 · 3845 次点击
    这是一个创建于 1479 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT

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

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

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

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

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

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

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

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

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

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

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

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

    按照我的想法,教程会介绍常用网络协议的基本原理,深度不会很深,甚至会删去一些繁文缛节,但讲解会更加细致。此外,我会安排更多网络实验、网络编程这样的实践环节,对加深协议了解、上手协议应用,应该会有帮助。
    clxtmdb
        16
    clxtmdb  
       2020-11-06 16:28:15 +08:00
    真想深入的话,建议这个方向: [ Linux 网络子系统]
    后面遇到内核处理的瓶颈推荐这本书《 Linux 开源网络全栈详解:从 DPDK 到 OpenFlow 》
    kuro1
        17
    kuro1  
       2020-11-06 16:37:58 +08:00
    大学必修课《计算机网络》
    IndexOutOfBounds
        18
    IndexOutOfBounds  
    OP
       2020-11-06 17:34:17 +08:00 via Android
    @clxtmdb emm,多谢,但我并不想深入,只是在学习网络原理的路上,本着理论➕实践的原则,想接触下网络编程
    MarkLeeyun
        19
    MarkLeeyun  
       2021-06-18 14:29:35 +08:00
    @zhoudaiyu 我也想问,请问您解决了吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   904 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:04 · PVG 06:04 · LAX 14:04 · JFK 17:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.