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

正文內容

基于dm9000a的tcp通信設計最終版畢業(yè)論文(編輯修改稿)

2025-07-15 17:05 本頁面
 

【文章內容簡介】 SRAM超過BPHW并且接收新數據包時,產生一個擁擠狀態(tài);Bit[5]表示強制發(fā)送暫停包使能,按溢出門限最高值使能發(fā)送暫停包;Bit[6]表示1發(fā)送暫停包,發(fā)送完成后自動清零,并設置TX暫停包時間為FFFFH;Bit[7]表示1發(fā)送暫停包,發(fā)送完成后自動清零,并設置TX暫停包時間為0000H。將其賦值為0x8。 還用到物理地址寄存器(PAR),多點發(fā)送地址寄存器(MAR)。接收控制寄存器(RCR),Bit[0]表示接收使能;Bit[1]表示混雜模式(Promiscuous Mode);Bit[2]表示忽略不完整的數據包;Bit[3]表示忽略所有多點傳送;Bit[4]表示丟棄CRC校驗錯誤的數據包;Bit[5]表示丟棄長數據包,1為丟棄數據包長度超過1522字節(jié)的數據包;Bit[6]表示看門狗定時器禁止,1禁止,0使能。賦值0x31。中斷屏蔽寄存器(IMR),Bit[0]表示1使能數據包接收中斷;Bit[1]表示1使能數據包傳輸終端;Bit[2]表示1使能接收溢出中斷;Bit[3]表示1使能接收溢出計數器溢出中斷;Bit[4]表示1使能傳輸“Underrun”中斷;Bit[5]表示1使能連接狀態(tài)改變中斷;Bit[7]表示1使能指針自動跳回。當SRAM的讀、寫指針超過SRAM的大小時,指針自動跳回起始位置,需要驅動程序設置該位,若設置則MRRH將自動位0CH。本文將其賦值為0x80[7]。 以太網接口設計1. 以太網的MAC幀格式 目的端的 MAC地址發(fā)送端的MAC地址類型數 據FCS 幀的傳輸方向66246~15004 以太網幀格式 以太網的MAC幀格式比較簡單,由5個字段組成。前兩個分別為6字節(jié)的目的端地址與發(fā)送端地址字段。第三個為兩字節(jié)的類型字段,標志上一層用的是什么協議,如上層使用的是IP數據報,則該類型字段值為ox0800。第四個是數據字段,其長度為46 ~1500字節(jié)之間。最后為4字節(jié)的幀檢驗序列FCS。MAC幀在物理層傳輸時還須在幀前面插入8個字節(jié),它有兩段組成,第一個字段為7個字節(jié)的前同步碼,實現位同步。第二個字段是幀開始定界符,定義為10101011。 以太網幀結構體定義如下: struct ethernet_frame { UINT8 destination[ETH_ADDRESS_LEN]; UINT8 source[ETH_ADDRESS_LEN]; UINT16 frame_size; UINT16 protocol; UINT16 buf_index; };2. 以太網的數據鏈路傳輸以太網基本上采用總線型的連接方式,在一條電纜上連接所有的計算機,當某臺計算機發(fā)送數據時,其信號可以傳輸給連接在電纜上的所有計算機。每臺計算機的網卡,可以接收傳過來的數據,接收到數據后,網卡給CPU一個中斷信號,告訴它應該接收數據了,收到中斷請求的CPU就中斷現在正在執(zhí)行的處理,開始準備接收數據包。驅動軟件則首先檢查MAC地址,從而判斷是否有自己應當接收的數據報。如果與自己主機NIC的MAC地址相同,就接著檢查類型的字段,以及是否有自己應當接受的協議。當在自己可接受的協議情況下,就使用在內存中的可接納數據幀長度的內存緩沖器,把NIC中的數據通過數據總線傳送到內存,然后再交由上層的軟件作進一步的處理。如果與自己主機NIC的MAC地址不同,沒有可接收的數據,則刪除數據報。3. DM9000A接收數據處理 DM9000A接收以太網數據具體實現函數為DM9000_ReceiveFrame,首先要判斷數據幀的合法性,其具體過程是DM9000A從網絡中接到一個數據包后,會在數據包前面加上4個字節(jié),分別為[01H]、[status]、[LENL]、[LENH]。然后要讀取這四個字節(jié)來確定數據包的狀態(tài),若第一個字節(jié)是[01H]表示接收的是有效數據包,若為[00H]則表示沒有收到數據包,若為其它值則表示網卡沒有正確初始化,需要重新進行初始化。當接收的數據包長度小于60字節(jié)時,DM9000A會自動為不足的字節(jié)補上0,使其達到60字節(jié)。同時,在接收到的數據包后DM9000還會自動添加4個CRC校驗字節(jié),可以不予處理。所以,接收到的數據包的最小長度會是64字節(jié)。接收到有效數據后,讀取并保存以太網協議頭,以太網協議頭長度14字節(jié),具體包括6個字節(jié)的以太網目的MAC地址,6個字節(jié)的以太網源MAC地址和2個字節(jié)的幀類型 [8]。: 讀取接收數據包的地址讀取數據包第一個字節(jié) 接收有效數據開始 01H ?Y N 可接收的協議 類型?幀頭CRC校驗 正確?結束保存以太網協議頭讀取16位數據內部接收數據緩存區(qū)Y N YN DM9000A的接收處理的流程圖4. DM9000A發(fā)送數據處理DM9000A發(fā)送處理具體實現函數為DM9000_SendFrame,首先由DM9000_outb()函數寫入數據命令,再由DM9000_outw()函數按照以太網協議的格式將16位數據寫入,發(fā)送到DM9000A的數據發(fā)送緩存區(qū)中,然后將數據長度等信息填充到DM9000A的相應寄存器內,并寫入發(fā)送數據的長度,發(fā)送使能命令,DM9000A將緩存的數據和數據幀信息進行MAC組幀,并發(fā)送出去,并設置一個發(fā)送完成后的清除標志。寫入數據命令16位數據寫入數據發(fā)送緩存區(qū)寫入發(fā)送數據長度發(fā)送數據開始結束清除 DM9000A的發(fā)送處理流程圖3 TCP/IP通信協議的實現 TCP/IP通信的設計思想 TCP/IP協議的介紹 TCP/IP協議起源于20世紀60年代末美國政府資助的一個分組交換網絡研究項目,到20世紀90年代已經發(fā)展成為計算機之間最常用的通信協議。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務。TCP/IP協議并不完全符合OSI的七層參考模型,它采用4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求,該模型的目的是使各種硬件在相同的層次上相互通信。TCP/IP協議代表了整個TCP/IP協議族,不僅包括TCP和IP兩個協議,還包括ARP、ICMP、UDP等多個協議,是Internet上最基本的網絡通信協議,是實現互聯網連接性和互操作性的關鍵。 TCP/IP參考模型由數據鏈路層、網絡層、傳輸層和應用層構成,它們是基于硬件層次的四個概念性層次。在這四個層次中,每一層都有特定的功能,上一層直接利用下一層提供的服務來實現本層的功能,下一層又通過相鄰層之間的接口為上一層提供服務。通信的雙方在相同層之間進行通話,通話規(guī)則和協定就是該層的協議。TCP/IP參考模型中的每一層都包含有一個或多個協議,而各個層次所包含的協議總和就構成了TCP/IP協議棧[9]。: TCP/IP協議參考模型應用層HTTP,Telnet,FTP,SMTP,SNMP傳輸層TCP,UDP網絡層IP,ICMP,IGMP數據鏈路層Ethernet,SLIP,ARP,RARP ,它是TCP/IP參考模型的最底層,它負責將IP分組封裝成適合在物理網絡上傳輸的幀格式進行傳輸,同時將物理網絡上接收到的數據幀進行解封裝,提取出IP分組交付給網絡層。數據鏈路層的協議與網絡的具體實現有關,通常包括網絡設備的驅動程序和對應的網絡的接口卡,它們一起處理與傳輸媒介有關的物理接口細節(jié)。 ,主要確定如何將分組從源端送達目的端。即確定是將數據鏈路層傳輸來的IP分組繼續(xù)傳給其他的網絡節(jié)點,還是直接傳給傳輸層;并對傳輸層發(fā)來的數據進行填充報頭、路徑選擇和發(fā)送。IP協議是網絡層的重要協議,它負責無連接的數據傳送、數據報尋徑和差錯處理。網絡層還定義了ARP、RARP、ICMP等協議,以完成地址解析、傳遞網絡控制信息、提供差錯報告等功能。 ,主要為源端口和目的端口的應用程序提供端到端的通信。傳輸層定義了兩個端到端的傳輸層協議:一個是TCP傳輸控制協議,它是一個面向連接的協議,允許從一臺機器發(fā)出的字節(jié)流無差錯的到達另一臺機器;另一個協議是UDP用戶數據報協議,它是一個不可靠的、不面向連接的傳輸協議,用于不需要TCP排序和流量控制的應用中。 ,為用戶提供特定的應用服務。常見的應用層協議有FTP文件傳輸協議、HTTP超文本傳輸協議、SMTP簡單郵件傳送協議、Telnet遠程登錄協議等[10]。 數據報的封裝 數據封裝體現協議層次模型的重要特征。每層協議按照自己的方式進行數據的封裝和拆封。數據發(fā)送時,各層在收到的上一層數據前面添加對應的頭部信息,進行數據封裝,然后傳遞到下一層。數據接收時,各層對數據進行解包,剝離出頭部信息,進行適當的保存,然后將數據傳遞到上一層處理。:以太網首部IP首部TCP首部應用數據IP首部TCP首部應用數據以太網驅動程序TCP首部應用數據APPL用戶數據用戶數據應用程序TCPIP 數據報的封裝 主程序流程 當以太網網卡接收到數據的時候,這些數據都是經過了哪些協議?應該做怎樣的處理才能被正確的接收呢?應該如何編程實現呢?,展示了本課題設計的總體思想。初始化是編程實現設計的必要步驟,如圖所示以初始化設置為第一步,進入本課題的設計,它包括設置時鐘初始化、I/O初始化、存儲器CHCHE配置、使能CACHE及看門狗初始化、中斷初始化和網絡初始化。其中網絡初始化包括本地的物理地址以及IP地址、時間的初始化、DM9000A的初始化、ARP、TCP和TCP協議應用層的初始化等。 開 始 接收以太網數據是ARP包?是IP包?是ICMP包?是TCP包?YN調用ARP協議處理調用ICMP協議處理初始化設置結束調用TCP協議處理調用TCP應用層偵聽事件處理YYYNNN 主程序流程圖 首先調用DM9000A驅動,獲取數據,實現以太網的數據接收。當以太網成功接收數據時,首先會分析是不是ARP包,是的話就調用ARP協議處理,不是的話就看看是不是IP數據包,如果不是的話就丟棄該幀。若是IP數據包,還要具體分析是哪種報文,因為ICMP、TCP報文都是用IP傳送的。判斷IP數據報傳送的是哪種報文后,調用相應協議的處理程序處理數據,這樣就完成了數據的接收了。 當接收處理完數據以后。再重新檢測以太網網卡是否接收新的數據,如此一直循環(huán)下去,實現數據的接收和發(fā)送。以上各種協議的處理過程將在后文詳細地描述。 ARP協議及其實現1. ARP的分組幀格式地址解析協議(ARP)是聯系IP協議和LAN協議的橋梁,該協議把節(jié)點的IP解析成對應的MAC地址(也叫物理地址),它可以在局域網內尋找IP所對應的MAC地址,并保存起來以供發(fā)送使用。這是由于以太網設備并不識別32位的網絡地址,它是以48位的物理地址來傳輸以太網數據包的,因此IP驅動器必須把網絡目的地址轉換為物理目的地址。以太網目的地址幀類型硬件類型協議類型可選域發(fā)送端以太網地址目的以太網地址以太網源地址發(fā)送端IP地址硬件地址長度協議地址長度6612166222目的IP地址44以太網首部28字節(jié)ARP請求、應答 用于以太網的ARP請求或應答分組格式在以太網上解析IP地址時。以太網報頭中的目的地址為全1的特殊地址即廣播地址,電纜上的所有以太網接口都要接收廣播的數據幀。以太網幀類型表示后面數據的類型,對于ARP請求或應答來說,該字段的值為0x0806。形容詞hardware(硬件)和protocol(協議)用來描述ARP分組中的各個字段。例如,一個ARP請求分組詢問協議地址(這里是IP地址)對應的硬件地址(這里是以太網地址)。硬件類型字段表示硬件地址的類型,它存儲的是以太網的MAC幀,則值為1。協議類型字段表示要映射的協議地址種類,它的值為0x0800即表示IP地址,它的值與包含IP數據報的以太網數據幀中的類型字段的值相同。如本課題設計,在以太網上使用IP協議進行通信,則硬件類型字段應為1,協議類型字段應存儲0x0800。硬件地址長度和協議地址長度,分別指出硬件地址和協議地址的長度,以字節(jié)為單位。對于以太網上IP地址的ARP請求或應答來說,它們的值分別為6和4??蛇x域指出四種操作類型,它們是ARP請求(值為1)、ARP應答(值為2),這個字段是必需的,因為ARP請求和ARP應答的幀類型字段值是相同的。對于一個ARP請求來說,除了目的端硬件地址外的所有其他的字段都有填充值。當ARP請求包時,目的端硬件地址域中存儲0;當系統(tǒng)收到一份目的端為本機的ARP請求報文后,它就把硬件地址填進去,然后用兩個目的端地址分別替換兩個發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去,ARP實現應答[11]。在軟件編程時,為了實現ARP協議,本設計定義了ARP的結構體,如下:struct arp_entry { UINT8 state; UINT8 type; UINT8 retries; UINT8 ttl; UINT8 hwadr[MAXHWALEN]; UINT32 pradr; } 在這個結構體中,定義了:狀態(tài)state包括ARP_FREE(空閑)、ARP_RESERVED(保留)、ARP_PENDI
點擊復制文檔內容
化學相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1