V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
abser
V2EX  ›  程序员

如何设计一个网络协议栈?

  •  2
     
  •   abser ·
    abserari · Dec 27, 2020 · 4823 views
    This topic created in 1948 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Dec 28, 2020
    栈是否是一套协议的组合?

    https://github.com/google/netstack gVisor 中的实现.

    如何根据一个业务设计出一个协议栈?

    如支付业务, 支付网关和中间件的设计算协议栈的设计的一部分吗?
    13 replies    2020-12-27 23:13:22 +08:00
    Tianao
        1
    Tianao  
       Dec 27, 2020
    好家伙,你想实现什么,或者说想实现哪个分层网络模型中的哪几层功能?
    Lemeng
        2
    Lemeng  
       Dec 27, 2020
    有意思,呵呵
    tubowen
        3
    tubowen  
       Dec 27, 2020
    ns-3 ?
    irytu
        4
    irytu  
       Dec 27, 2020 via iPhone
    去看看 lwIP
    nezumi85757
        5
    nezumi85757  
       Dec 27, 2020
    先熟读 tcp/ip 协议栈详解
    v2lf
        7
    v2lf  
       Dec 27, 2020
    能写协议规范的 就是牛逼

    你是想重新写代码实现现在的协议栈,还是要自己设计规范
    nthhdy
        8
    nthhdy  
       Dec 27, 2020   ❤️ 1
    为什么想要实现网络协议栈呢?
    目前的各层协议已经很成熟了,常见的问题基本都能解决。
    如果真是对协议栈设计的过程感兴趣,可以看看现在各网络协议的设计、发展历史。
    jingkaimori
        9
    jingkaimori  
       Dec 27, 2020   ❤️ 1
    题主应该是要在某个非标准的物理层协议(例如非标准的电压逻辑)上把剩下几层协议写出来,我感觉这种情况下应该看系统的需求规定数据流格式
    wangbenjun5
        10
    wangbenjun5  
       Dec 27, 2020
    一般也就实现一个应用层的协议吧,这倒是挺多的,只不过大部分情况下没必要,常见的开源协议完全足够用,但是某些情况下为了安全或者实现特殊功能也会自己设计协议,比如 QQ 用的协议
    janxin
        11
    janxin  
       Dec 27, 2020
    先写一个网络协议规范,然后实现它
    lewis89
        12
    lewis89  
       Dec 27, 2020
    实际上网络都不是设计出来的,本来设计了 OSI7 层,结果呢? 本地 LAN 就 4 层,广域网上可能只用 IP 协议,IP 下面的链路层跟家用的 LAN 又不一定一样。
    bojongle
        13
    bojongle  
       Dec 27, 2020
    tcp 的稳定性,拥塞控制等各种东西你要自己再想一套出来的话怕是得对数学和统计有很深理解才可以
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5732 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 06:04 · PVG 14:04 · LAX 23:04 · JFK 02:04
    ♥ Do have faith in what you're doing.