tcp/ip和http的區別和聯絡
中秋節到了,上海的老王想給北京的好友老張快遞一些節日禮物,有鮮肉月餅、大閘蟹等,老王選擇了機器人快遞公司,聽說送快遞的全是機器人。
老王把禮物打好包並轉交給快遞公司,並叮囑快遞公司,要鮮肉月餅先到,大閘蟹後到,快遞公司說: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,根據快遞公司輸入的客戶目的地,根據導航軟體將貨物送到目的地,如果有丟件,機器人無能為力。
相關文章
- http、socket、tcp的區別和聯絡?HTTPTCP
- tcp和http的區別TCPHTTP
- Instruction和Question的區別和聯絡Struct
- SCADA和PLC的區別聯絡
- Rxjs map, mergeMap 和 switchMap 的區別和聯絡JS
- java-介面和抽象類的聯絡和區別。Java抽象
- TCP/IP、HTTP和Socket總結TCPHTTP
- javaSE中的==和equals的聯絡與區別Java
- hive中order by、distribute by、sort by和cluster by的區別和聯絡Hive
- C/C++引用和指標的聯絡和區別C++指標
- 【知識點】 gcc和g++的聯絡和區別GC
- HDFS 塊和 Input Splits 的區別與聯絡
- 程式和執行緒的區別與聯絡執行緒
- 程序、執行緒和協程之間的區別和聯絡執行緒
- 模電和數電在應用上的區別和聯絡
- 程式、執行緒和協程之間的區別和聯絡執行緒
- SAP UI5 和 OpenUI5 的區別和聯絡UI
- Vue中watch、computed與methods的聯絡和區別Vue
- spring、springmvc、springboot、springcloud 之間的聯絡和區別SpringMVCSpring BootGCCloud
- tcp和udp的區別TCPUDP
- cgi和fast-cgi以及php-fpm的聯絡和區別ASTPHP
- OData API 和 Restful API 這兩個概念的區別和聯絡APIREST
- http和https的區別/get和post的區別HTTP
- Python中__new__和__init__的區別與聯絡Python
- gcc 和 g++ 的聯絡和區別,使用 gcc 編譯 c++GC編譯C++
- Linux 上的 AppImage、Snap、Flatpak 之間的區別和聯絡LinuxAPP
- websocket和http的區別WebHTTP
- http和https的區別HTTP
- http和https的區別?HTTP
- HTTPS 和 HTTP 的區別HTTP
- HTTPS和HTTP的區別HTTP
- SAP R/3,SAP ECC 和 SAP S/4HANA 的聯絡和區別
- HTTPS、SSL、TLS三者之間的聯絡和區別HTTPTLS
- Unicode,UTF-8和UTF-16的區別與聯絡Unicode
- HTTP與UDP/TCP區別HTTPUDPTCP
- socket與TCP/IP區別TCP
- TCP socket和web socket的區別TCPWeb
- php中TCP和UDP的區別PHPTCPUDP