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

正文內容

嵌入式webserver的設計與實現(編輯修改稿)

2025-07-26 23:39 本頁面
 

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