TCP/IP 之 大明王朝邮差

Latext安装(二)WinEdt安装+激活教程 常用的LaTeX安装方案是TeXLive + WinEdt。TeXLive 是LaTeX的运行环境,而 WinEdt 则是编写LaTeX文档的编辑器。安装好TexLive之后,再安装WinEdt。这里介绍的是WinEdt的安装和激活教程。 阅读详情

前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵。

大明王朝天启四年, 清晨。  

天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下面的动静。 


城门口的大棚里乱哄哄的,是一群人围在一起赌钱, 这些家伙都穿着同样的衣服, 前胸和后背写着三个大字  “TCP邮差”


我知道这就是我要找的人, 他们会帮我把货物发出去。  

我下了车,在大棚里四处查看, 找到一个无聊的坐着独自喝闷酒的小伙子。

"邮差小哥 ,帮我把这车货发了呗"

小伙子懒洋洋的站起来说: “你从哪儿来,要到哪儿而去啊?”

我赶紧拿出写好的地址说: ”我住在咱们城里北拐街224号, 要发一车货物到内乡县衙“


“内乡县衙有很多门, 你的货进那个门啊?” 邮差小哥接着问。

“出发的时候老板给我说了, 发到80号门 。”

邮差小哥说: “走吧, 咱们到前面去。”

大棚的前面是一大批开阔地, 可能我们来的早 ,  现在只有我,邮差小哥, 当然,还有我的马车。 

“你等等, 我先给内乡县衙建立个连接 ”邮差说着, 吹了个口哨, 一匹马跑了过来。

他拿起毛笔在一张纸写了一封信:

“县衙县衙, 我是京城, 我想和你建立连接, 我的序号1024 , 收到请回话! ”


信封上写着:

发货地:京城北拐街224号

收货地:内乡县衙, 80号门 


然后把这这个纸放到了马背上的褡裢里, 拍了拍马屁股: “快走吧。”

过了两个时辰, 那匹马回来了, 邮差掏出了马运回来的那封信, 上面写着:

“京城京城,收到了你的信, 你的信里边有个序号是1024,对不对? 同意建立咱们的连接, 我这边序号是2048”

邮差喜形于色 : “ 看看, 连接快要建立了, 我再给他们发一封信就行了”

”县衙县衙, 我收到你的确认信了, 也看到了你的序号是2048, 我开始发货了”

我问他: “这就是连接吗, 我没看见你扯一条线把京城和县衙连起来啊”

邮差说: “这你就不懂了吧,这就是TCP连接, 是虚拟的,  连接的状态信息并不会在路上保存; 相反, 连接的状态信息是在两端维持的, 也就是在我这里和县衙那里一起维持的。 ”

“那你们为啥要发三封信呢? ”

“这就是三次握手啊, 我给你分析一下啊, 这三次握手主要是为了验证我这边和县衙那边的发信/收信能力没问题, 这样就证明连接是通的, 可以正式发货了。”

第一次握手:京城发信,县衙收到了,此时县衙就会明白:京城发信能力和自己的收信能力是没问题的。 

第二次握手:县衙发信,京城收到了,此时京城就会明白:京城的发信和收信都是好的, 县衙的发信和收信也都是没问题的。 要不然收不到县衙的回信 , 但是县衙还不知道自己的发信功能如何?所以需要第三次握手:

第三次握手:京城发信,县衙收到了,此时京城已经确认,双发的收信,发信都是没问题的, 这次回应的目的只是消除县衙对自己的发信功能和京城的收信功能的担忧而已。 

说实在的, 我有点晕, 邮差小哥说 : “你多琢磨琢磨就明白了。” 

我问他: “你这么辛苦的建立连接, 难道不亲自去送货吗?”


邮差说:“ 我才不去呢! 本朝新皇登基以来,整天像木匠一样做木工,不理朝政, 导致民不聊生, 大片田地荒芜, 强盗,野兽横行, 早就没有人敢冒着风险去送货了。所以内阁的那帮大臣们就想了个招,修建四通八达的官道, 让马,驴这些牲畜去送货, 即使被老虎吃掉也没啥损失, 天朝还是挺以人为本的。”

“那这些马怎么知道把我的货送的内乡县衙啊”

