物聯(lián)方案
2020年03月29日
在網(wǎng)絡(luò)通信過程中,發(fā)送數(shù)據(jù)的主機(jī)稱為源主機(jī),接收數(shù)據(jù)的主機(jī)稱為目標(biāo)主機(jī)。當(dāng)源主機(jī)發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)從上層傳輸?shù)皆粗鳈C(jī)中的下層。源主機(jī)中的應(yīng)用程序首先將數(shù)據(jù)發(fā)送給應(yīng)用層,應(yīng)用層加上所需的控制信息成為消息流,并將其向下傳輸?shù)絺鬏攲?。傳輸層將接收?shù)據(jù)單元加上該層的控制信息,形成消息段數(shù)據(jù)報(bào),然后將其轉(zhuǎn)交給網(wǎng)絡(luò)層。網(wǎng)絡(luò)層加上該層的控制信息形成IP數(shù)據(jù)報(bào),并將其傳輸?shù)骄W(wǎng)絡(luò)接口層。網(wǎng)絡(luò)接口層將與Internet層相交的IP數(shù)據(jù)報(bào)組裝成幀,以比特流的形式傳送給網(wǎng)絡(luò)硬件(即物理層),數(shù)據(jù)離開源主機(jī)。
鏈路層
以太網(wǎng)協(xié)議規(guī)定,所有接入網(wǎng)絡(luò)的設(shè)備必須安裝網(wǎng)絡(luò)適配器,即網(wǎng)卡,數(shù)據(jù)包必須從一張網(wǎng)卡傳送到另一張網(wǎng)卡。網(wǎng)卡地址是數(shù)據(jù)包的發(fā)送地址和接收地址。在獲得MAC地址后,以太網(wǎng)使用廣播表單將數(shù)據(jù)包發(fā)送到子網(wǎng)中的所有主機(jī)。在接收到此數(shù)據(jù)包后,子網(wǎng)中的每個(gè)主機(jī)將讀取標(biāo)頭中的目標(biāo)MAC地址,然后將其與自己的MAC地址進(jìn)行比較。如果相同,則執(zhí)行下一步處理,如果不同,則丟棄數(shù)據(jù)包。
因此,鏈路層的主要工作是對(duì)電信號(hào)進(jìn)行分組,形成具有特定意義的數(shù)據(jù)幀,然后以廣播的形式通過物理媒體將它們發(fā)送給接收機(jī)。
網(wǎng)絡(luò)層
網(wǎng)絡(luò)層引入了IP協(xié)議并制定了一組新的地址,使我們能夠區(qū)分這兩臺(tái)主機(jī)是否屬于同一網(wǎng)絡(luò)。這組地址是網(wǎng)絡(luò)地址,也就是所謂的IP地址.IP協(xié)議將32位地址分為兩部分,第一部分表示網(wǎng)絡(luò)地址,后者表示局域網(wǎng)中主機(jī)的地址。如果兩個(gè)IP地址位于同一子網(wǎng)中,則網(wǎng)絡(luò)地址必須相同。為了判斷IP地址中的網(wǎng)絡(luò)地址,IP協(xié)議還引入了子網(wǎng)掩碼。IP地址和子網(wǎng)掩碼可以通過按位和操作獲得。
ARP協(xié)議
即地址解析協(xié)議,是一種根據(jù)IP地址獲取MAC地址的網(wǎng)絡(luò)層協(xié)議。它的工作方式如下:ARP首先發(fā)起一個(gè)請(qǐng)求包,其中第一個(gè)包含目標(biāo)主機(jī)的IP地址,然后在鏈路層重新打包該數(shù)據(jù)包以生成以太網(wǎng)數(shù)據(jù)包,這些數(shù)據(jù)包最終由以太網(wǎng)廣播到子網(wǎng)中的所有主機(jī),每個(gè)主機(jī)接收該包,在報(bào)頭中取出IP地址,然后將其與自己的IP地址進(jìn)行比較。如果返回相同的MAC地址,則返回自己的MAC地址,如果數(shù)據(jù)包不同,則丟棄該數(shù)據(jù)包。"ARP接收返回消息以確定目標(biāo)計(jì)算機(jī)的MAC地址;同時(shí),ARP還將返回的MAC地址和相應(yīng)的IP地址存儲(chǔ)在本機(jī)ARP緩存中,并將其保存一段時(shí)間,并在下一次請(qǐng)求中直接查詢ARP緩存以節(jié)省資源。
路由協(xié)議
首先,IP協(xié)議用于確定兩臺(tái)主機(jī)是否位于同一子網(wǎng)中。如果它們位于同一子網(wǎng)中,則通過ARP協(xié)議查詢相應(yīng)的MAC地址,然后以廣播的形式將數(shù)據(jù)包發(fā)送到子網(wǎng)中的主機(jī)。如果數(shù)據(jù)包不在同一子網(wǎng)中,則以太網(wǎng)將將數(shù)據(jù)包轉(zhuǎn)發(fā)到子網(wǎng)的網(wǎng)關(guān)進(jìn)行路由。網(wǎng)關(guān)是Internet上子網(wǎng)和子網(wǎng)之間的橋梁,因此網(wǎng)關(guān)會(huì)多次轉(zhuǎn)發(fā)數(shù)據(jù)包,最后將數(shù)據(jù)包轉(zhuǎn)發(fā)到目標(biāo)IP所在的子網(wǎng),再通過ARP獲得目標(biāo)機(jī)MAC,最后以廣播的形式發(fā)送給接收方。完成這一路由協(xié)議的物理設(shè)備是路由器,它扮演著傳輸中心的角色,它根據(jù)信道條件選擇和設(shè)置路由,并以最佳路徑轉(zhuǎn)發(fā)數(shù)據(jù)包。
因此,網(wǎng)絡(luò)層的主要工作是定義網(wǎng)絡(luò)地址、區(qū)分網(wǎng)段、子網(wǎng)中的MAC尋址以及將包從不同的子網(wǎng)路由。
傳輸層
鏈路層定義主機(jī)的標(biāo)識(shí),即MAC地址,網(wǎng)絡(luò)層定義IP地址,該IP地址定義主機(jī)所在的網(wǎng)段。使用這兩個(gè)地址,包可以從一個(gè)主機(jī)發(fā)送到另一個(gè)主機(jī)。但是,實(shí)際上,數(shù)據(jù)包是從一個(gè)主機(jī)的應(yīng)用程序發(fā)送的,然后由另一個(gè)主機(jī)的應(yīng)用程序接收。每臺(tái)計(jì)算機(jī)可能同時(shí)運(yùn)行多個(gè)應(yīng)用程序,因此當(dāng)數(shù)據(jù)包被發(fā)送到主機(jī)時(shí),不可能確定哪個(gè)應(yīng)用程序?qū)⒔邮赵摂?shù)據(jù)包。因此,傳輸層引入了UDP協(xié)議來解決這一問題,以便識(shí)別每個(gè)應(yīng)用程序。
UDP協(xié)議
UDP協(xié)議定義了端口,同一主機(jī)上的每個(gè)應(yīng)用程序都需要指定唯一的端口號(hào),并要求在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包必須添加端口信息,當(dāng)數(shù)據(jù)包到達(dá)主機(jī)時(shí),可以根據(jù)端口號(hào)找到相應(yīng)的應(yīng)用程序。UDP協(xié)議簡(jiǎn)單、易于實(shí)現(xiàn),但沒有確認(rèn)機(jī)制。一旦數(shù)據(jù)包被發(fā)送出去,它就無法知道對(duì)方是否收到它,因此可靠性很差。為了解決這一問題,提高網(wǎng)絡(luò)的可靠性,TCP協(xié)議應(yīng)運(yùn)而生。
TCP協(xié)議
傳輸控制協(xié)議tcp是一種面向連接、可靠和基于字節(jié)碼的通信協(xié)議.簡(jiǎn)單地說,TCP是一個(gè)具有確認(rèn)機(jī)制的UDP協(xié)議。發(fā)送的每個(gè)數(shù)據(jù)包都需要確認(rèn)。如果一個(gè)數(shù)據(jù)包丟失,將不會(huì)收到任何確認(rèn),發(fā)送方必須重新發(fā)送該數(shù)據(jù)包。為了保證傳輸?shù)目煽啃?,TCP協(xié)議在UDP協(xié)議的基礎(chǔ)上建立了三次會(huì)話的確認(rèn)機(jī)制,即在正式發(fā)送和接收數(shù)據(jù)之前必須與對(duì)方建立可靠的連接。TCP數(shù)據(jù)包,如UDP,由第一部分和數(shù)據(jù)部分組成。唯一的區(qū)別是TCP數(shù)據(jù)包沒有長(zhǎng)度限制,理論上可以無限長(zhǎng),但為了保證網(wǎng)絡(luò)的效率,TCP數(shù)據(jù)包的長(zhǎng)度通常不超過IP數(shù)據(jù)包的長(zhǎng)度,以確保一個(gè)TCP數(shù)據(jù)包不需要被分割。