解析网络通信中应用的动态路由选择协议

pengrenpei 分享 时间: 收藏本文

【简介】感谢网友“pengrenpei”参与投稿,下面就是小编给大家带来的解析网络通信中应用的动态路由选择协议(共4篇),希望大家喜欢,可以帮助到有需要的朋友!

篇1:解析网络通信中应用的动态路由选择协议

正文:

1. 计算机网络与路由简述

计算机网络(computer networks)是一个复杂的系统,其中存在许多技术,并且每种技术都与其它的技术一样起着不可替代的作用。许多国际组织和公司已经独立地设置了网络标准,而且彼此并不完全兼容。许多企业也已经推出了各种使用非常规的网络技术的产品和网络服务及其网络协议。计算机网络正变得越来越复杂,使其变得复杂的原因在于有多种网络技术以及各种网络协议被用来连接两个或者多个网络,这也就导致网络间有多种可能的连接方式。 比如,CISCO公司的路由器有其自主开发的动态路由协议IGRP和EIGRP,在广域网三层使用路由协议进行PACKET的分组交换路由的时候,目的路由器必须是使用的CISCO的路由器并且使用的是IGRP或者EIGRP路由选择协议,否者在路由器所连接的源和目的主机间不能进行通讯,因为IGRP和EIGRP是CISCO专有的路由协议。

2. 路由 / 路由协议 (Route / Routing Protocols)

2.1 路 由(Route)与 路由器 (Router)

路 由(Route) 将分组从网间网的一个地方转发到另一个地方的路径和过程。

路由器(Router) 用来网络互连计算机三层网络边缘设备,工作在OSI七层参考模型的网络层,为不同的网络之间报文寻径并存储转发。

2.2 路由选择协议(Routing Protocol)与可路由选择协议(routed protocols)

我们可以想象一种情况,如果整个武汉市只有一条公路,每辆汽车、每辆自行车、每个摩托车、每个行人都必须使用这唯一的一条公路。成千上万的汽车造成的交通通信量将在所有的地方造成拥塞。显然,需要将过多的交通量转移到不同的道路上,以将其分解为可以管理的部分。道路仍然需要交叉,这样人们仍然可以到达它们需要的任何目的地。多个交叉也可以提供富余的路由,这样可以避免巨大的交通延迟。通过在不同的路由上发送交通量,可以将交通拥塞压缩到最低限度。按照相同的方法,互连网络通信量需要分解,以避免网络通信量拥塞。引导互连网络通信量达到不同网络上的过程称为 路由选择(Routing)。

路由选择协议(Routing Protocols): 用于建立和维护路由表和按照达到数据包的目的地的最佳路径转发数据数据包的协议。比如,RIPV1,IGRP,OSPF等。

可路由选择协议(Routed protocols): 已选择路由协议由最终节点使用,以将数据和网络层地址分配信息一起封装在数据包中,目的是它可以通过互连网络进行中继。AppleTalk、IP和IPX都是已选择路由协议。注:当一个协议不支持网络层地址时,那么它就不是一个已路由协议。

路由器使用路由选择协议(routing protocols),以建立和维护路由表和按照达到数据包的目的地的最佳路径转发数据数据包。路由选择协议使路由器可以了解没有直接连接的网络的状态和与其他的路由器通信,以了解它们所关心的网络。这种通信不断进行,这样当互连网络中发生变化时,路由选择表中的信息可以随时更新。

2.3 路由选择算法(Algorith)和度量值(Metric)

路由选择算法就是路由选择协议用于决定达到目的网络的最佳路径的计算方法。路由选择算法越简单,则路由器将使用的处理能力就越小。这将减少路由器的日常费用。

路由选择算法的主要目的有3个:

• 准确性

• 低开销

• 快速收敛

度量值(Metric)是那些用于决定哪个路由是最优的值。根据所使用的路由选择协议,不同的因素可以决定一个路由的度,包括中继数量、链路速度、延迟(delay)、可靠性(capability)和负载(load)。