“不用担心, 它们都是训练过的, 会沿着官道走,在每一个每个岔路口朝廷都会修建一个驿站, 马累了可以吃草喝水休息, 更关键的是,每个驿站的衙役会看看我刚才写的信 ,他们知道路, 然后把马领到一个新的正确的官道,继续走, 最终就能到内乡县衙。 对了, 大家给这些驿站起来个别名:路由器”

“万一马跑丢了, 或者被老虎吃掉,到不了,或者回不来怎么办?”

“那就是我们TCP邮差要干的事儿了, 你马上就会看到, 我来看看你的货, 哎啊, 你这个柜子太大了, 一匹马驮不走, 得分成小包裹, 一个一个运”

我没办法, 只好把一件大货物拆开, 分成小包裹。

“ 给每个包裹编个号吧”  邮差说到。 “这样到了内乡县衙他们就能组装起来,原样恢复了”

我突然想到一个严重问题:“万一马被强盗抢走了。我这个柜子的一条腿岂不就丢了  ”

邮差见怪不怪: “没办法, 内阁的大人们说了, 这种情况, 就重新发送那一个包裹。”

擦, 我心头有一万头羊驼跑过:  这帮大人们真是站着说话不腰疼啊,  万一柜子的腿儿丢了, 我还得重做啊。

邮差把包裹按编号摆成一列, 1, 2, 3, ...... 10 ,一共10个包裹。 

“按规定我们每次最多发3个包裹,按序号发, 先发 1, 2, 3号包裹” 邮差说着叫来3匹马, 装上货,马一溜烟的跑掉了。 

我在那里提心吊胆的等着,生怕一个包裹丢了。 

可是怎么知道包裹是不是到了县衙了呢。 

邮差似乎看出了我的心思, 从怀里掏出一个沙漏说: 如果漏完了, 县衙还没给咱们确认, 那就是丢了, 只有重发了。 

过了一个时辰, 我期盼的县衙的马终于来了,  里边的信里说: 1号包裹收到了。 

“好了” 邮差说, “县衙确认收到了 1号包裹,  咱们可以再发一个了”, 说着叫来一匹马, 把第4号包裹发了出去。 

我现在有点理解了, 邮差的做法是每次只保证有3个包裹发出去并且没有确认 

又过了一会, 县衙一下子来了3匹马, 带来了2,3,4号包裹的确认。 

邮差说: " 看来你的运气还不错, 我在把5,6,7 号发出去“  说着他把沙漏掉了个个, 重新开始计时。

5号包裹的确认很快来了,  邮差又把8号发了出去, 这样已经发送但是没有确认的包裹还是三个。 

现在6,7,8号包裹都发出去了, 可是6号包裹的确认迟迟不来, 我心急如焚。 

正在此时, 沙漏漏完了, 我不安的向邮差看去。  

他倒是满不在乎:“ 哎呀, 超时了,有可能是运送6号包裹的马被老虎吃了, 县衙没收到”

“那怎么办啊” 我焦急的问。 

“我们只好从6号包裹开始重新发送了, 6号包裹恰好是柜子的一条腿儿, 回去给你老板说说, 再做做个柜子腿儿吧, 一定要保证和之前发出去的一模一样。”

我问他: “那7,8号包裹呢?  县衙收到没有?”

“我们现在还不知道,如果收到了, 他们会暂时存下来。 如果没收到, 那还得像6号包裹一样,继续重发。”

我的忍耐力到了极限, 真想跳起来揍邮差一顿。 

冷静下来, 我想了想说:“不对,你为什么一下发了3个包裹, 你不能发一个等着确认一个吗?  我要告你去 。”

邮差说: “随便你了, 反正你是告不赢的, 这是内阁首辅大人确定的, 我们用的叫滑动窗口协议, 如果窗口N=1 ,  即发一个等着确认一个, 那样就太慢了, 我这个邮差也不能一直被你占用,  我们把N的值设大一点, 例如N=3, 就是为了能够像流水线那样做事,   一边发包裹, 一边收确认, 这样快一点。”

没办法,只好回去找老板做柜子腿儿, 这耽误了很多时间。 

邮差把6号包裹又发了出去, 再次重新计时。 

6号包裹的确认还是没有收到!    7号的确认也没收到,  但是8号包裹的确认先收到了!

