TCP/IP協(xié)議,你一定經(jīng)常聽說吧,其中TCP(Transmission Control Protocol)稱為傳輸控制協(xié)議,IP(Internet Protocol)稱為因特網(wǎng)互聯(lián)協(xié)議,好吧,這都是什么2B名字,根本不知所云,這個(gè)時(shí)候,計(jì)算機(jī)科學(xué)對(duì)于一個(gè)沒有經(jīng)過深入研究的人,毫無(wú)用戶體驗(yàn)可言。
其實(shí)TCP/IP協(xié)議,是一個(gè)協(xié)議簇,就是一大堆協(xié)議的集合,這一大套協(xié)議定義了整個(gè)互聯(lián)網(wǎng)通信的基礎(chǔ),比如一次網(wǎng)絡(luò)鏈接要經(jīng)過哪些步驟,一塊數(shù)據(jù)傳輸過程中應(yīng)該如何解釋,這塊數(shù)據(jù)該如何展示給編程者等等問題。就好比小時(shí)候玩過家家的游戲,誰(shuí)負(fù)責(zé)當(dāng)爸,誰(shuí)負(fù)責(zé)當(dāng)媽,誰(shuí)負(fù)責(zé)當(dāng)兒子,都有明確的指派,誰(shuí)負(fù)責(zé)買菜,買菜之后的錢交給誰(shuí)來管理,如果沒花了,怎么辦,每天應(yīng)該幾點(diǎn)起床,起床之后應(yīng)該誰(shuí)疊被,都會(huì)明確指出,每個(gè)人都會(huì)默默遵從人物角色和規(guī)則。TCP/IP整個(gè)協(xié)議集合大概做的就是這個(gè)事情,他包含了很多個(gè)不同的角色(對(duì)應(yīng)于協(xié)議),并定義好了數(shù)據(jù)如何傳輸,不同角色之間如何協(xié)商。
理解了TCP/IP是什么,你應(yīng)該可以看懂一些簡(jiǎn)單的技術(shù)博客或百度百科里面的一些描述了,時(shí)時(shí)刻刻認(rèn)為,它里面包涵很多個(gè)協(xié)議,這些協(xié)議就是一整套規(guī)則,它定義了整個(gè)互聯(lián)網(wǎng)如何連接,如何協(xié)商的最基礎(chǔ)規(guī)則。
TCP/IP協(xié)議又分為了4層,分別為應(yīng)用層,傳輸層,IP層,物理層。
重點(diǎn)介紹下傳輸層,也就是TCP,UDP兩個(gè)協(xié)議,也是今天最想描述清楚的。TCP的英文前面抄寫過了,UDP(User Datagram Protocol),也是讀過之后根本不懂啥意思了。
反正這兩個(gè)協(xié)議,是用來傳輸數(shù)據(jù)的,因?yàn)樗麄兘袀鬏攲勇?,那不做這個(gè)事情,毫無(wú)用處了。
我們想象一個(gè)場(chǎng)景,網(wǎng)絡(luò)中任意兩個(gè)端要通信,會(huì)采用什么樣的傳輸方式呢?
想象下人類之間的通信吧。
第一種是撥電話,我撥通了你的手機(jī)號(hào)碼,直到你回答“喂,你好”,我聽到了這個(gè)話之后,我們之間才繼續(xù)進(jìn)行交談。
第二種是發(fā)短信,我給你的手機(jī)號(hào)碼發(fā)送一條短信,然后就沒有然后了,有可能你沒收到,有可能你收到了一會(huì)兒又給我回復(fù)。
第一種對(duì)應(yīng)的就是TCP,第二種對(duì)應(yīng)的是UDP,TCP是需要對(duì)方確認(rèn)的,也就是傳輸之前需要進(jìn)行“三次握手”(這里又是一個(gè)專有名詞,就是傳輸?shù)膬啥艘?jīng)過三次確認(rèn),才能開始通信)。UDP是比較粗暴的,不管對(duì)方什么情況,直接發(fā)送,不需要確認(rèn)過程。
很多博客和書籍中說的,TCP是可靠的鏈接(因?yàn)橹虚g有個(gè)Control的單詞,帶上了這個(gè)單詞,以為著更可靠哦),UDP是不可靠的鏈接就是這個(gè)意思??煽康逆溄訋淼氖切实南陆担热缫淮尉W(wǎng)絡(luò)請(qǐng)求很大一部分時(shí)間都是浪費(fèi)在互相確認(rèn)的過程當(dāng)中,資源消耗比較多,但是保證了數(shù)據(jù)的傳輸是可靠的,并且數(shù)據(jù)傳輸是有序的。不可靠的鏈接帶來的是效率的提升,但可能服務(wù)質(zhì)量有下降。
今天想寫這個(gè),主要是想擺脫一種人為的誤區(qū),不要以為UDP不可靠,就沒有什么應(yīng)用場(chǎng)景,據(jù)說QQ發(fā)送數(shù)據(jù)就是靠UDP發(fā)送的呢,雖然是不可靠的鏈接,但是還是用了很多校驗(yàn)算法保證了數(shù)據(jù)質(zhì)量的穩(wěn)定,同時(shí)保證了效率。TCP雖然耗時(shí),但是對(duì)于穩(wěn)定性優(yōu)先的場(chǎng)景,還是應(yīng)該有限選用TCP,比如瀏覽器中訪問網(wǎng)頁(yè)用的就是TCP。此外在一些長(zhǎng)連接系統(tǒng)里面,比如微信,連接通道應(yīng)該也是用TCP建立的,因?yàn)橐S護(hù)一條穩(wěn)定的信息傳輸通道。
具體協(xié)議是如何控制的,數(shù)據(jù)包是如何傳輸?shù)?,怎么校?yàn)數(shù)據(jù)的正確性,還有重傳特性,這些都是協(xié)議中重要的控制過程,但是不做詳述了,不但枯燥,而且對(duì)于實(shí)際的產(chǎn)品并沒有什么卵用。具體選用什么樣的數(shù)據(jù)傳輸方式,應(yīng)該根據(jù)場(chǎng)景而定。
-
IP
+關(guān)注
關(guān)注
5文章
1610瀏覽量
149246 -
TCP
+關(guān)注
關(guān)注
8文章
1347瀏覽量
78933 -
計(jì)算機(jī)科學(xué)
+關(guān)注
關(guān)注
1文章
142瀏覽量
11352 -
傳輸控制
+關(guān)注
關(guān)注
0文章
6瀏覽量
6463
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論