3.动态路由选择协议(Dynamic Routing Protocols)分类

动态路由是用某种算法寻找网络中的最佳路径和维护这张路由表的过程。

动态路由选择协议(Dynamic Routing Protocols)主要类型,如下:

距离矢量 (Distance Vector)

链路状态路由协议 (Link State)

3.1 距离矢量 (Distance Vector)

距离向量路由选择协议也称为Bellman Ford协议,

距离矢量路由协议主要有: RIPV1 , RIPV2 , IGRP。( RIP Routing Information Protocols , IGRP Interior Gateway Routing Protocols )距离矢量路由器定期向相邻的路由器发送它们的整个路由选择表(routing table)。距离相邻路由器在从相邻路由器接收到的信息的基础之上建立自己的路由选择信息表。无论使用何种类型的路由选择算法,互连网络上的所有路由器都需要时间以更新它们的路由选择表中的改动,这个过程称为聚合(convergence)。

距离向量路由选择是最古老也是最简单的一种路由选择协议算法。

距离矢量路由协议有一个严重的缺点,缓慢的收敛时间过程会造成路由回路(Routing Loop)。

解决路由回环方法:水平分割,定义最大跳数,路由毒杀,反转毒杀,抑制时间。

(注: 真正的距离矢量路由协议只有RIPV1和RIPV2,因为它们只用到了HOP跳数做为唯一的计算路由的方法。IGRP是CISCO公司专有的动态距离矢量路由协议,它使用到了跳数,但是主要决定路由因数是链路带宽,延迟,负载,最大传输单元,设备可靠性,能力等。)

3.2 链路状态路由协议 (Link State)

链路状态路由选择协议的目的是映射互连网络的拓扑结构,它是一种比距离矢量更复杂的路由选择协议,目前最流行的动态路由协议就是一种链路状态协议:OSPF 。OSPF的普及因为多协议标签交换(MPLS)的出现而更流行。

链路状态路由协议主要有: OSPF , IS IS(OSPF Open Shortest Path First , IS IS Intermediate System to Intermediate System)每个链路状态路由器提供关于它邻居的拓扑结构的信息。这包括:

• 路由器所连接的网段(链路)

• 那些链路的情况(状态)

链路状态路由器并不会广播包含在它们的路由表内的所有信息。链路状态路由协议只发送已经改动的路由的信息。链路状态路由器将向它们的邻居发送呼叫消息,这称为链路状态通告( LSA )。然后,邻居将LSA复制到它们的路由选择表中,并传递那个信息到网络的剩余部分。这个过程称为泛洪( flooding )。链路状态路由选择协议使用称为代价(cost)的方法,而不是使用跳(hop)。代价是自动或人工赋值的。链路状态路由选择协议的一个主要优点,即路由选择循环不可能形成,第2个优点,在链路状态互连网络中聚合是非常快。这些优点释放了路由器的资源,因为对不好的路由信息所花费的处理能力和带宽消耗都很少。

(注:EIGRP是一种混合动态路由协议,它综合了距离矢量和链路状态的两种路由方法。但是我们还是认为它属于一种高级距离矢量路由协议(HYBRID),这里就不在过多讨论了。EIGRP和IGRP都是CISCO公司专有的路由协议,只有运用在CISCO公司或者它授权的路由产品中才能使用。)

4. 内部和外部网关协议 (IGP和EGP)

在大型网络中,例如Internet,极小的互连网络分解为自治系统AS(Autonomous System)。每个AS被认为是一个自我管理的互连网络,一个自治系统内部运用相同的路有策略和路由算法。连接到Internet上的大型公司网络是自己拥有的自治系统,因为Internet上的其他主机并不由它来管理,而且它和Internet路由器并不共享内部路由选择信息。

