戏说西游||TCP/IP协议的由来(灵感来自“码农翻身”微信公众号)

引子

话说唐僧师徒四人西行取经,终于来到了西方极乐世界,取得真经,然而如何运回真经成了大问题,故事就这样展开了:


大唐王朝贞观八十一年,某日清晨

“悟空,为师带领你们终于取得真经,可是奈何如何将真经运回东土大唐呢?”

“师傅,不用担心,俺老孙在筋斗云的基础上开发出了运输真经的法术--‘TCP协议’,只要严格学习俺法术的口诀,严格遵守俺定制的规则,只需要不断的往筋斗云上放经文,筋斗云就会自动往返运输真经,俺可保真经运回大唐!”

“不愧是悟空,既然如此,悟能,这件事情为师就交给你了,看来为师还得再去跟佛祖多讨些经书来。”

大圣、八戒、沙僧一行来到了“大雷音寺224仓库”,准备运输真经。大圣问八戒:“呆子,俺昨晚已把‘TCP协议’法术口诀传授与你,你可学会此门法术?”

八戒一脸惭愧:“这门法术口诀太长了,原理也太复杂了,所以我并没有学会,哼哼哼。”

大圣笑道,“你这个蠢猪,虽然曾是天蓬元帅,但是现在最新的法术也还是要仔细钻研学习的啊。”

八戒好奇道:“愿闻其详。”

悟空懒洋洋的站起来说:“你要想真正的学会‘TCP协议’法术,那你先说说咱们的真经是要从哪儿运输到哪儿啊?”

八戒赶紧拿出师傅之前写好的地址说:“要从大雷音寺224仓库运输到大唐王城”

“大唐王朝有很多门,真经要进那个门啊?” 悟空接着问。

“昨天师傅说了,发到80号门。”

大圣说:“恩,呆子还算你记性好,走吧,咱们到前面去。”

大雷音寺224仓库前面是一个佛教广场,平时有一些教徒来念经,现在只有悟空师兄弟三人。

“你等等,我先给大唐王城80号门的看守建立个连接”大圣说着,默念口诀,一片云凭空出现。

大圣默念口诀在云上写了一封信:

“看守看守,我是大圣,我现在在大雷音寺224仓库,我想和你建立连接,我的序号是1024,收到请回话!”

筋斗云上刻着:

发云地:西土大雷音寺224仓库

收云地:大唐王城,80号门

大圣念了一句口诀,筋斗云快速的飘向了东方。

过了一个时辰,筋斗云回来了,上面写着:

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

八戒犹豫不决道,“难道这样连接就建立好了吗?TCP法术就这么容易吗?”

大圣拍了八戒一下脑袋,懒懒的说道,"呆子,这样只是第一步,要想建立连接,还需要再给他们发一封信"

“守卫守卫,我收到你的确认信了,也看到了你的序号是2048,我开始运输真经了”

八戒在一旁暗自忖道:“这就是连接吗?我咋没看见你的筋斗云把大唐和大雷音寺连接起来啊?”

“大师兄,那你为啥要使用筋斗云发三封信呢?”,沙和尚也帮腔道。

“这就是我的法术的精髓所在---三次握手”,俺老孙给你分析一下啊,“这三次握手主要是为了验证我这边和大唐守卫那边的发信和收信能力没问题, 这样就证明连接是通的,那就可以正式发送经文了。”

第一次握手:大雷音寺发信,王城收到了,此时王城就会明白---大雷音寺发信能力和自己的收信能力是没问题的;

第二次握手:王城发信,大雷音寺收到了,此时大雷音寺就会明白---大雷音寺的发信和收信都是好的, 同时王城的发信和收信也都是没问题的。 要不然收不到来自王城回复的筋斗云上的回信 , 但是王城还不知道自己的发信功能如何?所以就需要第三次握手啦;

第三次握手:大雷音寺再次发信,王城收到了,此时大雷音寺已经确认,双发的收信,发信都是没问题的。

这次回应的目的只是消除王城守卫对自己的发信功能以及大雷音寺的收信功能的担忧而已。

八戒紧接着问道,“大师兄,你这么辛苦的建立连接,为什么不亲自使用筋斗云运送经文呢?”

