zoukankan      html  css  js  c++  java
  • TCP/IP 和 HTTP 的区别和联系是什么?

    作者:车小胖
    链接: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,根据快递公司输入的客户目的地,根据导航软件将货物送到目的地,如果有丢件,机器人无能为力。

  • 相关阅读:
    Nginx 部署多个 web 项目(虚拟主机)
    Nginx 配置文件
    Linux 安装 nginx
    Linux 安装 tomcat
    Linux 安装 Mysql 5.7.23
    Linux 安装 jdk8
    Linux 安装 lrzsz,使用 rz、sz 上传下载文件
    springMVC 拦截器
    spring 事务
    基于Aspectj 注解实现 spring AOP
  • 原文地址:https://www.cnblogs.com/mrwuzs/p/8031180.html
Copyright © 2011-2022 走看看