路由选择协议是在一个自治系统内部为管理系统而开发的。它们也称为内部网关协议( IGP Interior Gateway Protocols )。内部网关协议也称为域内协议,因为它们工作在域内,而不是在域之间。这些协议认为,它们所处理的路由器是它们系统的一部分,并且可以自由交换路由选择信息。内部网关路由协议主要有: RIPv1 , RIPv2 , IGRP , EIGRP , OSPF , IS IS等。

有些路由选择协议也是为在一个较大的互连网络中连接自治系统而开发的。它们称为外部网关协议(EGP C Exterior Gateway Protocls)。外部网关协议就是所谓的域间协议,因为它们工作在域之间。这些协议认为,它们在系统的边缘上,而且仅仅交换必须的最少的信息,以维持对信息提供路由的能力。外部网关路由协议主要有: EGP 和 BGP4(Border Gateway protocol 4)。

总结

综述,路由选择协议是三层网络设备路由器转发分组寻找路由的动态算法和方法,一个好的动态路由算法不仅仅能增加网络可利用带宽,降低路由器CPU利用率,还将更好的转发分组增加网络的稳定性。动态路由协议的开发和不断完善是计算机广域网的一个重要部分。

篇2:关于OSPF路由协议在企业网络中的应用

现在的企业网络搭建中经常会用到OSPF,在此对该协议做一些阐述,

ospf 称为开放最短路径优先协议,所有设备厂商都支持的一种协议属于链路状态路由协议,适用于大型园区企业网络当中。

OSPF具有很多优点,1.采用触发更新路由,只要网络拓扑结构一旦发生变化,立即会触发更新路由表。2.根据链路状态来发送一些路由。3.采用组播发送路由协议。共有两个可用的组播ip地址224.0.0.5、224.0.0.6。5.适用的网络规模很大,几乎没有规模的限制6.metric cost。7.收敛速度比较快,而且不会造成路由环路8.有三张表格:(1)邻居表格通过发送HELLO包来与邻居交换机互换信息(2)链路状态数据库又称为LSDB(3)根据lsdb数据库运算出整个路由表(9)支持可变长子网掩码和子网不连续。而这些优点都是其它低端路由协议所不具备的。(10)支持到同一个目的地址的多条等代价路由。

OSPF路由表的产生过程:

每个路由器根据链路状态向其他路由器发送LSA(数据链路状态数据库),然后网络中的路由器将受到的所有LSA汇总成一个LSDB(链路状态数据库)。然后每台路由器使用SPF算法计算出一张最短路由的路径树状结构,从而得到各个节点的路由,产生路由表。

ospf可划分为单区域配置和多区域配置,单区域常应用于一些小型的网络中。

在企业网络中大部分使用的是多区域ospf,整个网络可以看做由多个自制系统组成。在ospf的不同区域中,area 0为骨干区域,在骨干区域中,为了保障数据包转发的速度,路由器的数量越少越好,而且作为area 0中的路由器,稳定性要非常强,传输速度越快越好。

area1 为标准区域,每个标准区域都必须与骨干区域(area 0)用路由器相连,而且在标准区域之间是不能直连的。

Stub区域通常位于自制系统边界,又称为末节区域。

完全Stub区域又称为完全末节区域。这种区域中,没有去往任何其他自制系统的路由。

ospf模型中根据路由器所处的位置不同,所起到的作用和名称也不尽相同;路由器的端口被分配到多个区域中去,那么这个路由器称为ABR(区域边界路由器)。ABR均为骨干区域的边界路由。连接自制系统的路由器称为ASBR(自制系统边界路由器)。由于二者之间大部分运行的路由协议不同,所以通常需要对该路由进行重分发,才能实现自治区域与其他网络的通信。

关于OSPF多区域配置:

设备需求:6台路由器,其中ROUTER2有4个SERIAL接口。

实验目的:

其中R1、R2、R3、R4在不同的区域内运行ospf协议;

R1在area 1作为Stub区域,R4在area 2作为完全Stub区域。

