如何设计一个网络协议栈? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
abser
V2EX    程序员

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

  •  2
     
  •   abser
    abserari 2020-12-27 16:16:19 +08:00 4588 次点击
    这是一个创建于 1777 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言    2020-12-28 11:48:04 +08:00
    栈是否是一套协议的组合?

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

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

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

    你是想重新写代码实现现在的协议栈,还是要自己设计规范
    nthhdy
        8
    nthhdy  
       2020-12-27 20:04:58 +08:00   1
    为什么想要实现网络协议栈呢?
    目前的各层协议已经很成熟了,常见的问题基本都能解决。
    如果真是对协议栈设计的过程感兴趣,可以看看现在各网络协议的设计、发展历史。
    jingkaimori
        9
    jingkaimori  
       2020-12-27 20:37:40 +08:00   1
    题主应该是要在某个非标准的物理层协议(例如非标准的电压逻辑)上把剩下几层协议写出来,我感觉这种情况下应该看系统的需求规定数据流格式
    wangbenjun5
        10
    wangbenjun5  
       2020-12-27 20:45:27 +08:00
    一般也就实现一个应用层的协议吧,这倒是挺多的,只不过大部分情况下没必要,常见的开源协议完全足够用,但是某些情况下为了安全或者实现特殊功能也会自己设计协议,比如 QQ 用的协议
    janxin
        11
    janxin  
       2020-12-27 20:58:06 +08:00
    先写一个网络协议规范,然后实现它
    lewis89
        12
    lewis89  
       2020-12-27 22:15:31 +08:00
    实际上网络都不是设计出来的,本来设计了 OSI7 层,结果呢? 本地 LAN 就 4 层,广域网上可能只用 IP 协议,IP 下面的链路层跟家用的 LAN 又不一定一样。
    bojongle
        13
    bojongle  
       2020-12-27 23:13:22 +08:00
    tcp 的稳定性,拥塞控制等各种东西你要自己再想一套出来的话怕是得对数学和统计有很深理解才可以
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2112 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 00:48 PVG 08:48 LAX 16:48 JFK 19:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86