大圣说道:“想当初佛祖为了让我安心取经,便在俺的筋斗云上做了限制,俺不能和筋斗云一块飞回大唐,所以我就自己创建了TCP协议法术,让我的筋斗云自己去送货,就算在路上筋斗云消失了也没事,我还可以再使用法力重新产出新的筋斗云”

"那这些筋斗云怎么知道把真经送到大唐王城啊?"

"不用担心,俺老孙的筋斗云都有俺的灵性,俺还让俺的猴子猴孙在天界的不同岔路口做了标记,每个标记点的猴子猴孙都会看到俺的筋斗云上的信,他们知道路,会把俺的筋斗云放到一个新的正确的天界道路,继续飘向目的地,最终就会到达大唐王城。俺的猴子猴孙可是很有灵性的,还给他们自己起了一个艺名叫‘路由器’。”

“对了,这些经书太多了,必须要把经书拆分成一个一个小包裹。”

“给每个包裹编个号吧”,大圣说道:“这样到了大唐,守卫们就能安照编号顺序放好了”

“万一猴哥您的筋斗云在半路上法力不足,飘散了怎么办?那经书不是丢了吗?”

“筋斗云在路上飘散了,那就重新再抄写一份经书再往大唐发送一份就行呗,这种情况,没有别的办法,就只能重新发送那一个包裹。”

大圣默念口诀,把经书分为了10个包裹,并按编号摆成了一列。

“我的法力只能支撑三个筋斗云,所以每次最多只能发送3个包裹,按序号发,先发1,2,3包裹”,大圣说着使用法术产生了3个筋斗云,装上经书,筋斗云向着大唐飘走了。

大圣接着说道,“根据俺老孙筋斗云的速度,如果过了3个时辰,大唐还没给咱们确认,那就是丢了,只能重发了。”

过了三个时辰,正当八戒昏昏欲睡时,筋斗云终于回来了,云上写着:1号包裹收到了。

“看来俺老孙的法术还是比较有效的啊” ,大圣说,“大唐确认收到了一号包裹的经书,咱们可以再发一个了”,说着又默念法术,把第4号包裹发了出去。

八戒这次却没搭话,暗自思索着:“对‘TCP协议’法术终于有了一些理解,大师兄就是每次只要保证有3个经书包裹发出去,并且确认没有丢失就可以继续发了。”

又过了一会,一下子飘了过来三个筋斗云,带来了2,3,4号经书包裹的确认。

“大师兄你也太厉害了,要是不丢包裹的话,那岂不是很快就可以把经书运完了啊,那俺老猪就可以早早回高老庄迎娶高小姐啦!”,八戒在一旁赞叹不已。

大圣看到八戒又在犯花痴,懒得理他,又使用筋斗云把5,6,7号发了出去。

可是等了很久,5号包裹的确认收到却迟迟没来,过了三个时辰,大圣道,“看来5号包裹的筋斗云在路上飘散了,经书包裹已经丢了,呆子,你再去大雷音寺仓库抄写一份回来,一定要和之前5号包裹内的内容一模一样啊!”

“那6、7号包裹呢?大唐有没有收到呢?”

“我现在还不知道,如果收到了,他们会先存下来,如果也没有收到,那还得向5号包裹一样,重新发送。”

这时悟净问道:“大师兄,你为什么要一起发三个包裹呢?你不能发一个等着确认一个吗?”

“为了提高发送包裹的效率,我的法术里使用了‘滑动云协议滑动窗口协议)’,如果云N=1,就是发一个等着确认一个,但是这样就太慢了,再说俺老孙也不能一直干这一件事啊,我就把N设定的大一点,设为3,这样就能一边发送经文包裹,一边确认,这样不就可以快一点嘛。”

八戒只能再去大雷音寺重新抄写了5号包裹的经文,重新让大圣又发了一次。

过了三个时辰,7号包裹的筋斗云飘了回来!

大圣说:“看来俺的筋斗云还是不错的,大唐说已经收到了7号包裹,他的意思也就是说5、6号也都收到了。要不然他们不会发7号的确认云。”

接下来大圣又发了8,9,10号包裹,终于都正常的收到了大唐守卫的确认云。

大圣又让猴子猴孙去大唐守卫做了确认,才知道原来守卫收到了第5号包裹,只不过筋斗云确认的路上飘散丢了,大圣没有收到确认包,才重新发送了一份。