R5、R6在自制区域内运行RIP v1,实现全网互通。

在RIP中学习一条默认路由与OSPF进行通信;

在OSPF 中area0区域学习到所有详细的路由表

在area 2区域中只学到一条默认路和本区域内网络设备的路由表由向全网各个网络设备之间实现通信

以CISCO路由器为例:

下面为配置信息:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1111111111111111111111111111

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15[进入路由器管理级别15]

Router#conf ter

Router(config)#hostname R1[为路由器起别名]

R1(config)#INT F0/0【进入接口配置IP地址】

R1(config-if)#ip addres 192.168.1.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#int s1/0

R1(config-if)#ip add 192.168.2.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#router ospf 10【为R1配置】

R1(config-router)#network 192.168.1.0 0.0.0.255 area 1 【ospf的网段写法,首先写出该网段的IP 地址,然后跟上该网段的反掩码,最后跟上该网段所属的area x区域】

R1(config-router)#network 192.168.2.0 0.0.0.255 area 1

R1(config-router)#exit【R1路由配置完毕】

~~~~~~~~~~~~~~~~~~~~~~~~~~~

2222222222222222222222222222

~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#hostna R2

R2(config)#int s1/0

R2(config-if)#ip add 192.168.2.2 255.255.255.0

R2(config-if)#no shut

R2(config-if)#int s1/1

R2(config-if)#ip add 192.168.3.1 255.255.255.0

R2(config-if)#no shut

R2(config)#int s1/2

R2(config-if)#ip add 192.168.6.1 255.255.255.0

R2(config-if)#no shut

R2(config)#router ospf 10【配置ospf协议】

R2(config-router)#network 192.168.2.0 0.0.0.255 area 1

R2(config-router)#network 192.168.3.0 0.0.0.255 area 0

R2(config)#router rip【配置RIP】

R2(config-router)#network 192.168.6.0

R2(config)#router ospf 10

R2(config-router)#redistribute rip subnets 【对rip协议进行重分发,在ospf 区域中学习到各个区域中的详细路由表】

R2(config)#route RIP【下面的rip区域中学习到默认路由】

R2(config-router)#redistribute static

R2(config)#int null 0【注入一条默认路由】

R2(config-if)#ip route 0.0.0.0 0.0.0.0 null 0

R2(config)#

R2(config)#

R2(config)#exit【R2路由配置完毕】

~~~~~~~~~~~~~~~~~~~~

333333333333

~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Router(config)#int s1/1

Router(config-if)#ip ad 192.168.3.2 255.255.255.0

Router(config-if)#no shut

Router(config)#int s1/0

Router(config-if)#ip add 192.168.4.1 255.255.255.0

Router(config-if)#no shut

Router(config-if)#router ospf 10【配置OSPF】

Router(config-router)#network 192.168.3.0 0.0.0.255 area 0

Router(config-router)#network 192.168.4.0 0.0.0.255 area 2

Router#conf ter

Router(config)#router ospf 10   【作为完全Stub区域的边界路由器,需要在Stub 中声明不要自动汇总路由表,这样能够提高早area 2的各个网络设备之间的速度,需要注意的是末节区域需要在该区域的所有路由器上都声明 area x stub】

Router(config-router)#area 2 stub no-summary 【R3路由配置完毕】

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

4444444444444444444444

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#int s1/0

Router(config-if)#ip add 192.168.4.2 255.255.255.0

Router(config-if)#no shut

Router(config-if)#hostname R4

R4(config)#int f0/0

R4(config-if)#ip add 192.168.5.1 255.255.255.0

R4(config-if)#no shut

R4(config-if)#loop

R4(config)#router ospf 10

R4(config)#router ospf 10  [ospf路由协议的配置方法]

R4(config-router)#network 192.168.4.0 0.0.0.255 area 2

R4(config-router)#network 192.168.5.0 0.0.0.255 area 2

