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

正文內(nèi)容

電子科學(xué)與技術(shù)單片機(jī)tcpip論文初稿-文庫吧資料

2025-07-03 16:48本頁面
  

【正文】 ip_ipaddr(ipaddr , 192,168,1,9)。 /*應(yīng)用層初始化*/ exam ple1_init()。 /*協(xié)議棧初始化*/ uip_init()。arp_timer, CLOCK_CONF_SECOND * 10)。periodic_timer, CLOCK_CONF_SECOND / 2)。 151.初始化 uIP 協(xié)議棧:uip_init() 2.處理輸入包:uip_input() 3.處理周期計時事件:uip_periodic() 4.開始監(jiān)聽端口:uip_listen() 5.連接到遠(yuǎn)程主機(jī):uip_connect() 6.接收到連接請求:uip_connected() 7.主動關(guān)閉連接:uip_close() 8.連接被關(guān)閉:uip_closed()9.發(fā)出去的數(shù)據(jù)被應(yīng)答:uip_acked() 10.在當(dāng)前連接發(fā)送數(shù)據(jù):uip_send() 11.在當(dāng)前連接上收到新的數(shù)據(jù):uip_newdata() 12.告訴對方要停止連接:uip_stop() 13.連接被意外終止:uip_aborted()4 在單片機(jī)上移植 uIP 了解 uIP 的的主循環(huán)代碼架構(gòu)并改寫 main 函數(shù)下面是 uIP 協(xié)議棧的主控制循環(huán)。在應(yīng)用程序函數(shù)中,依靠 ulP 事件檢測函數(shù)來決定處理的方法,另外可以通過判斷當(dāng)前連接的端 口號來區(qū)分處理不同的連接。uIP_conn 記錄一條 TCP 連接的所有相關(guān)信息,它是維持 uIP 運行的關(guān)鍵結(jié)構(gòu),定義如下 : struct tcp_conn{ u8_t tcpstateflags;// T C P 的狀態(tài)和標(biāo)志 u16_t lport,rpert ;// 當(dāng)?shù)睾瓦h(yuǎn)端端口 u16_t fipodar[ 2 ] ;// 遠(yuǎn)端的地址 u8_t rcv_nxt [ 4 ] ; // 下一個要接收的序列號 u8_t sod _xt [ 4 ] ;//上一個已發(fā)送的序列號 u8_t aek nxt [ 4 ] ;//對端下一個應(yīng)答序列號 u8_t timer ;// 重傳時間 u8_t nrtx ;//計算特殊段的重發(fā)數(shù)量 u8_t mss ;// 連接中最大分段的大小 u8_t appstate [ UIP_APPSTATE_SIZE] ; } 為了將用戶的應(yīng)用程序掛接到 uIP 中, 必須將宏 UIP_APPCALL ( ) 定義成實際的應(yīng)用程序函數(shù)名,這樣每當(dāng)某個 ulP 事件發(fā)生時,內(nèi)核就會調(diào)用該應(yīng)用程序進(jìn)行處理 。uIP 在接受到底層傳來的數(shù)據(jù)包后 ,如果需要送上層應(yīng)用程序 處理 ,就調(diào)用 UIP_APPCLL()。同時,應(yīng)用程序還要周期查詢是否有新的數(shù)據(jù)收發(fā)。 應(yīng)用程序接口 uIP 使用基于事件的程序模式,應(yīng)用程序由 c 語言函數(shù)實現(xiàn)。ethemet_devicedriver_send()。I++){uip_periodic(i)。以下示例即為 u l P 內(nèi)核對各連接的定時輪循過程 :for(i=0。uip_buf[ O ] ) uip _len=ethemet_devicedriver_poll ( ) ; // 接收以太網(wǎng)數(shù)據(jù)包 ( 設(shè)備驅(qū)動程序) if(uip_len0){ //收到數(shù)據(jù) if(BUFtype::HTONS(UIP_ETHTYPE_IP)){// 是 I P 包 嗎? uip_arp_ipin(); //去除以太網(wǎng)頭結(jié)構(gòu) , 更新 A R P 表 uip_input ; //I P 包處理13if(uip_len0){ // 有帶外回應(yīng)數(shù)據(jù) uip_arpout(); // 加以太網(wǎng)頭結(jié)構(gòu)在主動連接時可能要構(gòu)造 ARP 請求 ethemet_devicedriver_send();// 發(fā)送數(shù)據(jù)到 以太 網(wǎng)( 設(shè)備驅(qū)動程序 ) } } elseif(sottype==HTONS(UIPETHTYPEARP)){ //是 A RP 請求包 uip_arp_arpin ( ) ;// 如果是 ARP 回應(yīng)更新 ARP 表如果是請求 ,構(gòu)造回應(yīng)數(shù)據(jù)包 if(uip_len0) {// 是 ARP 請求 ,要發(fā)送回應(yīng) Ether_devicedriver_send();// 發(fā) ARP 回應(yīng)到以太網(wǎng)上 } } 另一個 ulP 內(nèi)核直接提供給底層設(shè)備驅(qū)動程序的函數(shù)是 uip_periodic(conn) 。當(dāng)需要 ARP 支持時,還需要考慮更新 ARP 表示 或發(fā)出 ARP 請求和回應(yīng)。一個是 uip_ input ( ) , 當(dāng)設(shè)備驅(qū)動程序從網(wǎng)絡(luò)層收到的一個數(shù)據(jù)包時要調(diào)用這個函數(shù) ,設(shè)備驅(qū)動程序必須事先將數(shù)據(jù)包存入到 uipbur 中包長放到 uip_len,然后交由 uip_input ( ) 處理。應(yīng)用程序向 ulP 提供一個調(diào)用函數(shù) uipappcall ( ) ,在網(wǎng)絡(luò)事件或計時事件發(fā)生時進(jìn)行調(diào)用,同時 uIP 也要向應(yīng)用程序提供一些與協(xié)議棧的接口函數(shù),應(yīng)用程序根據(jù)接口函數(shù)提供的信息或者狀態(tài) ,執(zhí)行相應(yīng)的操作。圖 1 描述了 ulP、底層系統(tǒng)和應(yīng)用程序三者之間的調(diào)用關(guān)系。表 1 列出了 ulP 在 stc89c516rd 上代碼和 RAM 占用情況。TCP / IP 協(xié)議組11中的鏈路層協(xié)議如 PPP 等可由 uIP 之下的設(shè)備驅(qū)動實現(xiàn);應(yīng)用層協(xié)議如 HTTP、 FTP、SMTP 等可由 ulP 之上的應(yīng)用程序?qū)崿F(xiàn)。其設(shè)計重點放在 IP、 ICMP 和 TCP 協(xié)議的實現(xiàn)上 ,協(xié)議雖然也同時實現(xiàn)了 UDP 和ARP 協(xié)議,但僅將其作為可選模塊 。103 uip 介紹3. 1 u I P 協(xié)議棧及其體系結(jié)構(gòu)uIP 由瑞典計算機(jī)科學(xué)學(xué)院 (網(wǎng)絡(luò)嵌入式系統(tǒng)小組)的 Adam Dunkels 開發(fā)。也就是說通過子網(wǎng)掩碼分辨一個網(wǎng)絡(luò)的網(wǎng)絡(luò)部分和主機(jī)部分子網(wǎng)掩碼一旦設(shè)置,網(wǎng)絡(luò)地址 和主機(jī)地址就固定了。在定義子網(wǎng)掩碼前,必須弄清楚本來使用的子網(wǎng)數(shù)和主機(jī)數(shù)目?! P 地址類別 RFC 1918 內(nèi)部地址范圍  A 類  到   B 類  到   C 類  到 子網(wǎng)掩碼是一個 32 位地址,用于屏蔽 IP 地址的一部分以區(qū)別網(wǎng)絡(luò)標(biāo)識和主機(jī)標(biāo)識,并說明該 IP 地址是在局域網(wǎng)上,還是在遠(yuǎn)程網(wǎng)上?! FC 1918 留出了 3 塊 IP 地址空間(1 個 A 類地址段,16 個 B 類地址段,256個 C 類地址段)作為私有的內(nèi)部使用的地址。  一個 C 類地址是由 3 個字節(jié)的網(wǎng)絡(luò)地址和 1 個字節(jié)的主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是 “110” ,即第一段數(shù)字范圍為 192~223。以下只對 C 類進(jìn)行詳述:C 類地址的表示范圍為: 到 ,默認(rèn)網(wǎng)絡(luò)屏蔽為:;C 類地址分配給小型網(wǎng)絡(luò),如一般的局域網(wǎng),它可連接的主機(jī)數(shù)量是最少的,采用把所屬的用戶分為若干的網(wǎng)段進(jìn)行管理。IP 地址可確認(rèn)網(wǎng)絡(luò)中的任何一個網(wǎng)絡(luò)和計算機(jī),而要識別其它網(wǎng)絡(luò)或其中的計算機(jī),則是根據(jù)這些 IP 地址的分類來確定的。這些端口號是‘廣為人知’的,因為在建立與特定的主機(jī)或服務(wù)的連接時,需要這些地址和目的地址進(jìn)行通訊。一個端口對應(yīng)一個 16 比特的數(shù)?! ∧康亩丝?目的系統(tǒng)上的連接的端口?! ∧康?IP 地址 接收包的 IP 地址。因而,這個連接是雙工的,可以用來進(jìn)行讀寫。用戶使用 Tel 客戶程序與服務(wù)進(jìn)程建立8一個連接。 PING 是最常用的基于 ICMP 的服務(wù)。ICMP 的‘Redirect’信息通知主機(jī)通向其他系統(tǒng)的更準(zhǔn)確的路徑,而‘Unreachable’信息則指出路徑有問題?! CMP 與 IP 位于同一層,它被用來傳送 IP 的的控制信息。使用 UDP 的服務(wù)包括 NTP(網(wǎng)絡(luò)時間協(xié)議)和 DNS(DNS 也使用 TCP) 。因此,UDP 不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP 主要用于那些面向查詢 應(yīng)答的服務(wù),例如 NFS。DNS 在某些情況下使用 TCP(發(fā)送和接收域名數(shù)據(jù)庫) ,但使用 UDP 傳送有關(guān)單個主機(jī)的信息。應(yīng)用程序輪流將信息送回 TCP 層,TCP 層便將它們向下傳送到 IP 層,設(shè)備驅(qū)動程序和物理介質(zhì),最后到接收方。TCP 數(shù)據(jù)包中包括序號和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。  如果 IP 數(shù)據(jù)包中有已經(jīng)封好的 TCP 數(shù)據(jù)包,那么 IP 將把它們向‘上’傳送到 TCP 層。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進(jìn)行平常是被禁止的連接。IP 確認(rèn)包含一個選項,叫作 IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。  高層的 TCP 和 UDP 服務(wù)在接收數(shù)據(jù)包時,通常假設(shè)包中的源地址是有效的。IP 數(shù)據(jù)包是不可靠的,因為 IP 并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞?! 【W(wǎng)際協(xié)議 IP 是 TCP/IP 的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。以下是協(xié)議族中一些常用協(xié)議英文名稱和用途:  TCP(Transport Control Protocol)傳輸控制協(xié)議  IP(Inter Protocol)因特網(wǎng)協(xié)議  UDP(User Datagram Protocol)用戶數(shù)據(jù)報協(xié)議  ICMP(Inter Control Message Protocol)互聯(lián)網(wǎng)控制信息協(xié)議  SMTP(Simple Mail Transfer Protocol)簡單郵件傳輸協(xié)議  SNMP(Simple Network manage Protocol)簡單網(wǎng)絡(luò)管理協(xié)議  FTP(File Transfer Protocol)文件傳輸協(xié)議  ARP(Address Resolution Protocol)地址解析協(xié)議  TCP/IP 協(xié)議簇分為四層,IP 位于協(xié)議簇的第二層(對應(yīng) OSI 的第三層),TCP位于協(xié)議簇的第三層(對應(yīng) OSI 的第四層)。其他協(xié)議是網(wǎng)絡(luò)主機(jī)用來交換路由信息的,包括 Inter 控制信息協(xié)議(ICMP) ,內(nèi)部網(wǎng)關(guān)協(xié)議(IGP) ,外部網(wǎng)關(guān)協(xié)議(EGP) ,邊界網(wǎng)關(guān)協(xié)議(BGP) 。這些協(xié)議壓縮 IP 包后通過撥號電話線發(fā)送到對方的調(diào)制解調(diào)器中。這些協(xié)議通常和 TCP/IP 協(xié)議打包在一起。 許多用戶熟悉使用 TCP/IP 協(xié)議的高層應(yīng)用協(xié)議。TCP/IP 與上層應(yīng)用程序之間可以說是“沒有國籍的” ,因為每個客戶請求都被看做是與上一個請求無關(guān)的。 TCP/IP 使用客戶端/服務(wù)器模式進(jìn)行通信。網(wǎng)絡(luò)上的網(wǎng)關(guān)計算機(jī)根據(jù)信息的地址來進(jìn)行路由選擇。由于 UDP 不使用很繁瑣的流控制或錯誤恢復(fù)機(jī)制,只充當(dāng)數(shù)據(jù)報的發(fā)送者和接收者,因此,UDP 比 TCP 簡單得多。TCP 協(xié)議是在 IP 協(xié)議提供的服務(wù)基礎(chǔ)上,支持面向連接的、可靠地傳輸服務(wù),是負(fù)責(zé)聚集信息或把文件拆分成更小的包。TCP/IP 協(xié)議集在應(yīng)用層上有遠(yuǎn)程登錄協(xié)議(Tel) 、文件傳輸協(xié)議(FTP) 、電子郵箱協(xié)議(SMTP) 、域名系統(tǒng)(DNS)等,它們構(gòu)成了 TCP/IP 的基本應(yīng)用程序。5 TCP/IP 的分層體系結(jié)構(gòu)TCP/IP 是一個分層體系結(jié)構(gòu)。TCP/IP 協(xié)議是由 100多個協(xié)議組成的協(xié)議集,TCP 和 IP 是其中兩個最重要的協(xié)議。Inter 采用的就是TCP/IP 協(xié)議,網(wǎng)絡(luò)上各種各樣的計算機(jī)上只要安裝了 TCP /IP 協(xié)議,它們之間就能相互通信。低層是網(wǎng)際協(xié)議,它處理每個包的地址部分,使這些包正確的到達(dá)目的地。TCP/IP 是一個四層的分層體系結(jié)構(gòu)。2 TCP/IP 協(xié)議 TCP/IP 簡介TCP/IP(Transmission Control Protocol/Inter Protocol)的簡寫,中文譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又叫網(wǎng)絡(luò)通訊協(xié)議,這個協(xié)議是 Inter 最基本的協(xié)議、Inter 國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),簡單地說,就是由網(wǎng)絡(luò)層的 IP 協(xié)議和傳輸層的 TCP 協(xié)議組成的。本文主要對 uIP移植到單片機(jī)上進(jìn)行研究,難點是了解 TCP/IP 協(xié)議棧的構(gòu)成和對網(wǎng)卡的驅(qū)動。深入了解 TCP/IP 協(xié)議棧的構(gòu)成。要在單片機(jī)上實現(xiàn) TCP/IP 協(xié)議需要對計算機(jī)網(wǎng)絡(luò)知識有所了解。支持多 TCP 連接、多UDP 連接同時運行,可以用于 51 單片機(jī) TCP/IP 上網(wǎng)解決方案。在國內(nèi) ZLIP 是專門為 51 單片機(jī)設(shè)計的嵌入式 TCP/IP 協(xié)議棧,可以在有操作系統(tǒng)和沒有操作系統(tǒng)情況下運4行,具有代碼量適中、運行速度快、用戶接口簡單、兼容 BSD socket 接口的特點。代碼基于 BSD(很像所有其它棧)但對非常小的覆蓋范圍功能有所減少。uIP 協(xié)議棧是專門為嵌入式系統(tǒng)而設(shè)計的協(xié)議棧,其源代碼由 C 語言編寫,并完全公開。在國外已有專門機(jī)構(gòu)對在嵌入式設(shè)備上實現(xiàn) TCP/IP 進(jìn)行研究。設(shè)計過程在保留協(xié)議的基本構(gòu)架的基礎(chǔ)上盡可能進(jìn)行精簡,以提高傳輸速度。所以只要在單片機(jī)上實現(xiàn)居于 TCP/IP 協(xié)議的通信,就能讓單片機(jī)控制的電子設(shè)備進(jìn)入互聯(lián)網(wǎng),實現(xiàn)遠(yuǎn)程操作,數(shù)據(jù)共享。而且 TCP/IP 已成為當(dāng)今計算機(jī)網(wǎng)絡(luò)最成熟、應(yīng)用最廣的互聯(lián)協(xié)議。這將解決在某些惡劣環(huán)境下由人親自操作電子設(shè)備而帶來的危險。t be stressed on the speed of munication , instead it should be focused on reducing redundant functions for reducing the use of RAM. The desi
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1