首页   注册   登录
 ChristopherWu 最近的时间轴更新
ChristopherWu's repos on GitHub
Java · 18 人关注
AndroidNetMonitor
This project aims to collect and analyze traffic information of Android.(采集手机发送和接收的报文简要信息,并且根据socket记录每个报文对应哪个手机app)
Shell · 11 人关注
golang-binary-package-generator
A script of Go1.7 binary package generator, with a detail example.
C · 5 人关注
C_eval
C/C++ equivalent of eval(“function(arg1, arg2)”)
C++ · 4 人关注
algorithm_and_datastruct
A place to put my tools and code.
C · 4 人关注
http_client
A http client written in C and pure socket, for understanding HTTP protocol. 用于理解 http 协议的 http 客户端
JavaScript · 1 人关注
gdpuer
Ourstudio广药小助手,贴心为您服务。一个关注,就能随时随地订阅广药新闻、就业资讯,查询校园网、图书馆信息,查成绩,查课表,查天气,拥有网站导航与生活服务功能。菜单:回复?号
Python · 1 人关注
GT_Program
使用Python对报文进行组流,根据网络流的5元组信息和客户端GT获得的文件里的5元组信息,进行网络流的应用标记工作
0 人关注
-lifeweek
Python · 0 人关注
ansible
Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications — automate in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com/ansible/
Python · 0 人关注
ansible-modules-core
Ansible modules - these modules ship with ansible
Elixir · 0 人关注
ApkInjector
A tool for packing libraries(third party sdks) to a apk
Python · 0 人关注
Barrage-game
barrage-game
C · 0 人关注
csapp_labs_2019
Cuda · 0 人关注
deep-painterly-harmonization
Code and data for paper "Deep Painterly Harmonization": https://arxiv.org/abs/1804.03189
Python · 0 人关注
douban.fm
:radio: douban.fm based on Python
Python · 0 人关注
doubanfm
Douban fm python命令版
C++ · 0 人关注
dtoa-benchmark
C++ double-to-string conversion benchmark
Go · 0 人关注
echo
High performance, minimalist Go web framework
Elixir · 0 人关注
elixir
Elixir is a dynamic, functional language designed for building scalable and maintainable applications
C · 0 人关注
elixir-cbson
BSON NIF for Elixir/Erlang language http://bsonspec.org
Elixir · 0 人关注
Elixir-Dingding
Elixir 版本的钉钉第三方认证
Elixir · 0 人关注
elixir-mongo
MongoDB driver for Elixir
Elixir · 0 人关注
extwitter
Twitter client library for elixir.
Go · 0 人关注
go-binary-only-package
Sample of Go1.7 Binary-Only Packages
Go · 0 人关注
go-clickhouse
Golang ClickHouse connector
Go · 0 人关注
go-libraries
My go libraries for convenience.
C++ · 0 人关注
GooglePhoneInterview
Google电面题目题解
Python · 0 人关注
kindle-open-books
This project is created to convert open source materials to kindle supported format
C · 0 人关注
Lispy

ChristopherWu

  •   阿里月饼公司
    V2EX 第 164255 号会员,加入于 2016-03-21 16:10:43 +08:00
    今日活跃度排名 13224
    三次握手的误解与错误类比 (RFC 解读)
    程序员  •  ChristopherWu  •  10 天前  •  最后回复来自 lhx2008
    46
    洗澡时,我终于跑出来喊出了我的 Eureka
    程序员  •  ChristopherWu  •  33 天前  •  最后回复来自 msg7086
    64
    ChristopherWu 最近回复了
    10 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @kaneg 总结得很好
    10 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @letianqiu 恩,是的。复用就是谢希仁举的例子,但是他的例子只是说了缺点是:连接被多开,而没有用到。但是 SYN FLOOD 一样会有这样的问题,所以核心不是旧的连接信息来到,开了一条没有用的连接。
    核心是,旧的 seq 过来,tcp 要识别到此 seq 是否有效。
    10 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @linKnowEasy 那你对比一下我举出来的类比,以及文中列出的两个类比,看看区别?
    >序号不是关键信息, 互相通知准备完成才是关键信息
    恰恰相反,我想说明标注的就是:序号才是关键信息。

    准备不准备好,只是影响连接是否建立完成。
    序列号是否同步到,才影响连接上的数据是否完备,可靠。
    10 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @lhx2008 @zarte @PureWhiteWu

    刚好 @linKnowEasy 你提醒我了,我原来在想这篇文章时,是想举一个更加准确的类比来说明那个类比是不对的。
    我就此举一下:

    TCP 传递信息可以理解为美国与中国用货船来传货物,但因为一首轮船穿放不下,货物要分开一只只轮船来发货。

    所以需要一个序列号来识别该货物是第几个,以便到达后将其拼接回原来的货物。

    因为同一条航道(也就是 tcp 连接)上,可能会有多批货物发送(复用 tcp 连接)。发货时,双方需要通知对方这个序列号是从哪里开始( init seq )的,这样才能辨识过来的是不是一个对的货物,以及能拼接成完整的货物。

    货物运输拼接( tcp )最重要的是可靠性,如果没有用三次握手来确认双方都可以获得对方的 序列号( seq )的话,就无法知道当前航班(连接)中,对的货物序号是怎么样的了。

    ***粗略的写了写,这个类比可以说明为什么我文中两个类比是错误的。***
    10 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @lhx2008 三次握手是建立可靠信道的必要条件。

    还有一点我说得不清楚,不是你说的『 TCP 同时建立多条连接的意义』,而是 TCP 可以复用链接。在这种情况下,旧的包也许还在途,但是复用的新连接又有一个新包来了,因此需要 seq 来识别此情况。
    11 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @hx2008
    >所以三次握手本质上还是为了建立多个连接而需要传递初始 SEQ 造成的?

    对,你的理解是对的。
    我的文中也说道了: 『 TCP 需要 seq 序列号来做可靠重传或接收,而避免连接复用时无法分辨出 seq 是延迟或者是旧链接的 seq,因此需要三次握手来约定确定双方的 ISN (初始 seq 序列号)。』

    但现实没有这么理想,因为 seq 是递增的话,要考虑到被人攻击(所以现代 seq 的选择也是比较复杂的,比我说的用计时器递增还要复杂些,如可能用加密,随机选择等方式。)
    11 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @radiolover 我说得长是因为还要说明 :为什么需要 seq,如何以及为什么需要构造一个独特的 seq 等。
    11 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @swulling 对概念的 『正确性』苛求一点,是很有好处的,所谓差之毫厘谬以千里。
    就如常见的例子:
    md5 是加密算法,你也可以说是『不够详细』或者说『不完备』的,但就是错的。md5 勉强可以做加密,但本质上就是不可逆的哈希算法。
    再如之前 v 站批判过的『粘包』 的这个国内特有概念,你也不能说这个是『错误的』,但苛求来说,就不应该存在这样的概念。
    11 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @mrgblues 不算手误,看着舒服就用了- -。具体排版规则我不清楚,没有学过 - -
    11 天前
    回复了 ChristopherWu 创建的主题 程序员 三次握手的误解与错误类比 (RFC 解读)
    @m3dull 谢谢评论~觉得写的还行,可以关注公众号🙊
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3149 人在线   最高记录 4236   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 10:10 · PVG 18:10 · LAX 02:10 · JFK 05:10
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1