R4(config-router)#exit

R4(config-router)#area 2 stub【设置末节区域】

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

55555555555555555555555555555

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Router(config)#hostname R5

R5(config)#int s1/2

R5(config-if)#ip add 192.168.6.2 255.255.255.0

R5(config-if)#no shut

R5(config-if)#int s1/0

R5(config-if)#ip add 192.168.7.1 255.255.255.0

R5(config-if)#no shut

R5(config-router)#router rip

R5(config-router)#network 192.168.6.0

R5(config-router)#network 192.168.7.0

R5(config-router)#

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

666666666666666666666666666666

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Router>en 15

Router#conf ter

Router(config)#int s1/0

Router(config-if)#ip add 192.168.7.2 255.255.255.0

Router(config-if)#no shut

Router(config-if)#

Router(config-if)#int f0/0

Router(config-if)#ip add 192.168.8.1 255.255.255.0

Router(config-if)#no shut

Router(config-if)#loop

Router(config-if)#

Router(config-if)#exit

Router(config)#router rip【RIP的路由协议配置】

Router(config-router)#network 192.168.7.0【跟上直连的网段】

Router(config-router)#network 192.168.8.0

Router(config-router)#【R6配置完毕】

试验完成

观察R2上的路由表

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

R    192.168.8.0/24 [120/2] via 192.168.6.2, 00:00:22, Serial1/2

O IA 192.168.4.0/24 [110/128] via 192.168.3.2, 00:31:30, Serial1/1

O IA 192.168.5.0/24 [110/129] via 192.168.3.2, 00:02:02, Serial1/1

C    192.168.6.0/24 is directly connected, Serial1/2

R    192.168.7.0/24 [120/1] via 192.168.6.2, 00:00:22, Serial1/2

O    192.168.1.0/24 [110/65] via 192.168.2.1, 00:31:30, Serial1/0

C    192.168.2.0/24 is directly connected, Serial1/0

C    192.168.3.0/24 is directly connected, Serial1/1

S*   0.0.0.0/0 is directly connected, Null0

R2#

观察R4上的路由表

R4为完全末节区域,学习到的路由表只有自己本区域和一条直连路由,

Gateway of last resort is 192.168.4.1 to network 0.0.0.0

C    192.168.4.0/24 is directly connected, Serial1/0

C    192.168.5.0/24 is directly connected, FastEthernet0/0

O*IA 0.0.0.0/0 [110/65] via 192.168.4.1, 00:02:18, Serial1/0

R4#

观察R5上的路由表

R5为RIP区域,在小型网络中应用,外界的路由太多会影响本区域内网络设备的通信速度,因此学习除了本区域,外部区域的路由均为静态默认路由

Gateway of last resort is 192.168.6.1 to network 0.0.0.0

R    192.168.8.0/24 [120/1] via 192.168.7.2, 00:00:19, Serial1/0

C    192.168.6.0/24 is directly connected, Serial1/2

C    192.168.7.0/24 is directly connected, Serial1/0

R*   0.0.0.0/0 [120/1] via 192.168.6.1, 00:00:08, Serial1/2

R5#

本文出自 “学海无涯” 博客,请务必保留此出处zhangc.blog.51cto.com/5627676/950016

篇3:嵌入式 TCP/IP 协议单片机技术在网络通信中的应用

嵌入式 TCP/IP 协议单片机技术在网络通信中的应用

摘要:介绍了嵌入式TCP/IP协议单片机在网络通信中的数据传输技术。将TCP/IP协议嵌入式单片机中,借助网卡芯片CS8900实现了单片机在局域网内和通过局域网在因特网上的数据传输。用户终端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。

关键词:TCP/IP协议 单片机 因特网 局域网 网卡芯片

