您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>通信技術(shù)>傳輸網(wǎng)/接入網(wǎng)/交換網(wǎng)>

寬帶IP網(wǎng)絡(luò)技術(shù)的連接建立

2010年04月06日 17:22 ttokpm.com 作者:佚名 用戶評論(0

寬帶IP網(wǎng)絡(luò)技術(shù)的連接建立

連接是兩個(gè)或多個(gè)需要交換消息和數(shù)據(jù)的計(jì)算機(jī)系統(tǒng)之間的鏈路。在共享網(wǎng)絡(luò)和互聯(lián)網(wǎng)絡(luò)上,連接通常是虛擬的,即連接狀態(tài)是建立在軟件基礎(chǔ)上,該軟件跟蹤似乎是專用電路(對于正使用它的應(yīng)用程序而言)中的數(shù)據(jù)交換。這些連接發(fā)生在傳輸層,由因特網(wǎng)協(xié)議族中的TCP處理。

TCP的工作主要是建立連接,然后從應(yīng)用層程序中接收數(shù)據(jù)并進(jìn)行傳輸。TCP采用虛電路連接方式進(jìn)行工作,在發(fā)送數(shù)據(jù)前它需要在發(fā)送方和接收方建立一個(gè)連接,數(shù)據(jù)在發(fā)送出去后,發(fā)送方會(huì)等待接收方給出一個(gè)確認(rèn)性的應(yīng)答,否則發(fā)送方將認(rèn)為此數(shù)據(jù)丟失,并重新發(fā)送此數(shù)據(jù)。

連接是可靠數(shù)據(jù)傳遞業(yè)務(wù)的要求。傳輸服務(wù)是通過建立連接的兩個(gè)傳輸實(shí)體之間所用的傳輸協(xié)議來實(shí)現(xiàn)的。在實(shí)際數(shù)據(jù)交換發(fā)生之前,建立連接。連接用于確認(rèn)收到數(shù)據(jù)分組和重新傳輸那些丟失的數(shù)據(jù)分組。與之相反的是盡力傳輸業(yè)務(wù)。文件傳輸是要求保證傳遞業(yè)務(wù)的示例。傳遞的文件必須是原始文件的精確副本。

一個(gè)網(wǎng)絡(luò)系統(tǒng)上的應(yīng)用程序與另一個(gè)網(wǎng)絡(luò)系統(tǒng)上的應(yīng)用程序創(chuàng)建端對端連接,以便可靠地交換數(shù)據(jù)。單個(gè)計(jì)算機(jī)可以在任何時(shí)間建立和終止連接。來自這些連接的數(shù)據(jù)分組通過單個(gè)物理鏈路時(shí)被多路處理,如下圖所示,因此,它們是虛連接。此外,每個(gè)連接是全雙工模式,允許雙向數(shù)據(jù)分組交換。

image:bk071155w-1.jpg

建立連接的第一步獲取目標(biāo)主機(jī)的網(wǎng)絡(luò)地址。如果源和目標(biāo)在同一LAN(或路由的不同LAN)上,假設(shè)它的IP地址已知,則ARP(地址解析協(xié)議)可以用于獲取目標(biāo)的硬件地址。如果IP地址未知,可以聯(lián)系DNS服務(wù)器獲取該地址。在Windows環(huán)境下,NetBIOS命名提供一種定位計(jì)算機(jī)地址的方法。一旦知道這些地址,這兩臺(tái)計(jì)算機(jī)則可以建立連接。

連接必須首先由發(fā)送方請求,并由接收方同意。這樣通過確保接收方已準(zhǔn)備好接收數(shù)據(jù),來提供一級可靠性。它還指出TCP如何管理數(shù)據(jù)傳遞。如果應(yīng)用程序直接將數(shù)據(jù)傳遞到IP進(jìn)行傳遞,則IP只是簡單地開始將數(shù)據(jù)分組發(fā)送到目的地。但是如果目標(biāo)脫機(jī)或者正忙,則會(huì)丟失那些數(shù)據(jù)分組,并且IP本身無法通知應(yīng)用程序沒有傳遞那些數(shù)據(jù)分組。TCP通過IP首先傳遞一個(gè)簡單的連接請求來管理這種情況。

?實(shí)際的連接涉及一個(gè)三次握手進(jìn)程,其中三個(gè)數(shù)據(jù)分組(稱為TCP層中的段)通過網(wǎng)絡(luò)交換。下面是客戶機(jī)和服務(wù)器之間的這一進(jìn)程的描述。

?客戶機(jī)使用稱為“連接”的“套接字”過程,創(chuàng)建一個(gè)包含服務(wù)器的IP地址和想要的服務(wù)的端口號的TCP段。將SYN位設(shè)置為打開,將ACK位設(shè)置為關(guān)閉,以表示這是個(gè)連接請求。此外,客戶機(jī)生成一個(gè)初始序號,并將其置于標(biāo)題的“序號”字段中。

?當(dāng)服務(wù)器接收該段時(shí),進(jìn)行檢查以確保指定端口可用,并且如果可用,則將確認(rèn)段返回到客戶機(jī)。該段將SYN和ACK位設(shè)置為打開。為了確認(rèn)服務(wù)器已經(jīng)接收到客戶機(jī)的初始序號,服務(wù)器將序號加1,并將其插入到返回給客戶機(jī)的段的“確認(rèn)”字段。此外,它將自己的序號插入到“序號”字段。服務(wù)器就是使用這個(gè)序號將段發(fā)送給客戶機(jī)。

?在客戶機(jī)接收到來自服務(wù)器的確認(rèn)段后,它將一個(gè)具有ACK位設(shè)置的確認(rèn)段返回到服務(wù)器。同時(shí),它將從服務(wù)器接收到的序號加1,并將其插入到“確認(rèn)”字段,以表明它已收到服務(wù)器的初始序號。

注意,SYN(同步)和ACK(確認(rèn))是TCP標(biāo)題中的標(biāo)志位,可以設(shè)置為打開或關(guān)閉。該序列繪制在圖C-22中的流程圖中。

該交換之后,緊接著可以開始數(shù)據(jù)傳輸。在傳輸完成之后,兩端終止連接。

在三次握手協(xié)議中,服務(wù)器維護(hù)一個(gè)未連接隊(duì)列,該隊(duì)列為每個(gè)客戶端的SYN包(sYN=j)開設(shè)一個(gè)條目,該條目表明服務(wù)器已收到SYN包,并向客戶發(fā)出確認(rèn),正在等待客戶的確認(rèn)包。這些條目所標(biāo)識的連接在服務(wù)器處于SYN_RECV狀態(tài),當(dāng)服務(wù)器收到客戶的確認(rèn)包時(shí),刪除該條目,服務(wù)器進(jìn)入ESTABLISHED狀態(tài)。用Backlog參數(shù)來表示未連接隊(duì)列的最大容納數(shù)目。

TCP可能要在連接建立階段處理一些連接參數(shù)。其中之一是建立傳輸延遲參數(shù)。假設(shè)客戶機(jī)將一個(gè)段發(fā)送到服務(wù)器并且服務(wù)器返回一個(gè)確認(rèn),但由于某種原因該確認(rèn)沒有在合理的時(shí)間內(nèi)到達(dá)客戶機(jī)。該服務(wù)器必須假設(shè)客戶機(jī)沒有收到它的確認(rèn),于是它重發(fā)該段。這期間,“丟失”的確認(rèn)可能找到了到達(dá)客戶機(jī)的路徑并且重發(fā)也到達(dá)了該服務(wù)器,這時(shí)服務(wù)器要處理兩個(gè)相同的段。

發(fā)送方等待確認(rèn)的時(shí)間長短不是固定值,因?yàn)槟承╂溌?如衛(wèi)星)比其他鏈路的延遲時(shí)間更長。TCP可以協(xié)商該值,方法是測量它用于接收響應(yīng)的時(shí)間。然后,它估計(jì)一個(gè)往返的延遲值,并使用這個(gè)值傳輸和確認(rèn)連接進(jìn)行定時(shí)。

發(fā)送方可以盡量為數(shù)據(jù)分組找到最佳大小以避免發(fā)生分段。發(fā)送方以較慢的速度開始傳輸,以避免擁塞網(wǎng)絡(luò)。然后,它可能改變它的傳輸速度,以避免使接收方溢出。

此外,這種連接序列容易遭到猜測序號的攻擊,攻擊者可以竊取由合法用戶建立的會(huì)話,并假裝成目標(biāo)系統(tǒng)的該用戶。依照RFC1948 (Defending Against Sequence Number Attacks,May1996),看來實(shí)際上初始序號易于預(yù)測。攻擊者連接到服務(wù)器,然后等待其他人進(jìn)行連接。服務(wù)器隨后將一個(gè)確認(rèn)段發(fā)送給請求連接者。同時(shí),攻擊者已經(jīng)猜出下一個(gè)序號應(yīng)該是什么,使用那個(gè)序號將確認(rèn)消息發(fā)送回服務(wù)器,并假裝成請求連接者。服務(wù)器接受這個(gè)連接,這樣攻擊者可以開始在服務(wù)器上執(zhí)行命令。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發(fā)表人:admin )

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?