于是八戒急急忙忙的去向师傅邀功,说了大圣的“TCP协议”法术运送经书的方法。

师傅笑着摇摇头,“悟空,你这就是为了确保筋斗云运输上的不可靠性,建立一个相对可靠的发送经书的方法,但是如果筋斗云在路上飘散导致经书包裹丢失,还必须要让悟净他们重新抄写经书,还要重新发送这个经书包裹啊,这个‘TCP协议’看起来虽然相对安全可靠,但还是稍有不足。”

预知后事如何,且听下回分解!

预知后事如何,且听下回分解!

预知后事如何,且听下回分解!

PS:TCP/IP协议

    Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议,同时也是Internet国际互联网络的基础。

TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。

协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

灵感来自“码农翻身” 微信公众号!!!!

时间: 2024-07-30 03:14:51

戏说西游||TCP/IP协议的由来(灵感来自“码农翻身”微信公众号)的相关文章

http、TCP/IP协议与socket之间的区别

网络由下往上分为:  www.2cto.com 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--                       TCP协议 会话层-- 表示层和应用层--           HTTP协议 1.TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 建立起一个TCP连

TCP/IP协议,HTTP协议

1. 协议  a. TCP/IP总体构架概述     TCP/IP协议并不全然符合OSI的七层參考模型.传统的开放式系统互连參考模型,是一种通信协议的7层抽象的參考模型,当中每一层运行某一特定任务.该模型的目的是使各种硬件在同样的层次上相互通信.这7层是:物理层.数据链路层.网路层.传输层.话路层.表示层和应用层.而TCP/IP通讯协议採用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完毕自己的需求.这4层分别为:     i.   应用层:应用程序间沟通的层,如超文本传送协议(HTTP

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

TCP/IP协议三次握手与四次握手流程解析

原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图 上图中有几个字段需要重点介绍下:   (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记.   (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1.   (3)标志位:共6个,即URG.ACK.PSH.RST

TCP/IP协议族

TCP/IP协议 TCP/IP协议栈主要分为四层:应用层.传输层.网络层.数据链路层,每层都有相应的协议,现在几乎所有的操作系统都实现了TCP/IP协议栈.如下图 上图运输层应为传输层 所谓的协议就是双方进行数据传输的一种格式.整个网络中使用的协议有很多,所幸的是每一种协议都有RFC文档.在这里只对IP.TCP.UDP协议头做一个分析. 首先来看看在网络中,一帧 以太网数据包的格式: 在Linux 操作系统中,当我们想发送数据的时候,我们只需要在上层准备好数据,然后提交给内核协议栈 , 内核协议

TCP/IP协议

为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样.计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用.只有把它们联合起来,电脑才会发挥出它最大的潜力.于是人们就想方设法的用电线把电脑连接到了一起. 但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息.因而他们需要定义一些共通的东西来进行交流,TCP/IP就是

python学习笔记-Day9 (TCP/IP协议、socket)

TCP/IP协议 TCP/IP四层协议 TCP/IP概念 tcp/ip协议是主机接入互联网以及接入互联网的两台主机通信的标准. 数据帧概念 数据帧 |-- 包头 | |--源地址 | |--目标地址 | |--数据类型 | |-- 数据 socket在四层协议中的位置 socket协议的交互流程 socket初试 # 依照上socket流程图,实现一个功能,客户端输入什么,就把输入的转为大写 # soceet server import socket ip_port=('127.0.0.1',9

TCP/IP知识总结(TCP/IP协议族读书笔记二)

接下来,总结一下网络层的协议,IP,ARP,RARP,ICMP,IGMP.当我们在网络传输的过程中,把分组交付到主机或路由器需要两级地址:物理地址和逻辑地址.而且我们需要能够把物理地址映射成为相应的逻辑地址,反过来的映射也是必要的. 这时候就涉及两个概念:静态映射与动态映射. 静态映射就是创建一个表,将逻辑地址与物理地址关联起来,这个表存储在网络的每一个机器上.可是存在于网络中的机器的物理地址是经常会发生改变的(更换网卡),这样静态映射表就得时常更新,影响网络的性能. 动态映射就是每当机器知道其