在因特网上,TCP/IP协议每时每刻保证了数据的准确传输。在数据采集领域,如何利用TCP/IP协议在网络中进行数据传输成为一个炙手可热的话题。在本系统中,笔者利用TCP/IP协议中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了单片机的网络互连,既提高了数据传输的速度,又保证了数据传输的正确性,同时也扩展了数据传输的有效半径。

1 TCP/IP协议简介

TCP/IP协议是一套把因特网上的各种系统互连起来的协议组,保证因特网上数据的准确快速传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网络层、链路层。

(1)应用层

网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。在本系统中,单片机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报作打包拆报处理。

(2)传输层

传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。在本系统中使用UDP数据报协议。

(3)网络层

网络层让信息可以发送到相邻的TCP/IP网络上的任一主机上,IP协议就是该层中传送数据的机制。同时建立网络间的互连,应提供ARP地址解析协议,实现从IP地址到数据链路物理地址的映像。

(4)链路层

由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层协议的协议并属于TCP/IP协议组。在本系统中这部分功能由单片机控制网卡芯片CS8900实现。

(本网网收集整理)

2 硬件框图

如图1所示,系统提供RJ45接口连接Ethernet网络,并且提供一个串口给用户使用。系统板可以将从Ethernet上过来的IP数据报解包后送给串口,也可将从串口过来的数据封装为IP包送到局域网中。外部RAM使用61C1024(128KB),从而为数据处理提供了很大的缓存;使用E2PROM――X25045,既可以作为看门狗使用,也可以将IP地址、网卡物理地址和其他参数保存在里面。

CS8900芯片是Cirrus Logic公司生产的一种局域网处理芯片,它的封装是100-pin TQFP,内部集成了在片RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口,本文只介绍它的8位模式。

NE103是一种脉冲变压器,在CS8900的前端对网络信号进行脉冲波形变换。

3 工作原理

3.1 CS8900的工作原理

