作者:车小胖
链接:https://www.zhihu.com/question/38648948/answer/240006409
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

中秋节到了,上海的老王想给北京的好友老张快递一些节日礼物,有鲜肉月饼、大闸蟹等,老王选择了机器人快递公司,听说送快递的全是机器人。

老王把礼物打好包并转交给快递公司,并叮嘱快递公司,要鲜肉月饼先到,大闸蟹后到,快递公司说:okay,放心好了。

快递公司将鲜肉月饼贴上标签1,大闸蟹标签2,放在仓库里,先联系到北京的老张再发货

于是快递公司派出机器人小哥,给小哥输入老张、老王的地址信息:

收件人地址
北京海淀区知春路xx号

寄件人地址
上海浦东新区世纪大道200号

机器人用导航软件智能选取路线,过程不表。

联系老张的过程(三次握手):

机器人A到达北京快递公司,快递公司看到老张的地址信息,去他家敲敲门,老张你在家吗?等会有快递要送过来,务必在家哦(服务器TCP端口号活),老张说好的好的。

北京的快递公司派出机器人B回复上海方面,老张在家的,快递可以运过来了。

上海的快递公司派出机器人A回复北京,快递马上就发出,请稍候。

有同学说,需要那么麻烦嘛?打个电话不就行了吗?没错,但这只是一个虚拟故事,在这个故事里没有电话,只有跑腿的机器人。

以上联系老张的过程,机器人A、B都是空载,什么货物也没有运,只是起到消息传递的作用,接下来开始运送货物了。

上海的快递公司让机器人C运鲜肉月饼,机器人D运大闸蟹,于是C、D先后上路了。

C的导航软件让他走沪陕高速,结果堵成狗了,高速成了停车场。

D的导航软件让他走京沪高速,虽然有点堵,但还是后发先至,结果比C先到北京的快递公司。

北京的快递公司将D运的礼物放在仓库里(缓存),耐心地等待C的到来,第二天C终于还是到了。

快递公司将货物按标签1、2按照顺序转交给了老张。

快递公司稍后还要派出机器人通知上海方面,货物(标签1、2)安全到达,请勿挂念。

老张心情大好,来而不往非礼也,于是将北京烤鸭、北京糕点打包好,让快递公司转交给老王,只有一个叮嘱,烤鸭先到,糕点后到(按序)

过程与上类似,机器人E运烤鸭,机器人F运糕点。

E走京沪高速,结果在某某大桥出车祸了,被撞到江里了,game over。

F走沪陕高速,堵了三天三夜没动弹。

北京的快递公司左等等、右等等,上海方面一点消息也没有,知道最坏的情况发生了,但快递公司有自己的预案,三天没有对方的消息,就默认机器人挂了,需要重新安排机器人重新运货物。

于是机器人G运烤鸭、H运糕点又重新上路了。

这次非常顺利,G、H走的都是京沪高速,按序到达了上海快递公司,不一会,F也到了,快递公司很恼火,对F很不客气滴说:你现在是多余的人(F与H是重复的货物,需要丢一个),快滚!

上海的快递公司于是将烤鸭、糕点按序转交给老王。

稍后再派出机器人通知北京方面,烤鸭、糕点已经安全到达,请不要再发重复的货物过来!

在这个虚拟故事里,老王是http客户端,老张是http服务器端,负责将什么样的礼物(数据)送给对方,同时负责解释这些礼物的真正含义。

快递公司是TCP,负责将客户的数据按序(客户的数据按序才有意义)送到客户指定的目的地,如果有丢失,TCP负责重传。

机器人是IP,根据快递公司输入的客户目的地,根据导航软件将货物送到目的地,如果有丢件,机器人无能为力。

TCP/IP 和 HTTP 的区别和联系是什么?的更多相关文章

  1. OSI及TCP/IP的概念和区别

    什么是TCP/IP协议 TCP/IP协议(Transfer Controln Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet ...

  2. TCP/IP,HTTP,Socket的区别与联系

    一 忆往昔,尽是悔恨泪.       在学校的时候学过,网络七层,也知道tcp的三次握手.但因为根本没用在实际开发中,所以逐渐淡忘.现在就再次理解下三个的区别与联系. 二 正题       网络七层: ...

  3. 【转】TCP/IP和SOCKET的区别

    要写网络程序就必须用Socket,这是程序员都知道的.而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,w ...

  4. Http、TCP/IP、Socket的区别

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...

  5. HTTP/TCP/IP UDP Socket等区别联系

    1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. ...

  6. TCP/IP,Http,Socket的区别

    大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用 ...

  7. TCP/IP、Http的区别

    TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据.关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只 ...

  8. TCP/IP、Http的区别--(转自任智康)

    TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据.关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:"我们在传输数据 ...

  9. TCP/IP协议原理与应用笔记07:HTTP、TCP/IP与socket区别

    1. TCP/IP协议与HTTP协议区别:      HTTP 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件 ...

随机推荐

  1. js压箱底的宝贝

    框架的确好用, 不过他们也隐藏了JavaScript中丑陋的细节和DOM的运作机制. 如果你的目标是敢于自称"我懂JavaScript", 那么花时间学习框架无异于南辕北辙. 下面 ...

  2. 配置SQLServer,允许远程连接

    需要别人远程你的数据库,首先需要的是在一个局域网内,或者连接的是同一个路由器,接下来就是具体步骤: (一)首先是要检查SQLServer数据库服务器中是否允许远程链接.其具体操作为: (1)打开数据库 ...

  3. 使用css控制文字显示几行并且剩余部分隐藏(移动端和PC端同样适用)

    前言 有些需求需要我们控制一段文本最多显示几行,就像逛淘宝京东的评价楼层一样,有时可能还需要隐藏剩余部分,这样的需求我们怎么来解决呢? 解决办法 我们完全可以使用css来解决这一需求 1. 解决文本显 ...

  4. 428.x的n次幂

    实现 pow(x,n) 不用担心精度,当答案和标准输出差绝对值小于1e-3时都算正确 样例 Pow(2.1, 3) = 9.261 Pow(0, 1) = 0 Pow(1, 0) = 1 挑战 O(l ...

  5. Jquery ajax传递xml方式在ie8下兼容问题

    主要问题就是ie8把xml格式在打开的时候转换成了string,我们只用把其转换回xml就可以了. $.ajax({ type:’GET’, url:’list.php?pagenow=’+count ...

  6. MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式

    一.MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式 1.本地数据库连接Driver={MySQL};Server=localhost;Option=16834; ...

  7. C# Note26: [MethodImpl(MethodImplOptions.Synchronized)]与lock机制

    在进行.NET开发时,经常会遇见如何保持线程同步的情况.在众多的线程同步的可选方式中,加锁无疑是最为常用的.如果仅仅是基于方法级别的线程同步,使用System.Runtime.CompilerServ ...

  8. Python 基础知识----数据类型

    一.Number 类型(数值类型) 二.String 类型 (字符串类型) 三.List 类型 (列表类型) 是一种常用的序列类型簇,List 用中括号 [ ] 表示,不同的元素(任意类型的值)之间以 ...

  9. java中级——集合框架【2】-二叉树

    二叉树 二叉树概念 首先我们要明确,二叉树由各种节点组成:还有就是二叉树特点:(1)每个节点都可以有左子节点,右子节点(2)每一个节点都有一个值 如图所示: 代码所示: package cn.jse. ...

  10. centos6.8安装JDK

    1.检测当前系统安装jdk信息       rpm -qa | grep jdk 2.如果检查到有安装信息,则用sudo yum remove XXX(XXX代表上面查到的结果) 3.下载rpm包,安 ...