計算機(jī)網(wǎng)絡(luò)的數(shù)據(jù)通信過程主要基于下三層來實現(xiàn),在這里我簡單的說一下關(guān)于下三層的硬件結(jié)構(gòu);
創(chuàng)新互聯(lián)為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設(shè)計服務(wù),主要包括成都做網(wǎng)站、成都網(wǎng)站設(shè)計、重慶APP開發(fā)、重慶小程序開發(fā)、宣傳片制作、LOGO設(shè)計等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗豐富的經(jīng)驗,可以確保每一個作品的質(zhì)量和創(chuàng)作周期,同時每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。物理層主要是進(jìn)行二進(jìn)制轉(zhuǎn)換的,兩個主機(jī)互聯(lián),首先它的比特率必須一致,否則數(shù)據(jù)就無法正常的傳輸,會導(dǎo)致數(shù)據(jù)不一致等情況;而物理層的硬件設(shè)施有中繼器,集線器;中繼器,具有兩個端口,可以在數(shù)據(jù)通信時因為距離過長而無法通信的問題,數(shù)據(jù)從一個接口進(jìn)入中繼器,由另一個接口出來后,數(shù)據(jù)通信的強度就會恢復(fù),但是中繼器只有兩個接口,這樣效率就會很低,而集線器的產(chǎn)生就是在中繼器的基礎(chǔ)上進(jìn)行強化,集線器具有多個接口,可以將多個主機(jī)設(shè)備連接在一起,形成一個物理上是星型結(jié)構(gòu),邏輯上卻是總線結(jié)構(gòu)的網(wǎng)絡(luò)拓?fù)?;但集線器的一個問題就是,他這樣的連接方式會導(dǎo)致數(shù)據(jù)之間的沖突過多,數(shù)據(jù)傳輸?shù)男示蜁?;而什么是沖突,在下面會講述到;
數(shù)據(jù)鏈路層主要是定義物理地址,對接收到的數(shù)據(jù)進(jìn)行校驗,判斷是否有差錯產(chǎn)生;數(shù)據(jù)鏈路層的主要設(shè)備是網(wǎng)卡,網(wǎng)橋以及交換機(jī);其中網(wǎng)橋和交換機(jī)是在數(shù)據(jù)鏈路層的基礎(chǔ)上擴(kuò)展以太網(wǎng);網(wǎng)橋工作在數(shù)據(jù)鏈路層,他根據(jù)MAC幀的目的地址對收到的幀進(jìn)行轉(zhuǎn)發(fā)和過濾,當(dāng)網(wǎng)橋收到一個幀時,不是立刻將其廣播給所有接口,而是判斷該幀是否存在于網(wǎng)橋轉(zhuǎn)發(fā)表中,若存在,則根據(jù)目的MAC地址在轉(zhuǎn)發(fā)表中對應(yīng)的接口進(jìn)行單播轉(zhuǎn)發(fā),若沒有,則廣播所有接口;交換機(jī)實際上就是一個多接口的網(wǎng)橋;在交換機(jī)中,每一個主機(jī)都擁有自己的一個沖突域,即每一個主機(jī)之間是不會產(chǎn)生沖突的,但但這一點,就比集線器好很多,所以現(xiàn)在市面上所用的存儲轉(zhuǎn)發(fā)設(shè)備一般都是交換機(jī)了,很少看到有集線器的存在;
數(shù)據(jù)鏈路層所具有的差錯檢測功能是由CSMA/CD協(xié)議實現(xiàn)的,它是一種帶有沖突檢測的載波監(jiān)聽多路訪問協(xié)議;該協(xié)議具有多路訪問的特性,每一個主機(jī)都可從其信道上發(fā)送數(shù)據(jù)到總線上進(jìn)行傳輸,這種多路訪問的結(jié)構(gòu)也容易導(dǎo)致沖突;CSMA/CD協(xié)議的一個重要的功能就是載波監(jiān)聽,主機(jī)在進(jìn)行發(fā)送的時候,需要進(jìn)行載波監(jiān)聽,如果檢測到載波,就說明有數(shù)據(jù)在運行,就延時發(fā)送,延時時間為隨機(jī)數(shù),若沒有檢測到載波,表示總線空閑,則可發(fā)送數(shù)據(jù),但如果有多個主機(jī)檢測到總線空閑,一起發(fā)送數(shù)據(jù),就會導(dǎo)致沖突,一旦產(chǎn)生沖突,所有的站點都回退,各個站點均等待一個隨機(jī)時間重新進(jìn)行載波監(jiān)聽;
交換機(jī)的功能主要體現(xiàn)在以下幾個方面:
①學(xué)習(xí):交換機(jī)對于每一個轉(zhuǎn)發(fā)到它這里具有IP和MAC地址的幀,它會判斷是否有這個幀的源MAC地址,若沒有,則將源MAC地址寫入交換機(jī)的轉(zhuǎn)發(fā)表,然后在進(jìn)行廣播,尋找符合該目的MAC地址的接口;如果接收到的數(shù)據(jù)幀中的源MAC地址,已經(jīng)出現(xiàn)在MAC地址表中,則更新該條目的時間戳;
②轉(zhuǎn)發(fā):
有目的轉(zhuǎn)發(fā):交換機(jī)在接受到數(shù)據(jù)幀時,若該目的MAC地址存在于交換機(jī)轉(zhuǎn)發(fā)表中,則按該目的MAC地址所對應(yīng)的接口進(jìn)行單播轉(zhuǎn)發(fā);
無目的轉(zhuǎn)發(fā):交換機(jī)在接受到數(shù)據(jù)幀時,該目的MAC地址不存在于交換機(jī)轉(zhuǎn)發(fā)表中,則將該數(shù)據(jù)幀進(jìn)行廣播,也可稱之為泛洪;
過濾:如果交換機(jī)收到的一個數(shù)據(jù)幀,發(fā)現(xiàn)該數(shù)據(jù)幀的目的MAC地址對應(yīng)的端口和接收數(shù)據(jù)的端口是同一個端口,則這樣的數(shù)據(jù),過濾不接收;
網(wǎng)絡(luò)層主要是為上層運輸層所傳下來的分組能夠找到合適的路由去尋找到目的主機(jī);而在網(wǎng)絡(luò)層中進(jìn)行數(shù)據(jù)傳輸,不能使用IP地址,而要使用這個IP地址所對應(yīng)的MAC地址,只有通過這個MAC地址才能找到合適的路由,IP地址一開始是由應(yīng)用程序向DNS服務(wù)器進(jìn)行請求所得出的,IP地址可以通過ARP協(xié)議進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成物理地址即MAC地址,在這個過程中,需要知道的是,每一個主機(jī)都有其所對應(yīng)的ARP緩存表,在表中有所對應(yīng)的IP地址和其MAC地址,將IP地址轉(zhuǎn)化為MAC地址的過程中,若能在該主機(jī)自身的ARP緩存表中找到所對應(yīng)的MAC地址,則可直接獲得,若無法找到,則需要通過ARP協(xié)議封裝出一個ARP數(shù)據(jù)包里面有對應(yīng)的MAC地址,將其廣播出去,目的主機(jī)收到之后,將源MAC地址和源IP地址存在自身的ARP緩存表中,并將自己的MAC地址和IP地址數(shù)據(jù)封裝后,以單播的形式返回,這樣就可以獲得目的主機(jī)的MAC地址;
數(shù)據(jù)通信之雙機(jī)互連:
①如果用戶在應(yīng)用程序中沒有指定目標(biāo)IP地址,則可由應(yīng)用程序發(fā)送請求到DNS服務(wù)器獲取目標(biāo)IP地址,或由用戶自己手動指定;
②獲取IP地址后,確定將要連接的傳輸層協(xié)議;選擇TCP/IP協(xié)議;則要進(jìn)行三次握手連接后再發(fā)送數(shù)據(jù);
③IP協(xié)議會按照正確的地址和對應(yīng)格式完成數(shù)據(jù)封裝,但是網(wǎng)絡(luò)訪問層需要通過MAC地址完成數(shù)據(jù)傳輸,因此需要查詢ARP緩存中是否有對應(yīng)該IP地址的MAC地址記錄;在ARP緩存表中查找目標(biāo)IP地址的MAC地址,若無,則將TCP三次握手連接暫存在內(nèi)存中;封裝ARP數(shù)據(jù)包,廣播發(fā)送,目標(biāo)主機(jī)收到ARP數(shù)據(jù)包后,將源IP地址及MAC地址緩存,再將自身的IP地址和MAC地址封裝單播發(fā)送回來;
④源主機(jī)接收到ARP數(shù)據(jù)包后,獲得了目標(biāo)主機(jī)的MAC地址,開始進(jìn)行TCP三次握手連接;
⑤數(shù)據(jù)報文傳輸完畢后,再進(jìn)行TCP四次揮手結(jié)束連接;
數(shù)據(jù)通信之交換機(jī)通信(UDP)
①如果用戶在應(yīng)用程序中沒有指定目標(biāo)IP地址,則可由應(yīng)用程序發(fā)送請求到DNS服務(wù)器獲取目標(biāo)IP地址,或由用戶自己手動指定;
②獲取IP地址后,確定將要連接的傳輸層協(xié)議;選擇UDP協(xié)議;則數(shù)據(jù)直接由應(yīng)用層發(fā)往UDP進(jìn)行直接傳傳輸;將UDP封裝好的數(shù)據(jù)交給IP協(xié)議進(jìn)行進(jìn)一步的封裝;
③將封裝好的IP協(xié)議交由網(wǎng)絡(luò)層進(jìn)行封裝,網(wǎng)絡(luò)層需要獲取目標(biāo)主機(jī)的MAC地址,才可在網(wǎng)絡(luò)層中進(jìn)行傳輸,訪問當(dāng)前主機(jī)的ARP緩存表,看是否有對應(yīng)目標(biāo)IP地址的MAC地址,若無,則將UDP連接暫存在內(nèi)存中;封裝ARP數(shù)據(jù)包,廣播發(fā)送,經(jīng)過交換機(jī)時,由交換機(jī)查看是否有該ARP封裝的源MAC地址,若無,則將源MAC地址寫入交換機(jī)轉(zhuǎn)發(fā)表中,進(jìn)行泛洪操作,若有,則進(jìn)行單播發(fā)送到目標(biāo)主機(jī);目標(biāo)主機(jī)收到ARP數(shù)據(jù)包后,將源IP地址及MAC地址緩存,再將自身的IP地址和MAC地址封裝單播發(fā)送到交換機(jī),交換機(jī)查看是否有該主機(jī)的源MAC地址,若無,則將源MAC地址寫入交換機(jī)轉(zhuǎn)發(fā)表中,進(jìn)行泛洪操作,若有,則進(jìn)行單播發(fā)送到目標(biāo)主機(jī);這樣就可使源主機(jī)獲取目標(biāo)主機(jī)的MAC地址,并寫入到源主機(jī)的ARP緩存表中,可以開始在網(wǎng)絡(luò)層中傳輸;
④按照ARP緩存表中的目標(biāo)MAC地址傳送數(shù)據(jù);
數(shù)據(jù)通信之交換機(jī)通信(TCP)
①如果用戶在應(yīng)用程序中沒有指定目標(biāo)IP地址,則可由應(yīng)用程序發(fā)送請求到DNS服務(wù)器獲取目標(biāo)IP地址,或由用戶自己手動指定;
②獲取IP地址后,確定將要連接的傳輸層協(xié)議;選擇TCP協(xié)議;則數(shù)據(jù)需要先建立TCP的連接,即三次握手后,才可傳輸數(shù)據(jù);將TCP封裝好的數(shù)據(jù)交給IP協(xié)議進(jìn)行進(jìn)一步的封裝;
③將封裝好的IP協(xié)議交由網(wǎng)絡(luò)層進(jìn)行封裝,網(wǎng)絡(luò)層需要獲取目標(biāo)主機(jī)的MAC地址,才可在網(wǎng)絡(luò)層中進(jìn)行傳輸,訪問當(dāng)前主機(jī)的ARP緩存表,看是否有對應(yīng)目標(biāo)IP地址的MAC地址,若無,則將TCP三次握手連接暫存在內(nèi)存中;封裝ARP數(shù)據(jù)包,廣播發(fā)送,經(jīng)過交換機(jī)時,由交換機(jī)查看是否有該ARP封裝的源MAC地址,若無,則將源MAC地址寫入交換機(jī)轉(zhuǎn)發(fā)表中,進(jìn)行泛洪操作,若有,則進(jìn)行單播發(fā)送到目標(biāo)主機(jī);目標(biāo)主機(jī)收到ARP數(shù)據(jù)包后,將源IP地址及MAC地址緩存,再將自身的IP地址和MAC地址封裝單播發(fā)送到交換機(jī),交換機(jī)查看是否有該主機(jī)的源MAC地址,若無,則將源MAC地址寫入交換機(jī)轉(zhuǎn)發(fā)表中,進(jìn)行泛洪操作,若有,則進(jìn)行單播發(fā)送到目標(biāo)主機(jī);這樣就可使源主機(jī)獲取目標(biāo)主機(jī)的MAC地址,并寫入到源主機(jī)的ARP緩存表中,可以開始在網(wǎng)絡(luò)層中傳輸;
④進(jìn)行TCP三次握手連接,按照ARP緩存表中的目標(biāo)MAC地址傳送數(shù)據(jù);
⑤當(dāng)數(shù)據(jù)報文傳輸完畢后,發(fā)起斷開TCP連接,四次揮手;
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。