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

正文內(nèi)容

嵌入式webserver的設(shè)計與實現(xiàn)(編輯修改稿)

2025-07-26 23:39 本頁面
 

【文章內(nèi)容簡介】 K * 8位的快速閃存,它的結(jié)構(gòu)為256字節(jié)為一頁,每頁的擦寫時間為5mS,整片擦除時間為50mS。管腳表如下: W29C040 FLASH ROM 表24 W29C040管腳列表管腳名稱功能描述A0A18地址的輸入口DQ0DQ7數(shù)據(jù)的輸入/輸出口CE 片選腳OE讀腳WE寫腳Vdd5V腳Vss地 圖25W29C040管腳圖 3.TCP/IP協(xié)議簡介3.1 分層結(jié)構(gòu)對于一個功能齊全以太網(wǎng)WEB服務(wù)器,需要一下幾個協(xié)議:地址解析協(xié)議(ARP),網(wǎng)際協(xié)議(IP),網(wǎng)際控制消息協(xié)議(ICMP),傳輸控制協(xié)議(TCP),超文本傳輸協(xié)議(HTTP),它們的關(guān)系圖如下:用戶進程用戶進程用戶進程用戶進程TCPUDPIPIGMPICMP硬件接口RARPARP媒 體 應(yīng)用層 運輸層 網(wǎng)絡(luò)層 鏈路層 圖31 TCP/IP協(xié)議族中不同層次的協(xié)議TCP/IP協(xié)議最先是在UNIX系統(tǒng)里實現(xiàn)的,后來的LINUX、DOS、Windows也實現(xiàn)了TCP/IP,隨后TCP/IP協(xié)議也被移植到其它嵌入式的處理器上。由于指令的原因,以及資源上的原因,在UNIX上實現(xiàn)的TCP/IP協(xié)議的源代碼并不能直接移植到8位的單片機上。并且單片機根本沒有足夠的代碼空間實現(xiàn)全部協(xié)議。一般在單片機里只實現(xiàn)與需要有關(guān)的部分,不使用的協(xié)議一概不支持?;谶@一思想,我們在設(shè)計嵌入式Internet時就可以在TCP/IP協(xié)議的子集中實現(xiàn),從而降低設(shè)計的難度。本文僅介紹與嵌入式WEB SERVER編程密切相關(guān)的部分:TCP/IP協(xié)議的分層結(jié)構(gòu)及其報文格式。TCP/IP協(xié)議采用分層結(jié)構(gòu),它是一個四層協(xié)議系統(tǒng),每一層負責不同的功能,其分層模型及協(xié)議如下表31: 表31分層模型及協(xié)議應(yīng)用層 ApplicationHTTP , Telnet , FTP , SMTP , SNMP傳輸層 TransportTCP , UDP網(wǎng)絡(luò)層 InternetIP (ARP , RARP , ICMP , IGMP )鏈路層 NetworkEthernet , X , SLIP , PPP 封裝當應(yīng)用程序用TCP傳送數(shù)據(jù)時,數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個通過每一層直到被當作一串比特流送入網(wǎng)絡(luò)。其中每一層對收到的數(shù)據(jù)都要增加一些首部信息(有時還要增加尾部信息),。TCP傳給IP的數(shù)據(jù)單元稱作TCP報文段或簡稱為TCP段(TCP segment)。IP傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報(IP datagram)。通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Frame)。應(yīng)用程序TCPIP以太網(wǎng)驅(qū)動程序應(yīng)用數(shù)據(jù)TCP首部IP首部應(yīng)用數(shù)據(jù)TCP首部IP首部以太網(wǎng)首部以太網(wǎng)尾部 用戶數(shù)據(jù)用戶數(shù)據(jù)Appl首部應(yīng)用數(shù)據(jù)TCP首部 TCP段IP數(shù)據(jù)報 14 20 20 4 以太網(wǎng) 以太網(wǎng)幀 46~1500字節(jié)圖32數(shù)據(jù)進入?yún)f(xié)議棧時的封裝過程圖32中幀頭和幀尾下面所標注的數(shù)字是典型以太網(wǎng)幀首部的字節(jié)長度。本文的后面將詳細介紹幀頭的含義。以太網(wǎng)數(shù)據(jù)幀的物理特性是其長度必須在46~1500字節(jié)之間。網(wǎng)絡(luò)接口分別要發(fā)送和接收IP、ARP、和RARP數(shù)據(jù),因此也必須在以太網(wǎng)的幀首部中加入某種形式的標識,以指明生成數(shù)據(jù)的網(wǎng)絡(luò)層協(xié)議。為此,以太網(wǎng)的幀首部也有一個16bit的幀類型域。 鏈路層的協(xié)議分析鏈路層(Link Layer):又稱數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,這是TCP / IP協(xié)議族的最底層,它負責接收IP數(shù)據(jù)包和把數(shù)據(jù)包通過選定的網(wǎng)絡(luò)發(fā)送出去,或者從網(wǎng)絡(luò)上接收物理幀,抽取出IP數(shù)據(jù)包,交給IP層。鏈路層通常包括計算機中對應(yīng)的網(wǎng)絡(luò)接口卡及其設(shè)備驅(qū)動程序,它們一起處理與電纜(或其它任何傳輸媒介)的物理接口細節(jié),完成網(wǎng)絡(luò)上物理幀的傳輸。除網(wǎng)絡(luò)控制器驅(qū)動外,鏈路層典型的協(xié)議就是ARP (Address Resolation Protocol)—地址解析協(xié)議。 ARP協(xié)議概述每個網(wǎng)絡(luò)接口都有自己的一個硬件地址,在硬件層次上進行的數(shù)據(jù)幀交換必須有正確的接口地址。但是,TCP/IP有自己的地址,即32位的IP地址。知道主機的IP地址并不能讓以太網(wǎng)驅(qū)動程序發(fā)送一幀數(shù)據(jù)給主機,以太網(wǎng)驅(qū)動程序必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。ARP的功能就是在32位的lP地址和網(wǎng)卡MAC地址之間提供動態(tài)映射。 以太網(wǎng)的網(wǎng)絡(luò)接口層支持的是48位以太網(wǎng)地址,而網(wǎng)絡(luò)層支持的是32位的IP地址。ARP協(xié)議的功能是為32位IP地址到對應(yīng)的48位以太網(wǎng)物理地址之間提供動態(tài)映射,將上層的IP地址與底層的物理地址進行綁定,它形成了只能使用IP地址的上層協(xié)議軟件與只能使用物理地址的下層設(shè)備驅(qū)動程序軟件之間的分界線。當某主機要向以太網(wǎng)中另一臺主機發(fā)送IP數(shù)據(jù)時,它首先根據(jù)目的主機的IP地址在ARP高速緩存中查詢相應(yīng)的以太網(wǎng)地址,ARP高速緩存是主機維護的一個IP地址到相應(yīng)以太網(wǎng)地址的映射。如果查到匹配結(jié)點,則相應(yīng)的以太網(wǎng)地址被寫入以太網(wǎng)幀首部,數(shù)據(jù)包被加入輸出隊列等候發(fā)送。如果查詢失敗,ARP會先廣播一個詢問目的主機硬件地址的ARP報文,等到收到回答后再將數(shù)據(jù)包發(fā)送出去。ARP包格式如表所示:表32 ARP請求或應(yīng)答格式0 13 14 416字節(jié)以太網(wǎng)目的地址6字節(jié)以太網(wǎng)源地址2字節(jié)幀類型2字節(jié)硬件類型2字節(jié)協(xié)議類型1字節(jié)硬件地址長度1字節(jié)協(xié)議字節(jié)長度2字節(jié)操作字段6字節(jié)發(fā)送端以太網(wǎng)地址4字節(jié)發(fā)送端IP地址6字節(jié)目的以太網(wǎng)地址4字節(jié)目的IP地址 網(wǎng)絡(luò)層的協(xié)議分析網(wǎng)絡(luò)層主要負責按網(wǎng)絡(luò)標準形式封裝數(shù)據(jù)報,既從原發(fā)送方到目的地報文地址和路由信息,以便讓信息可以發(fā)送到相鄰的TCP/IP網(wǎng)絡(luò)上的任意主機上。網(wǎng)絡(luò)層協(xié)議包括IP(網(wǎng)際協(xié)議),ICMP(控制報文協(xié)議)和IGMP(Internet組管理協(xié)議)。 IP協(xié)議概述IP協(xié)議使網(wǎng)際之間的通信成為可能,是層中傳輸數(shù)據(jù)的機制。如果嵌入式Internet需要跨越不同的網(wǎng)絡(luò)通信就必須要實現(xiàn)IP協(xié)議。所以IP協(xié)議需要完整實現(xiàn),要特別注意IP包最大可以為65K,可以分段傳輸,而在嵌入式系統(tǒng)中根本無法容納如此大的數(shù)據(jù)包,因此一般不支持分段。單片機一般采用發(fā)送小數(shù)據(jù)包的方式,以避免分段。IP協(xié)議是整個TCP/IP協(xié)議族中最為核心的協(xié)議,所有的TCP、UDP、ICMP等數(shù)據(jù)都以IP數(shù)據(jù)報格式傳輸。IP協(xié)議是一種不可靠的、盡最大努力交互的、無連接交互機制的協(xié)議,它并不保證IP數(shù)據(jù)報能成功地到達目的地。因此數(shù)據(jù)報傳輸?shù)目煽啃员仨氂缮蠈訁f(xié)議來負責,如TCP協(xié)議。表33 IP數(shù)據(jù)報格式及首部中的各個字段4位版本4位首部長度8位服務(wù)類型(TOS)16位總長度(字節(jié))16位標識3位標志13位片偏移8位生存時間(TTL)8位協(xié)議16位首部檢驗和32位源IP地址32位目的IP地址32位選項(若有)數(shù)據(jù) ICMP協(xié)議概述ICMP協(xié)議主要用來傳遞差錯報文以及其它需要注意的信息。ICMP協(xié)議中規(guī)定了多種協(xié)議類型和代碼,如果完全實現(xiàn)要浪費不少的系統(tǒng)資源,對于普通的嵌入式Internet的應(yīng)用而言,能夠測試網(wǎng)絡(luò)的連通情況即可,因此只需要實現(xiàn)ICMP中類型號為0,代碼為0的Ping應(yīng)答協(xié)議即可。 傳輸層的協(xié)議分析傳輸層主要為兩臺主機上的應(yīng)用程序提供端到端的通信。在TCP/IP協(xié)議族中,有兩個互不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。TCP是一種面向連接的協(xié)議,TCP為兩臺主機提供高可靠性的數(shù)據(jù)通信,通過使用序列號和確認信息,TCP能夠向發(fā)送方提供到達接收方的數(shù)據(jù)包的傳送信息。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認接收到的分組,設(shè)置發(fā)送最后確認分組的超時時鐘等。由于運輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細節(jié)。而另一方面,UDP則為應(yīng)用層提供一種非常簡單的服務(wù)。它只是把稱作數(shù)據(jù)報的分組從一臺主機發(fā)送到另一臺主機,但并不保證該數(shù)據(jù)報能到達另一端。任何必需的可靠性必須由應(yīng)用層來提供。這兩種運輸層協(xié)議分別在不同的應(yīng)用程序中有不同的用途。 TCP與UDP的比較傳輸控制協(xié)議(TCP: Transfer Control Protocol)和用戶數(shù)據(jù)包協(xié)議(UDP: User Datagram Protocol)是因特網(wǎng)上傳輸層的協(xié)議,利用IP協(xié)議,支持應(yīng)用層所委托的數(shù)據(jù)的端對端通信??梢詮氖澜缟先魏我慌_計算機中找到特定的通信對象,并向其發(fā)送數(shù)據(jù)。傳輸層的協(xié)議提供的是連接指定在對方計算機上運行的特定應(yīng)用程序和希望得到的網(wǎng)絡(luò)服務(wù)。TCP和UDP把端口通信功能提供給應(yīng)用程序,但TCP和UDP在性質(zhì)上具有差別,因此在用途上也存在一定的區(qū)別。UDP數(shù)據(jù)包的可靠性是與IP相當?shù)模赃h端主機收到的數(shù)據(jù)包未能保證其正確的順序。但是由于TCP所傳數(shù)據(jù)流應(yīng)用了順序號和應(yīng)答措施,可以發(fā)現(xiàn)數(shù)據(jù)的丟失、段的失序和對傳輸錯誤的排除,所以TCP協(xié)議提供的是數(shù)據(jù)流的可靠傳輸。相對于UDP,TCP所獲得的可靠性是以其復雜性為代價的。TCP面向連接,而UDP是無連接能力的。這意味著,UDP客戶機向指定的遠端主機發(fā)送數(shù)據(jù)包時,并未事先確知對方是做好了接收數(shù)據(jù)的準備的。因此就會發(fā)生某一客戶機發(fā)給一個主機,而此主機事先并未把此客戶機列入其目標端口號而加以監(jiān)聽。這種情況,只要遠端主機運行的是TCP/IP堆棧,并能夠?qū)⑤斎氲腢DP數(shù)據(jù)包送到ICMP層進行處理的話,此主機將返回一個ICMP(Internet控制信息協(xié)議)錯誤。也就是說,如果遠端主機不能接收發(fā)去的UDP數(shù)據(jù)的話,客戶機還可以獲得一定的提示的。但是,這種提示是有限的,因為客戶機并不確知數(shù)據(jù)的結(jié)果。然而也正是由于UDP沒有保證可靠性的機制,沒有其他的關(guān)卡機制,UDP才得以實現(xiàn)全速發(fā)送(即充分發(fā)揮物理通信設(shè)備的速度)。如果使用低速的處理器,因UDP的開銷很小,其傳輸率比TCP高出很多。但對于高速處理器,二者的差別不會很大。另外,UDP沒有點對點接入的要求,所以可以實現(xiàn)“一對多點”,“多對多點”的廣播和多點播發(fā)信息。一個使用UDP實行信息廣播的典型例子,就是在DHCP協(xié)議(動態(tài)主機控制協(xié)議)中,當系統(tǒng)引導的時候,發(fā)出廣播信息,通知所有DHCP服務(wù)器向系統(tǒng)提交網(wǎng)絡(luò)配置信息。 UDP協(xié)議 UDP是一個簡單的面向應(yīng)用的運輸層協(xié)議,不提供可靠性。不進行連接,只是把數(shù)據(jù)發(fā)出去,不管它能不能到目的地,也不進行確認,只管發(fā)送,由于不用建立連接和等待確認,所以傳輸速度很快。報文格式見表34所示:表34 UDP數(shù)據(jù)報首部0 15 16 3116位源端口號16位目的端口號16位UDP長度16位UDP檢驗和數(shù)據(jù)(若有)端口號表示發(fā)送進程和接收進程,UDP的公認端口見表所示:表35 UDP公認端口端口號端口功能7ECHO將收到的數(shù)據(jù)報回送到發(fā)送端9DISCARD丟棄任何收到的數(shù)據(jù)報13DAYTIME返回任何日期和時間69TFTP簡單文件傳送協(xié)議 總長度是指UDP首部和數(shù)據(jù)兩個和的字節(jié)數(shù),如果只有首部沒有數(shù)據(jù)那么它的值為8字節(jié),是最小值。檢驗和覆蓋整個UDP長度。包括3部分:偽首部、UDP首部和應(yīng)用層數(shù)據(jù),位于UDP報頭前12字節(jié)的是偽首部。見表36所示:表36 UDP檢驗和32位源IP地址32位目的IP地址全0 8位協(xié)議 16位UDP總長度源端口號 目的端口號UDP總長度 檢驗和數(shù)據(jù)(必須填充使數(shù)據(jù)是16的倍數(shù)) TCP協(xié)議 TCP和UDP不同,它向應(yīng)用層提供一種面向連接的、可靠的字節(jié)流服務(wù)。 TCP數(shù)據(jù)包的結(jié)構(gòu)如表37所示:表37 TCP首部
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1