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