通信軟件設(shè)計(jì)方法第五講狀態(tài)機(jī)程序設(shè)計(jì)與無(wú)狀態(tài)協(xié)議程序設(shè)計(jì)ppt課件.ppt_第1頁(yè)
通信軟件設(shè)計(jì)方法第五講狀態(tài)機(jī)程序設(shè)計(jì)與無(wú)狀態(tài)協(xié)議程序設(shè)計(jì)ppt課件.ppt_第2頁(yè)
通信軟件設(shè)計(jì)方法第五講狀態(tài)機(jī)程序設(shè)計(jì)與無(wú)狀態(tài)協(xié)議程序設(shè)計(jì)ppt課件.ppt_第3頁(yè)
通信軟件設(shè)計(jì)方法第五講狀態(tài)機(jī)程序設(shè)計(jì)與無(wú)狀態(tài)協(xié)議程序設(shè)計(jì)ppt課件.ppt_第4頁(yè)
通信軟件設(shè)計(jì)方法第五講狀態(tài)機(jī)程序設(shè)計(jì)與無(wú)狀態(tài)協(xié)議程序設(shè)計(jì)ppt課件.ppt_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

通信軟件設(shè)計(jì)方法 0 講授內(nèi)容 1 LINUX概況2 LINUX下C語(yǔ)言程序編譯和調(diào)試2 1 LINUX開(kāi)發(fā)環(huán)境學(xué)習(xí) 實(shí)驗(yàn) 3 通信系統(tǒng)和通信軟件4 基于TCP IP的主機(jī)到主機(jī)通信軟件示例4 1 SOCKET程序設(shè)計(jì) 實(shí)驗(yàn) 5 有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì)6 LINUX內(nèi)核程序設(shè)計(jì)7 低層232接口通信程序設(shè)計(jì)8 設(shè)計(jì)一個(gè)簡(jiǎn)單鏈路層以及程序8 1 IP軟件和鏈路層軟件設(shè)計(jì) 實(shí)驗(yàn) 1 本講重點(diǎn)問(wèn)題 如何編寫(xiě)狀態(tài)機(jī)程序 2 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 協(xié)議與狀態(tài)機(jī)狀態(tài)機(jī)程序設(shè)計(jì)IP轉(zhuǎn)發(fā)程序設(shè)計(jì) 3 協(xié)議與狀態(tài)機(jī) 什么是協(xié)議 4 協(xié)議與狀態(tài)機(jī) 標(biāo)準(zhǔn)規(guī)范協(xié)議私有的協(xié)議 協(xié)議就是通信規(guī)程 通信雙方或多方的信息傳輸約定信息傳輸 1 控制信息 數(shù)據(jù) 2 運(yùn)載信息 數(shù)據(jù) 通信系統(tǒng)的核心就是協(xié)議 5 協(xié)議與狀態(tài)機(jī) 協(xié)議分為無(wú)狀態(tài)協(xié)議與有狀態(tài)協(xié)議 無(wú)狀態(tài)協(xié)議 信息處理和歷史記錄無(wú)關(guān)例如IP 有狀態(tài)協(xié)議 信息處理和歷史記錄有關(guān)例如TCP有狀態(tài)協(xié)議用狀態(tài)機(jī)來(lái)表示或者狀態(tài)圖來(lái)表示 6 協(xié)議與狀態(tài)機(jī) 有限狀態(tài)機(jī)的元素 狀態(tài)協(xié)議的一個(gè)邏輯概念 規(guī)定特定狀態(tài)下可以接受特定事件和執(zhí)行相應(yīng)動(dòng)作事件PDU 時(shí)鐘計(jì)數(shù)溢出 系統(tǒng)管理指令動(dòng)作功能程序 7 協(xié)議與狀態(tài)機(jī) 狀態(tài)機(jī)簡(jiǎn)單例子 2個(gè)狀態(tài)4個(gè)事件若干動(dòng)作 狀態(tài)S1Disconnected斷開(kāi) 狀態(tài)S2Connected連接 事件E4 關(guān)閉 Shutdown 送關(guān)閉信息PDU給對(duì)方關(guān)閉時(shí)鐘 事件E1 本地初始化 Initialization 送啟動(dòng)信息PDU給對(duì)方開(kāi)啟時(shí)鐘 事件E2 收到對(duì)方來(lái)的數(shù)據(jù)PDU ProtocolMessage 處理接收的PDU 事件E3 時(shí)鐘到 TimerExpiry 定時(shí)處理 8 協(xié)議與狀態(tài)機(jī) 如何編寫(xiě)這個(gè)狀態(tài)機(jī)程序 9 狀態(tài)機(jī)程序設(shè)計(jì) 示例6 Switch case結(jié)構(gòu)方法 switch event caseE1 Initialize If current state DISCONNECTED InitializeProtocol current state CONNECTED break caseE2 ProtocolMessages If current state CONNECTED ProcessMessages break caseE3 TimerEvent s If current state CONNECTED ProcessTimers break caseE4 DisconnectEvent If current state CONNECTED ShutdownProtocol current state DISCONNECTED break default logError InvalidEvent current state event break intevent intcurrent stat Event變量的數(shù)值從哪里獲得 增加case語(yǔ)句 再用switch case結(jié)構(gòu) 10 狀態(tài)機(jī)程序設(shè)計(jì) switch case結(jié)構(gòu) 主循環(huán) while 1 get event 獲得事件 判斷事件 根據(jù)狀態(tài)情況處理事件 11 狀態(tài)機(jī)程序設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)方法 狀態(tài)事件表矩陣M N N表示狀態(tài)數(shù)量 M表示事件數(shù)量交叉點(diǎn)中 Action NextState M事件 N狀態(tài) 12 狀態(tài)機(jī)程序設(shè)計(jì) 示例7 數(shù)據(jù)結(jié)構(gòu)方法 程序 當(dāng)前狀態(tài)和事件的入口是Set Event CurrentState while 1 get event 入口矩陣是Set M N structenter Action intnext state Set M N 函數(shù)參數(shù) structparameter PDU pdup Environment ep parameter 13 狀態(tài)機(jī)程序設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)方法 表 14 協(xié)議與狀態(tài)機(jī) TCP的狀態(tài)機(jī)是什么 15 TCP的有限狀態(tài)機(jī) CLOSED ESTABLISHED LISTEN CLOSE WAIT FIN WAIT 1 SYN RCVD FIN WAIT 2 CLOSING TIME WAIT SYN SENT LAST ACK 主動(dòng)打開(kāi) 被動(dòng)打開(kāi) 被動(dòng)關(guān)閉 主動(dòng)關(guān)閉 起點(diǎn) 被動(dòng)打開(kāi) 主動(dòng)打開(kāi)發(fā)送SYN 同時(shí)打開(kāi) 收到SYN 發(fā)送SYN ACK 收到ACK 數(shù)據(jù)傳送階段 關(guān)閉發(fā)送FIN 關(guān)閉發(fā)送FIN 關(guān)閉發(fā)送FIN 收到RST 收到SYN發(fā)送SYN ACK 關(guān)閉或超時(shí) 收到ACK 收到SYN ACK發(fā)送ACK 收到ACK 收到ACK 收到FIN發(fā)送ACK 收到FIN ACK發(fā)送ACK 收到FIN發(fā)送ACK 同時(shí)關(guān)閉 收到FIN發(fā)送ACK 發(fā)送SYN 定時(shí)經(jīng)過(guò)兩倍報(bào)文段壽命后 關(guān)閉 16 設(shè)置互斥 事件隊(duì)列為空 恢復(fù)互斥 取出事件 事件分析和處理 睡眠等待 如事件隊(duì)列空 則從發(fā)送隊(duì)列中取隊(duì)列頭塊根據(jù)頭塊的標(biāo)記做TCP IP包并向IP層傳遞 事件分析和處理 WU2PIOC WU2PD WP2UWA WI2PD WP2IWA WU2PCL WTMO 執(zhí)行高層的ioctl請(qǐng)求 處理高層傳來(lái)的數(shù)據(jù) 修改連接接收窗口 接受IP數(shù)據(jù)包 修改向IP發(fā)送數(shù)據(jù)窗口 接收高層關(guān)閉連接請(qǐng)求 超時(shí)處理 TCP進(jìn)程主流程 比如打開(kāi)連接 流控 17 本章重點(diǎn)問(wèn)題 如何編寫(xiě)IP程序 18 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP的功能是什么 19 通信網(wǎng)絡(luò)系統(tǒng) 20 通信網(wǎng)絡(luò)系統(tǒng) 數(shù)據(jù)包交換 以太網(wǎng)絡(luò) 點(diǎn)到點(diǎn)網(wǎng)絡(luò) 21 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 網(wǎng)絡(luò)接口 緩沖區(qū)數(shù)據(jù)隊(duì)列 轉(zhuǎn)發(fā)表 路由表 IP接收和轉(zhuǎn)發(fā) 接收緩沖區(qū) 接收緩沖區(qū) 接收緩沖區(qū) 接收緩沖區(qū) 接收緩沖區(qū) 每個(gè)網(wǎng)絡(luò)接口設(shè)計(jì)一個(gè)隊(duì)列 核外進(jìn)程部分 接口中斷處理子程序 接收緩沖區(qū) 其他任務(wù) IP數(shù)據(jù)報(bào)文隊(duì)列 22 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP的軟件包有那些模塊 23 數(shù)據(jù)包處理模塊 添加首部模塊 重裝模塊 路由尋找模塊 分片模塊 IP分組 IP分組 IP分組 TCP IP分組 TCP IP分組 目的地址 IP分組下一跳接口 IP分組 下一跳 IP分組 重裝表 路由表 MTU表 IP軟件包 ARP以及數(shù)據(jù)鏈路層 TCP層 接口號(hào) 目的地址 分片標(biāo)記等 24 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP主程序 while 1 判斷輸入隊(duì)列有IP報(bào)文嗎 如沒(méi)有 則睡眠從輸入隊(duì)列中取一個(gè)IP報(bào)文調(diào)用數(shù)據(jù)包報(bào)文處理模塊根據(jù)處理結(jié)果出錯(cuò) 拋棄改報(bào)文 結(jié)束本次循環(huán)本機(jī)報(bào)文 調(diào)用重裝模塊轉(zhuǎn)發(fā)報(bào)文 調(diào)用路由尋找模塊如存在路由 則調(diào)用下層模塊 25 數(shù)據(jù)包處理模塊 添加首部模塊 IP分組 IP分組 TCP IP分組 目的地址 處理模塊 參數(shù)是需要處理的IP報(bào)文 1 檢查數(shù)據(jù)報(bào)文1 版本合法2 長(zhǎng)度合法3 檢驗(yàn)和正確4 以上之一是NO 出錯(cuò)返回2 若目的地址是127 x x x或是本地IP地址A 本機(jī)返回3 若是路由器A TTL減1 如TTL為0則出錯(cuò)返回4 轉(zhuǎn)發(fā)返回 TCP層 ARP以及數(shù)據(jù)鏈路層 26 路由尋找模塊 IP分組 TCP IP分組 IP分組下一跳接口 IP分組 下一跳 路由表 IP軟件包 ARP以及數(shù)據(jù)鏈路層 TCP層 目的地址 27 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP路由表 Q S 10 0 0 5 20 0 0 5 30 0 0 6 40 0 0 7 30 0 0 7 20 0 0 6 R 40 0 0 0 30 0 0 0 20 0 0 0 10 0 0 0 路由器R的路由表 要到達(dá)的網(wǎng)絡(luò) 下一個(gè)路由器 下一跳 20 0 0 5 30 0 0 5 10 0 0 5 40 0 0 5 直接 30 0 0 7 20 0 0 5 直接 28 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP路由交換 路由選擇的次序?yàn)?直接交付特定主機(jī)路由選擇特定網(wǎng)絡(luò)路由選擇默認(rèn)路由選擇 29 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP路由交換 從數(shù)據(jù)報(bào)中提取目的IP地址D A 對(duì)路由表中的每一個(gè)項(xiàng)目I 并計(jì)算網(wǎng)絡(luò)前綴NA 若N與I的網(wǎng)絡(luò)的地址匹配 和目的地址比較 1 如是網(wǎng)關(guān) G出現(xiàn) 使用路由表中的下一跳項(xiàng)目作為下一跳地址 間接交付 2 如不是網(wǎng)關(guān) G不出現(xiàn) 使用分組的目的地址作為下一跳地址 直接交付 3 把分組連同下一跳地址傳送到分片模塊4 停止B 找不到匹配 則發(fā)送給報(bào)文源ICMP差錯(cuò)報(bào)文C 停止 30 路由尋找模塊 IP分組 TCP IP分組 IP分組下一跳接口 IP分組 下一跳 路由表 IP軟件包 ARP以及數(shù)據(jù)鏈路層 TCP層 目的地址 路由尋找模塊1 取得數(shù)據(jù)報(bào)文中目的地址D2 從頭到尾循環(huán)檢查路由表 當(dāng)前i 1 求出D的網(wǎng)絡(luò)地址N2 比較N和路由表的 i 目的地址3 如匹配轉(zhuǎn)43 如查找完成 但尚未存在匹配則1 出錯(cuò)返回4 從路由表 i 中取得出口號(hào)碼5 存在路由返回 31 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP軟件的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)是哪幾個(gè) 32 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP數(shù)據(jù)包格式 33 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) typedefunsignedcharu int8 t 8位typedefunsignedshortu short 16位structip addr unsignedlongIP addr IP地址 占32位 structip mask unsignedlongIP mask IP掩碼 占32位 示例程序8 34 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) structip hdr unsignedshortintIP v 4 版本號(hào)碼unsignedshortintIP hl 4 首部長(zhǎng)度u int8 tIP tos 服務(wù)類(lèi)型u shortIP len 數(shù)據(jù)報(bào)文總長(zhǎng)度u shortIP id 標(biāo)識(shí)u shortIP off 分段偏移u int8 tIP ttl 存活時(shí)間u int8 tIP p 協(xié)議號(hào)碼u shortIP sum 檢驗(yàn)和structip addrIP src IP dst 源IP地址和目的IP地址 35 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 固定長(zhǎng)度的IP數(shù)據(jù)報(bào)文 defineIP DATA1024structip data structip hdrIP hdr charIP data IP DATA 36 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 輸入隊(duì)列 defineINPUT QUEUE100structip dataIP InputQueue INPUT QUEUE intIP InputQueue head IP InputQueue tail 輸出到低層隊(duì)列 有低層定義 IP傳輸IP報(bào)文給低層模塊 程序即可輸出到高層隊(duì)列 defineOUTPUT QUEUE TRAN10structip dataIP OutQueueToTran OUTPUT QUEUE TRAN intIP OutQueueToTran head IP OutQueueToTran tail 37 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP路由表 4byte4byte4byte1byte1int1long1int 38 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP路由表數(shù)據(jù)類(lèi)型 structrouting table structip maskRT mask structip addrRT IP address structip addrRT IP next charRT flag intRT datagram count longRT user conut intRT interface 掩碼 4byte目的地址 4byte下一跳地址 4byte標(biāo)記 1byte引用記數(shù) 1int使用記數(shù) 1long接口號(hào)碼 1int 39 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP路由表變量數(shù)組 defineROUTING TABLE MAX NUMBER10structrouting tableRoutingTable ROUTING TABLE MAX NUMBER 40 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP軟件的關(guān)鍵函數(shù)是哪幾個(gè) 41 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 處理模塊 參數(shù)是需要處理的IP報(bào)文 1 檢查數(shù)據(jù)報(bào)文1 版本合法2 長(zhǎng)度合法3 檢驗(yàn)和正確4 以上之一是NO 出錯(cuò)返回2 若目的地址是127 x x x或是本地IP地址A 本機(jī)返回3 若是路由器A TTL減1 如TTL為0則出錯(cuò)返回4 轉(zhuǎn)發(fā)返回 CheckIpData IP報(bào)文指針 返回值 1 合法 1 版本錯(cuò)誤 2 長(zhǎng)度錯(cuò)誤 3 檢驗(yàn)和不正確 IsThisMachine IP報(bào)文指針 返回值 1 轉(zhuǎn)發(fā)2 本機(jī)接收 1 錯(cuò)誤本機(jī)地址變量 ThisIPAddress 路由器標(biāo)記變量IsRouter值 1是路由器 0是主機(jī) 42 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 路由尋找模塊1 取得數(shù)據(jù)報(bào)文中目的地址D2 從頭到尾循環(huán)檢查路由表 當(dāng)前i 1 求出D的網(wǎng)絡(luò)地址N2 比較N和路由表的 i 目的地址3 如匹配轉(zhuǎn)53 如查找完成 但尚未存在匹配則1 出錯(cuò)返回4 從路由表 i 中取得出口號(hào)碼5 存在路由返回 Analyze structip addr NetP structip addr DestP 返回值 0 不匹配1 匹配 43 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP軟件包的模塊程序怎么寫(xiě) 44 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IpDataProcess structip data IpDataP intCheckR CheckR CheckIpData IpDataP switch CheckR caseVER INVALID caseLENTH INVALID caseCHECK SUM FAILING if IsThisMachine IpDataP IP Dst returnTHIS MACHINE if IsRouter intttl IpDataP IP ttl if ttl 0 rerurnPROCESS IPDATA TTL CheckSum IpDataP returnFORWARD 處理模塊 參數(shù)是需要處理的IP報(bào)文 1 檢查數(shù)據(jù)報(bào)文1 版本合法2 長(zhǎng)度合法3 檢驗(yàn)和正確4 以上之一是NO 出錯(cuò)返回2 若目的地址是127 x x x或是本地IP地址A 本機(jī)返回3 若是路由器A TTL減1 如TTL為0則出錯(cuò)返回4 轉(zhuǎn)發(fā)返回 45 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IpDataProcess structip data IpDataP intCheckR CheckR CheckIpData IpDataP switch CheckR caseVER INVALID ret PROCESS IPDATA VER gotoleave caseLENTH INVALID ret PROCESS IPDATA LENTH gotoleave caseCHECK SUM FAILING ret PROCESS IPDATA CHECK SUM gotoleave if IsThisMachine IpDataP IP Dst returnTHIS MACHINE if IsRouter intttl IpDataP IP ttl if ttl 0 rer PROCESS IPDATA TTL gotoleave CheckSum IpDataP ret PROCESS IPDATA OK Leave returnret 46 IsForwardOrdiscard structip data IpDataP int IfNoP intRoutingTableIndex structip addrDest bcopy 路由尋找模塊1 取得數(shù)據(jù)報(bào)文中目的地址D2 從頭到尾循環(huán)檢查路由表 當(dāng)前i 1 求出網(wǎng)絡(luò)地址N2 比較N和路由表的 i 目的地址3 如匹配轉(zhuǎn)53 如查找完成 但尚未存在匹配則1 出錯(cuò)返回4 從路由表 i 中取得出口號(hào)碼5 存在路由返回 47 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IsForwardOrdiscard structip data IpDataP int IfNoP intRoutingTableIndex structip addrDest bcopy 48 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IsThisMachine structip addr DestP if DestP 127 return1 returnAnalyze 49 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) Resolve structip mask MaskP structip addr DestP structip addr NetP inti char d char DestP char m char MaskP char n char NetPfor i 0 i siezof DestP i n d 50 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) IP軟件包中隊(duì)列操作如何寫(xiě) 51 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 隊(duì)列首下標(biāo) 隊(duì)列尾下標(biāo) 取IP數(shù)據(jù)報(bào)文 不釋放空間 返回隊(duì)列首下標(biāo)的地址 放IP數(shù)據(jù)報(bào)文把數(shù)據(jù)報(bào)文拷貝到隊(duì)列下標(biāo)指示的地址空間中 隊(duì)列下標(biāo) if 隊(duì)列下標(biāo)到最大值 隊(duì)列下標(biāo) 0 釋放空間隊(duì)列首下標(biāo) if 下標(biāo)到最大值 隊(duì)列下標(biāo) 0 52 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 輸入隊(duì)列 defineINPUT QUEUE100structip dataIP InputQueue INPUT QUEUE intIP InputQueue head IP InputQueue tail 輸出到低層隊(duì)列 低層定義輸出到高層隊(duì)列 defineOUTPUT QUEUE TRAN10structip dataIP OutQueueToTran OUTPUT QUEUE TRAN intIP OutQueueToTran head IP OutQueueToTran tail 53 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 輸入隊(duì)列 defineINPUT QUEUE100structip dataIP InputQueue INPUT QUEUE intIP InputQueue head IP InputQueue tail 從輸入隊(duì)列釋放一個(gè)IP數(shù)據(jù)報(bào)文空間操作ReleaseIP InputQueue IP InputQueue head if IP InputQueue head INPUT QUEUE IP InputQueue head 0 54 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 輸入隊(duì)列 defineINPUT QUEUE100structip dataIP InputQueue INPUT QUEUE intIP InputQueue head IP InputQueue tail 從輸入隊(duì)列取一個(gè)IP數(shù)據(jù)報(bào)文操作 不釋放 不拷貝 structip data GetIPDataFromInputQueue return 55 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 輸入隊(duì)列 defineINPUT QUEUE100structip dataIP InputQueue INPUT QUEUE intIP InputQueue head IP InputQueue tail 放IP數(shù)據(jù)報(bào)文到輸入隊(duì)列操作 保證有空間 PutIPDataToIP InputQueue structip data IPDataP reigsterintindex IP InputQueue tail bcopy IPDataP IP InputQueue index sizeof IPData if index INPUT QUEUE index 0 IP InputQueue tail index 56 第五講有狀態(tài)與無(wú)狀態(tài)通信協(xié)議程序設(shè)計(jì) 輸出隊(duì)列到高層 defineOUTPUT QUEUE TR

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論