邮差说: “恩, 不错,6,7号的确认包裹估计是在路上丢了, 没关系, 只要县衙说收到了8号包裹, 暗含的意思就是 6, 7 号都收到了。 要不然他们不会发8号的确认。”

接下来就发9,10号包裹, 这次还行, 总算没丢, 终于把整个柜子全发出去了。 

内乡县衙那边也把柜子给组装了起来。 我的任务总算完成了。 

后来我得知, 县衙其实是收到了第6号包裹,只是他们的发给京城的确认包裹在路上给弄丢了, 我们没收到, 导致我们重新发了一份。  

我算是明白了这所谓的TCP, 无非就是在那些不可靠马匹运输的基础上建立一个可靠的发送办法, 基本上就是失败重发, 受苦的还是我们这些底层老百姓。 

我给邮差付了2两银子作为费用 , 拉着马车,头也不回的走了。 

只听到邮差在后边喊:“ 欢迎再来, 内阁首辅正在研究新的协议呢, 下次一定要来试试啊。”

我没理他, 因为我再也不想来到这个鬼地方了!


热门文章

我是一个线程

我是一个Java class

Javascript: 一个屌丝的逆袭

小王的架构师之路

CPU 阿甘

IE为什么把Chrome和火狐打伤了

Node.js :我只需要一个店小二

假如我是计算机系老师

假如时光倒流,我会这么学Java

学会编程,而不是学会Java

15年编程生涯,资深架构师总结的7条经验

0?wx_fmt=jpeg

公众号: 码农翻身

“码农翻身”公众号由工作15年的前IBM架构师创建,分享编程和职场的经验教训。

Python爬虫实战:利用Scrapy+Playwright高效爬取TED演讲数据 在当今信息爆炸的时代,TED演讲作为全球知名的思想传播平台,汇聚了各领域顶尖人才的精彩分享。对于数据分析师、研究人员或内容创作者来说,获取TED演讲的完整数据集具有重要价值。本文将详细介绍如何使用Python中最先进的爬虫技术组合——Scrapy框架配合Playwright浏览器自动化工具,高效爬取TED演讲的完整数据。传统爬虫技术在处理现代动态网页时面临诸多挑战,而本文将展示如何利用最新工具解决这些问题。 阅读详情

相关推荐

ROS Navigation global_planner框架解析

ROS Navigation global_planner框架解析主要讲一下我看源码总结的框架,如果大家跟着这个框架看源码的话可能会看的比较快。主要讲解global_planner关键配置参数含义及关键函数Astar,Dijkstra,QuadraticCalculator::calculatePotential,PotentialCalculator::calculatePotential,GridPath::getPath,GradientPath::getPath.

Jeff_Lee_的博客 4694

TCP/IP 之大明王朝邮差

TCP/IP 之大明王朝邮差 本系列文章全部摘选自“码农翻身”公众号,仅供个人学习和分享之用。文章会给出原文的链接地址,希望不会涉及到版权问题。 个人感言:真正的知识是深入浅出的,码农翻身”公共号将苦涩难懂的计算机知识,用形象有趣的生活中实例呈现给我们,让我们更...

dichuangheng8094的博客 348

Vertx之Grpc消息发送

介绍 Vert.x gRPC 模块,它将 Google gRPC 的编程风格与 Vert.x 风格保持一致. gRPC 是一个高性能、开源、通用的RPC框架,是一种进程间通讯技术,由Google推出,基于HTTP2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言。gRPC提供了一种简单的方法来精确的定义服务,并且为客户端和服务端自动生成可靠的功能库。 在gRPC客户端可以直接调用不同服务器上的远程程序,使用姿势看起来就像调用本地程序一样,轻松的实现远端服务的连接、

Lance 1188

读《半小时漫画计算机》

最近朋友送了一本书给我,就是下面这本

认知 行动 坚持 2891

刷题单向链表

实现一个数据结构,维护一张表(最初只有一个元素 11)。接下来 qq 行,每行表示一次操作,操作具体间题目描述。a[i] 里面放的是下一个元素,为0代表链表结束。如单链表1->4 -> 2->3->0用数组表示是。对于每个操作 2,输出一个数字,用换行隔开。第一行一个整数 qq 表示操作次数。

power的专栏 1714

手把手教你分析解决Innovus DRC Violation 和Antenna Effect Violation

数字IC后端设计培训教程之手把手教你分析解决Innovus DRC Violation 和Antenna Effect Violation

