胡正 高朱飛 徐壯
摘要:隨著互聯(lián)網(wǎng)時代的到來,互聯(lián)網(wǎng)思維正不斷顛覆人們對傳統(tǒng)行業(yè)的認知。本文透過紛繁復(fù)雜的網(wǎng)絡(luò)世界,從支撐互聯(lián)網(wǎng)運行的底層機制即TCP/IP模型出發(fā),自底向上詳細論述該模型各層功能,從而清晰描繪出互聯(lián)網(wǎng)上任何兩臺計算機之間實現(xiàn)互聯(lián)互通的背后機理,以期為相關(guān)人員理解互聯(lián)網(wǎng)運行機制提供有益借鑒。
關(guān)鍵詞:互聯(lián)網(wǎng);TCP/IP模型;數(shù)據(jù)通信
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1007-9416(2020)08-0022-03
0 引言
當(dāng)前,互聯(lián)網(wǎng)正以前所未有的速度與傳統(tǒng)各行各業(yè)進行深度融合[1-4]。要想深入理解互聯(lián)網(wǎng)時代,就不得不提互聯(lián)網(wǎng)的運行機制:TCP/IP模型[5]。雖然TCP/IP模型只有5個層次,但是各個層次都有它獨特的功能,它們之間相互配合,才能完成全球的互聯(lián)網(wǎng)通信。如何深入理解TCP/IP模型各層的功能,是每一名想理解互聯(lián)網(wǎng)運行機制人員面臨的一大難題。
本文站在從無到有構(gòu)建網(wǎng)絡(luò)通信的角度,給出TCP/IP模型各層的由來,以及每一層的功能,以期為關(guān)心互聯(lián)網(wǎng)運行機制的人員理解TCP/IP模型各層功能提供借鑒。本文所述TCP/IP模型自頂向下由應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層與物理層組成。后續(xù)將自底層向頂闡述各層功能。
1 TCP/IP各層功能
1.1 物理層功能
首先以雙機通信為例。如果采用有線的方式實現(xiàn)兩臺主機之間的通信,至少需要一條網(wǎng)線把兩臺主機連接起來,才能保證源主機發(fā)出的數(shù)據(jù)到達目的主機。同時,我們知道源主機待發(fā)送的數(shù)據(jù)其實是01序列,而在網(wǎng)線上傳輸?shù)闹荒苁请娦盘枴R虼耍挥镁W(wǎng)線把兩臺主機連接起來還不能實現(xiàn)兩臺主機之間的數(shù)據(jù)通信,還必須把源主機上待發(fā)送的數(shù)據(jù)也就是01序列轉(zhuǎn)換為可以在網(wǎng)線上傳輸?shù)碾娦盘枴4送猓康闹鳈C還需要把收到的電信號再轉(zhuǎn)換為01序列以便進行數(shù)據(jù)處理。當(dāng)然,如果采用光纖作為實現(xiàn)數(shù)據(jù)傳輸?shù)慕橘|(zhì),那么收發(fā)主機自然需要實現(xiàn)01序列與光信號之間的轉(zhuǎn)換。實現(xiàn)01序列與光電信號之間的轉(zhuǎn)換其實就是物理層的功能。
1.2 數(shù)據(jù)鏈路層功能
對于簡單的雙機直接互連通信模型,通過物理層即可實現(xiàn)它們之間的通信。對于三臺及以上的計算機,應(yīng)該如何實現(xiàn)它們之間的兩兩相互通信?最簡單的方法是把每兩臺計算機用網(wǎng)線互連起來,但是這樣一臺主機為了和其余的主機通信,那么它必須配置多個網(wǎng)絡(luò)接口和多根網(wǎng)線,顯然該方法不經(jīng)濟。與衛(wèi)星通信中任何兩個地球站通過衛(wèi)星中轉(zhuǎn)實現(xiàn)通信的方式類似,我們完全可以把多臺計算機全部連接到一臺中心設(shè)備上,讓中心設(shè)備作為中轉(zhuǎn)站完成每兩臺計算機之間的通信,該中心設(shè)備其實就是交換機。
當(dāng)兩臺計算機直接用網(wǎng)線互連時,一臺主機發(fā)出的數(shù)據(jù)必然會傳輸給另外一臺主機,所以不用考慮源主機發(fā)出的數(shù)據(jù)要傳給哪一臺主機的問題。但是,對于連接在交換機上的多臺主機而言,怎么保證從一臺源主機發(fā)出的數(shù)據(jù)能夠去往它要去的目的主機,而不會誤傳給其他主機?為了解決這一問題,就需要給每臺主機分配一個獨立標(biāo)識,該獨立標(biāo)識實際上就是主機的物理地址,一般稱為MAC地址。此時,源主機在給目的主機發(fā)送數(shù)據(jù)之前,通過給待發(fā)送的數(shù)據(jù)添加目的MAC地址控制待發(fā)送數(shù)據(jù)去往目的主機,同時通過給待發(fā)送的數(shù)據(jù)添加源MAC地址用以指明該數(shù)據(jù)來自哪臺源主機。至此,通過MAC地址即可實現(xiàn)由交換機互連起來的局域網(wǎng)內(nèi)任何相鄰的兩臺主機之間的通信。這其實就是數(shù)據(jù)鏈路層的功能之一:實現(xiàn)數(shù)據(jù)在相鄰節(jié)點設(shè)備之間的傳遞。
當(dāng)數(shù)據(jù)在相鄰節(jié)點設(shè)備之間的線路上傳遞時,它容易受到線路上電子熱運動或來自外界的電磁干擾,從而導(dǎo)致目的主機可能會收到錯誤的數(shù)據(jù)。為此,目的主機必須具備判斷收到的數(shù)據(jù)是否出錯的能力,這其實就是數(shù)據(jù)鏈路層的差錯檢測功能。源主機的數(shù)據(jù)鏈路層模塊在發(fā)送數(shù)據(jù)之前,它將會采取類似給數(shù)據(jù)貼上 “封條”的操作。當(dāng)目的主機收到數(shù)據(jù)后,它的數(shù)據(jù)鏈路層模塊通過檢測“封條”是否損壞就可以判斷數(shù)據(jù)在傳輸過程中是否出錯。由此,我們總結(jié)出數(shù)據(jù)鏈路層的功能是實現(xiàn)數(shù)據(jù)在相鄰節(jié)點之間的傳遞,同時對數(shù)據(jù)進行差錯檢測。
1.3 網(wǎng)絡(luò)層功能
通過對數(shù)據(jù)鏈路層功能的闡述,我們知道局域網(wǎng)中某臺源主機給該網(wǎng)絡(luò)中另外一臺目的主機發(fā)數(shù)據(jù)時,它必須要知道目的主機的MAC地址。MAC地址是網(wǎng)卡制造商在生產(chǎn)時就固化到網(wǎng)卡的存儲芯片中,但是每塊網(wǎng)卡都可能被出售到世界各地。所以,在互聯(lián)網(wǎng)上很難通過MAC地址對目的主機進行定位。不過,這并不影響局域網(wǎng)內(nèi)任何兩臺主機之間通過MAC地址實現(xiàn)數(shù)據(jù)通信。因為局域網(wǎng)的覆蓋范圍比較小,所以源主機可以通過廣播的方式獲取處在同一個局域網(wǎng)內(nèi)目的主機的MAC地址,從而實現(xiàn)它們之間的數(shù)據(jù)通信。但是,源主機通過廣播方式獲取目的主機MAC地址的方法并不能應(yīng)用于廣域網(wǎng)更不用說互聯(lián)網(wǎng),因為這會帶來廣播風(fēng)暴。通過以上分析,我們不難看出僅僅依靠數(shù)據(jù)鏈路層和物理層并不能實現(xiàn)世界范圍內(nèi)的互聯(lián)網(wǎng)通信。
為了實現(xiàn)當(dāng)今互聯(lián)網(wǎng)范圍內(nèi)的網(wǎng)絡(luò)通信,我們可以從電話網(wǎng)通信獲得啟示。類似電話網(wǎng)通過電話號碼對座機進行定位,在互聯(lián)網(wǎng)上也是給每臺主機分配全網(wǎng)惟一的網(wǎng)絡(luò)地址對主機進行定位,該地址就是IP地址。類似電話號碼由區(qū)號和座機號組成,網(wǎng)絡(luò)里面也是首先給每一個由交換機組建的網(wǎng)絡(luò)分配一個惟一的網(wǎng)絡(luò)號,然后再給該網(wǎng)絡(luò)內(nèi)的每一臺主機分配一個惟一的主機號。由網(wǎng)絡(luò)號與主機號就組成了IP地址,通過IP地址就可以實現(xiàn)對互聯(lián)網(wǎng)上任何一臺主機的定位。以上所述其實就是TCP/IP模型網(wǎng)絡(luò)層的編址功能。所謂編址是指給網(wǎng)絡(luò)里面的每一臺主機編配全網(wǎng)惟一的IP地址。
由交換機組建的不同局域網(wǎng)之間通過工作在網(wǎng)絡(luò)層的路由器互連起來,通過路由器就實現(xiàn)了全球范圍內(nèi)網(wǎng)絡(luò)的互連。如果兩臺主機相距很遠,那么數(shù)據(jù)如何從一臺源主機所在的源網(wǎng)絡(luò)穿越茫茫的互聯(lián)網(wǎng)到達目的主機所在的目的網(wǎng)絡(luò)而不是在網(wǎng)絡(luò)中走丟?與我們開車從一地去往另外一地需要地圖或者導(dǎo)航類似,數(shù)據(jù)在網(wǎng)絡(luò)里面從源主機穿越茫茫網(wǎng)絡(luò)到達目的主機,也需要導(dǎo)航,這就需要網(wǎng)絡(luò)層具備給數(shù)據(jù)選擇從源主機到達目的主機路線的能力。通過以上分析,我們得出網(wǎng)絡(luò)層的功能主要是給主機編址以及選擇數(shù)據(jù)從源主機到達目的主機路徑。
1.4 傳輸層功能
通過物理層、數(shù)據(jù)鏈路層與網(wǎng)絡(luò)層就能夠?qū)崿F(xiàn)兩臺主機之間的通信嗎?答案是否定的。其實,網(wǎng)絡(luò)通信的起點和終點都是運行的應(yīng)用程序,運行的應(yīng)用程序稱為應(yīng)用進程。例如,我們通過微信發(fā)送消息時,首先需要打開微信程序,打開的微信程序其實就是微信進程。那么,如何保證一臺源主機上微信進程發(fā)出的數(shù)據(jù)去往目的主機上的微信進程,而不會被錯誤的發(fā)往目的主機上的其他應(yīng)用進程例如網(wǎng)頁瀏覽器?這就需要傳輸層,它實現(xiàn)了兩個應(yīng)用進程之間的通信。通過給通信雙方主機上的應(yīng)用進程進行編號,即可確定發(fā)送數(shù)據(jù)與接收數(shù)據(jù)的應(yīng)用進程,應(yīng)用進程的編號稱為端口號。因此,當(dāng)源進程發(fā)送數(shù)據(jù)時,它會給待發(fā)送的數(shù)據(jù)添加目的應(yīng)用進程的端口號,以便指明數(shù)據(jù)將要去往的目的應(yīng)用進程。同時,它也會給待發(fā)送的數(shù)據(jù)添加源應(yīng)用進程的端口號,以便指明該數(shù)據(jù)來自哪個源應(yīng)用進程。以上所述其實就是TCP/IP模型傳輸層的功能之一:實現(xiàn)應(yīng)用進程之間的通信。
當(dāng)數(shù)據(jù)穿越茫茫的網(wǎng)絡(luò)向目的主機傳遞時,與郵局傳遞快遞類似,網(wǎng)絡(luò)層并不能保證數(shù)據(jù)能夠不出差錯的到達目的主機。自然,網(wǎng)絡(luò)層也就無法保證數(shù)據(jù)能夠正確的到達目的應(yīng)用進程。但是對于某些網(wǎng)絡(luò)應(yīng)用進程而言,例如瀏覽網(wǎng)頁、發(fā)送電子郵件、下載文件,實現(xiàn)此類網(wǎng)絡(luò)應(yīng)用的應(yīng)用進程要求數(shù)據(jù)必須準確無誤的從源進程傳輸?shù)侥康膽?yīng)用進程。為了給網(wǎng)絡(luò)應(yīng)用進程提供可靠傳輸服務(wù),傳輸層除了具備實現(xiàn)應(yīng)用進程之間通信的功能,還需要具備為應(yīng)用進程提供可靠數(shù)據(jù)傳輸服務(wù)。此外,傳輸層還需要解決源應(yīng)用進程與目的應(yīng)用進程之間發(fā)收數(shù)據(jù)能力不匹配的問題,否則會出現(xiàn)源應(yīng)用進程發(fā)送大量數(shù)據(jù)將目的應(yīng)用進程淹沒的情況出現(xiàn),這必然會導(dǎo)致目的應(yīng)用進程因為來不及接收源應(yīng)用進程后續(xù)發(fā)過來的數(shù)據(jù)而選擇丟棄數(shù)據(jù)。傳輸層匹配收發(fā)進程之間數(shù)據(jù)收發(fā)能力的功能稱為流量控制功能。除此之外,傳輸層還要考慮當(dāng)網(wǎng)絡(luò)中某個節(jié)點發(fā)送擁塞了,源應(yīng)用進程需要抑制發(fā)送數(shù)據(jù)的速度,以免網(wǎng)絡(luò)的擁塞程度進一步上升從而造成通信的中斷。因此,傳輸層還需要具備擁塞控制功能。綜上所述,我們總結(jié)傳輸層的主要功能是:實現(xiàn)應(yīng)用進程之間的通信、實現(xiàn)數(shù)據(jù)的可靠傳輸、流量控制與擁塞控制。
1.5 應(yīng)用層功能
從前文可知,網(wǎng)絡(luò)通信的起點與終點都是應(yīng)用進程。與寫信需要規(guī)范書寫的格式類似,應(yīng)用進程之間在交互數(shù)據(jù)時也需要規(guī)范雙方的交換行為。例如,源應(yīng)用進程發(fā)出的數(shù)據(jù)格式是文字、圖片還是音視頻?該數(shù)據(jù)是否被加密,采用何種加密方法?該數(shù)據(jù)是否被壓縮,采用何種壓縮方法?如此等等。為了規(guī)范通信雙方應(yīng)用進程之間的數(shù)據(jù)交互,就需要TCP/IP模型中的應(yīng)用層。應(yīng)用層正是通過這一功能為各種網(wǎng)絡(luò)應(yīng)用進程提供網(wǎng)絡(luò)通信服務(wù),從而最終為我們提供了海量的網(wǎng)絡(luò)應(yīng)用,最終造就了今天繁榮的互聯(lián)網(wǎng)時代。
2 結(jié)語
當(dāng)前,互聯(lián)網(wǎng)正處在高速發(fā)展階段,各類網(wǎng)絡(luò)應(yīng)用層出不窮。不管互聯(lián)網(wǎng)的未來如何發(fā)展演進,互聯(lián)網(wǎng)運行的底層機制也就是TCP/IP模型其實一直未變。正是通過TCP/IP模型各層功能的實現(xiàn)才實現(xiàn)了世界范圍內(nèi)的互聯(lián)互通,才讓我們享受到互聯(lián)網(wǎng)時代帶來的種種紅利。本文從實現(xiàn)網(wǎng)絡(luò)世界里主機之間的通信出發(fā),詳細闡述了TCP/IP模型各層的功能,以期為關(guān)心互聯(lián)網(wǎng)發(fā)展的人士提供看待高速發(fā)展變化互聯(lián)網(wǎng)的底層運行視角。
參考文獻
[1] 馮曉英,王瑞雪,曹潔婷,等.“互聯(lián)網(wǎng)+”時代三位一體的教育供給側(cè)改革[J].電化教育研究,2020(4):42-48.
[2] 王芳.“互聯(lián)網(wǎng)+”背景下的現(xiàn)代農(nóng)業(yè)發(fā)展路徑探析[J].農(nóng)業(yè)經(jīng)濟,2020(3):19-20.
[3] 鞏英杰,張媛媛.“互聯(lián)網(wǎng)+”視角下養(yǎng)老服務(wù)產(chǎn)業(yè)轉(zhuǎn)型升級路徑研究[J].宏觀經(jīng)濟研究, 2020(3):153-163.
[4] 張學(xué)誕,張耀文.“互聯(lián)網(wǎng)+”背景下我國稅收合作遵從機制的構(gòu)建[J].稅務(wù)研究,2020(1):96-100.
[5] Cerf,Kahn.A Protocol for Packet Network Intercommunication[J].IEEE Trans on Comms,1974,22(5):637-648.