freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-嵌入式tcpip協(xié)議研究(編輯修改稿)

2025-01-08 18:58 本頁面
 

【文章內(nèi)容簡介】 研究上。傳統(tǒng)的 TCP/IP 協(xié)議是以 PC 機、服務(wù)器為應(yīng)用平臺的,協(xié)議復(fù)雜,功能強大,面面俱到,而且沒有實時的概念,這種情況與嵌入式系統(tǒng)的要求是格格不入的。嵌入式系統(tǒng)要求應(yīng)用簡單,以滿足應(yīng)用為目的,并不要求功能十分齊全。 嵌入式 TCP/IP 協(xié)議即是從以滿足嵌入式系統(tǒng)的實際需求為目的這一指導(dǎo)思想出發(fā),建立在嵌入式 Inter 理論的基礎(chǔ)上,通過對龐大、功能齊全的 TCP/IP 協(xié)議的仔細研究,對標準的 TCP/IP 協(xié)議進行了一定的取舍,從而制定出了一套簡單的 、適用于嵌入式系統(tǒng)的并且能完成相應(yīng)網(wǎng)絡(luò)功能的協(xié)議,稱為嵌入式 TCP/IP 協(xié)議。 ARP協(xié)議 ARP 地址解析協(xié)議,它是一個隱藏底層網(wǎng)絡(luò)物理編址、允許給每臺機器分配一個任意IP 地址的底層協(xié)議。 ARP 提供的是一種把 IP 地址映射到物理地址的機制。對此我們先要了解 IP 和物理地址兩種編址形式 : IP 地址 :互聯(lián)網(wǎng)上的每個接口必須有一個唯一的 Inter 地址 (也稱 IP 地址 ), IP 地址長32bit。 Inter 地址并不采用平面形式的地址空間,如 1, 2, 3 等,它具有一定的結(jié)構(gòu)。 物理地址 :該地址用來指明 計算機所安裝的網(wǎng)卡的地址,網(wǎng)卡地址是由 IEEE 統(tǒng)一分配給網(wǎng)卡制造商的,每個網(wǎng)卡的地址在世界范圍內(nèi)是唯一的。所有的物理地址的 MSB 位的值為零,即 48 位網(wǎng)卡地址的最高位為 0。以太網(wǎng)中所說的目的地址和源地址都是指物理地址。 用戶數(shù)據(jù) 用戶數(shù)據(jù) 應(yīng)用數(shù)據(jù)通信 應(yīng)用數(shù)據(jù) 以太網(wǎng)尾部 ARP 首部 TCP 首部 TCP 首部 IP 首部 應(yīng)用數(shù)據(jù) TCP 首部 IP 首部 以太網(wǎng)首部 應(yīng)用程序 TCP IP 以太網(wǎng)驅(qū)動程序 9 ARP 是在源主機不知目的物理地址的前提下才需要的。協(xié)議的實現(xiàn)可以從兩個方面來考慮 :一是發(fā)送方,在以太網(wǎng)幀的傳輸中是以物理地址為目的地址的,但在應(yīng)用層是以網(wǎng)絡(luò)的 IP 地址來操作的,當(dāng)給定一個目的站的 IP 地址時,發(fā)送方軟件會查詢它的 ARP 緩存,看是否有從該 IP 地址到物理地址的映射,若有,則軟件提取該 物理地址,把數(shù)據(jù)放到使用該地址的幀中,并發(fā)送該幀;若沒有則軟件必須廣播一個 ARP 請求并等待應(yīng)答。從接收方考慮,如果網(wǎng)絡(luò)上過來的是 ARP 請求幀,則查看自己是否是請求的目標 (是否與自己的 IP地址相符 ),如果符合則發(fā)送 ARP 應(yīng)答幀。 0 8 16 24 31 圖 2 4 ARP 的報文格式 硬件類型字段表示硬件地址的類型,它的值為 1 即表示以太網(wǎng)地址;協(xié)議類 型字段表示要映射的協(xié)議地址類型,如 0x0800 即表示 IP 地址;硬件地址長度和協(xié)議地址長度以字節(jié)為單位,對于以太網(wǎng)上的 IP 地址的 ARP 請求或應(yīng)答來說,它們的值分別為 6 和 4; 操作字段指出四種操作類型,它們是 ARP 請求 (值為 1)ARP 應(yīng)答 (值為 2 )、 RARP 請求 (值為3 )、 RARP 應(yīng)答 (值為 4),這個字段是必需的,因為 ARP 請求和應(yīng)答的幀類型字段是相同的。 IP協(xié)議 IP 協(xié)議位于網(wǎng)絡(luò)層,是 TCP/IP 協(xié)議族中最為核心的協(xié)議,所有的 TCP,UDP,ICMP 及IGMP 數(shù)據(jù)都以 IP 數(shù)據(jù)包格式傳輸 。 IP 是一個無連接的協(xié)議,主要就是負責(zé)在主機間尋址并為數(shù)據(jù)包設(shè)定路由,在交換數(shù)據(jù)前它并不建立會話。因為它不保證正確傳遞,另一方面,數(shù)據(jù)在被收到時, IP 不需要收到確認,所以它是不可靠的。 根據(jù)我們前面提到關(guān)于 ARP 的知識,如果 IP 地址目標為本地地址時, IP 將數(shù)據(jù)包直接傳給那個主機;如果目標地址為遠程地址的話, IP 在本地的路由表中查找遠程主機的路由。如果找到一個路由, IP 用它傳送數(shù)據(jù)包。如果沒找到呢,就會將數(shù)據(jù)包發(fā)送到源主機的缺省網(wǎng)關(guān),也稱之為路由器。 這樣當(dāng)路由器收到一個包后,該包向上傳給 IP: (1)如果交通阻塞,包在路由器中停滯, TTL 至少減 1 或更多。要是它降到 0 的話,包就會被拋棄。 (2)如果對于下一網(wǎng)絡(luò)來說包太大的話, IP 會將它分割成若干個小包。 (3)如果包被分解, IP 為每個新包制造一個新頭,其中包括:一個標志,用來顯示其它小包在其后;一個小包 ID,用來確定所有小包是一起的;一個小包偏移,用來告訴接收主機怎么重新組合它們。 (4)IP 計算一個新的檢驗和。 (5)IP 獲取一個路由的目標硬件地址。 硬件類型 協(xié)議類型 硬件地址長度 操作 發(fā)送方硬件地址 (八位組 03) 發(fā)送方硬件地址 (45) 發(fā)送方 IP 地址 (八位組 01) 發(fā)送方 IP 地址 (23) 目標硬件地址 (八位組 01) 目標硬件地址 (八位組 25) 目標 IP 地址 (八位組 03) 協(xié)議長度 10 (6)IP 轉(zhuǎn)發(fā)包。 在下一主機,包被發(fā)送到 TCP 或 UDP。每個路由器都要重復(fù)該過 程。直到包到達最終目的地。當(dāng)包到達最終目的地后, IP 將小包組裝成原來的包。圖 25 給出的是 IP 包的頭標結(jié)構(gòu) : 0 15 31 圖 2 5 IP 頭標結(jié)構(gòu) 其中,頭長度是指首部占 32 位字的數(shù)目,包括任何選項;數(shù)據(jù)包長度是指整個 IP 數(shù)據(jù)報的長度,以字節(jié)為單位;標識字段唯一地標識主機發(fā)送的每一份數(shù)據(jù)報,通常每發(fā)送一份報文它的值就會加 l; TTL(timetolive)生存期字段設(shè)置了數(shù)據(jù)報可以經(jīng)過的最多路由器數(shù),它的初始值由源主機設(shè)置,一旦經(jīng)過一個處理它的路由器,它的值就減去 1,當(dāng)它為 0 時,數(shù)據(jù)包被丟失;協(xié)議類型表示 IP 上面的層所采用的協(xié)議類型,如 IP 上面是 UDP協(xié)議,則取值為 17H,類似于網(wǎng)絡(luò)幀中的類型字段;為了計算校驗和,首先把校驗和字段置為 0,然后對首部中每個 16 位進行二進制反碼求和 (整個首部看成是由一串 16 位的字組成 ),結(jié)果存在校驗和字段中;選項和填充是可變長度的,它是要保證數(shù)據(jù)報首部的長度是32 比特的整數(shù)倍,通過設(shè)置填充字段添 “ 0” 補齊。 ICMP協(xié)議 最初設(shè)計的 ICMP 僅僅為了路由器向主機報告?zhèn)魉统鲥e原因,但發(fā)展到現(xiàn)在 ICMP 在兩臺主機上的協(xié)議軟件之間能提供了通信,因此產(chǎn)生了多種 ICMP 報文。盡管每個 ICMP報文有自己的格式,但它們都以相同的三個字段開始:一個 8 比特整數(shù)的報文類型 (TYP)字段用來標識報文,一個 8 比特的代碼字段提供有關(guān)報文類型的進一步信息,以及一個 16比特校驗和 (CHECKSUM)字段。 ICMP 報文格式如圖 26 所示。 0 8 16 31 圖 2 6 ICMP 的報文格式 UDP/ TCP協(xié)議 UDP 是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議, RFC 768 [Postel 1980]是 UDP 的正式規(guī)范文件。 UDP 和 TCP 都屬于 IP 上層的傳輸層協(xié)議。二者都使用端口號作為送往主機的解碼地址。 UDP 為維護數(shù)據(jù)包的整體性應(yīng)盡最大可能地選用校驗和。 UDP 數(shù)據(jù)包的可靠性是與 IP 相當(dāng)?shù)模?UDP 客戶機向指定的遠端主機發(fā)送數(shù)據(jù)包時,并未事先確知對方是做好了接收數(shù)據(jù)的準備的,所以,遠端主機收到的數(shù)據(jù)包未能 保證其正確的順序。但是由于 TCP4 位 版本 版本 4 位頭 長度 長度 服務(wù)類型 數(shù)據(jù)包類型 標識 標 識 DF MF 片偏移 生存期 協(xié)議類型 頭檢驗之和 發(fā)送 IP 地址 目的 IP 地址 選項和填充位 類型 (8 或 0) 碼 (0) 校驗和 標識符 序號 任選數(shù) 據(jù) 11 所傳數(shù)據(jù)流應(yīng)用了順序號和應(yīng)答措施,可以發(fā)現(xiàn)數(shù)據(jù)的丟失、段的失序和對傳輸錯誤的排除,所以 TCP 協(xié)議提供的是數(shù)據(jù)流的可靠傳輸。 UDP 首部的各字段如圖 27 所示 : 源端口 目的端口 報文長度 校驗和 數(shù) 據(jù) 圖 2 7 UDP 數(shù)據(jù)報的字段格式 端口號表示發(fā)送進程和接收進程。需要指出,由于 IP 層己經(jīng)把 IP 數(shù)據(jù)報分配給 TCP或 UDP(根據(jù) IP 首部中協(xié)議字節(jié)段值 ),因此 TCP 端口號由 TCP 來查看,而 UDP 端口號由UDP 來查看, TCP 和 UDP 的端口號是 相互獨立的。 UDP 長度字段指的是 UDP 首部和 UDP 數(shù)據(jù)的字節(jié)長度,該字段的最小值為 8 字節(jié) (發(fā)送一份 0 字節(jié)的 UDP 數(shù)據(jù)是允許的 )。這個 UDP 長度是有冗余的, IP 數(shù)據(jù)報長度指的是數(shù)據(jù)報全長,因此 UDP 數(shù)據(jù)報長度是全長減去 IP 首部的長度。 UDP 的校驗和覆蓋它們的首部以及數(shù)據(jù)部分,回顧 IP 的校驗和只覆蓋首部。它是一個端到端的校驗和,由發(fā)送端計算,然后由接收端驗證。目的是為了發(fā)現(xiàn) UDP 首部和數(shù)據(jù)在發(fā)送端和接收端之間發(fā)生的任何改動。 12 3 嵌入式 TCP/IP 總體框架設(shè)計 嵌入式 TCP/IP 網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu) 其中, TCP/IP 協(xié)議是本課題的主要任務(wù), Socket APIs 是一組 C 語言調(diào)用接口函數(shù),應(yīng)用程序通過它使用 TCP/IP 協(xié)議棧的功能。 TCP/IP 協(xié)議棧與 Socket APIs 一起以系統(tǒng)軟組件的形式提供給用戶,用戶使用 Sockets APIs 編寫應(yīng)用代碼,然后與該系統(tǒng)組件的代碼庫鏈接在一起。操作系統(tǒng)內(nèi)核為嵌入式 TCP/IP 組件和應(yīng)用程序提供任務(wù)管理、存儲分配等系統(tǒng)支持。 圖 3 1 嵌入式 TCP/IP 網(wǎng)絡(luò)系統(tǒng)的體系結(jié)構(gòu) 總體數(shù)據(jù)流程 嵌入式 TCP/IP 的總體數(shù)據(jù)流圖如圖 32 所示 : 應(yīng)用程序通過 socket 應(yīng)用編程接口使用 TCP/IP 協(xié)議棧提供的數(shù)據(jù)通訊功能。發(fā)送數(shù)據(jù)時,如果選擇的是面向連接的 TCP 協(xié)議,則應(yīng)用程序?qū)⒂脩魯?shù)據(jù)交給 TCP 協(xié)議模塊處理, TCP 模塊將其首部和數(shù)據(jù)封裝成 TCP 報文段;如果選擇的是無連接的 UDP 協(xié)議,則將用戶數(shù)據(jù)交給 UDP 協(xié)議模塊處理, UDP 模塊將其首部和數(shù)據(jù)封裝成 UDP 數(shù)據(jù)報。然后將封裝好的 TCP 報文段或 UDP 數(shù)據(jù)報交給 IP 協(xié)議模塊, IP 模塊在 TCP 報文段或 UDP 數(shù)據(jù)報上添加 IP 首部,并封裝 成 IP 數(shù)據(jù)包,然后根據(jù)路由表為 IP 數(shù)據(jù)包確定路由,如果找不到相應(yīng)路由,則向 ICMP 協(xié)議發(fā)送出錯報文,由 ICMP 協(xié)議模塊進行處理;找到了路由則將數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)接口層,網(wǎng)絡(luò)接口層判斷發(fā)送的數(shù)據(jù)是從以太網(wǎng)接口還是從異步串口發(fā)出,如果是從以太網(wǎng)接口發(fā)出,則要利用 ARP 協(xié)議找到目的 IP 地址對應(yīng)的物理地址,然后封裝成以太網(wǎng)幀,由網(wǎng)卡驅(qū)動程序?qū)⒁蕴W(wǎng)幀發(fā)送出去;如果是從串口發(fā)出,則直接利用下層的 PPP 協(xié)議將數(shù)據(jù)包封裝成 PPP 幀,然后由異步串口驅(qū)動程序?qū)?PPP 幀發(fā)送出去。 接收數(shù)據(jù)時,由網(wǎng)卡驅(qū)動程序和異步串口驅(qū)動 程序負責(zé)接收數(shù)據(jù),然后由中斷處理程序喚醒數(shù)據(jù)接收任務(wù),由數(shù)據(jù)接收任務(wù)將接收到的數(shù)據(jù)幀交給網(wǎng)絡(luò)接口層 :網(wǎng)絡(luò)接口層取出幀頭,判斷接收數(shù)據(jù)的類型,如果是 ARP 報文,則將 ARP 報文交給 ARP 協(xié)議模塊處理;如果是 IP 數(shù)據(jù)包,則將 IP 數(shù)據(jù)包交給 IP 協(xié)議模塊處理, TP 協(xié)議模塊取出 IP 首部信息,然后根據(jù)數(shù)據(jù)包的類型,將報文交給相應(yīng)的協(xié)議模塊 (TCP 模塊、 UDP 模塊或 ICMP 模塊 )處理; TCP 模塊和 UDP 模塊收到報文后,取出首部進行處理,并將用戶數(shù)據(jù)交給應(yīng)用程序。 應(yīng) 用 程 序 Socket APIs TCP/IP協(xié)議棧 驅(qū)動程序 實時操作系統(tǒng) 硬 件 13 用戶數(shù)據(jù) 用戶數(shù)據(jù) 面向連接 無連接 TCP 報文段 UDP 數(shù)據(jù)報 ICMP 報文
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1