日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

igmp是哪个层协议_通俗易懂网络协议(IP)

發布時間:2024/9/27 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 igmp是哪个层协议_通俗易懂网络协议(IP) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前寫過一篇《通俗易懂TCP/IP(概述)》,廣受歡迎和好評,有網友催更,便抽空續寫IP章節,回應粉絲期待。

TCP/IP網絡模型

TCP/IP網絡模型分為4層,自下而上分布為鏈路層(又叫網絡接口層)、網絡層、傳輸層、應用層。

  • 鏈路層:處理數據在媒介上的表示、傳輸以及與硬件交互的細節。
  • 網絡層:IP層負責IP數據報的路由轉發,所有的TCP、UDP、ICMP和IGMP數據都通過IP數據報傳輸。網絡層(IP)提供了一種盡力而為、無連接、不可靠的數據報交付服務,IP負責將IP數據報(又叫分組)放入數據鏈路層傳輸,并處理分片和重組邏輯。
  • 傳輸層:為端主機上運行的應用程序提供端到端服務,包括TCP和UDP。
  • TCP提供了帶流量控制、擁塞控制、有序、可靠的流交付,TCP需要處理丟包檢測重傳、重排序等IP層不處理的問題,TCP面向連接,不保留消息邊界。
  • UDP提供的功能基本上沒有超越IP,不提供速率控制和差錯控制,不保證可靠性,UDP只是提供一套端口號,用于復用、多路分解(即把收到的數據報交給應用層對應程序處理)和校驗數據完整性(只檢錯不糾錯),UDP面向非連接,保留消息邊界。
  • 應用層:負責處理特定應用的細節,通常應用的實現都是基于TCP/IP或者UDP/IP。應用層與應用細節相關,與網絡數據傳輸無關,而之下的三層(鏈路層、網絡層、傳輸層)則對應用一無所知,但需要處理通信的細節。
  • 分層&協議對照

    OSI七層網絡模型和TCP/IP四層網絡模型的對應關系如下圖,對應層的常用協議也列于表中。

    分層的目標是隔離,通過分層實現:下層對上層透明,而上層利用下層提供的能力

    分層的另一個優點是協議復用,這種復用允許多種協議共存于同一基礎設施之中,復用可以發生在不同層,并在每層都有不同類型的標識符區分,用于確定信息屬于哪個協議。

    比如在鏈路層的數據幀(Frame)有一個協議標識符字段,用來標識鏈路層幀攜帶的協議是IP還是ARP;又比如在網絡層的IP數據報頭部有一個8位協議字段,標識該IP數據報來自于TCP、還是UDP、亦或是ICMP、IGMP...

    封裝

    數據在發送端從上到下經過TCP/IP協議棧,遵循應用層->TCP/UDP->IP->鏈路層的順序。

    當某層的一個協議數據單元(PDU)對象轉換為由底層攜帶的數據格式表示,這個過程稱為在相鄰低層的封裝,即上層被封裝對象作為不透明數據充當底層的Payload部分,封裝是層層包裹的過程。

    每層都有自己的消息對象(PDU)的概念。

    • TCP層的PDU叫TCP段(segment)
    • UDP層的PDU叫UDP數據報(Datagram)
    • IP層的PDU叫IP數據報(Datagram)
    • 鏈路層的PDU叫鏈路層幀(Frame)

    封裝的本質是將來自上層的數據看成不透明、無須解釋的信息,經過本層的處理,在上層PDU的前面加上本層協議的頭部,有些協議是增加尾部(鏈路層),頭部用于在發送時復用數據,接收方基于各層封裝過程中增加頭部中的分解標識符執行分解。

    具體到TCP傳輸數據而言,發送端的數據要經過三次封裝。

  • 應用層數據經過TCP層的時候,會增加TCP頭部,產生TCP Segment,TCP頭部中的端口號是該層的分解標識符。
  • TCP Segment經過IP層的時候,會增加IP頭部,產生IP Datagram,IP頭部中的協議類型字段是該層的分解標識符。
  • IP分組經過鏈路層的時候,會增加以太網首部和尾部,產生以太網Frame,幀頭部中的以太網類型字段,可用于區分IPv4(0x8000)、IPv6(0x86DD)和ARP(0x0806)。
  • 分用

    數據到達接收端(是目的機器),會從下到上經過TCP/IP協議棧,遵循鏈路層->IP->TCP/UDP->應用層的順序。

    接收端的數據還原也需要經歷三次解封。

  • 經過鏈路層會剝離以太網首尾部,根據以太網類型字段,如果是IP Datagram則交給IP模塊。
  • 經過IP層會清除IP頭部,根據IP頭部中的協議類型字段,交給TCP、UDP或者ICMP、IGMP模塊。
  • 經過TCP/UDP層去掉TCP/UDP頭部,根據端口號,最終將數據還原取出,并交付給應用程序。
  • 封裝發生在發送方,拆封(還原)發生在接收方。

    消息邊界

    應用層將協議攜帶的數據寫入消息,消息邊界是兩次寫入操作之間的位置或字節偏移量。

    保留消息邊界的協議(UDP)在接收方能獲得發送方的消息邊界,而不保留消息邊界的協議(TCP)在接收方將不能獲得發送方的消息邊界。

    比如發送端通過UDP協議先后發送2個大小分別為100、200字節的消息,接收端通過UDP協議接收數據,將分2次分別接收到100、200字節的消息,但不保證接收100、200消息的先后順序。

    TCP是數據流協議,如果發送端通過TCP協議先后發送2個大小為100和200字節的消息,接收端會收到300字節數據,但每次接收返回的不一定是100、200字節消息,接收端丟失了發送端的消息邊界。

    網絡地址

    IP地址用于IP層,IPv4的IP地址是32位整數,最多可以表示40多億個IP地址,按8位一字節,則分為4字節,每個字節是一個0~255的無符號整數,所以可以表示為“abc.def.ghi.jkl”的點分十進制格式,也可以表示為32位無符號整數。

    點分十進制和無符號32位無符號整數可以很容易換算。

    IPv4地址空間分成五大類A、B、C類用于Internet單播,D類地址供組播使用,E類地址保留。

    IPv4的32位又被劃分為網絡號主機號,可以把網絡號想象成到小區的郵政地址,而主機號想象成房間號。

    鏈路層使用48bit的MAC地址ARPRARP用于IP地址和MAC地址之間的相互換算

    應用程序編程接口

    操作系統通過提供編程接口(API)來支持應用程序的網絡開發,目前最流行的API是套接字(Socket),也叫Berkeley套接字。

    Socket抽象層位于應用層跟傳輸層之間,提供創建、綁定、監聽、連接、發送、接收、關閉等常用方法。

    Internet協議

    IP是TCP/IP協議族中的核心協議,為傳輸層提供IP數據報的交付能力,它負責將IP數據報從網絡一端傳遞到另一端,實現數據轉發。

    IP的另一個作用是:在發送端,接收來自傳輸層的協議數據單元(PDU),添加IP首部封裝為IP數據報,交給協議族的下一層鏈路層。

    在接收端(包括中間路由器),接收來自鏈路層的PDU,去掉IP首部,根據IP首部中的協議類型,將數據分發給TCP、UDP或者其他。

    IP只是完成分組交換(轉發),如果你希望得到可靠性保證,IP會說:對不起,做不了。

    發送一個IP數據報猶如寄一個快遞,只需把目的地收件人寫在快遞上,快遞公司會路由分發,但中間有可能丟件,丟了不管,而且到了,也不會有確認,一切隨緣。

    基于TCP/IP協議族構建的網絡,可以區分為端系統(兩邊的主機)和中間系統(中間路由器),端主機實現網絡所有層,而路由器實現傳輸層之下的所有層,IP使用逐跳協議,IP之上的各層使用端到端協議

    路由器

    路由器工作于網絡層,是IP層的核心設備。

    路由器有兩個或兩個以上的網絡接口,用于連接兩個或多個網絡,負責將IP數據報(分組)從一個網絡接口轉發到另一個網絡接口。

    帶有多網絡接口(網卡)的主機也能承擔轉發分組的功能,這種主機稱為作為路由器使用的主機。

    如果把一個村莊比喻成一個小的局域網,那路由器就相當于連接村莊的橋梁,路由器屬于中間系統,所以連接不同網絡的路由器需要實現不同的鏈路層協議,完成不同鏈路層的翻譯轉換功能。

    另一方面,路由器實現鏈路層+網絡層這2層就夠了,而不必實現傳輸層和應用層,這是由它的功能(實現分組交換)決定的

    每個IP分組都是一個IP數據報,包含發送方和接收方的第三層地址(IP地址),即32位的IPv4或128位的IPv6,IP數據報首部中的目的地址決定將該數據報發往何處,而做出決定和發送數據報到下一跳的過程叫轉發,轉發依賴于路由表,是存儲于內存中的一個數據結構。

    IP協議格式

    在貼出IP協議格式之前,我們可以設想一下,IP協議需要包括哪些信息,這比直接上圖+死記硬背要好。

    根據之前封裝的描述,顯然,IP數據報應該是包括IP首部+數據負載,而這個不透明的負載(Payload)來自于TCP、UDP或者其他。

    所以我們講IP數據報格式,其實就是IP首部的組成和結構,因為數據負載來自于上層,而封裝的本質要求上層的數據對下層隱藏、無須解釋,既然IP的Payload對于IP層透明,那自然沒什么可講的。

    IP首部由各種不同用途和含義的字段組成

    因為IP分32位的IPv4和128位的IPv6,所以IP首部需要包括版本號字段用來區分這兩種情況。

    因為IP負責分組轉發,所以IP首部應該包括目的IP地址,用于路由轉發邏輯的處理,另外接收端可能需要找到該分組的來源,所以也應該包含來源IP地址

    TCP、UDP、ICMP、IGMP都通過IP數據報傳輸,所以在IP首部,需要包含一個協議字段,用于區分該IP數據報承載的是哪種類型的協議。

    IP不糾錯,但是需要檢查錯誤,數據在傳輸過程中,有可能出錯,導致接收到的數據跟發送的不一樣,所以接收端需要有方法知道傳輸過程中,數據是否跟發送端一致,所以頭部校驗和字段也是必要的。

    因為IP要處理分片和重組,所以IP首部需要包含相關信息,以支持該功能。

    IP分IPv4和IPv6兩種,協議格式不同,本文講述以IPv4為主,先給一個IPv4的數據報圖,不帶選項的IP數據報頭部為20字節。

    版本,IP協議的第一個字段都是版本字段,這也是IPv4和IPv6唯一相同的字段,IP數據報的版本字段為4對應IPv4,為6對應IPv6,主機或者路由器可以根據版本字段,分別處理IPv4或IPv6(稱為雙棧)。

    IHL,Internet頭部長度,該字段為4位,表示頭部(包括選項)32位字的數量,也就是說,真正的用字節表示的頭部長度應該是IHL的值,再乘以4(32位=4字節),因為4位能表示的最大2進制為1111,對應十進制15,所以IPv4的首部最多60(15*4)字節。

    DS,服務類型字段占6bit,顯示控制通知(ECN)占2bit,一共8bit,該8bit用來替換了最初版本的服務類型(ToS)字段,原因是ToS其實沒怎么被用。

    總長度字段是IP數據報的總長度,包括首部和數據。

    接下來的32位字(4字節),標識(16bit)+標志(3bit)+分片偏移(13bit)用于分片和重組邏輯。

    TTL,生存期字段用于設置數據報可經過路由器數量的上限。超此上限的IP數據報將被丟棄。

    協議字段,8bit,提供多路分解功能,滿足IP協議可用于攜帶多種(TCP、UDP、ICMP、IGMP等)協議類型的有效載荷的要求,TCP對應值17,UDP對應值為6。

    頭部校驗和字段,僅計算IPv4頭部,不包括數據,數據(Payload)的校驗由傳輸層協議去保證,校驗和的含義很簡單明了,在發送端根據IP頭部的各位計算出一個數值,接收端根據接收到的IP頭部的各位重算一個數值,如果該值等于校驗和字段,那就哦了,否則,傳輸過程中出錯了,這個IP數據報不靠譜,扔了吧。

    分片和重組

    鏈路層對可傳輸的幀有一個最大長度的限制,以太網對數據幀的長度上限是1500字節,鏈路層可傳輸幀的長度限制叫做最大傳輸單元(MTU)。

    如果IP層有一個數據報要傳,且數據長度比鏈路層的MTU還大,那么IP層就需要對該數據報分片(fragmentation),把超限的數據報切分為若干片,使得每片都小于MTU限制。

    IP層接收到一份要發送的數據報時,通過選路邏輯來決定向哪個接口(網卡)發送數據,發送數據之前,需要查詢該接口獲得其MTU,然后將數據報長度與MTU進行比較,如果需要,則進行分片,分片可以發生在原始發送端主機,也可以發生在中間路由器上。

    IP數據報分片后,到達目的地后才進行重新組裝,恢復分片前的IP數據報信息,重組由目的主機的IP層完成。因此,分片和重組對傳輸層(TCP、UDP)透明,IP首部中的標識、標志、分片偏移字段為分片和重組提供了足夠的信息。

    IP數據報首部中的標識(16bit)保存分片的唯一值,這意味著屬于同一IP數據報的多個分片擁有相同的標識值。

    標志(3bit)字段中的一位用來表示“是否有更多的片”,除最后一片外,其他組成數據報的分片該位設1,最后一片置0表示沒有更多的片,也就是最后一片;片偏移字段用來標識該片在原始IP數據報中的位置。

    當IP數據報切分為多個分片(IP數據報)后,每個分片的總長度字段(16bit)要更改為該片的長度值。

    對鏈路層而言,不管是完整的IP數據報,還是IP數據報的一個分片,都以IP分組同等視之,分組是IP層把數據報傳遞給鏈路層的一個概念,既可能是一個獨立IP數據報也可能是一個IP數據報的分片。每個分組(分片)都有自己的IP首部,并在選路時與其他分組(分片)獨立路由,所以這些分片到達目的端可能失序,但IP首部有足夠信息重新組裝這些片

    任何一個分片的丟失,都要導致重傳整個數據報,這是因為重傳機制在傳輸層,而分片對傳輸層透明。

    上圖是UDP數據報在IP層的分片示例,可見UDP首部只存在第一個分組(分片)之中,這很容易理解,因為經傳輸層封裝后的數據報對于IP層而言是透明的,IP不區分UDP首部和UDP數據,它們都是不透明的Payload。

    接收端在收到IP分片后,相同標識值的分片屬于同一個被切分的數據報,然后對分片偏移排序,更多片標志位為0的分組是最后一片,排序后的分組,如果分配偏移連續,且最后一個分組也到達,則表示整個數據報都到達了,則恢復數據報,否則繼續等待。

    IP轉發

    IP轉發的概念很簡單,就是路由器為IP數據報挑選一個接口發送出去。

    從發送端到目的端,之間經歷的所有路由器構成網絡路由的完整路徑,這跟從家到公司經過的所有路口構成的路徑類似。

    當網絡接口(網卡)收到數據報時,IP模塊檢查數據報目的地址是否為自己的IP地址,如果是,數據報交付給由協議字段指定的協議模塊(TCP、UDP等),如果不是,則判斷IP層是否配置為路由器,如果是,則轉發,如果不是,丟棄,因為主機不轉發那些不是由它生成的數據報。

    IP層包含一些位于內存中的信息,稱為路由表,每次轉發數據報時,都要查詢路由表,執行最長前綴匹配法,決定挑選哪個路由表項做數據轉發。IP轉發逐跳進行,每次轉發假設離目的地更近一步,路由器和主機不包含到目的地的完整路徑信息。

    路由表是路由條目的列表,每個路由條目包括以下幾項關鍵信息。

  • 目的地:一個32位字段,用于與掩碼操作結果相匹配。
  • 掩碼:一個32位字段,用于與IP數據報中的目的IP地址做按位與操作。
  • 下一跳:下一個IP實體(路由器或者主機)的32位IP地址,數據報將被轉發到該地址。
  • 接口:用于將數據報發送給下一跳的網絡接口(網卡)。
  • 選路過程:

  • 首先取出數據報中的目的IP地址,然后與路由條目的掩碼字段進行按位與,按位與的結果如果等于路由條目的目的地,則該條目與目的地IP匹配,該條目進入候選集合。
  • 從候選集合中選擇最匹配的條目,即掩碼最多位為1的條目,取出下一跳字段作為轉發數據報的下一跳IP地址。
  • 通過最匹配條目的網絡接口,發送到下一跳。
  • 如果沒有匹配條目,則數據報無法交付,通過ICMP發送“主機不可達”通知發送主機。
  • 通常路由表會有一個默認路由項目,用于默認路由,每經過一個路由器,IP首部中的TTL字段都要自減1。

    歡迎關注:"碼磚雜役"公眾號和頭條號,本號專注于科技互聯網知識傳播和分享。

    總結

    以上是生活随笔為你收集整理的igmp是哪个层协议_通俗易懂网络协议(IP)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 9l视频自拍蝌蚪9l视频 | 97久久国产亚洲精品超碰热 | 啪啪免费 | 四虎影视免费观看 | 黄频视频在线观看 | 色av吧| 精品国产免费av | www.av麻豆 | 亚洲精品日韩丝袜精品 | 国产婷婷色综合av蜜臀av | 成人区精品一区二区婷婷 | 亚洲成人久 | 久久视| 日本福利片在线观看 | 在线观看免费高清在线观看 | 久久久久黄色片 | www.国产一区二区 | 免费激情| 欧美精品乱码久久久久久按摩 | 亚洲综合一区中 | 国产精品xxx | 超碰av男人的天堂 | 色综合久久av | 老司机免费在线视频 | 国产尤物av尤物在线看 | 欧美精品福利视频 | 日韩av图片 | 人人模人人爽 | 国产精品15p | 国产综合色视频 | 色综合99久久久无码国产精品 | 五月激情久久 | 国精品一区二区 | 精品久久福利 | 91中文| 欧美一区视频 | 成人综合网站 | 中文精品无码中文字幕无码专区 | 天天干天天草天天射 | 亚洲欧美另类图片 | 国产日韩欧美另类 | 天天干天| 天天躁日日躁狠狠躁av麻豆男男 | 国产精品免费观看视频 | 国产成人麻豆免费观看 | japan高清日本乱xxxxx | 欧美激情在线免费观看 | 日韩毛片大全 | 自拍偷拍第1页 | 国产无遮挡又黄又爽在线观看 | 欧美综合成人 | 久久久久无码精品国产sm果冻 | 五月婷婷开心中文字幕 | 一级色网站 | 五月激情站 | 久久最新视频 | 麻豆传媒网站在线观看 | 少妇又紧又深又湿又爽视频 | 国产精品综合视频 | 男男做爰猛烈啪啪高 | 中国无码人妻丰满熟妇啪啪软件 | 国产精品熟女久久久久久 | 色噜噜狠狠一区二区 | 蜜桃av在线播放 | 日本精品免费视频 | 国产精品无码电影在线观看 | 日韩卡一卡二 | 中文字幕高清在线播放 | 日本人jizz| 丰满人妻综合一区二区三区 | 熊出没之冬日乐翻天免费高清观看 | 亚洲综合在 | 亚洲性少妇| 最近2018年手机中文字幕版 | www操操操 | 国内精品久久久 | 亚洲成人网页 | 另类国产| 久久成人在线 | www成人网 | 久久亚洲一区 | 欧美一及片 | 娇妻被老王脔到高潮失禁视频 | av2014天堂| 国产一区二区三区视频在线观看 | 熟女人妻一区二区三区免费看 | 老司机深夜福利视频 | 五月天国产精品 | 久久久久久久久免费看无码 | 久久精品无码一区二区三区免费 | 国内偷拍第一页 | 成人超碰在线 | fc2ppv在线播放 | 日韩精品在线观看中文字幕 | 日本久久一区 | 成年人www | 精品九九视频 | 久久久久亚洲av无码专区桃色 | 亚洲中字|