❶ 計算機網路
有兩種含義
「帶寬」 指信號具有的頻帶寬度。基本單位是赫。
「帶寬」是數字信道所能傳送的最高數據率的同義語,單位是比特/秒(bit/s)。
表示在單位時間內通過某個網路(或信道、介面)的數據量。
吞吐量更經常地用於對現實世界中的網路的一種測量,以便知道實際上到底有多少數據量能夠通過網路。
吞吐量受網路的帶寬或網路的額定速率的限制。
指數據從網路(或鏈路)的一端傳送到另一端所需的時間。
主機或路由器發送數據幀所需要的時間。
電磁波在信道中需要傳播一定的距離而花費的時間。
結點緩存隊列中分組排隊所經歷的時延。
交換結點為存儲轉發而進行一些處理所費的時間。
信道利用率指出某信道有百分之幾的時間是被利用的(有數據通過)。完全空閑的信道的利用率是零。
網路利用率則是全網路的信道利用率的加權平均值。
物理層的主要任務描述為確定與傳輸媒體介面的四個特性。
指明介面所用接線器的形狀和尺寸、引線數目和排列等。
指明在介面電纜的各條線上出現的電壓的范圍。
指明某條線上出現的某一電平的電壓表示何種意義。
指明對於不同功能的各種可能事件的出現順序
發送器:將數據轉換成可以在傳輸介質上傳輸的信號
數據:運送消息的實體。
信號:數據的電氣的或電磁的表現。
模擬信號:代表消息的參數的取值是連續的。
數字信號:代表消息的參數的取值是離散的。
信道: 向某一個方向傳遞信息的通道。
單向通信(單工通信):只能有一個方向的通信
而沒有反方向的交互。
雙向交替通信(半雙工通信):通信的雙方都可
以發送信息,但不能雙方同時發送、同時接收。
雙向同時通信(全雙工通信):通信的雙方可以
同時發送和接收信息。
調制:使用載波進行調制, 把數字信號的頻率范
圍搬移到較高的頻段,並轉換成模擬信號,以便在模
擬信道中傳輸。
解調:把接收到的模擬信號還原成數字信號。
又稱為編碼,轉換後依然是基帶信號
利用載波低頻轉高頻,更好的在模擬信道上傳輸,調制完的信號叫做帶通信號
在任何信道中,碼元傳輸的速率是有上限的,超過此上限,就會出現嚴重的碼間串擾問題。
如果信道的頻帶越寬,則可以用更高的速率傳送碼元
而不出現碼間串擾。
帶寬受限且有高斯白雜訊干擾的信道的極限信息傳輸速率
W 是信道的帶寬(以 Hz 為單位);
S 為信道內所傳信號的平均功率; N 為信道內部的雜訊功率。
信噪比S/N通常用分貝(dB)來表示:
通過編碼,可以增加每一個碼元攜帶的信息量
將信道的可用頻帶分割成若干條較窄的子頻帶,每一條子頻帶傳輸一路信號。
用戶在分配到一定的頻帶後,在通信過程中自始至終都佔用這個頻帶。
光的頻分復用:波分復用
將時間劃分為一段段等長的時隙,每一個用戶佔用固定序號的時隙傳輸數據。
每一個用戶所佔用的時隙是周期性地出現。
時分復用的所有用戶在不同的時間佔用同樣的頻帶寬度
先進行統計,然後依次將需要發送的數據進行時分復用,但是因為每一個時間是不確定的,所以需要在數據幀上加上地址信息
每個用戶被分配一個碼片序列,這些碼片序列是互相正交的,
當需要發送1的時候,則發送序列
當需要發送0的時候,則發送序列反碼
所以用戶的序列和其他用戶的序列內積是0
而序列和序列的規格化內積是1,序列與序列的反碼的規格化內積為-1
在原始的、有差錯的物理傳輸線路的基礎上,採取 差錯檢測、差錯控制與流量控制 等方法,將有差錯的物理線路改進成邏輯上無差錯的數據鏈路,向網路層提供高質量的服務。
是從一個結點到相鄰結點的一段物理線路,中間沒有任何其他的交換結點。
把實現通信協議的硬體和軟體加到鏈路上,就構成了數據鏈路,也稱為邏輯鏈路。
每個幀有最大長度限制
通過添加字元防止誤判
在發送端:
數據分成組,每一組k個bit,然後在後面加上n位冗餘碼
接收端:
將這段數據除以P,看最後的余數
因為標志欄位的0x7E用二進制標志為01111110,即中間是6個0,為了避免產生錯誤,所以採用 零比特填充 的方式,即發送方每遇到5個1則填充一個0,接收方每遇到5個1刪除後面的一個0
信道並非在用戶通信時固定分配給用戶。
DIX Ethernet V2 是世界上第一個區域網產品(乙太網)的規約,定義了以無源的電纜為匯流排的基帶匯流排區域網。
IEEE 的 802.3 標准。
載波監聽多點接入/碰撞監測
當發送數據的站一旦發現發生了碰撞
最先發送數據幀的站,在發送數據幀後至多經過時間(2τ)就可知道發送的數據幀是否遭受了碰撞。 乙太網的端到端往返時延 2τ 稱為爭用期,或碰撞窗口。經過爭用期這段時間還沒有檢測到碰撞,才能肯定這次發送不會發生碰撞。
發生碰撞的站在停止發送數據後,要推遲(退避)一個隨機時間才能再發送數據。
作用:
爭用期的長度: 51.2 µs
最短有效幀長: 64 位元組
幀間最小間隔: 9.6 µs
每一類地址都由 兩個固定長度 的欄位組成, 其中一個欄位是 網路號 net-id , 它標志主機(或路由器) 所連接到的網路, 而另一個欄位則是 主機號 host-id , 它標志該主機(或路由器) 。
用轉發器或網橋連接起來的若干個區域網仍為一個網路, 因此這些區域網都具有同樣的網路號 net-id。
A:網路數減2原因: 網路號全0表示本網路 127(01111111)表示本地軟體環回測試地址
B、C:網路數減1原因:128.0.0.0和192.0.0.0都是不指派的
主機數減2原因:全0和全1都不指派
路由表需要配置,或者根據演算法生成
下一跳指的是下一個路由器的地址
特定主機路由 :為特定的目的主機指明一個路由。
默認路由:沒有特定設置則採用默認路由
作用: 從網路層使用的 IP 地址,解析出在數據鏈路層使用的硬體地址。
每一個主機都設有一個 ARP 高速緩存 ,保存著所在的區域網上的各主機和路由器的 IP 地址到硬體地
址的映射表。ARP把保存在高速緩存中的每一個映射地址項目都設置生存時間,凡超過生存時間的項目就從高速緩存中刪除掉。
ARP的工作過程
當主機A欲向本區域網上的某個主機B發送 IP數據報時,就先在其ARP高速緩存中查看有無主機B的IP 地址。
如果是不同網路之間的情況,就需要通過路由器來解決
例如:H1訪問H3
一個 IP 數據報由首部和數據兩部分組成。
首部分為固定部分和可變部分,固定部分長度為20個位元組,可變部分長度是可變的。
版本ip協議版本:ipv4和ipv6
首部長度:占 4 位,可表示的最大數值是 15 (2 4 -1)個單位(一個單位為 4 位元組)。因此 IP 的首部長度的最大值是 60 位元組(15*4)。
區分服務:占 8 位,只有在使用區分服務(DiffServ)時,這個欄位才起作用。在一般的情況下都不使用這個欄位。
總長度:占 16 位,指首部和數據之和的長度,單位為位元組,因此數據報的最大長度為 65535 位元組。
進行數據報的分片的原因
標識:占 16 位,它是一個計數器,用來產生 IP 數據報的標識。
標志(flag):占 3 位,目前只有前兩位有意義。
片偏移:佔13 位,指出:較長的分組在分片後某片在原分組中的相對位置。片偏移以 8 個位元組為偏移單位 。
生存時間——佔8 位,記為 TTL (Time To Live),表明數據報在網路中的壽命。表示為數據報在網路中 可通過的路由器數的最大值 。
協議:佔8 位,指出此數據報攜帶的數據使用何種協議,以便目的主機的 IP 層將數據部分上交給哪個處理過程。
首部檢驗和:佔16 位,只檢驗數據報的首部,不檢驗數據部分
❷ IP數據報設置的生存時間TTL只有255跳,網際網路上的路由不只這些吧!
ping命令詳細幫助 校驗與遠程計算機或本地計算機的連接。只有在安裝 TCP/IP 協議之後才能旦蔽使用該命令。 ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 參數 -t 校驗與指定計算機的連接,直到用戶中斷。 -a 將地址解析為計算機名。 -n count 發送由 count 指定數量的 ECHO 報文,默認值為 4。 -l length 發送包含由 length 指定數據長度的 ECHO 報文。默認值為 64 位元組,最大值為 8192 位元組。 -f 在包中發送「不分段」標志。該包將不被路由上的網關分段。 -i ttl 將「生存時間」欄位設置為 ttl 指定的數值。 -v tos 將「服務類型」欄位設置為 tos 指定的數值。 -r count 在「記錄路由」欄位中記錄發出報文和返回報文的路由。指定的 Count 值最小可以是 1,最大可以是 9 。 -s count 指定由 count 指定的轉發次數的時間郵票。 -j computer-list 經過由 computer-list 指定的計算機列表的路由報文。中間網關可能分隔連續的計算機(鬆散的源路由)。允許的最大 IP 地址數目是 9 。 -k computer-list 經過由 computer-list 指定的計算機列表的路由報模並州文。中間網關可能分隔連續的計算機(嚴格源路由)。允許的最大 IP 地址數目是 9 。 -w timeout 以毫秒為單位指定超時間隔。 destination-list 指定要校驗連接的遠程計算機。 關於 Ping 的詳細信息 Ping--注意 Ping 命令通過向計算機發送 ICMP 回應報文並且監聽回應報文的返回,以校驗與遠程計算機或本地計算機的連接。對於每個發送報文, Ping 最多等待 1 秒,並列印發送和接收把報文的數量。比較每個接收報文和發送報文,以校驗其有效性。默認情況下,發送四個回應報文,每個報文包含 64 位元組的數據(周期性的大寫字母序列)。 可以使用 Ping 實用程序測試計算機名和 IP 地址。如果能夠成功校驗 IP 地址卻不能成蔽純功校驗計算機名,則說明名稱解析存在問題。這種情況下,要保證在本地 HOSTS 文件中或 DNS 資料庫中存在要查詢的計算機名。 下面顯示 Ping 輸出的示例:(Windows用戶可用:開始->運行,輸入"command" 調出command窗口使用此命令) C:\>ping ds.internic.net Pinging ds.internic.net [192.20.239.132] with 32 bytes of data: Reply from 192.20.239.132: bytes=32 time=101ms TTL=243 Reply from 192.20.239.132: bytes=32 time=100ms TTL=243 Reply from 192.20.239.132: bytes=32 time=120ms TTL=243 Reply from 192.20.239.132: bytes=32 time=120ms TTL=243回答者:匿名 11-9 13:14Ping是測試網路聯接狀況以及信息包發送和接收狀況非常有用的工具,是網路測試最常用的命令。Ping向目標主機(地址)發送一個回送請求數據包,要求目標主機收到請求後給予答復,從而判斷網路的響應時間和本機是否與目標主機(地址)聯通。 如果執行Ping不成功,則可以預測故障出現在以下幾個方面:網線故障,網路適配器配置不正確,IP地址不正確。如果執行Ping成功而網路仍無法使用,那麼問題很可能出在網路系統的軟體配置方面,Ping成功只能保證本機與目標主機間存在一條連通的物理路徑。 命令格式: ping IP地址或主機名 [-t] [-a] [-n count] [-l size] 參數含義: -t不停地向目標主機發送數據; -a 以IP地址格式來
IP數據報設置的生存時間TTL只有255跳,網際網路上的路由不只這些吧!
傳奇十年典藏賬號注冊 offe.bokee.com 電腦常識
❸ TTL=128和TTL=64的區別是什麼
TTL是IP協議包中的一個值,指定數據報被路由器丟棄之前允許通過的網段數量。
區別一:指定數據報被路由器丟棄之前允許通過的網段數量不同,一個是128,一個是126。
區別二:方式不同;TTL=128 說明直接和對方可以進行通信。TTL=64 跨多個路由器進行通信。
區別三:生效時間不同;64的生效時間比128的快。
(3)計算機網路數據生存時間擴展閱讀:
TTL用於限制IP數據包在計算機網路中存在的時間,避免網路中的無限循環和發送接收,節省網路資源,並使IP數據包的發送者能夠接收到報警消息。最大TTL值為255,推薦的TTL值為64。
雖然TTL字面上翻譯為生存時間,但實際上TTL是計算機網路中IP數據包可以轉發的最大跳數。TTL欄位由數據包的發送方設置。在從源到目的地的整個IP數據包轉發路徑上,路由器在轉發IP數據包之前會將每個路由器的TTL值減少1。
如果在數據包到達目的地之前,網路時間限制值降低到0,路由器將丟棄接收到的網路時間限制值為0的數據包,並向數據包的發送方發送一條超過ICMP time exceeded消息。
❹ 計算機訪問網路時延平均值是什麼意思
計算機訪問網路時延平均值其實就是看到的ping時間。
生存時間(time-to-live)指定數據包被路由器丟棄之前允許通過的網段數量。
它是IP(中文全稱:網路協議)協議包中的一個值,它告訴網路,數據包在網路中的時間是否太長而應被丟棄。
ping的概念:
Ping是Windows下的一個命令,在Unix和Linux下也有這個命令。ping也屬於一個通信協議,是TCP/IP協議的一部分。利用「ping」命令賣閉顫可以檢查網路是否連通,可以很好地幫助我們分析和判定網路故障。應用格式:Ping空格IP地址。該命令還可以加許多中敗參數使用,具體是鍵入Ping按回車即可看到詳細說明。
PING (Packet Internet Groper),網際網路包探索器,用於測試網路連接量的程序。Ping發送一個ICMP(Internet Control Messages Protocol)即網際網路信報控制協議;回聲請求消息給目的地並報告是否收到所希望的ICMP echo (ICMP回聲應答)。它是用來檢查網路是否通暢或者網路連接速度的命令。作為一個生活在網路上的管理員或者黑客來說,ping命令是第一個必須掌握的DOS命態拿令,它所利用的原理是這樣的:利用網路上機器IP地址的唯一性,給目標IP地址發送一個數據包,再要求對方返回一個同樣大小的數據包來確定兩台網路機器是否連接相通,時延是多少。
ping指的是端對端連通,通常用來作為可用性的檢查, 但是某些病毒木馬會強行大量遠程執行ping命令搶占你的網路資源,導致系統變慢,網速變慢。嚴禁ping入侵作為大多數防火牆的一個基本功能提供給用戶進行選擇。通常的情況下你如果不用作伺服器或者進行網路測試,可以放心的選中它,保護你的電腦。
❺ ttl是什麼意思
ttl兩個意思,一是網路詞語,二是專業名詞縮寫。
1、網路用語:意為「太甜了」,多用於粉絲見到自己喜歡的明星互動或其他場景時。
2、名詞縮寫:TTL是TimeToLive的縮寫,中文名為「生存時間」,該欄位指定IP包被路由器丟棄之前允許通過的最大網段數量。TTL是IP數據包在計算機網路中可以轉發的最大跳數。TTL欄位由IP數據包的發送者設置,在IP數據包從源到目的的整個轉發路徑上,每經過一個路由器,路由器都會修改這個TTL欄位值,具體的做法是把該TTL的值減1,然後再將IP包轉發出去。TTL的作用是限制IP數據包在計算機網路中的存在的時間。TTL的最大值是255,TTL推薦值是64。
❻ 計算機網路的主要性能指標有哪些
計算機網路常用性能指標有:
1、速率:連接在計算機網路上的主機在數字信道上傳送數據的速率。
2、帶寬:網路通信線路傳送數據的能力。
3、吞吐量:單位時間內通過網路的數據量。
4、時延:數據從網路一端傳到另一端所需的時間。
5、時延帶寬積:傳播時延帶寬。
6、往返時間RTT:數據開始到結束所用時間。
7、利用率信道:數據通過信道時間。
(6)計算機網路數據生存時間擴展閱讀:
計算機網路中的時延是由一下幾個不同的部分組成的:
(1)發送時延
發送時延是主機或路由納模器發送數據幀所需要的時間,也就是從發送數據幀的第一個比特算起,到該幀的最後一個比特發送完畢所需的時間。因此發送時延也叫做傳輸時延。發送時延的計算公式是:
發送時延=數據幀長度(bit)/發送速率(bit/s)
(2)傳播時延
傳播時延是電磁波在信道中傳播一定的距離需要花費的時間。傳播時延的計算公式是:
傳播時延=信道長度(m)/電磁波在洞擾緩信道上大的傳播速率(m/s)
電磁波在自由空間的傳播速率是光速。即3.0*10^5km/s。
發送時延發生在機器內部的發送器中,與傳輸信道的長度沒有任何關系。傳播時延發生在機器外部的傳輸信道媒體上,而與信道的發送速率無關。信號傳送的距離越遠,傳播時延就越大
(3)處理時延
主機或路由器在收到分組時需要花費一定時間進行處理,例如分析分組的首部,從分組中提取數據部分、進行差錯檢驗或查找合適的路由等,這就產生了處理時延。
(4)排隊時延
分組在進行網路傳輸時,要經過許多路由器。但分組在進入路由器後要先在輸入隊列中排隊等待,在路由器確定了轉發介面後,還要在輸出隊列中排隊等待轉發。這就產生了排隊時延。排隊時延的長短取決於網路當時的通信量。當網路的通信量很大時會發生隊列溢出,使分組丟失,這相當於排隊時延無窮大。
這樣數據在網路中經歷的總時延就是以上四種時延之和:總時延=發送時延+傳播時延+處理時李畝延+排隊時延。
一般來說,小時延的網路要優於大時延的網路。
❼ 計算機網路通信中為什麼要在數據封裝時加上報頭,有什麼作用
簡單說,IPV4報頭是把上一層的數據加上了源IP地址和目標IP地址,詳見如下
IPV4報頭有12個必需的欄位和可選IP選項欄位,位於要發送的數據之前。如果使用IP層已有的庫或其他組件,一般不必考慮報頭中的大多數欄位,但程序代碼需要提供源端和目的端地址。
1、版本(4比特)
IP協議版本已經經過多次修訂,1981年的RFC0791描述了IPV4,RCF2460中介紹了IPV6。
2、報頭長度(4比特)
報頭長度是報頭數據的扒如長度,以4位元組表示,也就是以32位元組為單位。報頭長度是可變的。必需的欄位使用20位元組(報頭長度為5,IP選項欄位最多有40個附加位元組(報頭長度為15)。
3、服務類型(8比特)
該欄位給出發送進程建議路由器如何處理報片的方法。可選擇最大可靠性、最小延遲、最大吞吐量和最小開銷。路由器可以忽略這部分。
4、數據報長度(16比特)
該欄位是報頭長度和數據位元組的總和,以位元組為單位。最大長度為65535位元組。
5、標識符(16比特)
原是數據的主機為數據報分配一個唯一的數據報標識符。在數據報傳向目的地址時,如果路由器將數據報分為報片,那麼每個報片都有相同的數據標識符。
6、標志(3比特)
標志欄位中有2為與報片有關。
位0:未用。
位1:不是報片。如果這位是1,則路由器就不會把數據報分片。路由器會盡可能把數據報傳給可一次接收整個數據報的網路;否則,路由器會放棄數據報,並返回差錯報文,表示目的地址不可達。IP標准要求主機可以接收576位元組以內的數據報,因此,如果想把數據報傳給未知的主機,並想確認數據報沒有因為大小的原因而被放棄,那麼就使用少於或等於576位元組的數據。
位2:更多的報片。如果該位為1,則數據報是一個報片,但不是該分片數據報的最後一個報片;如果該位為0,則數據報沒有分片,或者是最後一個報片。
7、報片偏移(13比特)
該欄位標識報片在分片數據報中的位置。其值以8位元組為單位,最大為8191位元組,對應65528位元組的偏移。
例如,將要發送的1024位元組分為576和424位元組兩個報片。首片的偏移是0,第二片的偏移是72(因為72×8=576)。
8、生存時間(8比特)
如果數據報在合理時間內沒有到達目的地,則網路就會放棄它。生存時間欄位確定放棄數據報的時間。
生存時間表示數據報剩餘的時間,每個路由器都會將其值減一,或遞減需要數理和傳遞數據報的時間。實際上,路由器處理和傳遞數據報的時間一般都小於1S,因此該值絕虛沒有測量時間,而是測量路由器之間跳躍次數或網段的個數。發送數據報的計算機設置初始生存時間。
9、協議(8比特)
該欄位指定數據報的數據部並此燃分所使用的協議,因此IP層知道將接收到的數據報傳向何處。TCP協議為6,UDP協議為17。
10、報頭檢驗和(16比特)
該字端使數據報的接收方只需要檢驗IP報頭中的錯誤,而不校驗數據區的內容或報文。校驗和由報頭中的數值計算而得,報頭校驗和假設為0,乙太網幀和TCP報文段以及UDP數據報中的可選項都需要進行報文檢錯。
11、源IP地址(32比特)
表示數據報的發送方。
12、目的IP地址(32比特)
表示數據報的目的地。
❽ TTL=128,TTL=64這有什麼區別,是什麼意思
TTL=128 說明你直接和對方可以進行通信。
TTL=64 跨多個路由器進行通信。
ping發出的是 hello 報文,基於ICMP的協議,如果跨的路由器很多那就說拿悉明TTL(time to live) 值就減了多少,每跨一個路由器就減1。
在IPv4包頭中TTL是一個8 bit欄位,如下圖所示:
(8)計算機網路數據生存時間擴展閱讀:
TTL的作用是限制IP數據包在計算機網路中的存在的時間,避免IP包在網路中的無限循環和收發,節省了網路資源,並能使IP包的發送者能收到告警消息。TTL的最大值是255,TTL的一個推薦值是64。首伍
雖然TTL從字面上翻譯,是可以存活的時間,但實際上TTL是IP數據包在計算機網路中可以轉發的最大跳數。
TTL欄位由IP數據包的發送者者敏或設置,在IP數據包從源到目的的整個轉發路徑上,每經過一個路由器,路由器都會把該TTL的值減1,然後再將IP包轉發出去。如果在IP包到達目的IP之前,TTL減少為0,路由器將會丟棄收到的TTL=0的IP包並向IP包的發送者發送 ICMP time exceeded消息。
網路-TTL
❾ 在ping命令中,TTL的用途是什麼
在ping命令中,睜仿TTL(生存時間值)的主要作用是標示IP數據包在計算機網路中可以轉發的最大跳數。
TTL由IP數據包的發送者設置,在IP數據包從源到目的的整個轉發悉鍵纖路徑上,每經過一個路由器,則把該TTL的值減1,然後再將IP包轉發出去。如果在IP包到達目的IP之前,TTL減少為0,路由器將會丟棄收到的TTL=0的IP包,並向IP包的發送者發送 ICMP time exceeded消息,以防止數據包不斷在IP互聯網路上永不終止地循環。
【注意事項】:TTL的值在本機可以修改,TTL值的注冊表位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 其中有個DefaultTTL的DWORD值,其數據就是默認的TTL值了,我們可以修改,但不能大於十進制的255。Windows系亮猛統設置後重啟才生效。
❿ 計算機網路:網路層(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)報告轉發分組出錯。