登錄

數(shù)據(jù)包

百科 > 計(jì)算機(jī) > 數(shù)據(jù)包

1.什么是數(shù)據(jù)包[1]

  數(shù)據(jù)包是指分塊的傳輸數(shù)據(jù),它被用于早期的計(jì)算機(jī)通信網(wǎng)的文獻(xiàn)中,而目前則普遍使用“分組”一詞。

2.數(shù)據(jù)包的傳送[2]

  如果一個(gè)協(xié)議已選擇了一個(gè)被坤(一個(gè)指向網(wǎng)絡(luò)接口結(jié)構(gòu)的指針)標(biāo)識的接口,則協(xié)議就用以下的調(diào)用來傳送一個(gè)完全格式化的網(wǎng)絡(luò)層數(shù)據(jù)包。

  網(wǎng)絡(luò)接口的輸出例程傳送數(shù)據(jù)包m給dst中指定的協(xié)議地址,或返回一個(gè)錯(cuò)誤號。事實(shí)上,傳送可能不是立即進(jìn)行或可能不是成功的。典型的情況是,輸出例程驗(yàn)證目的地址,將數(shù)據(jù)包在發(fā)送隊(duì)列進(jìn)行排隊(duì),并且,如果接口不忙就預(yù)先準(zhǔn)備好一個(gè)中斷驅(qū)動例程來發(fā)送數(shù)據(jù)包。對于不可靠介質(zhì)(如以太網(wǎng)),成功的傳輸僅意味著數(shù)據(jù)包被放到了電纜上而未遇上沖突。相反,一個(gè)X.25接口保證對每一條傳輸?shù)?a href="/wiki/%E6%B6%88%E6%81%AF" title="消息">消息提供正確的發(fā)送或提供一個(gè)出錯(cuò)指示。網(wǎng)絡(luò)系統(tǒng)使用的模型并不保證對在一個(gè)網(wǎng)絡(luò)接口出現(xiàn)的數(shù)據(jù)包進(jìn)行正確傳送,這與以太網(wǎng)是最為接近的。輸出例程返回的出錯(cuò)信息只是那些能立即檢測到的并且通常在實(shí)際上是微不足道的錯(cuò)誤(網(wǎng)絡(luò)崩潰、沒有緩存空間、無法處理的地址格式等)。如果錯(cuò)誤在調(diào)用返回之后被檢測到,就不告知協(xié)議。

  當(dāng)傳送消息時(shí),每一個(gè)網(wǎng)絡(luò)接口通常必須為每個(gè)傳出的數(shù)據(jù)包格式化一個(gè)鏈路層地址e。網(wǎng)絡(luò)接口層必須理解它所支持的每一種協(xié)議地址格式,以將其格式化為相應(yīng)的鏈路層地址。每個(gè)協(xié)議族的網(wǎng)絡(luò)層為每一條消息都選擇一個(gè)目的地址,然后使用這個(gè)地址來選擇要使用的合適的網(wǎng)絡(luò)接口。把目標(biāo)地址作為一個(gè)sockaddr結(jié)構(gòu)傳遞給該接口的輸出例程。假定該接口支持這種地址格式,那么該接口必須將目的協(xié)議地址映射到一個(gè)鏈路層協(xié)議地址,這個(gè)鏈路層協(xié)議與接口所支持的傳輸介質(zhì)相關(guān)聯(lián)。這個(gè)映射可以是一個(gè)簡單的算法,它可能需要一個(gè)表查詢,或者可能需要更多涉及的技術(shù)。

3.數(shù)據(jù)包的接收[2]

  網(wǎng)絡(luò)接口接收數(shù)據(jù)包,并根據(jù)在鏈路層協(xié)議頭部編碼的信息,將數(shù)據(jù)包分派給合適的網(wǎng)絡(luò)層協(xié)議。每一個(gè)協(xié)議族必須有一個(gè)或多個(gè)協(xié)議組成網(wǎng)絡(luò)層。在這個(gè)系統(tǒng)中,每一個(gè)網(wǎng)絡(luò)層協(xié)議都有一個(gè)分配給它的輸入數(shù)據(jù)包隊(duì)列。一個(gè)網(wǎng)絡(luò)接口所接收的數(shù)據(jù)包在一個(gè)協(xié)議的輸入數(shù)據(jù)包隊(duì)列中排隊(duì),并發(fā)送一個(gè)軟件中斷來啟動網(wǎng)絡(luò)層處理,見圖1-1。網(wǎng)絡(luò)接口模塊使用相似的隊(duì)列來存儲正等待傳送的數(shù)據(jù)包。

Image:輸入數(shù)據(jù)包被分派給協(xié)議的輸入隊(duì)列.jpg

  圖1-1 輸入數(shù)據(jù)包被分派給協(xié)議的輸入隊(duì)列

評論  |   0條評論