『壹』 為什麼分片標識欄位值一樣
在鏈路層上邊每一個數據幀都有一個可封裝數據的上限,這個上限就叫最大傳輸單元MTU。比如乙太網MTU是1500位元組
IP分組在向下傳給數據鏈路層的時候加頭加尾,形成數據幀,中間數據幀納雹不能超過MTU
如果超過了最大傳輸單元就可以進行分片,有個前提是IP分組必須統一把自己的IP數據報分片,如果IP分組不同意分片就會返回一個ICMP的差錯報文。
標識欄位:經過分片的IP數據報所有的標識欄位都是相同的
標志欄位:有三位,低兩位有效,中間位:DF = 0 表示 允許分片。最低位:MF = 0 表示最後一片/沒有分片,否則就是後邊還有分片。只有DF = 0 MF才有意義。
片偏移量:片偏移量以8位元組為單位,所以求偏移量要除以8.
片偏移量求法:查看每段的笑茄鉛其實位元組數(數據部分),除以偏移量的單位
各個欄位的單位是不一樣的,計算總長度需要乘上單位大小。
計算機網路
高清播放機,圖片大全,點擊查看詳情!
精選推薦
廣告
IP分片重組
24下載·0評論
2017年12月24日
TCP報文段的分段 和 IP數據報的分片
660閱讀·0評論·0點贊
2022年9月5日
計算機網路基礎 IP頭部報文;IP的分片;
1024閱讀·0評論·0點贊
2022年9月29日
TCP/IP詳解:用戶數據報協議(UDP)和IP分片
846閱讀·0評論·0點贊
2021年10月5日
計算機網路——IP數據報分片
5477閱讀·0評論·4點贊
2021年12月25日
TCP/IP協議中分包與重組原理介紹、分片偏移量的計算方法、IPv4報文格式
4603閱讀·12評論·17點贊
2022年8月7日
高清播放機,圖片大全,點擊查看詳情!
精選推薦
廣告
【計算機網路】網路層 : IP 數據報分片 ( 數據分片機制 | 分片示例 | 三種數據長度單位 )
1.0W閱讀·2評論·14點贊
2020年8月27日
計算機網路-IP數據報計算(IP數據報分片)一個數據報部分長度為3400位元組(使用固定首部)。現在經過一個網路傳輸,該網路的MTU為800位元組:
3.1W閱讀·20評論·67點贊
2020年6月9日
IP數據報格式及分片與重組
4141閱讀·0評論·7點贊
2021年10月27日
計算機網路IP分片過程與習題碰好題解
2460閱讀·0評論·9點贊
2020年11月5日
計算機網路(二十六)-IP數據報
『貳』 計算機網路方面的計算機題,請幫忙回答,關於數據報的
題意不是很清楚.從「數據報」這一名詞,我推測你說的是IP層。
顯然,IP層的固定首部為20個位元組:
所以要發送的信息數據長度為:5000-20=4800(位元組)
分片為:4800/1600=3(^_^,太巧合了);
所以各數據片的數據長度為:1600位元組;
下面說說片偏移
首先你要明白片偏移是以8個位元組為單位的。
所以第一片的片偏移為:0;
第二片為:1600/8=200;
第三片為:1600/8+200=400;
最後說說MF標志:
MF全稱為more fragment,意思為還有分片嗎?
顯然有三個分片,所以MF分別為:
1,1,0。
最後給你補一點小知識:
IP首部還有一個叫DF的欄位,該欄位全稱為:don't fragment,意思是不能分片。如果該欄位為一,數據報就不會分片,如果出現題目超最大長度的現象,則返回的是ICMP差錯報告報文;顯然此題中數據報DF欄位為0,才能出現以上我討論的情況。
^_^,給分我吧。
『叄』 求解兩道計算機網路技術題,可追加懸賞,謝謝!
我有點緊張啊,答錯了怕要挨網友的罵,另外哥們兒,你在讀大學嗎?這是老師留的作業嗎?
第一題:(1)、允許配置的最小IP是192.168.4.2(注意,不能是192.168.4.1,別跟路由器R2下面那個介面的IP重了,那個IP待會兒要設成網關的,網關和主機IP不能重復);
最大IP是192.168.4.254(主機號不能全0全1這點應該知道吧,第二問也給提示了);
子網掩碼明顯是255.255.255.0,要接入的網路是192.168.4.0/24嘛,後面這個24就是24位網路前綴,也就是子網掩碼中前24位全是1;
默認網關就是192.168.4.1。
(2)、分析:原來H2所在網路是192.168.5.0/24,說明後8位是主機號,要分成兩個一樣大的子網,要求子網規模盡可能大,所謂「子網規模盡可能大」,意思就是子網號所佔位數盡可能少,剩下更多位數給主機號,所以按理說從主機號中拿出前1位來做子網號就可以了,一個0一個1正好倆子網,但人家又說不允許全0全1的子網號,所以拿1位不夠,要拿前2位出來,那就四種子網號,00,01,10,11,而00和11不能用,所以兩個子網號分別是01和10。
子網掩碼是255.255.255.192(前三個255對應24位網路前綴,後面的192對應2位子網號)
那麼子網A的子網地址就是192.168.5.64/26,它的廣播地址(也就是主機號全1)是192.168.5.127;
子網B的子網地址就是192.168.5.128/26,它的廣播地址是192.168.5.191;
它倆允許接入的主機數目都是2^6-2=62(減的這個2是主機號全0和全1的那倆)
第二題:數據報總長980B,首部說固定長度,那就按20B來算,所以數據報的組成是960B的數據+20B的首部。
(1)、顯然要分成兩個數據分片,第一個數據欄位長度是640B(最大長度660B-20B的首部),它的片偏移是0,MF=1(MF=1代表後面還有分片,MF=0代表後面沒有分片了),第二個數據欄位長度是320B(總共960B減去第一個分片的640B),它的片偏移是80(片偏移以8B為單位,這點一定要牢記,640B/8B=80),MF=0。
(2)、不會報錯,ICMP對第一個分片後續的所有分片都不發送差錯報告報文,ICMP發送的差錯報告只有這五種類型:1、終點不可達;2、源點抑制,也就是擁塞;3、時間超過,也就是TTL減到0了;4、參數問題,比如DF=1並且分組長度還超過了MTU;5、改變路由,也就是找到更短路徑了;ICMP記住一句話:只要出這五類錯就丟棄並返回報告報文。
『肆』 計算機網路(四)網路層
主要任務是把分組從源端傳到目的端,為分組交換網上的不同主機提供通信服務。網路層傳輸單位是數據報。
鏈路層數據幀可封裝數據的上限稱為最大傳送單元MTU
標識:同一數據報的分片使用同一標識。
中間位DF(Don』t Fragment):
最低位MF(More Fragment):
片偏移:指出較長分組分片後,某片在原分組中的相對位置。以8B為單位。除了最後一個分片,每個分片長度一定是8B的整數倍。
IP地址:全世界唯一的32位/4位元組標識符,標識路由器主機的介面。IP地址::={<網路號>,<主機號>}
有一些IP地址是不能用的,有其特殊的作用,如:
網路地址轉換NAT(Network Address Translation):在專用網連接到網際網路的路由器上安裝NAT軟體,安裝了NAT軟體的路由器叫NAT路由器,它至少有一個有效的外部全球IP地址。
此外,為了網路安全,劃分出了部分IP地址和私有IP地址,私有IP地址網段如下:
路由器對目的地址是私有IP地址的數據報一律不進行轉發。
分類的IP地址的弱點:
某單位劃分子網後,對外仍表現為一個網路,即本單位外的網路看不見本單位內子網的劃分。
路由器轉發分組的演算法:
無分類域間路由選擇CIDR:
CIDR記法:IP地址後加上「/」,然後寫上網路前綴(可以任意長度)的位數。e.g. 128.14.32.0/20
CIDR把網路前綴都相同的連續的IP地址組成一個「CIDR地址塊」。
使用CIDR時,查找路由表可能得到幾個匹配結果(跟網路掩碼按位相與),應選擇具有最長網路前綴的路由。前綴越長,地址塊越小,路由越具體。
將多個子網聚合成一個較大的子網,叫做構成超網,或路由聚合。方法:將網路前綴縮短(所有網路地址取交集)。
由於在實際網路的鏈路上傳送數據幀時,最終必須使用MAC地址。
ARP協議:完成主機或路由器IP地址到MAC地址的映射。
ARP協議使用過程:
ARP協議4種典型情況:
動態主機配置協議DHCP是 應用層 協議,使用 客戶/伺服器 方式,客戶端和服務端通過 廣播 方式進行交互,基於 UDP 。
DHCP提供即插即用聯網的機制,主機可以從伺服器動態獲取IP地址、子網掩碼、默認網關、DNS伺服器名稱與IP地址,允許地址重用,支持移動用戶加入網路,支持在用地址續租。
DHCP工作流程如下:
ICMP協議支持主機或路由器:包括差錯(或異常)報告和網路探詢,分部發送特定ICMP報文
ICMP差錯報告報文(5種):
不應發送ICMP差錯報文的情況:
ICMP詢問報文:
ICMP的應用:
32位IPv4地址空間已分配殆盡,這時,可以採用更大地址空間的新版本的IPv6,從根本上解決地址耗盡問題
IPv6數據報格式如下圖
IPv6的主要特點如下:
IPv6地址表示形式:
零壓縮:一連串連續的0可以被一對冒號取代。雙冒號表示法在一個地址中僅可出現一次。
IPv6基本地址類型:
IPv6向IPv4過渡的策略:
R1的路由表/轉發表如下:
最佳路由:「最佳」只能是相對於某一種特定要求下得出的較為合理的選擇而已。
路由演算法可分為
由於網際網路規模很大且許多單位不想讓外界知道自己的路由選擇協議,但還想連入網際網路,可以採用自治系統來解決
自治系統AS:在單一的技術管理下的一組路由器,而這些路由器使用一種AS內部的路由選擇協議和共同的度量以確定分組在該AS內的路由,同時還使用一種AS之間的路由協議以確定在AS之間的路由。
一個AS內的所有網路都屬於一個行政單位來管轄,一個自治系統的所有路由器在本自治系統內都必須連通。
路由選擇協議
RIP是一種分布式的基於距離向量的路由選擇協議,是網際網路的協議標准,最大優點是簡單。
RIP協議要求網路中每一個路由器都維護從它自己到其他每一個目的網路的唯一最佳距離 [1] 記錄(即一組距離)。 RIP協議只適用於小互聯網。
RIP是應用層協議,使用 UDP 傳送數據。一個RIP報文最多可包括25個路由,如超過,必須再用一個RIP報文傳送。
RIP協議的交換
路由器剛開始工作時,只知道直接連接的網路的距離(距離為1),接著每一個路由器也只和數目非常有限的相鄰路由器交換並更新路由信息。
經過若干次更新後,所有路由器最終都會知道到達本自治系統任何一個網路的最短距離和下一跳路由器的地址,即「收斂」。
RIP的特點:當網路出現故障時,要經過比較長的時間(例如數分鍾) 才能將此信息傳送到所有的路由器,「慢收斂」。
對地址為X的相鄰路由器發來的RIP報文,修改此報文中的所有項目:把「下一跳」欄位中的地址改為X,並把所有的「距離」欄位+1。
開放最短路徑優先OSPF協議:「開放」標明OSPF協議不是受某一家廠商控制,而是公開發表的;「最短路徑優先」是因為使用了Dijkstra提出的最短路徑演算法SPF。OSPF最主要的特徵就是使用分布式的鏈路狀態協議。 OSPF直接用IP數據報傳送。
OSPF的特點:
為了使OSPF 能夠用於規模很大的網路,OSPF 將一個自治系統再劃分為若干個更小的范圍,叫做區域。每一個區域都有一個32 位的區域標識符(用點分十進製表示)。區域也不能太大,在一個區域內的路由器最好不超過200 個。
BGP 所交換的網路可達性的信息就是要到達某個網路所要經過的一系列AS。當BGP 發言人互相交換了網路可達性的信息後,各BGP 發言人就根據所採用的策略從收到的路由信息中找出到達各AS 的較好路由。
一個BGP 發言人與其他自治系統中的BGP 發言人要交換路由信息,就要先建立TCP 連接,即通過TCP傳送,然後在此連接上交換BGP 報文以建立BGP 會話(session),利用BGP 會話交換路由信息。 BGP是應用層協議,藉助TCP傳送。
BGP協議特點:
BGP-4的四種報文
組播提高了數據傳送效率。減少了主幹網出現擁塞的可能性。組播組中的主機可以是在同一個物理網路,也可以來自不同的物理網路(如果有組播路由器的支持)。
IP組播地址讓源設備能夠將分組發送給一組設備。屬於多播組的設備將被分配一個組播組IP地址(一群共同需求主機的相同標識)。
組播地址范圍為224.0.0.0~239.255.255.255(D類地址),一個D類地址表示一個組播組。只能用作分組的目標地址。源地址總是為單播地址。
同單播地址一樣,組播IP地址也需要相應的組播MAC地址在本地網路中實際傳送幀。組播MAC地址以十六進制值01-00-5E打頭,餘下的6個十六進制位是根據IP組播組地址的最後23位轉換得到的。
TCP/IP 協議使用的乙太網多播地址的范圍是:從01-00-5E-00-00-00到01-00-5E-7F-FF-FF .
收到多播數據報的主機,還要在IP 層利用軟體進行過濾,把不是本主機要接收的數據報丟棄。
ICMP和IGMP都使用IP數據報傳遞報文。組播路由器知道的成員關系只是所連接的區域網中有無組播組的成員。
IGMP工作的兩個階段:
只要有一個主機對某個組響應,那麼組播路由器就認為這個組是活躍的;如果經過幾次探詢後沒有一個主機響應,組播路由器就認為本網路上的沒有此組播組的主機,因此就不再把這組的成員關系發給其他的組播路由器。
組播路由協議目的是找出以源主機為根節點的組播轉發樹。構造樹可以避免在路由器之間兜圈子。對不同的多播組對應於不同的多播轉發樹;同一個多播組,對不同的源點也會有不同的多播轉發樹。
組播路由選擇協議常使用的三種演算法:
移動IP技術是移動結點(計算機/伺服器等)以 固定的網路IP地址 ,實現跨越不同網段的 漫遊 功能,並保證了基於網路IP的網路許可權在漫遊過程中不發生任何改變。
路由器是一種具有多個輸入埠和多個輸出埠的專用計算機,其任務是轉發分組。
若路由器處理分組的速率趕不上分組進入隊列的速率,則隊列的存儲空間最終必定減少到零,這就使後面再進入隊列的分組由於沒有存儲空間而只能被丟棄。 路由器中的輸入或輸出隊列產生溢出是造成分組丟失的重要原因。
路由器(網路層)可以互聯兩個不同網路層協議的網段。
網橋(鏈路層)可以互聯兩個物理層和鏈路層不同的網段。
集線器(物理層)不能互聯兩個物理層不同的網段。
路由表根據路由選擇演算法得出的,主要用途是路由選擇,總用軟體來實現。
轉發表由路由表得來,可以用軟體實現,也可以用特殊的硬體來實現。轉發表必須包含完成轉發功能所必需的信息,在轉發表的每一行必須包含從要到達的目的網路到輸出埠和某些MAC地址信息的映射。
『伍』 計算機網路:網路層(2)
如圖,一個IP數據報由首部和數據兩部分組成。首部的前一部分是固定長度,共20位元組,是所有IP數據報必須具有的。在首部的固定部分的後面是一些可選欄位,其長度是可變的。
(1)版本
佔4位,指IP協議的版本。通信雙方使用的IP協議的版本必須一致。目前廣泛使用的IP協議版本號為4(即IPv4)。也有使用IPv6的(即版本6的IP協議)。
(2)首部長度
佔4位,可表示的最大十進制數值是15。 這個欄位所表示數的單位是32位字(1個32位字長是4位元組),因此,當I的首部長度為1111時(即十進制的15),首部長度就達到最大值60位元組。當分組的首部長度不是4位元組的整數倍時,必須利用最後的填充欄位加以填充。 因此數據部分永遠在4位元組的整數倍時開始,這樣在實現IP協議時較為方便。首部長度限制為60位元組的缺點是有時可能不夠用。但這樣做是希望用戶盡量減少開銷。最常用的首部長度就是20位元組(即首部長度為0101),這時不使用任何選項。
(3)區分服務
佔8位,用來獲得更好的服務。這個欄位在舊標准中叫做服務類型,但實際上一直沒有被使用過。1998年ITF把這個欄位改名為區分服務DS( Differentiated Services。只有在使用區分服務時,這個欄位才起作用。在一般的情況下都不使用這個欄位。
(4)總長度
總長度指首部和數據之和的長度,單位為位元組。總長度欄位為16位,因此數據報的最大長度為216-1=65535位元組。
在IP層下面的每一種數據鏈路層都有其自己的幀格式,其中包括幀格式中的數據欄位的最大長度,這稱為最大傳送單元MTU( Maximum Transfer Unit)。當一個IP數據報封裝成鏈路層的幀時,此數據報的總長度(即首部加上數據部分)一定不能超過下面的數據鏈路層的MTU值。雖然使用盡可能長的數據報會使傳輸效率提高,但由於乙太網的普遍應用,所以實際上使用的數據報長度 很少有超過1500位元組 的。為了不使IP數據報的傳輸效率降低,有關IP的標准文檔規定,所有的主機和路由器必須能夠處理的IP數據報長度不得小於576位元組。這個數值也就是最小的IP數據報的總長度。當數據報長度超過網路所容許的最大傳送單元MTU時,就必須把過長的數據報進行分片後才能在網路上傳送。這時,數據報首部中的「總長度」欄位不是指未分片前的數據報長度,而是指分片後的每一個分片的首部長度與數據長度的總和。
(5)標識 (identification)
佔16位。軟體在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值賦給標識欄位。但這個「標識」並不是序號,因為IP是無連接服務,數據報不存在按序接收的問題。當數據報由於長度超過網路的MTU而必須分片時,這個標識欄位的值就被復制到所有的數據報片的標識欄位中。相同的標識欄位的值使分片後的各數據報片最後能正確地重裝成為原來的數據報。
(6)標志(flag)
佔3位,但目前只有兩位有意義。
標志欄位中的最低位記為 MF ( More Fragment)。MF=1即表示後面「還有分片」的數據報。MF=0表示這已是若千數據報片中的最後一個。
標志欄位中間的一位記為 DF (Dont Fragment),意思是「不能分片」。只有當DF=0時才允許分片。
(7)片偏移
佔13位。片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。也就是說,相對於用戶數據欄位的起點,該片從何處開始。片偏移以8個位元組為偏移單位。這就是說,每個分片的長度一定是8位元組(64位)的整數倍。
(8)生存時間
佔8位,生存時間欄位常用的英文縮寫是TTL( Time To live),表明是數據報在網路中的壽命。由發出數據報的源點設置這個欄位。其目的是防止無法交付的數據報無限制地在網際網路中兜圈子(例如從路由器R1轉發到R2,再轉發到R3,然後又轉發到R1),因而白白消耗網路資源。最初的設計是以秒作為TTL值的單位。每經過一個路由器時,就把TTL減去數據報在路由器所消耗掉的一段時間。若數據報在路由器消耗的時間小於1秒,就把TTL值減1。當TTL值減為零時,就丟棄這個數據報然而隨著技術的進步,路由器處理數據報所需的時間不斷在縮短,一般都遠遠小於1秒鍾,後來就把TTL欄位的功能改為「跳數限制」(但名稱不變)。路由器在轉發數據報之前就把TTL值減1。若TTL值減小到零,就丟棄這個數據報,不再轉發。因此,現在TTL的單位不再是秒,而是跳數。 TTL的意義是指明數據報在網際網路中至多可經過多少個路由器 。顯然,數據報能在網際網路中經過的路由器的最大數值是255。若把TTL的初始值設置為1,就表示這個數據報只能在本區域網中傳送。因為這個數據報一傳送到區域網上的某個路由器,在被轉發之前TTL值就減小到零,因而就會被這個路由器丟棄。
(9)協議
佔8位,協議欄位指出此數據報攜帶的數據是使用何種協議,以便使目的主機的IP層知道應將數據部分上交給哪個處理過程。
過程大致如下:
(1)從數據報的首部提取目的主機的IP地址D,得出目的網路地址為N。
(2)若N就是與此路由器直接相連的某個網路地址,則進行直接交付,不需要再經過其他的路由器,直接把數據報交付給目的主機(這里包括把目的主機地址D轉換為具體的硬體地址,把數據報封裝為MAC幀,再發送此幀);否則就是間接交付,執行(3)。
(3)若路由表中有目的地址為D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(4)。
(4)若路由表中有到達網路N的路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(5)
(5)若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行(6)。
(6)報告轉發分組出錯。
在進行更詳細的轉發解釋之前,先要了解一下子網掩碼:
上一篇說到了二級IP地址,也就是IP地址由網路號和主機號組成。
二級IP地址有以下缺點:
第一,IP地址空間的利用率有時很低每一個A類地址網路可連接的主機數超過1000萬,而每一個B類地址網路可連接的主機數也超過6萬。然而有些網路對連接在網路上的計算機數目有限制,根本達不到這樣大的數值。例如10 BASE-T乙太網規定其最大結點數只有1024個。這樣的乙太網若使用一個B類地址就浪費6萬多個IP地址,地址空間的利用率還不到2%,而其他單位的主機無法使用這些被浪費的地址。有的單位申請到了一個B類地址網路,但所連接的主機數並不多,可是又不願意申請一個足夠使用的C類地址,理由是考慮到今後可能的發展。IP地址的浪費,還會使IP地址空間的資源過早地被用完。
第二,給每一個物理網路分配一個網路號會使路由表變得太大因而使網路性能變壞。
每一個路由器都應當能夠從路由表査出應怎樣到達其他網路的下一跳路由器。因此,互聯網中的網路數越多,路由器的路由表的項目數也就越多。這樣,即使我們擁有足夠多的IP地址資源可以給每一個物理網路分配一個網路號,也會導致路由器中的路由表中的項目數過多。這不僅增加了路由器的成本(需要更多的存儲空間),而且使查找路由時耗費更多的時間,同時也使路由器之間定期交換的路由信息急劇增加,因而使路由器和整個網際網路的性能都下降了。
第三,兩級IP地址不夠靈活。
有時情況緊急,一個單位需要在新的地點馬上開通一個新的網路。但是在申請到一個新的IP地址之前,新增加的網路是不可能連接到網際網路上工作的。我們希望有一種方法,使一個單位能隨時靈活地增加本單位的網路,而不必事先到網際網路管理機構去申請新的網路號。原來的兩級IP地址無法做到這一點。
於是為解決上述問題,從1985年起在IP地址中又增加了一個「子網號欄位」,使兩級IP地址變成為三級IP地址,它能夠較好地解決上述問題,並且使用起來也很靈活。這種做法叫作劃分子網 (subnetting),或子網定址或子網路由選擇。劃分子網已成為網際網路的正式標准協議。
劃分子網的基本思路如下:
(1)一個擁有許多物理網路的單位,可將所屬的物理網路劃分為若干個子網 subnet)。劃分子網純屬一個單位內部的事情。本單位以外的網路看不見這個網路是由多少個子網組成,因為這個單位對外仍然表現為一個網路。
(2)劃分子網的方法是從網路的主機號借用若干位作為子網號 subnet-id,當然主機號也就相應減少了同樣的位數。於是兩級IP地址在本單位內部就變為三級IP地址:網路號、子網號和主機號。也可以用以下記法來表示:
IP地址:=(<網路號>,<子網號>,<主機號>}
(3)凡是從其他網路發送給本單位某個主機的IP數據報,仍然是根據IP數據報的目的網路號找到連接在本單位網路上的路由器。但此路由器在收到IP數據報後,再按目的網路號和子網號找到目的子網,把IP數據報交付給目的主機。
簡單來說就是原來的IP地址總長度不變,把原來由「網路號+主機號」組成的IP地址,變為了「網路號+子網號+主機號」,因為其他網路找當前網路的主機時,使用的還是網路號,所以外面的網看不見當前網路的子網。當本網的路由器在收到IP數據報後,按目的網路號和子網號找到目的子網,把IP數據報交付給目的主機。
現在剩下的問題就是:假定有一個數據報(其目的地址是145.133.10)已經到達了路由器R1。那麼這個路由器如何把它轉發到子網145.3.3.0呢?
我們知道,從IP數據報的首部並不知道源主機或目的主機所連接的網路是否進行了子網的劃分。這是因為32位的IP地址本身以及數據報的首部都沒有包含任何有關子網劃分的信息。因此必須另外想辦法,這就是使用子網掩碼( (subnet mask)。
子網掩碼,簡單來說就是把除了主機號設置為0,其他位置的數字都設置為1。
以B類地址為例:
把三級IP地址的網路號與子網號連起來,與子網掩碼做「與」運算,就得到了子網的網路地址。
在網際網路的標准規定:所有的網路都必須使用子網掩碼,同時在路由器的路由表中也必須有子網掩碼這一欄。如果一個網路不劃分子網,那麼該網路的子網掩碼就使用默認子網掩碼。
那麼既然沒有子網,為什麼還要使用子網掩碼?
這就是為了更便於査找路由表。
默認子網掩碼中1的位置和IP地址中的網路號欄位 net-id正好相對應。因此,若用默認子網掩碼和某個不劃分子網的IP地址逐位相「與」(AND),就應當能夠得出該IP地址的網路地址來。這樣做可以不用查找該地址的類別位就能知道這是哪一類的IP地址。顯然,
子網掩碼是一個網路或一個子網的重要屬性。在RFC950成為網際網路的正式標准後,路由器在和相鄰路由器交換路由信息時,必須把自己所在網路(或子網)的子網掩碼告訴相鄰路由器。在路由器的路由表中的每一個項目,除了要給出目的網路地址外,還必須同時給出該網路的子網掩碼。若一個路由器連接在兩個子網上就擁有兩個網路地址和兩個子網掩碼。
以一個B類地址為例,說明可以有多少種子網劃分的方法。在採用固定長度子網時,所劃分的所有子網的子網掩碼都是相同的。
表中的「子網號的位數」中沒有0,1,15和16這四種情況,因為這沒有意義。雖然根據已成為網際網路標准協議的RFC950文檔,子網號不能為全1或全0,但隨著無分類域間路由選擇CIDR的廣泛使用,現在全1和全0的子網號也可以使用了,但一定要謹慎使用,要弄清你的路由器所用的路由選擇軟體是否支持全0或全1的子網號。這種較新的用法我們可以看出,若使用較少位數的子網號,則每一個子網上可連接的主機數就較多。
反之,若使用較多位數的子網號,則子網的數目較多但每個子網上可連接的主機數就較少因此我們可根據網路的具體情況(一共需要劃分多少個子網,每個子網中最多有多少個主機)來選擇合適的子網掩碼。
所以,劃分子網增加了靈活性,但卻減少了能夠連接在網路上的主機總數。
在劃分子網的情況下,分組轉發的演算法必須做相應的改動。
使用子網劃分後,路由表必須包含以下三項內容:目的網路地址、子網掩碼和下一跳地址。
所以之前的流程變成了下面這樣:
(1)從收到的數據報的首部提取目的IP地址D。
(2)先判斷是否為直接交付。對路由器直接相連的網路逐個進行檢查:用各網路的子網掩碼和D逐位相「與」(AND操作),看結果是否和相應的網路地址匹配。若匹配,則把分組進行直接交付(當然還需要把D轉換成物理地址,把數據報封裝成幀發送出去),轉發任務結束。否則就是間接交付,執行(3)。
(3)若路由表中有目的地址為D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(4)。
(4)對路由表中的每一行(目的網路地址,子網掩碼,下一跳地址),用其中的子網掩碼和D逐位相「與」(AND操作),其結果為N。若N與該行的目的網路地址匹配,則把數據報傳送給該行指明的下一跳路由器;否則,執行(5)。
5)若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行(6)
(6)報告轉發分組出錯。
『陸』 2-ipv6基礎知識之-數據包
IPv4 包頭由固敏沖搏定20位元組的包頭與可變長的選項組成:
版本(Version)域, 長度4比特。標識目前採用的IP協議的版本號。一般的值為0100(IPv4),0110(IPv6)
IHL用4位來表示。
由於頭部的長度是不固定的,所以頭部的IHL域指明了該頭部有多長(以32位字的長度為單位)。
IHL的最小長度為5,這個時候表明沒有可選項(Option),此4位域的最大值也就是15,也就是說頭部的最大長度為15*(32/8) = 60位元組,因此可選項(Option) = 60 - 20 = 40位元組,可選項的內容最大為40位元組。對於某些選項,比如記錄一個分組沿途路徑的選項,40位元組往往太小了,這就使得這樣的選項其實橋祥沒有什麼用處。
服務類型(Type of Service)域, 長度8比特。
8位按位被如下定義 PPP DTRC0
PPP:定義包的優先順序,取值越大數據越重要
DTRCO
總長度(Total Length)域, 以位元組為單位計算的IP包的長度 (包括頭部和數據),所以IP包最大長度65535位元組。
標識(Identification)域, 該欄位和Flags和Fragment Offest欄位聯合使用,對較大的上層數據包進行分段(fragment)操作。路由器將一個包拆分後,所有拆分開的小包被標記相同的值,以便目的端設備能夠區分哪個包屬於被拆分開的包的一部分。是讓目標主機確定一個新到來的分段是屬於哪一個數據報的。同一個數據報的的所有分段都有相同的Identification值。
接下來是未使用的位。然後是兩個1位域。
DF代表不分段(Don't Fragment),這是針對路由器的一個命令,它讓路由器不要分割該數據報,因為目標主機可能無法將分片重新組合回原來的數據報。例如,當一台計算機啟動的時候,它的ROM可能向網路請求一個包含內存映像的一個數據報。在數據報中標記了DF位之後,它就知道該數據將作為一個整體到達接收方,不過這意味著該數據報必須避開最優路徑的小分組網路,而不得不走次優的的路徑。所有的機器都要求能接受576位元組或者更少的分段(4.5k)。
MF代表更多的分段(More Fragment)。除了最後一個分段以外,其它所有的分段都必須設置這一位,它的用途是,接收方可以知道什麼時候一個數據報的所有分段已經到達了。
分段偏移(Fragment Offset)(13位域)域指明了該分段在當前數據報中的什麼位置上。除了一個數據報的最後一個分段以外,其他所有的分段必須是8位元組的倍數,這里的8位元組是基本的分段單位(64bit大小)。由於該域有13位,所以每個數據報最多可以有2^13 = 8192個分段,因此,最大的數據報長度為8192*8 = 65536位元組,比Taotal length域還要大1.
TTL(Time to live)域(8位域), 當IP包經過每一個沿途的路由器的時候,每個沿途的路由器會將IP包的TTL值減少1。如果TTL減少為0,則該IP包會被丟棄。這個欄位可以防止由於路由環路而導致IP包在網路中不停被轉發。
當網路層組裝完成一個完整的數據報之後,它需要知道該如何對它進行處理。協議(Protocol)域指明了該將它交給哪一個傳輸進程。TCP是一種可能,UDP或者其他協議也是一種可能。協議的編號是整合Internet全球統一的。
頭部校驗和(Header checksum)域只校驗頭部。這樣的校驗和對於檢測「因路由器中的壞內存而產生的錯誤」非常有用。因為每個路由器要改變TTL的值,所以路由器會為每個通過的數據包重新計算這個值。其演算法是這樣的:當數據到達時,所有的16位(半字)累加起來,然後再取結果的補碼。該演算法的判賣意圖是,當數據到達之後,Header checksum的計算結果應該為0.該演算法比常規演算法更加穩定。請注意,在每一跳上,Header checksum域必須重新計算,因為至少有一個域總是要改變的(即Time to live),但是通過一些技巧可以加速計算。
都用32為表示。要注意除非使用NAT,否則整個傳輸的過程中,這兩個地址不會改變
選項(Option)域的設計意圖是:主要用於測試; 允許後續版本的協議包含一些原來的設計中沒有出現的信息;允許實驗人員試驗新的想法;避免為那些不常使用的信息分配頭部域。選項是變長的,每一個選項的第一個位元組是一個標識碼,它標明了該選項。有的選項後面跟著1個位元組的選項長度域,然後是一個或多個數據位元組。Options域被補齊到4位元組的倍數。
IPv6 數據報包括一個主首部和0 或多個擴展首部。IPv6 包頭結構如下圖所示。
IPv6包頭長度固定為40位元組,去掉了IPv4中一切可選項,只包括8個必要的欄位,因此盡管IPv6地址長度為IPv4的四倍,IPv6包頭長度僅為IPv4包頭長度的兩倍。
4位,IP協議版本號,值 = 6。
8位,指示IPv6數據流通信類別或優先順序。功能類似於IPv4的服務類型(TOS/QOS)欄位。 (通往目標節點的過程中,這個欄位的值可能會被修改)
20位,IPv6新增欄位,標記需要IPv6路由器特殊處理的數據流,這個欄位是為了給實時數據報交付和QoS提供更多的支持。該欄位用於某些對連接的服務質量有特殊要求的通信,諸如音頻或視頻等實時數據傳輸。在IPv6中,同一信源和信宿之間可以有多種不同的數據流,彼此之間以非「0」流標記區分。如果不要求路由器做特殊處理,則該欄位值置為「0」。 flow label最初是28bit,逐漸修改至rfc2460的20bit。flow label通過偽隨機演算法生成,介於1至fffff之間。如果一組數據流具有相同的源地址、目的地址、hop-by-hop和routing,那麼這組數據流可能共享flow label。由此可見,IPv6結點可以僅通過flow label,不檢查其它屬性值,即可知道如何處理和轉發這組數據流。
16位負載長度。負載長度包括擴展頭和上層PDU,16位最多可表示65535位元組負載長度。超過這一位元組數的負載,該欄位值置為「0」,使用擴展頭逐個跳段(Hop-by-Hop)選項中的巨量負載(Jumbo Payload)選項。 總而言之,該欄位的值=報文總長度-40
8位,指明識別緊跟在IPv6頭後的包頭類型,如擴展頭(有的話)或某個傳輸層協議頭(諸如TCP,UDP或者ICMPv6)。
由下圖可以看出,因為可以有多個擴展頭,一個擴展頭中還有Next Header欄位,用於指明下一個擴展頭或者傳輸層的類型。(擴展可以有多個,但是上層數據只能有一個)
常見的Next Header值:
8位,類似於IPv4的TTL(生命期)欄位。與IPv4用時間來限定包的生命期不同,IPv6用包在路由器之間的轉發次數來限定包的生命期。包每經過一次轉發,該欄位減1,減到0時就把這個包丟棄。
S
128位(16位元組),發送方主機地址。
128位,在大多數情況下,目的地址即信宿地址。但如果存在路由擴展頭的話,目的地址可能是發送方路由表中下一個路由器介面。
參考文檔《深入解析IPv6》
『柒』 計算機網路MF欄位怎麼算
計算機網路(第7版)p129
(6)標志 佔3位,但目前只有2位有意義
標志欄位中的最低位記為MF。MF=1即表示後面「還有分片」的數據報。MF=0表示這已經是若干數據報片中的最後一個。
標志欄位中間的一位記為DF,意思是「不能分片」。只有當DF=0時才允許分片。
『捌』 tcp分片和ip分片的區別
我們在計算機網路上所看到的分片一般是指ip分片,ip分片是指在網路傳輸過程中若遇到鏈路MTU比自己報文小的情況則進行分片。
MTU是鏈路層中的網路對數據幀的一個限制,以乙太網為例,MTU為1500個位元組。一個IP數據報在乙太網中傳輸,如果它的長度大於該MTU值,就要進行分片傳輸,使得每片數據報的長度小於MTU。分片傳輸的IP數據報不一定按枯凳槐序到達,但IP首部粗納中的信息能讓這些數據報片按序組裝。IP數據報的分片與重組是在網路層進完成的。
佔16位。IP軟體在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值賦給標識欄位。但這個「標識」不是序號,因為IP是無連接服務,數據報不存在按序接收的問題。當數據報由於長度超過網路的MTU而必須分片時,這個標識欄位的值就被復制到所有的數據報片的標識欄位中。相同的標識欄位的值使分片後的各數據報片最後能正確地重裝成為原來的數據報。
標志(flags)佔用3位(即16 - 18),這三位分別是:R,DF,MF三位,第一位是保留位,沒有被使用,目前只有後兩個比特有意義。
R:標志欄位中的第一位是一個保留位,現在還沒有使用,可能將來會用到這位
D:標志欄位中間的一位是 DF (Don』t fragment),表示傳輸的數據不允許分片。一般DF = 1的話,表示數據一次性傳輸過去,不允許分片。
M:標志欄位的最低位是 MF (More fragment)。代表數據是否分片,如果MF位值為1,表示後面還有數據,還沒有傳輸完畢,相當於數據分片,分批次傳輸,如果MF = 0表示最後一個分片或者只有一個分片。
這三位同一時刻也是只能有一個位的值能設置為1
佔用13位:每次分片傳輸的數據之間的偏移距離,也就是某分片的數據在原數據中的相對位置,一般偏移以8位元組為單位。比如:在網路層傳輸的ip數據報總長度最大不能超過65535位元組,如果超過了,要麼對ip數據報進行分片傳輸,否則將丟棄。
互聯網協議使網路互相通信。設計要迎合不同物理性質的網路; 它是獨立於鏈路層使用的基礎傳輸技術。具有不同硬體的網路通常會發生變化,不僅在傳輸速度,而且在最大傳輸單元(MTU)。當一個網路要的數據報發送到具有較小MTU的一個網路,它可能片段的數據報。
當路由器收到一個數據包時,它會檢查目的地址,並確定出介面使用,並且該介面的MTU。如果分組的大小是比MTU大,並且在該分組的頭中的不分段(DF)位被設置為0,則路由器可對沒友其進行分片。
分片機制有一定的缺陷:分片越多,分片丟失的機率就越大,對於一個數據報,一旦一個分片丟失,那麼整個數據報就要重傳;每一個數據報都要復制報頭(只復制ip包頭),這在一定程度上增加了帶寬消耗。
組裝時,需要重新設置首部的某些欄位
修改分片標志和片偏移量欄位
首部其他欄位復制原來數據報首部的相應欄位。
在IP頭裡面有16bit的識別號唯一記錄了一個IP包的ID,以確定這幾個分片是否屬於同一個包,具有同一個ID的IP分片將會從新組裝。13bit的片偏移記錄了一個IP分片相對於整個包的位置。3bit的標志位記錄了該分片後面是否還有新的分片。這三個分片組成了IP分片的所有的信息。
1.如果在源主機的乙太網上進行數據包裝,且tcp/udp向ip傳送的數據包大於MTU1500位元組,將在ip層進行分片。
2.在數據在數據鏈路(路由器)中傳輸的時候,每個路由器的MTU不一定相同,如果其中一個MTU只為800,則會觸發ip分片,將1500位元組的數據包拆成兩個符合長度的數據包(但不一定會分片,由ip首部的兩個標志位MF:More Fragment 和DF:Don't Fragment決定)如果是DF被設置,將會觸發ICMP協議,將當前數據包丟棄,並把當前路由的MTU回傳給源主機。
MSS(Maximum Segment Size,最大報文長度)是TCP里的一個概念(首部的選項欄位中)。MSS是TCP數據包每次能夠傳輸的最大數據分段,TCP報文段的長度大於MSS時,要進行分段傳輸。TCP協議在建立連接的時候通常要協商雙方的MSS值,每一方都有用於通告它期望接收的MSS選項(MSS選項只出現在SYN報文段中,即TCP三次握手的前兩次)。MSS的值一般為MTU值減去兩個首部大小(需要減去IP數據包包頭的大小20Bytes和TCP數據段的包頭20Bytes)所以如果用鏈路層乙太網,MSS的值往往為1460。而Internet上標準的MTU(最小的MTU,鏈路層網路為x2.5時)為576,那麼如果不設置,則MSS的默認值就為536個位元組。很多時候,MSS的值最好取512的倍數。TCP報文段的分段與重組是在運輸層完成的。
TCP在建立連接時進行三次握手,前兩個握手包中雙方互相聲明自己的MSS,客戶端聲明MSS=8960,伺服器端聲明了MSS=1460。三次握手之後,客戶端的MTU值比伺服器端大,如果發送一個9000位元組的包過去可能被分片或丟棄。因此客戶端會把自己的MSS也降到1460位元組。
TCP分段的原因是MSS,IP分片的原因是MTU, 由於一直有MSS<=MTU,很明顯,分段後的每一段TCP報文段再加上IP首部後的長度不可能超過MTU,因此也就不需要在網路層進行IP分片了。 因此TCP報文段很少會發生IP分片的情況。
再來看UDP數據報, 由於UDP數據報不會自己進行分段,因此當長度超過了MTU時,會在網路層進行IP分片。 同樣,ICMP(在網路層中)同樣會出現IP分片情況。
TCP在三次握手建立連接過程中,會在SYN報文中使用MSS(Maximum Segment Size)選項功能,協商交互雙方能夠接收的最大段長MSS值。
MSS是傳輸層TCP協議范疇內的概念,顧名思義,其標識TCP能夠承載的最大的應用數據段長度,因此,MSS=MTU-20位元組TCP報頭-20位元組IP報頭,那麼在乙太網環境下,MSS值一般就是1500-20-20=1460位元組。
客戶端與伺服器端分別根據自己發包介面的MTU值計算出相應MSS值,並通過SYN報文告知對方。
IP分片產生的原因是網路層的MTU;TCP分段產生原因是MSS
IP分片由網路層完成,也在網路層進行重組;TCP分段是在傳輸層完成,並在傳輸層進行重組
對於乙太網,MSS為1460位元組,而MUT往往會大於MSS
故採用TCP協議進行數據傳輸,是不會造成IP分片的。若數據過大,只會在傳輸層進行數據分段,到了IP層就不用分片。而我們常提到的IP分片是由於UDP傳輸協議造成的,因為UDP傳輸協議並未限定傳輸數據報的大小。
TCP的分片和IP分片的區別
TCP的分片和IP分片的區別
MTU和MSS詳解
『玖』 計算機網路高手請進
我給你提個建議吧
你的問題,好像在大學教程,網路和通信技術的書上,我好像看到過,
不然你直接到新華書店去拍悔野找書看前行看
或者直接到網路中搜索網路和通信技術電子文檔
如襲喊果你能找到教網路和通信技術的大學老師的親戚,朋友,你就萬幸了
估計一般人是回答不了你的