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