㈠ 計算機網路 用IP地址與子網掩碼 怎麼 網路號 和 主機號
首先將網路的IP地址和子網掩碼都轉換成32位二進制字元。
將轉換後的二進制的IP地址和子網掩碼進行「邏輯與」運算,得到新的32位二進制字元。
把得到的新的32位二進制字元轉換成十進制,就是主機的網路號了。
舉例如下:
本機IP為192.168.1.16,子網掩碼為255.255.255.0
轉換成二進制:
本機IP為11000000.10101000.00000001.00010000
子網掩碼11111111.11111111.11111111.00000000
進行「與運算「11000000.10101000.00000001.00000000
轉換成十進制:192.168.1.0
即192.168.1.0為主機的網路號。
注意事項:邏輯與運算的規則:
0∧0=0
0∧1=0
1∧0=0
1∧1=1
㈡ UDP的校驗和計算時數據是怎樣計算的
UDP計算校驗和的方法和計算IP數據報首部校驗和的方法相似。但不同的是:IP數據報的校驗和只檢驗IP數據報的首部,但UDP的校驗和是將首部和數據部分一起都檢驗。在發送端,首先是將全零放入檢驗和欄位。再將偽首部以及UDP用戶數據報看成是由許多16bit的字串接起來。
若UDP用戶數據報的數據部分不是偶數個位元組,則要填入一個全零位元組(即:最後一個基數位元組應是16位數的高位元組而低位元組填0)。然後按二進制反碼計算出這些16bit字的和(兩個數進行二進制反碼求和的運算的規則是:從低位到高位逐列進行計算。
0和0相加是0,0和1相加是1,1和1相加是0但要產生一個進位1,加到下一列。若最高位相加後產生進位,則最後得到的結果要加1)。 將此和的二進制反碼寫入校驗和欄位後,發送此UDP用戶數據報。
在接收端,將收到的UDP用戶數據報連同偽首部(以及可能的填充全零位元組)一起,按二進制反碼求這些16bit字的和。 當無差錯時其結果應全為1。否則就表明有差錯出現, 接收端就應將此UDP用戶數據報丟棄。
(2)計算機網路考二進制反碼計算擴展閱讀:
UDP協議全稱是用戶數據報協議,在網路中它與TCP協議一樣用於處理數據包,是一種無連接的協議。在OSI模型中,在第四層——傳輸層,處於IP協議的上一層。UDP有不提供數據包分組、組裝和不能對數據包進行排序的缺點,也就是說,當報文發送之後,是無法得知其是否安全完整到達的。
UDP用來支持那些需要在計算機之間傳輸數據的網路應用。包括網路視頻會議系統在內的眾多的客戶/伺服器模式的網路應用都需要使用UDP協議。
UDP協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使是在今天UDP仍然不失為一項非常實用和可行的網路傳輸層協議。
UDP報文沒有可靠性保證、順序保證和流量控制欄位等,可靠性較差。但是正因為UDP協議的控制選項較少,在數據傳輸過程中延遲小、數據傳輸效率高,適合對可靠性要求不高的應用程序,或者可以保障可靠性的應用程序,如DNS、TFTP、SNMP等。
㈢ 計算機網路-運輸層-用戶數據報協議UDP
用戶數據報協議UDP只在IP的數據報服務之上增加的功能:復用和分用的功能以及差錯檢測的功能。
UDP的主要特點是:
(1) UDP是無連接的 ,即發送數據之前不需要建立連接(當然,發送數據結束時也沒有連接可釋放),因此了開銷和發送數據之前的時延。
(2) UDP使用盡最大努力交付 ,即不保證可靠交付,因此主機不需要維持復雜的連接狀態表(這裡面有許多參數)。
(3) UDP是面向報文的 。發送方的UDP對應用程序交下來的報文,在添加首部後就向下交付IP層。UDP對應用層交下來的報文,既不合並,也不拆分,而是保留這些報文的邊界。這就是說,應用層交給UDP多長的報文,UDP就照樣發送,即一次發送一個報文,如圖5-4所示。在接收方的UDP,對IP層交上來的UDP用戶數據報,在去除首部後就原封不動地交付上層的應用進程。也就是說,UDP一次交付一個完整的報文。因此,應用程序必須選擇合適大小的報文,若報文太長,UDP把它交給IP層後,IP層在傳送時可能要進行分片,這會降低IP層的效率。反之,若報文太短,UDP把它交給IP層後,會使IP數據報的首部的相對長度太大,這也降低了IP層的效率。
(4)UDP沒有擁塞控制,因此網路出現的擁塞不會使源主機的發送速率降低。這對某些實時應用是很重要的。很多的實時應用(如P電話、實時祝頻會議等)要求源主機以恆定的速率發遞數據,並且允許在網鉻發生擁塞時丟失一些數據,但卻不允許數據有太大的時延。UDP正好適合這種要求。
(5)UDP支持一對一、一對多、多對一和多對多的交互通信.
(6)UDP的首部開銷小,只有8個位元組,比TCP的20個位元組的首部要短。
(7)網路環境差的情況下,丟包嚴重。
雖然某些實時應用需要使用沒有擁塞控制的UDP,但當很多的源主機同時都向網路發送高速率的實時視領流時,網鉻就有可能發生擁塞。結果大家都無法正常接收。因此,不使用擁塞控制功能的UDP有可能會引起網路產生嚴重的擁塞問題。
還有一些使用UDP的實時應用,需要對UDP的不可靠的傳輸進行適當的改進,以減少數據的丟失。在這種情況下,應用進程本身可以在不影響應用的實時性的前提下,增加一些提高可靠性的措施,如採用前向糾錯或重傳己丟失的報文。
用戶數據報UDP有兩個欄位:數據欄位和首部欄位。首部欄位很簡單,只有8個位元組(圖5-5),由四個欄位組成,每個欄位的長度都是兩個位元組。各欄位意義如下:
(1)源埠 源埠號。在需要對方回信時選用。不需要時可用全0。
(2)目的埠 目的埠號。這在終點交付報文時必須使用。
(3)長度 UDP用戶數據報的長度,其最小值是8(僅有首部)。
(4)檢驗和 檢測UDP用戶數據報在傳輸中是否有錯。有錯就丟棄。
偽首部的第3欄位是全零;第4欄位是P首部中的協議欄位的值,對於 UDP協議欄位值為17 ;第5欄位是UDP用戶數據報的長度。當運輸層從IP層收到UDP數據報時,就根據首部中的目的埠,把UDP數據報通過相應的埠,上交最後的終點一應用進程。
如果接收方UDP發現收到的報文中的目的埠號不正確(即不存在對應於該埠號的應用進程),就丟棄該報文,並由 網際控制報文協議ICMP發送「埠不可達」差錯報文 給發送方。「ICMP的應用」中的traceroute時,就是讓發送的UDP用戶數據報故意使用一個非法的UDP埠,結果ICMP就返回「埠不可達」差錯報文,因而達到了測試的目的。
請注意,雖然在UDP之間的通信要用到其埠號,但由於UDP的通信是無連接的,因此不需要使用套接字(TCP之間的通信必須要在兩個套接字之間建立連接)。
UDP用戶數據報首部中檢驗和的計算方法有些特殊。在計算檢驗和時,要在UDP用戶數據報之前增加12個位元組的偽首部。所謂「偽首部」是因為這種偽首部並不是UDP用戶數據報真正的首部。只是在計算檢驗和時,臨時添加在UDP用戶數據報前面,得到一個臨時的UDP用戶數據報。檢驗和就是按照這個臨時的UDP用戶數據報來計算的。偽首部既不向下傳送也不向上遞交,而僅僅是為了計算檢驗和。
UDP計算檢驗和的方法 和計算IP數據報首部檢驗和的方法相似。但不同的是:IP數據報的檢驗和只檢驗IP數據報的首部,但UDP的檢驗和是把首部和數據部分一起都檢驗。 在發送方 ,首先是先把全零放入檢驗和欄位。再把偽首部以及UDP用戶數據報看成是由許多16位的字串接起來的。若UDP用戶數據報的數據部分不是偶數個位元組,則要填入一個全零位元組(但此位元組不發送)。然後按二進制反碼計算出這些16位字的和。將此和的二進制反碼寫入檢驗和欄位後,就發送這樣的UDP用戶數據報。 在接收方 ,把收到的UDP用戶數據報連同偽首部(以及可能的填充全零位元組)一起,轉為8位數二進制,然後按二進制反碼求這些16位字的和。當無差錯時其結果應為全1。否則就表明有差錯出現,接收方就應丟棄這個UDP用戶數據報(也可以上交給應用層,但附上出現了差錯的警告)。 檢驗和 ,既檢查了UDP用戶數據報的源埠號和目的埠號以及UDP用戶數據報的數據部分,又檢查了IP數據報的源P地址和目的地址。
這里假定用戶數據報的長度是15位元組,因此要添加一個全0的位元組。這種簡單的差錯檢驗方法的檢錯能力並不強,但它的好處是簡單,處理起來較快。