① 計算機網路:網路層(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)報告轉發分組出錯。
② TCP/IP計算機網路協議面試題匯總
LISTEN – 偵聽來自遠方TCP埠的連接請求;
SYN-SENT -在發送連接請求後等待匹配的連接請求;
SYN-RECEIVED – 在收到和發送一個連接請求後等待對連接請求的確認;
ESTABLISHED- 代表一個打開的連接,數據可以傳送給用戶;
FIN-WAIT-1 – 等待遠程TCP的連接中斷請求,或先前的連接中斷請求的確認;
FIN-WAIT-2 – 從遠程TCP等待連接中斷請求;
CLOSE-WAIT – 等待從本地用戶發來的連接中斷請求;
CLOSING -等待遠程TCP對連接中斷的確認;
LAST-ACK – 等待原來發向遠程TCP的連接中斷請求的確認;
TIME-WAIT -等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認;
CLOSED – 沒有任何連接狀態;
路由器僅根據網路號net-id來轉發分組,當分組到達目的網路的路由器之後,再按照主機號host-id將分組交付給主機;同一網路上的所有主機的網路號相同。
從主機號host-id借用若干個比特作為子網號subnet-id;子網掩碼:網路號和子網號都為1,主機號為0;數據報仍然先按照網路號找到目的網路,發送到路由器,路由器再按照網路號和子網號找到目的子網:將子網掩碼與目標地址逐比特與操作,若結果為某個子網的網路地址,則送到該子網。
每台主機或路由器在其內存中具有一個ARP表(ARP table),這張表包含IP地址到MAC地址的映射關系。將IP地址通過廣播,根據目標IP地址解析到MAC地址。
1. Ping
Ping 是 ICMP 的一個重要應用,主要用來測試兩台主機之間的連通性。
Ping 的原理是通過向目的主機發送 ICMP Echo 請求報文,目的主機收到之後會發送 Echo 回答報文。Ping 會根據時間和成功響應的次數估算出數據包往返時間以及丟包率。
2. Traceroute
Traceroute 是 ICMP 的另一個應用,用來跟蹤一個分組從源點到終點的路徑。
Traceroute 發送的 IP 數據報封裝的是無法交付的 UDP 用戶數據報,並由目的主機發送終點不可達差錯報告報文。
用於解決內網中的主機要和網際網路上的主機通信。由NAT路由器將主機的本地IP地址轉換為全球IP地址,分為靜態轉換(轉換得到的全球IP地址固定不變)和動態NAT轉換。
每個路由器維護一張表,記錄該路由器到其它網路的」跳數「,路由器到與其直接連接的網路的跳數是1,每多經過一個路由器跳數就加1;更新該表時和相鄰路由器交換路由信息;路由器允許一個路徑最多包含15個路由器,如果跳數為16,則不可達。交付數據報時優先選取距離最短的路徑。
1、 客戶端發送自己支持的加密規則給伺服器,代表告訴伺服器要進行連接了;
2、 伺服器從中選出一套加密演算法和 hash 演算法以及自己的身份信息(地址等)以證書的形式發送給瀏覽器,證書中包含伺服器信息,加密公鑰,證書的頒發機構;
3、客戶端收到網站的證書之後要做下面的事情:
4、伺服器接收到客戶端傳送來的信息,要做下面的事情:
5、如果計演算法 hash 值一致,握手成功。
把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。
③ 計算機網路題,若通過數據包捕獲軟體採集到的一個IP數據報首部(用16進製表示)為:45 00 00
根據IP報文頭部格式可知第九個16進制數是TTL欄位,也就是3B=59,TTL每過一個路由器就減少一,初始值為68,所以68-59=9跳
④ 計算機網路題: 一個UDP用戶數據報的數據欄位長度為3752位元組。若使用乙太網來傳送(註:IP數據
應該是820位元組(byte).
UDP數據報總長度為3752+8=3760位元組
數據鏈路層不會區分UDP報頭,故一個報片的最大傳輸容量為1500-20(IP頭部)=1480位元組
3760÷1480=2......800(位元組)
故最後一個報片的大小為800+20=820(位元組)
⑤ 【NET 計算機網路】08 | 網路層 Part1:數據報 IP地址
網路層在TCP/IP體系中扮演著至關重要的角色,它旨在實現不同網路間的數據傳輸和互聯。當多個異構網路(如N1到N7)僅需內部通信,僅需實現物理層和數據鏈路層即可。但如果要將這些網路連接起來形成互聯網,就需要網路層設備——路由器,它們依據數據包的目的地址和內部路由表進行轉發。網路層需要解決的關鍵問題包括數據的可靠傳輸(處理分組丟失、失序和重復)、定址以及路由選擇。
有兩種數據服務模式:面向連接的虛電路,通過確保所有數據沿同一路徑發送,提供可靠傳輸;而數據報服務則不預先建立連接,盡力交付,每個分組可能走不同的路徑。IPv4地址是網路通信的核心標識,每個主機或路由器介面都分配一個全球唯一的32位標識。IPv4地址的分配和使用經歷了幾個階段,並通過點分十進製法方便用戶。A、B、C類地址各有其特點和限制,通過子網劃分可以優化地址使用,同時保持對外的透明性。
無分類編址的CIDR(Classless Inter-Domain Routing)允許更靈活的網路管理,通過斜線記法標識網路前綴長度。這種編址方式使得路由選擇更為精確,通過最長前綴匹配原則,路由器能快速確定最優路徑。理解網路層和IPv4地址的工作原理對於構建和管理互聯網網路至關重要。
⑥ 某路由器的路由表 如下所示。如果它收到一個目的地址為192.168.10.23的IP數據報,那麼它為該數據報選擇的
所選的路由器地址為:192.168.2.66
路由表中沒有192.168.10.0網段的路徑,而0.0.0.0為默認路由,即:除去路由表中詳細規定的,其他全部走默認路由,所以到192.168.10.23的數據包就會選擇192.168.2.66
⑦ 計算機網路第4章
《計算機網路》第04章在線測試
《計算機網路》第04章在線測試
第一題、單項選擇題(每題1分,5道題共5分)
1、1. TCP/IP體系結構的網路層提供的服務是( C)。
A、虛電路服務 B、電路服務
C、數據報服務 D、無差錯服務
2、2. IP地址202.196.64.4的類型是(B )。
A、D類 B、C類
C、B類 D、A類
3、3. 如果想組建一個約可以連接四萬多台主機的網路,進行網路規劃時,需要選擇的IP地址類型為(C )。 A. B. C. D.
A、D類 B、C類
C、B類 D、A類
4、4. 主機A發送IP分組給B,中間經過3個路由器。那麼在IP分組的發送過程中,需要使用的ARP的次數為( D)。
A、1次 B、2次
C、3次 D、4次
5、5. 某自治系統採用RIP協議,若該自治系統內的路由器R1收到其鄰居路由器R2的距離向量中包含信息<net1,16>,則可能得出的結論是(D )。
A、R1可以經過R2到達net1,跳數為17 B、R1可以到達net1,跳數為16
C、R2可以經過R1到達net1,跳數為17 D、R1不能經過R2到達net1
第二題、多項選擇題(每題2分,5道題共10分)
1、1. IP提供的服務有( BCD)。
A、面向連接
B、面向無連接
C、不可靠
D、盡最大努力
E、保證數據不丟失
2、2. 進行IP數據報分片的設備是( )。ACE / ACDE是錯誤的
A、源主機
B、目的主機
C、交換機
D、網卡
E、路由器
3、3. 導致發送ICMP目的地不可達報告報文的情況有( ABCD)。
A、網路不可達
B、主機不可達
C、協議不可達
D、埠不可達
E、路由器不可達
4、4. 劃分子網後IP地址的組成部分有( ABD)。
A、網路號
B、子網號
C、層次號
D、主機號
E、子網掩碼
5、5. IP數據報首部中,控制分片和重組的欄位有(ABC )。
A、標識
B、標志
C、片偏移
D、協議
E、報頭長度
第三題、判斷題(每題1分,5道題共5分)
1、1. 一個主機可以有多個公用IP地址,多個主機也可以使用同一個公用IP地址。(F )
正確 錯誤
2、2. 假設一個IP數據報的首部長度為20位元組,數據部分為3000位元組,「DF」標志位等於0。現在要通過一個MTU=1520位元組的網路傳送IP數據報,則該數據報需要劃分2個分片。( F)
正確 錯誤
3、3. OSPF報文不使用UDP,而是直接使用IP數據報進行傳送的。 ( T)
正確 錯誤
4、4. 採用默認路由,路由器可以減少路由表所佔用的空間和搜索路由表所用的時間。( T)
正確 錯誤
5、5. IP數據報中「首部校驗和」欄位僅對首部進行校驗,不對數據區進行校驗。(T )
正確 錯誤