自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何通俗地解釋一下 TCP/UDP 協(xié)議和 HTTP、FTP、SMTP 等協(xié)議之間的區(qū)別?

網(wǎng)絡(luò) 通信技術(shù)
先來假設(shè)沒有TCP,甚至沒有IP層,只有MAC對應(yīng)的數(shù)據(jù)鏈路層,HTTP等協(xié)議能跑多遠(yuǎn)!

先來假設(shè)沒有TCP,甚至沒有IP層,只有MAC對應(yīng)的數(shù)據(jù)鏈路層,HTTP等協(xié)議能跑多遠(yuǎn)!

直接把HTTP封裝在Ethernet Frame 里,可以嗎?

當(dāng)然可以,在同一個二層廣播域里,通過MAC地址來識別對方,然后HTTP的數(shù)據(jù)通過網(wǎng)卡接口函數(shù)完成發(fā)送和接收。

[[254478]]

第二個問題:如何保證數(shù)據(jù)萬無一失地到達(dá)對方?

讓網(wǎng)卡來保證數(shù)據(jù)的可靠傳輸嗎?網(wǎng)卡只對Ethernet 幀頭做解釋,以太網(wǎng)頭14個字節(jié)也沒有哪個字段可以勝任這個可靠傳輸?shù)娜蝿?wù),那HTTP是不是要自己實現(xiàn)數(shù)據(jù)傳輸?shù)每煽繖C(jī)制,比如發(fā)送一段1000字節(jié)的數(shù)據(jù),要等待對方給自己確認(rèn)收到,然后再來發(fā)送,這樣是可以保證數(shù)據(jù)可靠傳輸。

同樣FTP,STMP,POP3,BGP都是要保證數(shù)據(jù)可靠的傳輸,那他們是不是也要自己實現(xiàn)這些可靠的機(jī)制呢?

必須的!

換句話說,只要有一個應(yīng)用,要可靠傳輸,必須由 application protocol 來實現(xiàn)!是不是很笨啊???這所有application protocol 的可靠傳輸機(jī)制是同樣的實現(xiàn),代碼都應(yīng)該類似,如果我們把這些被重用的代碼封裝起來,即接口函數(shù)API,讓他實現(xiàn)數(shù)據(jù)的可靠傳輸,同時用一個標(biāo)識符來表明這是哪個application protocol,是不是可行呢?

當(dāng)然可行了,快遞公司不就是這樣操作的嘛!

這就是偉大TCP/IP協(xié)議的***所高度抽象出來的流量調(diào)度員:TCP!

 

[[254479]]

 

TCP

它把可靠傳輸機(jī)制代碼封裝成了接口函數(shù)API,即socket , 同時用TCP Port來辨別其服務(wù)的application Protocol。而application protocol 只需要對自己的協(xié)議本身和協(xié)議數(shù)據(jù)做解釋,完成端對端的會話。

第二個問題:現(xiàn)在 Ethernet + TCP + application protocol ,這個包能跑多遠(yuǎn)?

也就是一個廣播域那么大的范圍了吧?小樣再怎么得瑟也逃不出廣播域的圈圈!

IP層就是來解決這個問題的,有了IP層可以讓Internet 成為可能,一句廣告詞:impossible is nothing! 要知道IP就是 Internet Protocol 的縮寫。

你可能要問了, 我想要IP層,不想要TCP層,直接把數(shù)據(jù)封裝在IP層可以嗎?

太可以了!不光可以,而且好多協(xié)議也是這么做的,OSPF,EIGRP,GRE,ESP,AH等協(xié)議都是這么做的,如果他們想保證可靠傳輸,他們自己用代碼來實現(xiàn),這當(dāng)然可以。

問題是IP只用一個字節(jié)來表示協(xié)議號,理論上只能辨識255種上層協(xié)議,資源非常緊張,而且都被知名的大牌協(xié)議所霸占著,比如TCP,ICMP,IGMP,包括上面提到的,哪里輪的上你哦!

為了解決這個資源緊張問題,于是就有了另外一個小發(fā)明,只用來辨別application protocol 的小傀儡:UDP!

UDP

其實UDP除了提供一個Port來分辨application protocol , 確實沒干點(diǎn)別的,但是Port 號占用2個字節(jié),理論上可以分辨65535種 application protocol ,就這一條就可以讓其功德圓滿了,正是因為它不像TCP,是完全無狀態(tài)協(xié)議,所以也深得一些應(yīng)用程序的青睞,因為UDP無狀態(tài),IP也無狀態(tài),會話所有的狀態(tài)都由application protocol 來進(jìn)行控制,這也是一種選擇。

另外UDP-based 的應(yīng)用可以實現(xiàn)可靠傳輸,比如TFTP,那就由TFTP自己來實現(xiàn)可靠傳輸;也可以把數(shù)據(jù)交給UDP,讓其發(fā)送出去即可,對發(fā)送出去的數(shù)據(jù)不需要確認(rèn),同學(xué)們會問:這是哪種應(yīng)用啊?語音流量,丟了就丟了,對方聽不見大不了再說一遍。

綜述

TCP提供一種可靠傳輸機(jī)制,有狀態(tài)。

UDP提供更多的門牌號來辨別上層的協(xié)議,無狀態(tài)。

責(zé)任編輯:武曉燕 來源: 車小胖談網(wǎng)絡(luò)
相關(guān)推薦

2010-06-09 14:42:21

UDP協(xié)議TCP協(xié)議

2015-03-03 13:47:34

HttpTCPIP

2013-05-27 10:48:16

TCPUDP傳輸協(xié)議

2013-08-01 10:01:02

網(wǎng)絡(luò)協(xié)議TCP協(xié)議UDP協(xié)議

2021-05-13 07:58:06

UDP協(xié)議HTTP

2022-02-20 09:56:28

TCPIP網(wǎng)絡(luò)協(xié)議

2010-06-12 17:07:17

TCP IP協(xié)議

2019-10-21 09:57:05

多云混合云云計算

2010-07-07 10:45:22

TCP UDP協(xié)議

2020-07-06 08:00:26

MySQL程序員SQL

2010-07-07 11:02:26

TCP UDP協(xié)議服務(wù)

2010-07-07 10:42:36

TCP UDP協(xié)議

2010-07-06 15:50:12

TCP和UDP協(xié)議

2020-07-28 08:38:10

TCPUDP協(xié)議

2019-09-12 09:56:33

TCPUDPHTTP

2014-12-03 14:05:01

TCPUDP

2010-06-12 16:47:11

網(wǎng)絡(luò)層次協(xié)議

2011-02-23 14:38:45

網(wǎng)絡(luò)協(xié)議

2021-08-28 09:06:11

Dubbo架構(gòu)服務(wù)

2019-11-29 07:53:07

DNSTCP網(wǎng)絡(luò)協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號