新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 拿起手術刀 深入剖解路由器的“心臟”技術

        拿起手術刀 深入剖解路由器的“心臟”技術

        作者: 時間:2018-09-06 來源:網絡 收藏

        寬帶上網已經不是什么新鮮事情,人們對相關的網絡器件已經不再陌生,比如說常見的路由器。對于一般的網絡用戶,他們能知道怎樣使用路由器來上網、玩游戲等就已經感到很滿足了,通常情況下對路由器的深層技術很少去過問研究,但做為興趣廣泛的技術愛好者,對這方面的知識是非常感興趣的。

        本文引用地址:http://www.104case.com/article/201809/388544.htm

        但限于各種條件的制約,這些愛好者都非開發者,很大程度上無法深入了解真正的技術實現過程以及相關的核心內幕。正是基于此點,筆者憑借自身的知識沉淀,盡最大努力為愛好技術的讀者架設一坐能通向深層核心的橋梁,為大家揭開路由器的神秘面紗,剖開其核心內臟。為使讀者能清晰明白的理解掌握,筆者盡量將專業的技術內容轉化為容易接受的知識講解,其中可能有不足偏頗之處,還請大家多見諒。

        概述

        什么是路由器?

        互聯網是依靠路由器連接起來的,路由器是互聯網或者說IP網絡的核心設備。寬帶接入的不斷增長,帶動了路由器的需求不斷增加。

        路由器究竟是什么樣的技術產物?

        談到路由器的開發,我們就不免要談到“嵌入式”設備的開發,沒錯,通俗的說,路由器就是一種嵌入式產品。那么究竟什么是嵌入式設備呢?

        其實就目前而言,嵌入式設備已經不斷深入我們的日常生活方方面面。通俗的講,嵌入式設備是指具有計算機功能,但又不稱為計算機的設備或器材,它幾乎包括了我們周圍的所有電器設備:PDA、手機、機頂盒、汽車、微波爐、電梯、安全系統、自動售貨機、醫療儀器、立體音響、自動取款機等。

        用較為專業的話來表述的話,嵌入式設備就是使用微處理器或微控制器芯片(MCU)加上外圍電路再加上內部的程序部分來實現特定功能的嵌入設備。比如8位的單片機、32的ARM以及DSP芯片等都屬于嵌入式核心芯片的范疇。8位MCU市場已逐步趨向穩定,32位MPU代表著嵌入式技術的發展方向,正在加速發展。在32位嵌入式微處理器市場上,基于ARM內核的微處理器在市場上處于絕對的領導地位,因此追蹤ARM技術的發展趨勢顯得尤為重要。

        路由器的開發通常都是基于32位處理器的,就通常的中低端路由器而言,在開發的配置上有多種選擇,比如有ARM9核心芯片+Wince操作系統、ARM7核心芯片+uClinux操作系統、DSP芯片+Vxworks操作系統等等各種各樣的選擇。本文針對常用的SOHO路由器來介紹,選擇ARM7核心芯片+uClinux操作系統開發模式,以完整形象的實例為大家清晰講解路由器的技術實現過程。

        我們為什么以SOHO路由器為介紹對象呢?什么是SOHO路由器?前很多家庭中有不止一臺電腦,需要上網獲取信息、收發郵件等。這些小型公司和家庭網絡用戶計算機的數目一般不多,網絡結構不復雜。功能和帶寬的要求不高。出于提高網絡性能、共享有限IP地址或節省上網費用等原因,這些用戶迫切需要具有較高性價比的小型路由器。我們把這種小型路由器稱為SOHO路由器。目前市場上已經充斥了大量的這類低端路由器.由于ARM7系列芯片價格便宜,非常適合嵌入式系統使用。目前市場上的SOHO路由器大多采用ARM7系列處理器。不過由于技術的發展,ARM9系列的專用路由芯片的路由器也逐漸普及。

        路由器宏觀介紹

        我們可以形象的把嵌入式設備的開發簡單的理解成三層模式,最底層的是微控制器芯片加外圍器件組成的硬件系統,比如我們介紹的開發小型SOHO路由器所使用的ARM7TDMI芯片等硬件環境,它是設備功能實現的硬件基礎,要實現上層的應用肯定離不開最底層硬件的支持。中間層是操作系統,比如我們所選擇的uClinux操作系統,它是銜接硬件部分和應用程序的過渡層,它既可以完成對底層硬件的基本操作,又能為上層應用程序提供運行環境支持。最上層自然就是應用程序層了,它是實現針對性應用的程序代碼部分,比如路由設置等功能程序部分。

        那對與SOHO路由器來說,它當然也脫離不了這樣的技術框架,它的更為具體的實現過程簡單的匯總的話,莫過于如下內容:

        首先先要知道SOHO實現的網絡功能,典型路由器應該具備以下功能:

        支持PPPoE,固定IP上網;

        DHCP動態主機配置協議;

        網絡地址轉換(NAT)技術;

        根據TCP,UDP的端口號(port number),IP 的(協議號)protocol number,對IP地址進行簡單過濾的防火墻;

        虛擬服務主機/端口映射(Port Forwarding)技術;

        支持一定數量的特殊應用程序;

        然后針對于上邊的功能要求,相應地要通過硬件和軟件的構造來實現:

        硬件方面:

        1、要明確家用小型路由器(一個WAN接口,四個LAN接口)的硬件原理。

        2、實現硬件電路板設計,完成電路布線設計,并對元件焊接,通過硬件板的調試。

        軟件方面:

        1、在分析 uClinux內核源代碼的基礎上,對uClinux操作系統的內核裁剪。

        2、完成BoaWeb服務器的配置,并對CGI腳本進行設計,完成動態網頁的功能。

        3、對PPPOE的撥號進行配置實現。

        4、針對Linux內核防火墻部分,運用IPtable工具進行防火墻規則操作。

        通過如上的基本構造,一個路由器就基本成型了。說起來簡單,但其中包含了很多很多的技術細節,要有大量的實踐經驗才能真正實現。做為門外觀奇的好學讀者,現在肯定有些不耐煩了吧,想要了解更多的更詳細的構造內容吧?那好,現在就可以開始我們真正的技術之旅了。

        路由器工作原理

        1、基本原理

        要實 現 網 絡中通信節點彼此之間的通信,首先必須給每個節點分配一個唯一的IP地址。路由器應該至少有兩個網絡端口,分別連接LAN或者WAN子網上,每個端口必須具有一個唯一的IP地址,并且要求與所連接IP子網的網絡號相同。不同的端口有不同的網絡號,對應不同的IP子網,這樣各子網中的主機才能通過自己子網的IP地址把要求發出去的IP數據報送到路由器上。

        當路由器收到一份IP數據報后,首先要對該報文進行判斷,然后根據判斷的結果做進一步的處理。如果數據報是有效或正確的,路由器就根據數據報的目的IP地址轉發該報文:否則就把報文丟棄。如果這個數據報的目的IP地址與路由器直接相連的一個子網上,路由器會通過相應的接口把報文轉發到目的子網上去;否則會把它轉發到下一跳(Hop)路由器。為了完成上述的操作,每臺路由器必須維護一個路由表。把對應不同目的地的最佳路徑存放在路由表中,這就是路由策略(Routing Policy)問題。路由表反映網絡的拓撲結構,一般一條表項應該包含數據報的目的IP地址(通常是目的主機所在網絡的地址)、下一跳路由器的地址和相應的網絡接口等,在網絡拓撲發生變化的時候,路由表也應該做相應的變動。所以路由器必須能夠生成并更新路由表。


        上一頁 1 2 3 4 5 6 7 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 蛟河市| 基隆市| 老河口市| 青海省| 固原市| 九龙坡区| 富阳市| 巴青县| 彭阳县| 通渭县| 苏尼特右旗| 丹巴县| 龙里县| 清镇市| 陇南市| 雅江县| 兴义市| 定安县| 错那县| 张家界市| 柘城县| 锡林郭勒盟| 玉山县| 内丘县| 东莞市| 仙游县| 申扎县| 蕲春县| 塔城市| 长沙县| 循化| 泽普县| 山东省| 金塔县| 吉水县| 惠州市| 洪雅县| 新宾| 密云县| 滦平县| 冀州市|