昨天我們結(jié)束時到了UDP協(xié)議,今天我們繼續(xù)
<2>.UDP協(xié)議頭
(1)UDP端口號:UDP協(xié)議通過端口號來區(qū)分不同程序的程序所需要的數(shù)據(jù)包。長度為16bit。
(2)UDP檢驗和:這是可選的選項,并不是所有系統(tǒng)都對UDP數(shù)據(jù)包加以檢驗,但是
RFC中標準要求發(fā)送端應(yīng)該計算檢驗和。
UDP檢驗和覆蓋UDP協(xié)議頭和數(shù)據(jù),這和IP的檢驗和不一樣,IP的檢驗和只覆蓋IP數(shù)據(jù)頭,并不覆蓋所有數(shù)據(jù)。UDP和TCP都包含一個偽首部,這是為了計算檢驗和而設(shè)置的。偽首部還包括IP地址這樣的IP協(xié)議里都有的信息。目的是讓兩次檢查數(shù)據(jù)是否已經(jīng)正確到達目的地。
(3).UDP長度:它的長度可以達到65535字節(jié)。但是一般的網(wǎng)絡(luò)在傳輸?shù)臅r候,一次一般傳送不了那么長的協(xié)議,就只好對數(shù)據(jù)分片。
<3>.IP分片:IP從上層接到數(shù)據(jù)之后,要根據(jù)IP地址來判斷從哪個接口發(fā)送數(shù)據(jù),并進行MTU的查詢,如果數(shù)據(jù)大小超過MTU就進行數(shù)據(jù)分片。數(shù)據(jù)的分片是對上下層透明的,而數(shù)據(jù)也只是達到目的地還會被重新組裝。IP層提供了足夠多的信息進行數(shù)據(jù)的再組裝。
在IP頭內(nèi),16bit識別號唯一記錄了一個IP包的ID,具有同一個ID的IP片將會被重新組裝,而13位片偏移則記錄了某IP片相對于整個包的位置;而這兩個表示中間3bit標志表示著該分片后邊是否還有新的分片。這三個標示就組成了IP分片的所有信息,接收方就可以利用這些信息對IP數(shù)據(jù)重新組織。
但是,由于分片技術(shù)在網(wǎng)絡(luò)上經(jīng)常被使用,所以偽造IP分片包進行流氓攻擊的軟件也就多了起來,可以使用Trancdroute程序來進行簡單的MTU偵測。
<3>.UDP和ARP之間的交互使用
當(dāng)ARP緩存還是空的時候,UDP在被發(fā)送之前需要發(fā)送一個ARP請求來獲得目的主機的MAC地址,如果這個UDP的數(shù)據(jù)包足夠大,大到IP層一定要對其進行分片的時候,該UDP數(shù)據(jù)包的第一個分片會發(fā)送一個ARP查詢請求,但是有些系統(tǒng)會讓每一個分片都發(fā)送一個ARP查詢,所有的片都在等待,但是接受到第一個回應(yīng)的時候,,主機卻發(fā)送了最后一個數(shù)據(jù)片而拋棄了其他的...,這樣的數(shù)據(jù)不能被及時組裝,接收主機將會在一段時間內(nèi)無法組裝的IP數(shù)據(jù)包拋棄,并發(fā)送組裝超時的ICMP報文。以保證接收主機不會自己的接收端緩存不會被那些總也得不到組裝的分片裝滿。
3.TCP協(xié)議
UDP協(xié)議的優(yōu)點是比較簡單,容易實現(xiàn),但是它的可靠性比較差,一旦數(shù)據(jù)包發(fā)出了,無法知道對方是否收到。
為了解決這個問題,提高網(wǎng)絡(luò)的可靠性,TCP協(xié)議就誕生了,它可被近似認為是一個有確認機制的UDP協(xié)議,每發(fā)出一個數(shù)據(jù)包都被要求確認。如果有一個數(shù)據(jù)包遺失,就收不到確認,發(fā)出方就知道有必要重新發(fā)送這個數(shù)據(jù)包了。TCP協(xié)議能夠確保數(shù)據(jù)不會遺失,但是他的缺點就是過程復(fù)雜,實現(xiàn)困難,消耗較多的資源。
TCP數(shù)據(jù)包和UDP數(shù)據(jù)包都是內(nèi)嵌在IP數(shù)據(jù)包的數(shù)據(jù)部分。TCP數(shù)據(jù)包沒有長度限制,;理論上可以無限長。通常TCP數(shù)據(jù)包不會超過IP數(shù)據(jù)包的長度,以確保單個TCP數(shù)據(jù)包不必再分割。
-
TCP協(xié)議
+關(guān)注
關(guān)注
1文章
91瀏覽量
12063 -
大數(shù)據(jù)
+關(guān)注
關(guān)注
64文章
8863瀏覽量
137303
發(fā)布評論請先 登錄
相關(guān)推薦
評論