weixin_37584728的博客 2937

码农翻身之大话编程篇:6 TCP/IP 之 大明王朝邮差

        大明天启四年,清晨。        天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门,这里是集中处理货物的地方,一对一对的马车都来到这里,城头的士兵带着头盔,身披盔甲,手持长枪,虎视眈眈地注视着下面的动静。        城门口的大棚里乱哄哄的,时一群人围在一起赌钱,这些家伙都穿着同样的衣服,前胸后背写着“TCP邮差”。我知道这就是我要找的人,他会把我的货物发送出去。我下了车,在大...

希望变强的小菜鸟的博客 1132

华为OD新系统机试真题 - 准备生日礼物(Py/Java/C/C++/Js/Go)

华为OD机试新系统真题 4.8【准备生日礼物】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【准备生日礼物】

qq_45776114的博客 1482

TCP/IP之大明王朝邮差

TCP/IP之大明王朝邮差 一位大神的精华之作,原创2016-05-12 刘欣 来自码农翻身! 时间: 大明王朝天启四年, 清晨。 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门,这里是集中处理货物的地方,一队一队的马车都来到这里,城头的士兵带着头盔...

dichuangheng8094的博客 324

Kubeflow系统性学习教程:从入门到高级实践

Kubeflow学习教程摘要(150字): Kubeflow是基于Kubernetes的云原生MLOps平台,提供端到端机器学习解决方案。核心功能包括Jupyter Notebooks开发环境、Pipelines工作流编排、分布式训练支持和模型服务部署。教程采用三阶段学习路径:初学者搭建Kind集群体验Notebooks;中级开发自定义Pipeline组件;高级实现企业级应用。通过容器化和K8s CRD深度集成,解决环境一致性、实验跟踪和资源调度等MLOps痛点,相比MLflow/Airflow更适合大规模

自可乐的博客 887

廉价却有效?ESD防护中的电容

摘要:在成本敏感型电子产品设计中,多层陶瓷电容(MLCC)可作为TVS二极管的替代方案用于静电放电(ESD)防护。其工作原理是通过电容充放电特性吸收静电能量,而非电压钳位。计算表明100nF/50V MLCC可有效缓冲8kV静电冲击,但存在吸收能量有限、无自恢复等局限。建议将MLCC作为一级缓冲措施,配合TVS等器件形成多级防护,并优先选择X7R材质、100nF容值、50V耐压的0402/0603封装MLCC。该方案在低速信号和电源引脚防护中具有显著成本优势,但不能完全替代专业ESD抑制器。

硬核科技 430

【转载】TCP/IP 之 大明王朝邮差

原文:TCP/IP 之 大明王朝邮差   原创 2016-05-12 刘欣 码农翻身 前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵。 大明王朝天启四年, 清晨。     天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下面的动静。  城门口的...

weixin_33795743的博客 118

Ubuntu\linux,加载mcp2515的驱动,链接mcp2515,mcp2515的这个驱动默认在linux内核中。jetson nao、香橙派、树莓派

3. 其他文章,还要进行驱动编译就比较复杂了(不推荐)1.树莓派+MCP2515+

pvmsmfchcs的博客 1566

TCP/IP 之 大明王朝邮差 (转)

原创: 刘欣 码农翻身 2016-05-12   前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵。 大明王朝天启四年, 清晨。     天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下面的动静。  城门口的大棚里乱哄哄的,是一群人围在一起赌钱, 这些家伙都...

weixin_34277853的博客 128

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

码农翻身讲网络2:TCP协议

TCP/IP 之 大明王朝邮差 TCP/IP之大明内阁 TCP/IP之蓟辽督师 大明王朝天启四年, 清晨。 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下面的动静。 城门口的大棚里乱哄哄的,是一群人围在一起赌钱, 这些家伙都穿着同样的衣服, 前胸和后背写着三个大字 “TC...

mhHao的博客 485

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

TCP/IP 之 大明邮差

前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵。 大明王朝天启四年, 清晨。 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 ,一队一队的马车都来到这里,城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下面的动静。 城门口的大棚里乱哄哄的,是一群人围在一起赌钱, 这些家伙都穿着同样的衣服, 前胸和后背写着...

MARS_098的博客 245

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 小王的架构师之路
下一篇: 码农在工作中的必备能力
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值