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

正文內(nèi)容

本科論文--基于單片機(jī)的網(wǎng)絡(luò)通訊協(xié)議研究及應(yīng)用-資料下載頁

2024-11-08 02:56本頁面

【導(dǎo)讀】今天,嵌入式Inter的應(yīng)用己經(jīng)深入到日常生活的各個方面。論文首先介紹了嵌入式系統(tǒng)的組成及對嵌入式Inter產(chǎn)生。一種基于單片機(jī)自身特點(diǎn)的具體的解決方案:嵌入式TCP/IP協(xié)議。限的微處理器中,實(shí)現(xiàn)以電子郵件方式進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸。

  

【正文】 IP 地址與 MAC 地址的對應(yīng)關(guān)系 ,再將記錄刪除標(biāo)志指針下移一個表項(xiàng),以此類推進(jìn)行替換。 開始 收到 ARP 數(shù)據(jù)幀 是否請求幀? 自己是請求目標(biāo)? 給予響應(yīng) 結(jié)束 讀取收到的 ARP 數(shù)據(jù)幀 更新緩存表 Y Y N N 四川理工學(xué)院本科畢業(yè)(設(shè)計(jì))論文 22 IP 協(xié)議及其實(shí)現(xiàn) IP 數(shù)據(jù)報(bào)格式 IP 數(shù) 據(jù)報(bào)是典型的詩句分組的一般格式:報(bào)頭和數(shù)據(jù)兩個部分。如圖 54 所示。 圖 54 IP 數(shù)據(jù)報(bào)格式 版本號指的是當(dāng)前使用協(xié)議的版本,當(dāng)前使用的是 IPv4,下一個協(xié)議版本是 IPv6,這正是當(dāng)今互聯(lián)網(wǎng)研究熱點(diǎn)。版本號規(guī)定了數(shù)據(jù)報(bào)的格式。 IP 數(shù)據(jù)報(bào)報(bào)頭含有頭標(biāo)長和總長兩個長度域,頭標(biāo)長是一個 4 比特域,它給出了 32 比特字長為單位的報(bào)頭長度。除了 IP 選項(xiàng)和填充域之外,首部所有字段的長度都是一定的。沒有任何選項(xiàng)的 IP 數(shù)據(jù)報(bào)的首部長度是 5;總長域指的是整個 IP 數(shù)據(jù)報(bào)的長度,利用首部長度字段和總長度字段,就可以知道 IP 數(shù)據(jù)報(bào)中 數(shù)據(jù)內(nèi)容的起始位置和長度。標(biāo)志字段是用于標(biāo)識主機(jī)發(fā)送每一份數(shù)據(jù)報(bào)。最長生存時間確定了數(shù)據(jù)報(bào)最多可以經(jīng)過的路由器數(shù)。任何一個 IP 數(shù)據(jù)報(bào)都包含源 IP 地址和目的 IP 地址。 IP 軟件實(shí)現(xiàn) 為了實(shí)現(xiàn)數(shù)據(jù)報(bào)的傳輸, IP 協(xié)議采用以下幾個關(guān)鍵技術(shù) : 1. 生存時間: TTL 確立了數(shù)據(jù)報(bào)最多可以經(jīng)過的路由器數(shù)。它指定了數(shù)據(jù)報(bào)的存留時間。 TTL 的初始值是有源主機(jī)設(shè)定的(通常為 32 或是 64),每經(jīng)過一個使用它的路由器,它的值就減少 1,當(dāng)值為 0 時,數(shù)據(jù)報(bào)就被丟棄,同時發(fā)送 ICMP 報(bào)文通知源主機(jī)。 2.任選項(xiàng): 這些選項(xiàng)包括:安全和處理限制、記錄路由、時間戳等等。 版本 頭標(biāo)長度 服務(wù)類型 標(biāo)識 標(biāo)識 片偏移 生存時間 協(xié)議 頭標(biāo)校驗(yàn)和 任選項(xiàng) 填充域 目的 IP 地址 源 IP 地址 數(shù)據(jù) 0 4 8 15 16 19 24 31 基于單片機(jī)的 TCP/IP技術(shù)研究及應(yīng)用 23 3. 報(bào)頭校驗(yàn)和: IP 報(bào)文頭中的檢驗(yàn)和用于預(yù)防路由中轉(zhuǎn)過程中出錯。在TCP、 IP、 ICMP 協(xié)議中,檢驗(yàn)和的算法是相同的。在協(xié)議封裝時,需要產(chǎn)生檢驗(yàn)和 。在收到信包后,需要檢驗(yàn)。檢驗(yàn)和算法使用頻率比較高,所以需要使用比較高效的檢驗(yàn)和算法。校驗(yàn)和是 IP 報(bào)頭部分計(jì)算出來的校驗(yàn)和碼,若傳輸沒出現(xiàn)問題這個值應(yīng)全是 1,由于路由器經(jīng)常僅將 TTL 減少 1,因此當(dāng)路由器將 TTL減少 1 的同時給它加 1,而不需要對整個 IP 首部進(jìn)行全新的計(jì)算。 這個部分主要有兩個過程實(shí)現(xiàn), 即對 IP 數(shù)據(jù) 接收 和對 IP 數(shù)據(jù) 發(fā)送 的處理。對 IP 數(shù)據(jù)發(fā)送過程如圖 55 所示。 IP 進(jìn)程是從數(shù)據(jù)鏈路調(diào)用進(jìn)程 ip_proces 的執(zhí) 圖 55 IP 對數(shù)據(jù)的 接收 過程 流程圖 行開始,是個無限循環(huán)的過程。遍歷網(wǎng)絡(luò)接口所有的輸入隊(duì)列,當(dāng)輸入隊(duì)列為空時, IP 進(jìn)程被阻塞,一旦有其它進(jìn)程把數(shù)據(jù)報(bào)放進(jìn)輸入隊(duì)列中, IP 進(jìn)程就恢復(fù)開始 遍歷網(wǎng)絡(luò)接口輸入隊(duì)列 IP 進(jìn)程阻塞 選取數(shù)據(jù)報(bào),初始化 TTL 是否為空? 其它進(jìn)程 添加的數(shù)據(jù)報(bào) 校驗(yàn)和正確? 存在路由? TTL=TTL— 1 TTL=0? 丟棄數(shù)據(jù)報(bào)報(bào) ICMP 目的站不可達(dá)報(bào)文 ICMP 超時報(bào)文 直接可達(dá)目的機(jī)? 將數(shù)據(jù)報(bào)放入輸出隊(duì)列 Y Y Y Y N N N N N Y 四川理工學(xué)院本科畢業(yè)(設(shè)計(jì))論文 24 執(zhí)行并立即檢查數(shù)據(jù)報(bào)已到達(dá)的接口;當(dāng)輸入隊(duì)列不空, IP 進(jìn)程提取等待處理的數(shù)據(jù)報(bào),同時初始化 TTL 值,驗(yàn)證數(shù)據(jù) 報(bào)的首部校驗(yàn)和,當(dāng)校驗(yàn)和錯誤,整個數(shù)據(jù)報(bào)將被拋棄;不然則為該數(shù)據(jù)報(bào)選擇路由,若路由不存在, IP 進(jìn)程調(diào)用進(jìn)程 ICMP,生成并發(fā)送一個 ICMP“ 目的不可達(dá) ” 的報(bào)文。一旦路由選擇成功,ip_process 遞減計(jì)數(shù)器 TTL 值,如果 TTL 的值達(dá)到 0, ip_process 生成一個 ICMP超時報(bào)文。每次選路后, ip_process 查看目的主機(jī)與本機(jī)是否在同一子網(wǎng)絡(luò)中,若在同一子網(wǎng)中則直接將數(shù)據(jù)報(bào)插入到輸出隊(duì)列中,否則把數(shù)據(jù)報(bào)發(fā)送給默認(rèn)網(wǎng)關(guān),以便送到其它網(wǎng)絡(luò)。 IP 數(shù)據(jù) 發(fā)送 處理的過程由 ip_send 開始, ip_send 填寫 IP 首部中的每個字段,協(xié)議類型、服務(wù)類型、優(yōu)先級、指定的目的地址。同時為了保證每個外發(fā)數(shù)據(jù)報(bào)的標(biāo)志字 段的值是唯一的 , ip_send 給 全局變量 ipackid 值 添加 標(biāo)識字段, ipackid值 開始遞增 。 ip_send 對 首部 填寫完成 后, 就把 數(shù)據(jù)報(bào) 放 入 鏈路 接口隊(duì)列。 要將數(shù)據(jù)從一個節(jié)點(diǎn)轉(zhuǎn)發(fā)到另一個節(jié)點(diǎn),需要不斷地為每個數(shù)據(jù)確定并使用正確的路由。通常的 IP 層會建立一個路由表,當(dāng)數(shù)據(jù)報(bào)來自某一個網(wǎng)絡(luò)接口時,IP 會檢查 IP 地址是否為本機(jī)的或是 IP 廣播地址,如果是該數(shù)據(jù)報(bào)就被送到由 IP首部字段所指定的協(xié)議模塊進(jìn)行處理,如果不 是 IP 層將會設(shè)置為路由器的功能,對數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。 下面是用來轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的 IP 路由邏輯算法 [19]: 從數(shù)據(jù)報(bào)中提取目的 IP 地址 A,并提取 IP 地址中的網(wǎng)絡(luò)部分 B if( B 與任何 與其 直接相連網(wǎng)絡(luò)地址匹配) then 把 數(shù)據(jù)報(bào) 傳送給 A else if(表中 有 特定 的一個 具體主機(jī)的一個到 A 的路由) then 將 數(shù)據(jù)報(bào) 傳遞給 表中指定的下一跳 else if(表中 有 一個到網(wǎng)絡(luò) B 的一個路由) then 將 數(shù)據(jù)報(bào) 傳遞給 表中指定的下一跳 else if (表中包含一個默認(rèn)路由); then 將 數(shù)據(jù)報(bào) 傳遞給 表中指定的默認(rèn)路由器 else 通知選路出錯 ICMP 報(bào)文協(xié)議的實(shí)現(xiàn) ICMP 通常被認(rèn)為 IP 層的一個部分,它傳遞差錯報(bào)文及一些需要注意的信息 。 IP 層中會使用 ICMP 報(bào)文, 它是 在 IP 數(shù)據(jù)報(bào)內(nèi)部被傳輸?shù)?,如圖 56。 基于單片機(jī)的 TCP/IP技術(shù)研究及應(yīng)用 25 圖 56 ICMP 封裝在 IP 數(shù)據(jù)報(bào)的內(nèi)部 ICMP 報(bào)文格式如圖 57。 圖 57 ICMP 報(bào)文格式 在 IP 模塊發(fā) 現(xiàn) 傳輸出錯時,首先 做的就是 丟棄出錯 的 數(shù)據(jù)報(bào),然后調(diào)用ICMP 模塊 往 源端主機(jī)發(fā)送 一個 出錯報(bào)文。 ICMP 報(bào)文格式 包含 三 個 部分: 8 位類型字段定義了 ICMP 報(bào)文 的 出錯類型; 8 位 代碼字段給出了這個報(bào) 文類型原因;16 位 的校驗(yàn)和字段; ICMP 報(bào)文 還包含 IP 數(shù)據(jù)報(bào)報(bào)頭 及 出錯 的 數(shù)據(jù)報(bào)的前 64 位數(shù)據(jù)。源端主機(jī) 接 收到 ICMP 差錯報(bào)文后, 會根據(jù) ICMP 報(bào)文 中帶來的 出錯類型交 付 給上層協(xié)議處理出錯 的 信息。 TCP 協(xié)議的實(shí)現(xiàn) TCP 的報(bào)文段 TCP 報(bào)文段是 TCP 協(xié)議封裝數(shù)據(jù)的格式。 TCP 報(bào)文段有首部和數(shù)據(jù)去組成,結(jié)構(gòu)如 圖 58 所示。 圖 58 TCP 報(bào)文段的格式 IP 數(shù)據(jù)報(bào) IP 首部 ICMP 報(bào)文 8 位類型 8 位代碼 校驗(yàn)和 首部的其余部份 數(shù)據(jù) 源端口 目的端口 序列號 確認(rèn)號 首部長度 保留 標(biāo)志 窗口大小 校驗(yàn)和 緊急指針 數(shù)據(jù) 四川理工學(xué)院本科畢業(yè)(設(shè)計(jì))論文 26 每個 TCP 段都包含源端和目的端得的端口號,用來尋找發(fā)端和收段得應(yīng)用進(jìn)程。這兩個值加上 IP 首部的源端 IP 地址和目的端 IP 地址 唯一確定一個 TCP連接。序列號用來標(biāo)識發(fā)端到收段發(fā)送的數(shù)據(jù)字節(jié)流,即發(fā)送序列號。確認(rèn)序號指出了 發(fā)送確認(rèn)一端望 想接收到的 下一個序號。首部長度給出首部中 32bit 字的數(shù)目。與任選字段有關(guān)。標(biāo)識段用來控制 TCP 的流量控制、連接的建立和終止及數(shù)據(jù)的傳送方式,其包括緊急標(biāo)記、確認(rèn)標(biāo)記、同步標(biāo)記、結(jié)束標(biāo)記、重連標(biāo)記、請求推送標(biāo)記。窗口大小的值標(biāo)識這接收段期望收到的字節(jié)數(shù)。 TCP 校驗(yàn)和是一個強(qiáng)制性的字段。 TCP 還 提供了緊急傳送的方式。 TCP 協(xié)議的實(shí)現(xiàn) TCP 是一種面向連接的協(xié)議、全雙工的、可靠的數(shù) 據(jù)流傳輸協(xié)議。它具有保證數(shù)據(jù)可靠性傳輸和數(shù)據(jù)流控制等一些功能。這里包含建立連接、數(shù)據(jù)傳送、釋放連接三個階段。 TCP 在實(shí)現(xiàn)方案中采用了三個模塊,其中一個進(jìn)程處理傳入數(shù)據(jù)模塊,另一個處理輸出數(shù)據(jù)模塊,第三個運(yùn)輸控制塊。在理論來說,每個模塊可以使輸入、輸出及事件定時部分不受影響。但是,實(shí)際上這幾個進(jìn)程關(guān)系密切,相互影響。在 TCP 中通過運(yùn)輸控制理塊 TCB( transmission control block)為每個 TCP 連接協(xié)調(diào)傳送、接收和重發(fā)動作。 運(yùn)輸控制塊 TCB TCP 是面向連接,通信之前發(fā)端 和收段必須建立一條數(shù)據(jù)通道。外部表現(xiàn)為是高可靠性的傳輸連接,在內(nèi)部則是一些緩沖去和一組協(xié)議機(jī)制。 TCP 的連接管理是非常復(fù)雜的,它要處理連接端得標(biāo)識問題,傳輸連接 的建立 、連接的建立及釋放等, TCP 專門 為此 引入數(shù)據(jù)結(jié)構(gòu)來管理和維護(hù)數(shù)據(jù)傳輸細(xì)節(jié)。 TCP 通過運(yùn)輸控制快來協(xié)調(diào)每 一 個 TCP 連接的傳送、接收 及 重發(fā)動作,所有 的 進(jìn)程共享 TCB, TCP 為每 一 個活動的連接都保留一個 TCB。 TCB 數(shù)據(jù)結(jié)構(gòu) ,它 定義了與 TCP 連接 相關(guān) 所需的所有信息:連接當(dāng)前 的 輸入 狀態(tài)字段 、輸出狀態(tài)字段 、 本地和遠(yuǎn)程端口號、本地和遠(yuǎn)程 IP 地址、網(wǎng)絡(luò)接口一個互斥信號量; TCB 結(jié)構(gòu)還包含 有 發(fā)送報(bào)文時所需信息:收端當(dāng)前窗口 的大小、 即將 發(fā)送 的 報(bào)文段的序號、序列中沒 接 收到 的 確認(rèn)報(bào)文的最 小 字節(jié)、最大報(bào)文段的長度 及 擁塞窗口的大小; TCB 用 來 接收報(bào)文段 所需信息 :接收緩沖區(qū)地址、有效數(shù)據(jù) 的 起點(diǎn)字段、計(jì)算緩沖區(qū)字符數(shù)的計(jì)數(shù)器、最大允許報(bào)文段長度和 上 一次通告窗口的序號;重發(fā)操作所需信息:平均往返時間估計(jì)值、連續(xù)重發(fā)基于單片機(jī)的 TCP/IP技術(shù)研究及應(yīng)用 27 接收數(shù)據(jù)窗口 IP 進(jìn)程調(diào)用 tcp_in 處理輸入的報(bào)文段 把輸入的報(bào)文段置入 TCP 輸入端口 有報(bào)文? 從 TCP 輸入端口提取報(bào)文 驗(yàn)證校驗(yàn)和 字節(jié)順序轉(zhuǎn)換 為該字節(jié)查找正確的 TCP 當(dāng)前窗口允許 接收報(bào)文? 收到 丟棄報(bào)文 報(bào)文窗口 被阻塞 有報(bào)文接收 Y Y N N 次數(shù)計(jì)數(shù)器、重發(fā)超時時間。 處理傳入數(shù)據(jù)模塊 當(dāng) IP 層接收到 TCP 報(bào)文段 的 目的站 是本機(jī) 時,調(diào)用 進(jìn)程 tcp_in 往 TCP 輸入端口 傳送到達(dá) 的報(bào)文段, 同時往 TCP 輸入進(jìn)程 傳送 報(bào)文到達(dá) 的 信息, 除此之外還 調(diào)用 TCP 輸入進(jìn)程 tcp_inp 不 停 地從輸入端口提取一個個報(bào)文段, 在 調(diào)用 進(jìn)程tcp_cksum 驗(yàn)證 報(bào)文段的 校驗(yàn) 和及 tcp_ 將其首部字段網(wǎng)絡(luò) 字段 順序轉(zhuǎn)換 為 本地 字段 順序 ,通過 tcp_demux 給 報(bào)文段找出 與之相符 的 TCB、通過 tcp_ok 判斷當(dāng)前窗口 對此 報(bào)文 可以 接收 否 , 如果 不能接收, 返回 一個確認(rèn)報(bào)文, 反之 ,送交上層 協(xié)議 處理。輸入過程流程圖如圖 59 所示。 圖 59 處理傳入數(shù)據(jù)模塊 流程圖 四川理工學(xué)院本科畢業(yè)(設(shè)計(jì))論文 28 處理數(shù)據(jù)輸出模塊 進(jìn)程 tcp_out 實(shí)現(xiàn) TCP 的輸出 ,首先創(chuàng)建一個端口, 用以 隊(duì)列形式保存 報(bào)文 ,端口 的 標(biāo)志號 被 記錄在全局變量 tcpoport 中, 以便 其它 的 進(jìn)程 知道把 報(bào)文發(fā)往何處。 此后 tcp_out 進(jìn)程 進(jìn)入無限循環(huán) 的 狀態(tài),等待下一個報(bào)文 到達(dá)此端口 ,提取報(bào)文, 進(jìn)行 處理。 當(dāng) 端口收到報(bào)文后, tcp_out 利用行數(shù) TCB 跟 EVENT 譯碼 得知 TCB 的 索引值 跟 事件類型 的 值,然后利用 TCB 輸出狀態(tài)變量 tcbostate 及tcp_oswitch 數(shù)組 給 當(dāng)前輸出選擇一個 合適的 過程。輸出流程圖如圖 510 所示。 圖 510 數(shù)據(jù)輸出處理模塊 流程圖 tcp_out 中做了兩個優(yōu)化處理: 第一, 當(dāng) TCB 關(guān)閉 時 ,狀態(tài)處理進(jìn)程不起作用, tcp_out 不 會 調(diào)用處理進(jìn)程, 因此 TCB 的 狀態(tài)在 tcp_out 中 是被 進(jìn)行了判斷的 ;第二, 無論什么 狀態(tài)響應(yīng) delete 事件時都 會 釋放 TCB, 因此 在 tcp_out 中對 輸出數(shù)據(jù)窗口 有報(bào)文? 是 DELETE事件? 給當(dāng)前輸出狀態(tài)選擇
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1