<!--
google_ad_client = "pub-5977682010997732";
/* 336x280, 创建于 08-7-26 */
google_ad_slot = "8221152630";
google_ad_width = 336;
google_ad_height = 280;
//-->
window.google_render_ad();
<iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5977682010997732&dt=1223058501046&lmt=1215910214&output=html&slotname=8221152630&correlator=1223058501031&url=http%3A%2F%2Ftech.ddvip.com%2F2007-06%2F118148494527003.html&ea=off&ref=http%3A%2F%2Ftech.ddvip.com%2F2007-06%2F118148494527003_4.html&frm=0&cc=100&ga_vid=1979605682.1223056587&ga_sid=1223056587&ga_hid=79450192&ga_fc=true&flash=9.0.124.0&u_h=900&u_w=1440&u_ah=870&u_aw=1440&u_cd=32&u_tz=480&u_his=17&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency></iframe>
<clk> 宽带上网已经不是什么新鲜事情,人们对相关的<nobr oncontextmenu="return false" onmousemove="kwM(3)" id="clickeyekey3" onmouseover="kwE(event,3, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,3)" onmouseout="kwL(event,this)">网络</nobr>器件已经不再陌生,比如说常见的路由器,见图1。对于一般的网络用户,他们能知道怎样使用路由器来上网、玩游戏等就已经感到很满足了,通常情况下对路由器的深层<nobr oncontextmenu="return false" onmousemove="kwM(2)" id="clickeyekey2" onmouseover="kwE(event,2, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,2)" onmouseout="kwL(event,this)">技术</nobr>很少去过问研究,但做为兴趣广泛的技术爱好者,对这方面的知识是非常感兴趣的。</clk>
但限于各种条件的制约,这些爱好者都非开发者,很大程度上无法深入了解真正的技术实现过程以及相关的核心内幕。
<clk> 正是基于此点,笔者凭借自身的知识沉淀,尽最大努力为爱好技术的读者架设一坐能通向深层核心的桥梁,为大家揭开路由器的神秘面纱,剖开其核心内脏。为使读者能清晰明白的理解掌握,笔者尽量将<nobr oncontextmenu="return false" onmousemove="kwM(1)" id="clickeyekey1" onmouseover="kwE(event,1, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,1)" onmouseout="kwL(event,this)">专业</nobr>的技术内容转化为容易接受的知识讲解,其中可能有不足偏颇之处,还请大家多见谅。 </clk>
概述
什么是路由器?
图1
互联网是依靠路由器连接起来的,路由器是互联网或者说IP网络的核心设备。宽带接入的不断增长,带动了路由器的需求不断增加。
路由器究竟是什么样的技术产物?
谈到路由器的开发,我们就不免要谈到“嵌入式”设备的开发,没错,通俗的说,路由器就是一种嵌入式产品。那么究竟什么是嵌入式设备呢?
<clk> 其实就目前而言,嵌入式设备已经不断深入我们的日常生活方方面面。通俗的讲,嵌入式设备是指具有计算机功能,但又不称为计算机的设备或器材,它几乎包括了我们周围的所有电器设备:PDA、手机、机顶盒、<nobr oncontextmenu="return false" onmousemove="kwM(0)" id="clickeyekey0" onmouseover="kwE(event,0, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,0)" onmouseout="kwL(event,this)">汽车</nobr>、微波炉、电梯、安全系统、自动售货机、医疗仪器、立体音响、自动取款机等。</clk>
用较为专业的话来表述的话,嵌入式设备就是使用微处理器或微控制器芯片(MCU)加上外围电路再加上内部的程序部分来实现特定功能的嵌入设备。比如8位的单片机、32的ARM以及DSP芯片等都属于嵌入式核心芯片的范畴。8位MCU市场已逐步趋向稳定,32位MPU代表着嵌入式技术的发展方向,正在加速发展。在32位嵌入式微处理器市场上,基于ARM内核的微处理器在市场上处于绝对的领导地位,因此追踪ARM技术的发展趋势显得尤为重要。
路由器的开发通常都是基于32位处理器的,就通常的中低端路由器而言,在开发的配置上有多种选择,比如有ARM9核心芯片+Wince操作系统、ARM7核心芯片+uClinux操作系统、DSP芯片+Vxworks操作系统等等各种各样的选择。本文针对常用的SOHO路由器来介绍,选择ARM7核心芯片+uClinux操作系统开发模式,以完整形象的实例为大家清晰讲解路由器的<nobr oncontextmenu="return false" onmousemove="kwM(0)" id="clickeyekey0" onmouseover="kwE(event,0, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,0)" onmouseout="kwL(event,this)">技术</nobr>实现过程。
我们为什么以SOHO路由器为介绍对象呢?什么是SOHO路由器?前很多家庭中有不止一台电脑,需要上网获取信息、收发邮件等。这些小型公司和家庭网络用户计算机的数目一般不多,网络结构不复杂。功能和带宽的要求不高。出于提高网络性能、共享有限IP地址或节省上网费用等原因,这些用户迫切需要具有较高性价比的小型路由器。我们把这种小型路由器称为SOHO路由器。目前市场上已经充斥了大量的这类低端路由器.由于ARM7系列芯片价格便宜,非常适合嵌入式系统使用。目前市场上的SOHO路由器大多采用ARM7系列处理器。不过由于技术的发展,ARM9系列的专用路由芯片的路由器也逐渐普及。
路由器宏观介绍
嵌入式设备的开发三层模式
我们可以形象的把嵌入式设备的开发简单的理解成三层模式,最底层的是微控制器芯片加外围器件组成的硬件系统,比如我们介绍的开发小型SOHO路由器所使用的ARM7TDMI芯片等硬件环境,它是设备功能实现的硬件基础,要实现上层的应用肯定离不开最底层硬件的支持。中间层是操作系统,比如我们所选择的uClinux操作系统,它是衔接硬件部分和应用程序的过渡层,它既可以完成对底层硬件的基本操作,又能为上层应用程序提供运行环境支持。最上层自然就是应用程序层了,它是实现针对性应用的程序代码部分,比如路由设置等功能程序部分。
那对与SOHO路由器来说,它当然也脱离不了这样的<nobr oncontextmenu="return false" onmousemove="kwM(0)" id="clickeyekey0" onmouseover="kwE(event,0, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,0)" onmouseout="kwL(event,this)">技术</nobr>框架,它的更为具体的实现过程简单的汇总的话,莫过于如下内容:
<clk> 首先先要知道SOHO实现的<nobr oncontextmenu="return false" onmousemove="kwM(1)" id="clickeyekey1" onmouseover="kwE(event,1, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,1)" onmouseout="kwL(event,this)">网络</nobr>功能,典型路由器应该具备以下功能:</clk>
支持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)问题。路由表反映<nobr oncontextmenu="return false" onmousemove="kwM(0)" id="clickeyekey0" onmouseover="kwE(event,0, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,0)" onmouseout="kwL(event,this)">网络</nobr>的拓扑结构,一般一条表项应该包含数据报的目的IP地址(通常是目的主机所在网络的地址)、下一跳路由器的地址和相应的网络接口等,在网络拓扑发生变化的时候,路由表也应该做相应的变动。所以路由器必须能够生成并更新路由表。
选路机制实际上就是如何查找路由表,通过查询路由表来决定向哪个方向转发数据。一般来说,路由器首先搜索匹配的主机地址:如果没有,再搜索匹配的网络地址:最后搜索默认路由。一旦查到匹配的表项,路由器就会把数据从相应的接口发送出去。
路由器具备了上述各要素后,就可以完成数据转发任务了。另外,路由器不仅负责对IP包的转发,还要负责与别的路由器进行联络,共同确定互联网的路由选择和路由表的更新维护。
2、SOHO路由器原理
SOHO路由器
<clk> 当内部计算机要与外部Internet网络进行通信时,各内部间通过私有IP地址进行通信的计算机必须把私有IP地址转换成合法IP。这种网络地址转换<nobr oncontextmenu="return false" onmousemove="kwM(1)" id="clickeyekey1" onmouseover="kwE(event,1, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,1)" onmouseout="kwL(event,this)">技术</nobr>称为NAT(Network Address Translation,网络地址转换)。在一个实际的私有网络中,NAT功能通常内建在路由器、防火墙或独立的NAT设备之上,网络中的主机将这些设备作为自己的默认网关。通过这样的配置,每一台内部主机发送往Internet的数据报就会送到具有NAT功能的设备中进行转换。NAT是SOHO路由器的必备功能,它是为<nobr oncontextmenu="return false" onmousemove="kwM(2)" id="clickeyekey2" onmouseover="kwE(event,2, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,2)" onmouseout="kwL(event,this)">解决</nobr>IPv4地址不够分配的矛盾而产生的一个简单高效的解决方案。它能将任何两个地址域的地址进行转换,使私有网络中多台主机共享一个合法IP地址访问Internet。</clk>
嵌入式路由器硬件系统介绍
1、硬件系统总体结构
硬件结构是非常重要的部分,因为我们拆开一个路由器后首先看到的、所能看到的也就是硬件结构,我们就举例简单介绍一下硬件设计的各个部位的细节内容。
交换式宽带路由器的硬件设计实例图
为了宏观查看,我们给出交换式宽带路由器的硬件设计实例图一张。图中主要分为两部分:
ARM4510B部分和交换芯片RTL8305部分,前者主要见上半图,后者为下半图。还有电源及各自的复位电路。
<clk> ARM4510B部分中,中央处理芯片为带有<nobr oncontextmenu="return false" onmousemove="kwM(2)" id="clickeyekey2" onmouseover="kwE(event,2, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,2)" onmouseout="kwL(event,this)">网络</nobr>接口的S3C4510B--16/32位RISC微控制器,根据嵌入式操作系统的运行需要,扩展了SDRAM存储器和Flash存储器。SDRAM存储器由两片4X1MX16位的HY57V641620HGT</clk>
<clk> 组成,作为嵌入式操作系统内核及应该<nobr oncontextmenu="return false" onmousemove="kwM(1)" id="clickeyekey1" onmouseover="kwE(event,1, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,1)" onmouseout="kwL(event,this)">程序</nobr>运行的内存空间。Flash存储器由一片1MX16位的SS139VF160组成,作为内核映像的存储,并在嵌入式操作系统启动时加载系统内核及程序。根据调试程序及烧写Flash存储器的需要,引出JTAG接口。根据显示调试和运行信息的需要,提供了RS232接口。交换芯片 RTL8305部分中,提供4个LAN口(PORTO--PORT3)通过一四口的网络隔离变压器连接一个四口RJ45口,每个口可连接到10/10013aseT以太网,各端口之间有交换功能:还有一个WAN接口(CPO RT4)通过一单口的隔离变压器连接RJ45口。根据显示连接速度、状态和电源等需要,接出LED灯进行显示。根据交换芯片的<nobr oncontextmenu="return false" onmousemove="kwM(0)" id="clickeyekey0" onmouseover="kwE(event,0, this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="kwC(event,0)" onmouseout="kwL(event,this)">管理</nobr>需要,提供一串行EEPROM 24C01电路接口。根据交换芯片的主电源为2.5V.提供一个3.3V到2.5V的转换器。</clk>
中央处理芯片通过MR(独立媒体接口)接口与交换芯片RTL8035SB的PORT4的Mil接口相联,将交换芯片的PORT4配置为物理层接收器。
<!-- 分页 --><!-- 分页 -->
相关推荐
但限于各种条件的制约,这些爱好者都非开发者,很大程度上无法深入了解真正的技术实现过程以及相关的核心内幕。正是基于此点,笔者凭借自身的知识沉淀,尽最大努力为爱好技术的读者架设一坐能通向深层核心的桥梁,为...
专用于路由器的剖解,但有时效果不太好,要看网络环境。
电容传感器通过电容值的变化来识别指纹的脊线和谷线,深入到真皮层获取更真实的指纹信息,增强了识别准确性,减少了外界污染物的影响。电容传感器还能自动调整图像质量,适应不同的环境条件。然而,尽管电容式传感器...
视频监控作为一种传统视频技术与现代通信技术相结合的应用,目前在国内外已引起了越来越多的关注。视频监控业务具有悠久的历史,在传统上广泛应用于安防领域,是协助公共安全部门打击犯罪、维持社会安定的重要手段。...
智能小区通过整合现代建筑技术、计算机技术、通信技术以及自动控制技术,构建起一个集成化的物业管理、安防、通信系统,以提升住户的居住质量和安全性。在智能小区的安防体系中,七大核心技术是至关重要的组成部分,...
面向对象思想深度剖解面向对象思想深度剖解面向对象思想深度剖解
智能小区的安防技术是保障居民安全、提升居住品质的关键组成部分。以下是对这七大安防技术的详细解析: 1. 闭路监控系统:该系统通过安装摄像头监控小区内的各个区域,实时传输图像信息到主控中心,能有效预防和...
视频监控作为一种传统视频技术与现代通信技术相结合的应用,目前在国内外已引起了越来越多的关注。视频监控业务具有悠久的历史,在传统上广泛应用于安防领域,是协助公共安全部门打击犯罪、维持社会安定的重要手段。...
mastercamx7win32剖解文件
RATIONAL ROBOT剖解15天的使用
FlashMediaServer3.5.2无限制 完全剖解,仅供flash编程爱好者使用,其它商业用途 后果自负。
14食品安全管理制度剖解.docx
精装修住宅收纳系统详细剖解.pptx
14.食品安全管理制度剖解.doc
电子商务基础知识剖解PPT学习教案.pptx
本资料《小升初几何图形的详细剖解图》旨在帮助学生深入理解几何概念,提升解题能力。 一、几何图形基础 1. 基本图形:了解平面图形如点、线、直线、射线、线段、角的基本概念,以及平面图形(如正方形、长方形、...
岳麓必修一鸦片战争张剖解实用教案.pptx
"剖解版"可能指的是这个版本包含了详细的文档或者源码分析,便于用户更深入地理解和定制功能。 HttpWatch的主要功能包括: 1. **实时监测**:它可以直接在浏览器中集成,无需离开浏览器界面就能实时查看HTTP请求和...
《中国考古剖解》PPT学习教案详细解析 考古学是一门揭示人类历史与文化的科学,通过对古代遗迹和遗物的发掘与研究,重构过去社会的生活面貌。此PPT学习教案详细介绍了考古学的基本理论与方法,对于深入理解中国考古...
【智能安防 家庭安防系统功能及手段剖解】 随着社会的发展和科技的进步,智能安防系统已成为现代家庭安全的重要保障。家庭安防系统旨在通过科技手段提高住宅的安全性,预防盗窃、火灾和其他潜在危险,为居民提供...