TCP/IP協(xié)議,你一定經(jīng)常聽(tīng)說(shuō)吧,其中TCP(Transmission Control Protocol)稱為傳輸控制協(xié)議,IP(Internet Protocol)稱為因特網(wǎng)互聯(lián)協(xié)議,好吧,這都是什么2B名字,根本不知所云,這個(gè)時(shí)候,計(jì)算機(jī)科學(xué)對(duì)于一個(gè)沒(méi)有經(jīng)過(guò)深入研究的人,毫無(wú)用戶體驗(yàn)可言。
其實(shí)TCP/IP協(xié)議,是一個(gè)協(xié)議簇,就是一大堆協(xié)議的集合,這一大套協(xié)議定義了整個(gè)互聯(lián)網(wǎng)通信的基礎(chǔ),比如一次網(wǎng)絡(luò)鏈接要經(jīng)過(guò)哪些步驟,一塊數(shù)據(jù)傳輸過(guò)程中應(yīng)該如何解釋,這塊數(shù)據(jù)該如何展示給編程者等等問(wèn)題。就好比小時(shí)候玩過(guò)家家的游戲,誰(shuí)負(fù)責(zé)當(dāng)爸,誰(shuí)負(fù)責(zé)當(dāng)媽,誰(shuí)負(fù)責(zé)當(dāng)兒子,都有明確的指派,誰(shuí)負(fù)責(zé)買菜,買菜之后的錢交給誰(shuí)來(lái)管理,如果沒(méi)花了,怎么辦,每天應(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的英文前面抄寫過(guò)了,UDP(User Datagram Protocol),也是讀過(guò)之后根本不懂啥意思了。
反正這兩個(gè)協(xié)議,是用來(lái)傳輸數(shù)據(jù)的,因?yàn)樗麄兘袀鬏攲勇?,那不做這個(gè)事情,毫無(wú)用處了。
我們想象一個(gè)場(chǎng)景,網(wǎng)絡(luò)中任意兩個(gè)端要通信,會(huì)采用什么樣的傳輸方式呢?
想象下人類之間的通信吧。
第一種是撥電話,我撥通了你的手機(jī)號(hào)碼,直到你回答“喂,你好”,我聽(tīng)到了這個(gè)話之后,我們之間才繼續(xù)進(jìn)行交談。
第二種是發(fā)短信,我給你的手機(jī)號(hào)碼發(fā)送一條短信,然后就沒(méi)有然后了,有可能你沒(méi)收到,有可能你收到了一會(huì)兒又給我回復(fù)。
第一種對(duì)應(yīng)的就是TCP,第二種對(duì)應(yīng)的是UDP,TCP是需要對(duì)方確認(rèn)的,也就是傳輸之前需要進(jìn)行“三次握手”(這里又是一個(gè)專有名詞,就是傳輸?shù)膬啥艘?jīng)過(guò)三次確認(rèn),才能開(kāi)始通信)。UDP是比較粗暴的,不管對(duì)方什么情況,直接發(fā)送,不需要確認(rèn)過(guò)程。
很多博客和書籍中說(shuō)的,TCP是可靠的鏈接(因?yàn)橹虚g有個(gè)Control的單詞,帶上了這個(gè)單詞,以為著更可靠哦),UDP是不可靠的鏈接就是這個(gè)意思??煽康逆溄訋?lái)的是效率的下降,比如一次網(wǎng)絡(luò)請(qǐng)求很大一部分時(shí)間都是浪費(fèi)在互相確認(rèn)的過(guò)程當(dāng)中,資源消耗比較多,但是保證了數(shù)據(jù)的傳輸是可靠的,并且數(shù)據(jù)傳輸是有序的。不可靠的鏈接帶來(lái)的是效率的提升,但可能服務(wù)質(zhì)量有下降。
今天想寫這個(gè),主要是想擺脫一種人為的誤區(qū),不要以為UDP不可靠,就沒(méi)有什么應(yīng)用場(chǎng)景,據(jù)說(shuō)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èn)網(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é)議中重要的控制過(guò)程,但是不做詳述了,不但枯燥,而且對(duì)于實(shí)際的產(chǎn)品并沒(méi)有什么卵用。具體選用什么樣的數(shù)據(jù)傳輸方式,應(yīng)該根據(jù)場(chǎng)景而定。
-
IP
+關(guān)注
關(guān)注
5文章
1882瀏覽量
156679 -
TCP
+關(guān)注
關(guān)注
8文章
1433瀏覽量
83762 -
計(jì)算機(jī)科學(xué)
+關(guān)注
關(guān)注
1文章
144瀏覽量
11825 -
傳輸控制
+關(guān)注
關(guān)注
0文章
6瀏覽量
6570
發(fā)布評(píng)論請(qǐng)先 登錄
不知道電動(dòng)車電池的型號(hào)怎么辦?
Miniplayer小技巧 保證有你不知道的
MP3中三個(gè)很多人不知道的秘密
90%的人不知道,vivoX9竟還有這些隱藏的功能!
tcp和udp的應(yīng)用場(chǎng)景
你到底知不知道硬件設(shè)計(jì)是什么?
tcp和udp協(xié)議的異同
介紹一般人不知道的三種特殊電阻器
儲(chǔ)能連接器這些優(yōu)點(diǎn)一般人不知道
TCP與UDP的基本區(qū)別
TCP和UDP沒(méi)人不知道吧?
評(píng)論