CS8900与单片机按照8位方式连接,网卡芯片复位后默认工作方式为I/O连接,基址是300H,下面对它的几个主要工作寄存器进行介绍(寄存器后括号内的数字为寄存器地址相对基址300H的`偏移量)。

・LINECTL(0112H)

LINECTL决定CS8900的基本配置和物理接口。在本系统中,设置初始值为00d3H,选择物理接口为10BASE-T,并使能设备的发送和接收控制位。

・RXCTL(0104H)

RXCTL控制CS8900接收特定数据报。设置RXTCL的初始值为0d05H,接收网络上的广播或者目标地址同本地物理地址相同的正确数据报。

・RXCFG(0102H)

RXCFG控制CS8900接收到特定数据报后会引发接收中断。RXCFG可设置为0103H,这样当收到一个正确的数据报后,CS8900会产生一个接收中断。

・BUSCT(0116H)

BUSCT可控制芯片的I/O接口的一些操作。设置初始值为8017H,打开CS8900的中断总控制位。

・ISQ(0120H)

ISQ是网卡芯片的中断状态寄存器,内部映射接收中断状态寄存器和发送中断状态寄存器的内容。

・PORT0(0000H)

发送和接收数据时,CPU通过PORT0传递数据。

・TXCMD(0004H)

发送控制寄存器,如果写入数据00C0H,那么网卡芯片在全部数据写入后开始发送数据。

・TXLENG(0006H)

发送数据长度寄存器,发送数据时,首先写入发送数据长度,然后将数据通过PORT0写入芯片。

以上为几个最主要的工作寄存器(为16位),CS8900支持8位模式,当读或写16位数据时,低位字节对应偶地址,高位字节对应奇地址。例如,向TXCMD中写入00C0H,则可将00h写入305H,将C0H写入304H。

系统工作时,应首先对网卡芯片进行初始化,即写寄存器LINECTL、RXCTL、RCCFG、BUSCT。发数据时,写控制寄存器TXCMD,并将发送数据长度写入TXLENG,然后将数据依次写入PORT0口,如将第一个字节写入300H,第二个字节写入301H,第三个字节写入300H,依此类推。网卡芯片将数据组织为链路层类型并添加填充位和CRC校验送到网络同样,单片机查询ISO的数据,当有数据来到后,读取接收到的数据帧。读数据时,单片机依次读地址300H,301H,300H,301H…。

3.2 单片机工作流程

如图人所示,单片机首先初始化网络设备。网卡IP地址和物理地址存在X25045中,单片机复位后首先读取这些数据以初始化网络。

单片机主要完成数据的解包打包。当有数据从RJ45过来,单片机对数据报进行分析,如果是ARP(物理地址解析)数据包,则程序转入ARP处理程序(因为在网络上正是ARP协议将IP地址和物理地址相映射)。如果是IP数据包且传输层使用UDR协议,端口正确,则认为数据报正确,数据解包后,将数据部分通过串口输出。反之,如果单片机从串口收到数据,则将数据按照UDP协议格式打包,送入CS8900,由CS8900将数据输出到局域网中。

可以知道,单片机主要处理协议的网络层和传输层,链路层部分由CS8900完成。因单片机将数据接收后完整不变地通过串口输出,所以将应用层交付用户来处理,用户可以根据需求对收到的数据进行处理。

在单片机的程序处理中,包含了完整的APR地址解析协议。通过在单片机中正确设置网关、子网掩码等参数,实现了通过局域网单片机与外部因特网上的终端设备的数据通信。

4 应用

这种嵌入式TCP/IP协议的单片机系统板,具有成本低、硬件少、占用面积少、传输速度快、使用方便等优点。适用于现有的网络传输系统,有着广泛的应用前景,特别是数据采集、数据传输领域。目前,在屏幕板数据成像、远程数据采集系统中被使用。

篇4:嵌入式TCP/IP协议单片机技术在网络通信中的应用

嵌入式TCP/IP协议单片机技术在网络通信中的应用

摘要:介绍了嵌入式TCP/IP协议单片机在网络通信中的数据传输技术。将TCP/IP协议嵌入式单片机中,借助网卡芯片CS8900实现了单片机在局域网内和通过局域网在因特网上的数据传输。用户终端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。

关键词:TCP/IP协议 单片机 因特网 局域网 网卡芯片

在因特网上,TCP/IP协议每时每刻保证了数据的准确传输。在数据采集领域,如何利用TCP/IP协议在网络中进行数据传输成为一个炙手可热的话题。在本系统中,笔者利用TCP/IP协议中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了单片机的网络互连,既提高了数据传输的`速度,又保证了数据传输的正确性,同时也扩展了数据传输的有效半径。

1 TCP/IP协议简介

TCP/IP协议是一套把因特网上的各种系统互连起来的协议组,保证因特网上数据的准确快速传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网络层、链路层。

(1)应用层

网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。在本系统中,单片机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报作打包拆报处理。

(2)传输层

传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。在本系统中使用UDP数据报协议。

(3)网络层

网络层让信息可以发送到相邻的TCP/IP网络上的任一主机上,IP协议就是该层中传送数据的机制。同时建立网络间的互连,应提供ARP地址解析协议,实现从IP地址到数据链路物理地址的映像。

(4)链路层

由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层协议的协议并属于TCP/IP协议组。在本系统中这部分功能由单片机控制网卡芯片CS8900实现。

2 硬件框图

如图1所示,系统提供RJ45接口连接Ethernet网络,并且提供一个串口给用户使用。系统板可以将从Ethernet上过来的IP数据报解包后送给串口,也可将从串口过来的数据封装为IP包送到局域网中。外部RAM使用61C1024(128KB),从而为数据处理提供了很大的缓存;使用E2PROM――X25045,既可以作为看门狗使用,也可以将IP地址、网卡物理地址和其他参数保存在里面。

CS8900芯片是Cirrus Logic公司生产的一种局域网处理芯片,它的封装是100-

[1] [2] [3]

相关专题 路由网络通信