V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lookStupiToForce
V2EX  ›  程序员

真心求教,网络分布、路由、转发、穿透相关知识怎么系统学习

  •  
  •   lookStupiToForce · 2022-08-11 15:25:43 +08:00 · 3407 次点击
    这是一个创建于 867 天前的主题,其中的信息可能已经有所发展或是发生改变。

    起因还是兴趣以及*趣

    需求是想搞清楚以下这些东西,最好是能以前后内容贯通的方式系统性地学习:

    1. DNS 的原理,以及简单实现

    2. 硬软路由 / 旁路由 / 单臂路由 等路由组件相通的部分,和各自解决的痛点

    3. 交换机相对路由器又解决了什么关键的问题

    4. NAT 类型以及打洞具体实现方法,进一步 P2P 打洞的实现

    5. 网络包混淆混淆的到底是啥,比如员工使用**上网能让网络工程师看不出他访问了啥网站吗?

    感觉在描述网络工程,但我想知道有没有哪一本书是专门把上面这些东西给一个野路子程序员拎清后拿来用的,或者一本《计算机网络》能解决以上问题吗?

    23 条回复    2022-08-12 17:30:58 +08:00
    ggvm
        1
    ggvm  
       2022-08-11 15:34:09 +08:00   ❤️ 1
    TCP/IP 详解
    SingeeKing
        2
    SingeeKing  
       2022-08-11 15:44:03 +08:00   ❤️ 1
    在基础知识领域,黑皮书秒杀一切博客、大学公开课秒杀一切培训机构
    isno
        3
    isno  
       2022-08-11 15:45:30 +08:00   ❤️ 1
    等等我的公众号? 我正在给写稿, 这个月能写完吧.

    网络篇的目录

    ● 互联网连接的原理 (以太网、AS 自治、BGP 协议)
    ● 协议的分析和问题: ARP 、ICMP(traceroute)、TCP
    ● 网络延迟的分析与实践 ( mtr 、Wireshark 抓包分析延迟,bgpview.io
    ● 协议缺陷导致的威胁:ARP 欺骗、DOS 攻击...
    ● 网络协议的僵化

    有兴趣的就关注下 公众号地址: thebyte
    mrzhu
        4
    mrzhu  
       2022-08-11 15:49:02 +08:00
    cy ,我都是一个个搜的
    hemingway
        5
    hemingway  
       2022-08-11 15:50:12 +08:00
    可以实践下,就明白了
    coala
        6
    coala  
       2022-08-11 15:52:05 +08:00   ❤️ 3
    NAT 情况下, P2P 打洞这个我是到现在都没想明白...
    双方都没公网 IP, 都是 NAT 环境, 在第三台有公网 IP 的机子协助下, 怎么就能直接建链了.
    Tinyang
        7
    Tinyang  
       2022-08-11 15:57:43 +08:00   ❤️ 1
    我学的时候是先用 wireshark 抓包分析分析,然后再结合 James_F_Kurose,_Keith_Ross_Computer_Networking_A_Top_Down_Approach 这本书看的
    lookStupiToForce
        8
    lookStupiToForce  
    OP
       2022-08-11 16:08:25 +08:00
    @SingeeKing 请教一下黑皮书是哪一本书?我真的没搜到......你别告诉我是机械工业出版社那一书架的书。或者只是 TCP/IP 详解?
    youxiachai
        9
    youxiachai  
       2022-08-11 16:18:35 +08:00   ❤️ 1
    @lookStupiToForce 计算机网络:自顶向下方法

    就是很枯燥, 系统是绝对够系统的, 后面还有习题,检验自己是否是真的看懂了
    Kasumi20
        10
    Kasumi20  
       2022-08-11 16:29:11 +08:00   ❤️ 1
    @coala NAT 转换后就是公网 IP 了,内网的端口映射不会在 TCP 断开之后立即失效,因为 UDP 协议是不需要握手的,这就需要端口映射维持一段时间,这段时间的公网 IP 和对应端口号的流量还是会发给内网机器,所以可以让两台内网机器进行同时打开,大概是这个意思
    billzhuang
        11
    billzhuang  
       2022-08-11 16:30:09 +08:00
    @coala 都没公网 IP 无法直连,两台局域网的机器能联机,要起飞了。
    singerll
        12
    singerll  
       2022-08-11 16:37:21 +08:00 via Android   ❤️ 1
    ccna ,ccnp ,ccie ,华为的认证也可以。
    coala
        13
    coala  
       2022-08-11 16:48:22 +08:00
    @Kasumi20 请教下, 利用 UDP 不需要握手, P2P 必须依赖 UDP 吗? 像百度网盘,直播的 P2P 功能

    TCP 不是需要四元组"IP:端口 IP:端口", 两台 NAT 下的不同内网的机器有法子实现 TCP 链接, 或者直接发送 TCP 数据吗?
    还是必须依赖 UDP 发过去
    misaka19000
        14
    misaka19000  
       2022-08-11 17:02:23 +08:00   ❤️ 1
    有一本书好像叫《图解计算机网络》,讲的挺好的,作为科普和简单入门很不错
    misaka19000
        15
    misaka19000  
       2022-08-11 17:04:24 +08:00
    wanxueyixia
        16
    wanxueyixia  
       2022-08-11 17:07:58 +08:00   ❤️ 1
    不知道,我看好多人都读研学这个才知道,计算机网络,谢喜人写的就是写了个大概,黑皮书,那个就是反过来,tcpip 这个,感觉就是协议讲解,我没怎么看完,哎,我觉得看看写袭人的和自顶向下方法那个就算了,也不是专门搞计算机网络的
    fregie
        17
    fregie  
       2022-08-11 17:54:41 +08:00   ❤️ 1
    CCNA
    Kasumi20
        18
    Kasumi20  
       2022-08-11 18:14:52 +08:00   ❤️ 1
    @coala TCP 也可以打洞的,不过比 UDP 打洞要复杂一点,大概就是通过服务器知道对方的公网 IP 和端口号后,断开与服务器的连接,然后趁着端口映射还有效,双方都去监听之前的端口号,同时,用一个绑定到相同端口号的 socket 去发起 connect (这一步需要设备支持端口复用),然后会有其中一方的监听被 accept ,就可以愉快的交换数据了。
    jones2000
        19
    jones2000  
       2022-08-11 19:12:20 +08:00   ❤️ 1
    去淘宝上买点二手的设备,自己搭建下,才知道怎么搞,光看书没什么用。
    goodryb
        20
    goodryb  
       2022-08-11 19:19:48 +08:00   ❤️ 1
    两个层面吧,知其然,知其所以然

    1.先熟悉 osi 七层模型,

    2.然后学习交换,在学习路由

    3.至于你说的 dns 都是应用层的东西了,和 http 、ftp 等都是同一类

    最后是实现原理,非专业人士一般用不到
    mgcnrx11
        21
    mgcnrx11  
       2022-08-12 08:52:36 +08:00   ❤️ 3
    xFrye
        22
    xFrye  
       2022-08-12 13:46:14 +08:00   ❤️ 4
    NAT 的话我推荐一个链接,讲的挺好的

    https://paper.seebug.org/1561/
    tiedan
        23
    tiedan  
       2022-08-12 17:30:58 +08:00   ❤️ 1
    推荐思科的那三本书
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:41 · PVG 02:41 · LAX 10:41 · JFK 13:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.