首页 > 科幻次元 > 四合院:让你当学徒,你手搓光刻机? > 第266章 数字世界的灵魂——TCP/I

第266章 数字世界的灵魂——TCP/I(1/2)

目录

“什么是通讯协议?”

李卫国没有直接开始写代码,而是先提出了一个问题。

孙教授和钱院士对视一眼,由在软件领域更权威的孙教授来回答。

“协议,就是一种约定,一种规则。”

“比如,我们之前在局域网内传输文件,会约定好,发送方先发一个‘请求’信号,接收方回复一个‘准备就绪’信号,然后发送方再开始传输数据。”

“这就是一种简单的协议。”

“没错。”

李卫公点头,对孙教授的理解表示肯定。

“但这种简单的‘你问我答’式协议,只能用在‘局域网’这种,线路质量极高、几乎不会出错的‘无菌环境’里。”

“而我们现在要面对的,是长途电话线这种,充满了噪音、干扰、甚至会随时中断的‘垃圾场’。”

“在这种环境里,‘你问我答’就没用了。”

李卫国打了个比方。

“这就好比,你隔着一条嘈杂的马路,对另一个人喊话。”

“你喊一句‘你好吗’,他可能只听到了一个‘你’字,或者听成了‘泥嚎吗’。”

“甚至,一辆卡车开过,他什么都没听到。”

“那怎么办?”

“很简单。”

李卫国自问自答。

“首先,我们不能再按‘句子’来喊话了,太长了,容易出错。”

“我们得把一句话,拆成一个个的‘包裹’。”

他在纸上画了一个个的小方块。

“比如,‘你好吗’,就拆成‘你’、‘好’、‘吗’三个包裹。”

“然后,给每个包裹,都编上号。1号包裹是‘你’,2号包裹是‘好’,3号包裹是‘吗’。”

“这样,对方就算收到的顺序是乱的,比如先收到了3号,再收到了1号,他也能根据编号,自己重新排好序。”

钱院士听到这里,眼睛一亮。

“数据包!我明白了,这是数据包拆分和排序!”

“对,但这只是第一步。”

李卫国继续说道。

“光有编号还不够,如果中间有个包裹,因为噪音太大,‘损坏’了,或者干脆‘丢失’了怎么办?”

“比如,2号包裹‘好’,对方收到的,变成了‘孬’,或者干脆没收到。”

“所以,我们要在每个包裹的‘封皮’上,再加一个东西。”

“叫做‘校验码’。”

“这个‘校验码’,是通过一个特殊的算法,根据包裹里的‘内容’计算出来的。比如,‘你’这个字的校验码是A,‘好’这个字的校验码是B。”

“当接收方收到1号包裹时,他自己也用同样的算法,计算一下包裹里的‘你’字,如果算出来的校验码也是A,那就说明这个包裹是完好无损的。”

“如果他收到2号包裹,里面的内容是‘孬’,他一算,校验码不对,就知道这个包裹在路上‘摔坏’了。”

“或者,他收到了1号和3号,就是没收到2号,那他也知道,2号包裹‘寄丢了’。”

“那寄丢了或者摔坏了,怎么办?”

孙教授追问道。

“问得好。”

李卫国笑了。

“这就需要我们的第三个关键机制,也是最重要的机制。”

“‘确认与重传’(Aowledgentaransission)。”

“规则很简单:接收方每成功收到一个完好的包裹,就必须给发送方,回一个‘确认’信息。比如,‘1号我收到了,完好无损’。”

本章未完,点击下一页继续阅读。

目录
返回顶部