ip协议范文

时间:2023-03-21 01:09:13

导语:如何才能写好一篇ip协议,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

ip协议

篇1

关键词:路由技术 算法 Rip

1、IP路由算法

IP路由算法可分为以下几种:静态和动态、单路和多路、平等和分级、源路由和透明路由、域内和域间、链路状态和距离向量。

链路状态算法发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。距离向量算法则要求每个路由器发送其路由表全部或部分信息,但仅发送到邻近结点上。从本质上来说,链路状态算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。

由于链路状态算法收敛更快,因此它在一定程度上比距离向量算法更不易产生路由循环。但另一方面,链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间,因此链路状态算法将会在实现时显得更昂贵一些。除了这些区别,两种算法在大多数环境下都能很好地运行。路由算法使用了许多种不同的度量标准去决定最佳路径。复杂的路由算法可能采用多种度量来选择路由,通过一定的加权运算,将它们合并为单个的复合度量、再填入路由表中,作为寻径的标准。

2、RIP路由协议的原理分析

RIP是基于距离矢量的路由协议。运行RIP的路由器维持一个到网络中可能目的地的路由表,路由表包含目的地址和开销等信息。具体的说,RIP协议主要包括以下几个方面的内容。

2.1计算距离矢量

距离矢量路由协议利用度量来跟踪它和所有已知目的地间的距离。这种距离信息使路由器可以找出到位于非近邻独立系统中的目的地最有效的下一跳。在RFC-1058中,有一个唯一的距离矢量单位,即跳数。在RIP中默认的跳数度量被置为1,这些距离度量用来构造路由表。路由表识别出数据包,以最小开销到达目的地所要采取的下一跳。

2.2更新路由表

RIP只记录每个目的地址的一条路由,这一事实要求RIP经常保持其路由表的完整性。它通过要求所有活跃的RIP路由器周期性的向相邻RIP路由器广播它们路由表的内容。通常,RIP依赖3个计时器来维护路由表:即更新计时器、路由暂休计时器、路由清楚计时器。更新计时器用来激发节点路由表的更新。每个RIP节点只有一个更新计时器。然而,路由暂休和路由清除计时器则是每条路由都有一个。因此,每个路由表条目中都有一个不同的暂休和路由清除计时器。总之,这些计时器使RIP节点能维护它们路由的完善性,并根据所用的时间进行激活,从而恢复网络故障。

2.3激活路由更新

大约每30s激活一次路由更新。更新路由器用来跟踪这个时间量。当这个时间量结束时,RIP发送一系列帧来维护整个路由表。这些帧广播到每个邻节点。因此,每个RIP路由器大约每30s就要接收来自邻RIP节点的更新。

2.4识别无效路由

路由变得无效的两种情况:其一,路由到期;其二,路由器可能通知某个路由器某条路由是不可用的。在这两种情况下,RIP路由器都需要改变它的路由表,来反映给定路由的不可用性。假如路由器在给定的时间内没有接收到更新某路由的信息,该路由可能到期。路由暂休定时器常设成180s,当路由激活或更新时,该定时器初始化。假如180s过去了,路由器还没有接到更新那条路由的信息,RIP路由器就认为目的IP地址不再可达。因此路由器把表中那条路由项标成无效。收到路由新近无效通知的邻节点利用该信息来更新它们的路由表。这是路由表中路由变得无效的第2种方法。无效路由表项不会自动的从路由表中清除;相反,那条无效项继续在路由表中保留很短一段时间。

2.5清除无效路由

当路由器认识到某条路由无效时,就初始化一个秒计时器,负责路由清除倒计时,这一计时称为路由清除计时器。当路由清除计时器结束时,路由仍未被收到,这一路由就从路由表中清除。这些计时器是RIP恢复网络故障能力中绝对重要的。

2.6编址方案

IETF保证RIP能够完全向后兼容所有已知的RIP和ROUTED异体。即使这些异体专用程度很高,开放标准RIP仍有必要支持多种地址类型。

2.7路由到网关

很多实际网络中,并不要计算到每个单个主机的路由。特别是在大型网络中,这会使路由表膨胀,从而使整个网络的路由工作繁重。因此在实际网络中,几乎总是概括路由,而不是指出每个可能目的地。假如一个给定的网络(或子网)上,每个主机都能通过网关到达的话,这时路由表只需定义那个网关为下一条IP地址就可以了。所有发往那个网络或子网上的数据包将发送给那个网关,这时网关就承担了把它发送到最终目的地的任务。

3、RIP协议处理过程

RIP协议的运行过程就是路由器软件对消息输入和输出处理过程,其输入和输出处理大致如下所描述。

输入处理:主要是指路由器协议软件对在520号UDP端口收到的数据报进行的处理。对于输入处理,首先必须先作一定格式检查,检查通过后,再分别对几种输入消息做相应的处理。

请求报文:路由器在开始运行时,为了从邻机处获取路由表的初始值,通常会发一个请求。报文的Command字段为。对所有或部分路由表的请求,一般以广播形式从520号UDP端口发送。实际中,这种请求有两种格式:请求获取路由表的全部和请求获取路由表的某些特定路由项。路由软件先逐个路由项地处理请求,如果没有任何路由项,也就没有响应;如果请求中恰好只有一个路由项,并且addressfamilyidentifier为0,metric为16,则表示需要接收方发送所有路由表的请求;除此之外,则是要求部分路由,处理很简单,沿着请求路由项表一个一个看,对于每个路由项,在主机路由数据库中查找,如果找到,则将该路由的metric值填入数据报的metric字段,如果没有,则向其中填16。一旦所有路由项均已处理,将command字段设为响应,并将该数据报发回其来自的端口。根据请求是否关于指定的一批目的地,还是关于整个路由表,处理有所不同。如果关于整个路由表,输出作普通的处理即可,包括水平分割和子网隐藏,因此来自路由表的某些路由项将被隐藏;如果是指定路由项,则将查找结果返回,不作水平分割,如果需要还要返回子网信息。

响应报文:因为指定查询、路由修改等原因而收到响应。不论收到什么样的响应,RIP处理程序就开始更新它的路由表。

输出处理:用于产生包含全部或部分路由表的响应信息的处理,可能由于输入进程发现请求或路由修改而触发。响应请求产生的输出可以直接按需工作,而触发的修改因为两个方面需要处理。

首先,触发的修改在容量有限或有许多路由器的网络上可能导致格外大的负载,因此协议要求实现方在限制触发式修改出现的频率上采取一定的措施,触发式修改发送后,需要随机地将一个定时器设置成1到5秒,如果在定时器超时前发生其它修改,需要到定时器超时才触发其中之一,然后定时器再随机地设置成1到5秒,触发式修改可能被一般修改所禁止;另外,触发式修改可能不必包括整个路由表,原则上说,只有改变过的路由才需要包括,作为触发式修改一部分的信息至少包括设置了路由修改标志的路由,也可以包括附加路由和全部路由。如果完整的修改需要多个数据报,则发送全部路由极有可能被打断;而触发式修改处理时,需要产生每个直连网络的信息。产生触发式修改或一般修改时,都需要进行水平分割操作。

参考文献

篇2

【关键词】 IP协议; IPv6; IPv4

物联网的本质是网络间交互作用,但是,互联互通是物联网交互作用的前提条件。由于物理世界中物件数量难以计数,物的形态与性质又是千变万化、千差万别,如何通过网络把这些千奇百怪的物件不但能够联系起来,保持各自的性质与状态,而且将来能够在网络智能控制下交互作用,这就是物联网建设中必须考虑与建设的标准问题。但是,随着近30年互联网的蓬勃发展,特别是物联网的发展开始受到网络IP地址的限制。有资料显示全球IPv4地址可能在很短时间内即将消耗殆尽,地址空间的不足必将影响互联网的进一步发展。网络IP地址不足,严重地制约了我国及其他国家互联网的应用和发展。

基于这个背景,论文主要介绍企业在建设物联网过程中应该如何选择IP协议的相关问题,特别是IPv6对IPv4取代的必然性以及企业物联网建设中应用IPv6应该注意的问题。

一、因特网协议IP(Internet Protocol,IP)的发展历程

互联网建设的终极目标是:网络是中立和无控制的,任何人都没有决定权;网络的应用是无关的,网络的任务就是如何更好地传输数据报。因此,要建立一个可以无缝链接到其他网络的系统和如何设计一个面向未来的网络,就需要一个大家都接受的网络协议。这个协议就叫因特网协议,也叫IP协议产生的前提条件,也是IP协议的重要作用。

IP协议最早形成于美国国防部高级研究项目局资助的工程所开发的协议(叫1822协议),在1970年为网络控制协议(Network Control Protocol,NCP)所取代,NCP协议的目的是通过接口消息处理机(Interface Message Processor,IMP),现在也称为智能物件的路由器,把网络上的各个站点联起来。Vint Cerf和Robert Kahn后来设计网络传输控制协议TCP(Transport Control Protocol,TCP)来取代网络控制协议NCP,由于两者没有分开,就统称TCP/IP。在因特网协议(也叫IP协议)里,使用最为广泛的两个协议是传输协议TCP和用户数据报协议UDP(User Datagram Protocol,UDP)。传输协议位于IP协议之上,为应用提供一种无须直接与IP层交互的通信机制。应用程序并不直接使用IP,而是通过传输协议相互通信。由于下层IP网络尽最大可能传递数据报,但无法保证数据报一定可以到达目的地,也无法保证数据报的交付顺序和发送时的顺序相同,因此,用户数据报协议UDP在IP层之上提供了一个附加层来解决前面的问题。IP使用地址标识因特网中的主机,UDP使用端口标识主机的每一个进程。端口是一个16bit的数值,用来区分每个端点不同的发送者和接收者。用户数据报协议UDP提供一种尽力而为的传送服务。

IPv4(TCP第4版)是在1982年设计,广泛并成功地部署到全世界大量公用网络和私有网络中的数以亿计的主机和路由器上。IPv6(TCP第6版)的发展是从1992年开始的,由IETF设计的下一代互联网协议,目的是取代现有的互联网协议第四版(IPV4)。经过了十几年的发展,IPv6的标准体系已经基本完善,在这个过程中,IPv6逐步优化了协议体系结构,为业务发展创造了机会。

随着物联网建设的发展,许多客观世界中的物要通过智能物件经过网络联系并能够交互起来。这就需要IP协议能够唯一识别并有效地把智能物件联系起来。因此,一下子扩充了的网络地址及其网络操作发展中互通性、可扩展性、架构的稳定性和普遍性受到人们的重视。

二、IPv6对IPv4取代:物联网发展的必然

IPv4协议已经使用了30多年,不可否认,IPv4在因特网的发展进程中起到了举足轻重的作用。甚至今天的因特网中绝大多数仍是使用IPv4协议。但是,随着计算机及路由器的迅速发展,特别是随着物联网的快速发展,IPv4的弊端日益明显,IP6取代IP4成为物联网发展的必需,具体如下:

(一)IPv6对IPv4的取代能够解决物联网发展过程中网络地址的不足

当前,IPv4地址资源有限。从理论上讲,编址1 600万个网络、大约43亿个电脑可以联到Internet上。但采用A、B、C三类编址方式后,可用的网络地址和主机地址的数目大打折扣,以致目前的IP地址近乎枯竭。最近美国ARIN报告,A类地址已分配完;62%B类地址已分配;37%C类地址已分配,IPv4的地址空间将面临耗尽的危险。IPv6产生的初衷主要是针对IPv4地址短缺问题,即从IPv4的32bit地址,扩展到了IPv6的128bit地址,充分解决了地址匮乏问题。同时,IPv6网络中一个接口可以有一个或多个IPV6地址(包括单传波地址、任播地址和多播地址),这也进一步增加了地址应用的扩展性。

(二)IPv6对IPv4的取代能够解决物联网发展过程中互通性、可扩展性、架构的稳定性和普遍性的需要

1.IPv6取代IPv4,更能够适应物联网网络传输控制的发展

网络能够互联互通是网络在任何数据改善之前,两个端口之间必须建立一个链接。链接由端点的IP地址和TCP端口之间唯一确定。TCP在尽力而为的IP层之上提供一个可靠的字节流来传输服务,它通过缓冲数据并结合主动确认和重传机制,实现传输可靠性;同时,TCP还提供包括建立和拆除链接的可靠方式。总之,TCP以更大的报头和更为复杂的传输层协议的逻辑为代价降低了应用的复杂程度。

在物联网环境下,智能物件有芯片内存低、信息吞吐量低等特点。同时,用于物联网环境下的UDP协议存在两个缺点:UDP不为传输过程中丢失的数据报提供任何恢复机制,丢失的数据报由应用来恢复;同时,UDP不为应用提供任何机制来将数据割成大小适合网络传输的数据块。因此,必须计算出适合网络传送的分组数据大小,并相应地调整数据报。而这些功能TCP不但提供传输可靠性,还提供了一种自适应分组传送报文大小的机制。这些功能就要求TCP的地址能够把数量巨大的智能物件按唯一的身份联系起来。因此,IPv6取代IPv4,更能够适应物联网网络传输控制的发展。

2.IPv6取代IPv4更能够适应物联网发展过程中互通性、可扩展性、架构的稳定性和普遍性的需要

随着物联网等信息技术的发展,虽然智能物件具有一定的智能,但是,它们毕竟是没有智慧的物体,不能够像人那样熟悉直接操作网络。因此,相对人来说,智能物件对物联网中的网络协议有更多的特殊要求,比如:可扩展性、互通性、架构稳定性和普遍性等。

智能物件对IP协议的可扩展性需求是指IP协议能够内在支持智能物件的发展而具有可持续开发的机制;智能物件对IP协议的互通性需求是指IP协议能够支持智能物件之间以及智能物件和网络基础设施之间可持续的互通性,这就要求IP协议提供网络、应用和协议在网络中不同链路层内和层间的互通性;智能物件对IP协议的架构稳定性和普遍性的需求是指虽然IP协议的可扩展很重要,但是IP协议的架构稳定性和普遍性对智能物件在生命周期内具有重要意义。

总之,IPv4近20年的空前成功,已经证明了IPv4协议设计的基本思想、构架是值得肯定的。IPv6并不是一个全新的网络协议标准,没有完全IPv4的所有思路和结构,它总结IPv4近20年来运营所获得的丰富经验和教训,继承IPv4协议运行的主要优点,最后进行了大幅修改和功能扩充。例如:针对物联网的发展需要,除了具有庞大的地址空间外,IPv6对IPv4功能上进行了发展,简易灵活的头部格式、网络资源可进行预分配、更高的安全性、支持即插即用和移动性。由于这些特性技术含量较高,这里不进行具体介绍。智能物件由于自身的特殊性对物联网的IP协议具有特殊的要求,新一代的IPv6能够为物联网的应用和服务提供可横跨多种通信技术的互通、可扩展、稳定和普遍的网络架构协议,为互联网换上一个简捷、高效的引擎,这样不仅可以解决IPv4目前的地址短缺难题,而且可以使物联网摆脱日益复杂、难以管理和控制的局面,变得更加稳定、可靠、高效和安全。

三、企业应用IPv6应该注意的主要问题

随着3G通讯业务、智能手机等多种个人智能终端、超高速家庭网络的发展,针对网络地址不足等问题,我国已经起动IPv6取代IPv4的工程。这对物联网建设具有重要的现实意义。但是,正如每一个新生事物一样,IPv6也有其不足的地方,企业在物联网建设中应用IPv6除了进行详尽的规划与设计外,还应该主要注意过渡性问题与安全问题。

(一)过渡性问题

虽然IPv4有上述缺陷以及IPv6协议标准的成熟具有取代IPv4位置的必然趋势,但是,这种取代的过程必然会经历一个相对漫长的过程。同时,尽管IETF在设计IPv6的时候已经充分考虑了和IPv4的兼容性,但是这两个版本不是完全兼容的。因此,企业在物联网建设中必须考虑由IPv4向IPv6过渡的问题。首先是处理好IPv4向IPv6迁移时应该考虑的地方:Ipv4与Ipv6的主机必须可互操作;Ipv6主机和路由器的使用必须简单,逐渐地分布普及到整个Internet,不能有太多的相互依赖性;网络管理员和最终用户必须认为这种迁移容易理解和执行。其次是注意过渡技术的选择,即双协议栈技术、隧道技术和网络地址转换技术。

(二)安全性问题

引入IPv6出现的安全问题主要来源于两方面:一方面是由于IPv6本身的缺陷所引发的安全问题;另一方面是由于IPv6的过渡技术引发的安全问题。由IPv6本身的缺陷引发的安全问题有:IPv6现在遇到的安全威胁主要包括地址扫描、非法访问、分片、路由协议的认证、蠕虫攻击、对ICMPv6的攻击、对邻居发现的攻击以及对无状态地址自动配置的攻击等;过渡技术引发的问题有:双栈技术的安全问题、隧道技术的安全问题、地址翻译技术的安全问题等。

四、结论与启示

物联网建设需要把数以亿计的物件“互联互通”并且“相互作用”,企业在建设物联网过程中应该选择IPv6对IPv4取代的IP协议的标准是:不仅要有充足的地址资源,更需要IPv6能够在网络操作发展中有更好的互通性、可扩展性、架构的稳定性和普遍性。

IPv6对IPv4是一个不能够相互兼容的IP协议。物联网建设从IPv4向IPv6迁移产生不少的过渡困难。这给大家的启示便是能够有统一的标准,不仅是技术标准,也包括管理标准。如果说IPv4向IPv6迁移中技术问题比重较大的话,那么,基于物联网会计云计算建设中就会克服更多的需要统一的管理标准。如:当前,由于没有统一的云计算标准,Google、Amazon、微软、IBM等公司纷纷推出自己的云计算平台和云计算的实务标准。这就导致了不同厂商的服务出现兼容性问题。如何通过沟通协作,把这些实务标准变成统一标准需要大家共同努力。

篇3

关键词:“计算机网络”教学;Wireshark;TCP/IP

“计算机网络”课程作为计算机科学与技术、网络工程、通信工程和软件工程等专业的主干课,其地位在课程体系群中尤为重要。学习这门课程,最重要的是掌握计算机网络的原理,了解网络硬件和软件的工作机制。计算机网络基础理论复杂抽象,概念众多,对刚开始学习计算机网络的学生来说,这些概念和协议是非常难以理解和记忆的。计算机网络原理主要描述的是各层的功能及其协议和服务,具体地说就是要理解网络的相关功能层概念和网络体系结构(包括OSI参考模型、TCP/IP模型协议族),以及功能模块之间的协议交互[1],这是学好计算机网络的关键。网络体系结构是计算机网络及其部件所应完成的功能的精确定义。计算机网络原理主要讲述的就是各层的功能及其协议和服务。在计算机网络教学过程中,利用Wireshark网络探测和分析软件,通过从网络中实时捕获几种常见协议数据包并进行分析,使学生对一些协议的工作原理及结构有了更加深刻的理解和认识[2]。

1Wireshark简介

Wireshark(原名Ethereal)是目前世界上最受欢迎的协议分析软件,利用它可将捕获到的网络二进制数据流翻译为人们容易读懂和理解的文字和图表等形式,极大地方便了对网络活动的监测分析和教学实验。它有十分丰富和强大的统计分析功能,可在Windows,Linux 和UNIX等系统上运行。它允许在一个网络内部实时捕获和分析数据包,用户可以通过图形界面很直观地浏览捕获到的数据信息,研究数据包每一层的详细信息[3]。

学习和理解计算机网络原理的最好方法是,理论联系实际。在一个现实的局域网中,网络数据流往往是来自不同用户的各种各样协议数据的大混杂,因此利用Wireshark的“捕获过滤器”和“显示过滤器”,从错综复杂的数据流中迅速提取自己所关心的网络信息,了解和掌握网络的工作原理和协议的交互过程。

Wireshark使用目的是网络管理员使用Wireshark来检测网络问题、网络安全工程师使用Wireshark来检查资讯安全相关问题、开发者使用Wireshark来为新的通讯协议除错、普通使用者使用Wireshark来学习网络协议的相关知识等。

2用Wireshark分析网络协议

网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它定义了通信时信息必须采用的格式和这些格式的意义。TCP/IP(Transmission Control Protocol / Internet Protocol),即传输控制协议/互联网协议是不同操作系统的计算机网络互连的通用协议,它是一组计算机通信协议族,其中最著名的两个协议是TCP及IP协议。TCP/IP协议具有开放式互联环境,很容易实现各种局域网和广域网的集成式互联。此协议是当今技术最成熟、应用最广泛的网络协议[4]。

TCP是一种面向连接的、可靠的运输层协议,TCP数据传输(只有连接建立后才可进行数据传输)需要通过在客户端和服务器端建立特定的虚电路连接来完成,该过程通常被称为“三次握手”,即发送方先发送连接请求,然后接收方进行连接确认,最后发送方对接收方的确认再次进行确认(图1)。下面就以Wireshark对 TCP连接建立交互过程的数据包捕获分析为例,来说明对TCP/IP协议实现的分析。

2.1建立捕获TCP连接报文的实验环境

PCATTCP是一款不错的测试局域网网络速度的软件。在局域网中,两台主机通过交换机连接起来。在服务器端和客户端都安装和运行PCATTCP进行通信,产生TCP流。启动Wireshark进行数据包捕获,单击CaptureInterfaces菜单,选择自己的网卡,选择Start开始监控流量。在服务器端运行ttcp,监听TCP的5001端口。图2是服务器端的完整命令行输出:

服务器配置好后,在客户端运行ttcp,双方开始通信。

2.2TCP报文分析

2.2.1客户端发送连接请求

捕捉到的TCP 连接报文如图3所示。

从图3可以看出,客户端发出的连接请求数据包封装了三个头信息:以太网(Ethernet)帧、IP数据报和TCP报文段。在数据链路层,数据以帧的方式进行传输。在网络层,加工的主要数据对象是IP数据报。IP协议是TCP/IP协议族中的核心协议之一,所有的TCP、UDP、ICMP数据都以IP数据报格式传输。

在运输层,主要数据对象是TCP报文。客户端发送的连接请求如图4所示。

第一条报文是没有数据的TCP报文段,并且将首部的SYN位设置为1。因此,第一条报文常常被称为SYN分组。这个报文段里的序列号是由系统随机设置的数值,表示客户端为后续报文设定的起始编号。此TCP报文段,序列号SEQ在连接请求时相对初始值是0,其实际值是c9 f4 65 c2;确认号是00 00 00 00,ACK标志为0表明确认号被忽略。SYN=1表示正在进行连接请求,通过SYN和ACK也可以用来区分Connection Request和Connection Accepted,在连接请求中,SYN=1、ACK=0,连接响应时,SYN=1、ACK=1。

SYN分组通常是从客户端发送到服务器端。这个报文段请求建立连接。因为一旦成功建立连接,服务器进程必须已经在监听SYN分组所指示的IP地址和端口号[5]。如果没有建立连接,SYN分组将不会应答。如果第一个分组丢失了,客户端通常会发送若干个SYN分组,如果多次尝试不成功,客户端将会停止并报告一个错误给应用程序。

2.2.2服务端连接响应

当服务器接收到连接请求时,就对请求方进行响应,以确认收到客户端的第一个TCP报文段。响应的报文段SYN位和ACK位都将置1。通常称这个报文段为SYNACK分组。SYNACK分组在确认收到SYN分组的同时也发出一个初始的数据流序列号,表示服务器发向客户端的数据序号,它不需要与刚才客户端发来的数据流的序列号相匹配。服务器端响应的数据包如图5所示。

此数据包的起始序列号SEQ在协议框中显示为0,在原始框中的实际值为63 cf 1a c9。所有初始序列号逻辑上都视同为序列号0。ACK标志为1表明确认号有效,SYN仍然为1。

图6中确认号在协议框中显示为1,在原始框中的值为c9 f4 65 c3(比c9 f4 65 c2多1)。这解释了TCP的确认模式,TCP接收端确认第X个字节已经收到,并通过设置确认号为X+1来表明期望收到的下一个字节号。

2.2.3客户端连接确认

在TCP连接建立的最后阶段,客户端对接收到数据包的服务器端进行确认,到此为止建立完整的TCP连接,开始全双工模式的数据传输过程。客户端收到服务器端确认后,发送带有ACK标志的TCP报文段来完成三次握手的过程[6]。这个报文段将确认服务器端发送的SYNACK分组,并检查TCP连接的两端是否正确地打开和运作。

如图7所示,在确认阶段,数据包由客户端发送至服务器端,TCP中的序列号为c9 f4 65 c3(即上次服务器响应报文的确认号)。

图8中,报文段的本次确认号为63 cf 1a ca(即上次的序列号加1)表示客户端下一次希望从主机接收的数据的起始位置。ACK标志为1表明确认号有效,SYN置为0表示连接建立结束。连接建立后,双方可以根据各自的窗口尺寸开始传输数据。

2.3小结

从以上的图可以看出,利用Wireshark可以针对每一数据包,完成从链路层、网络层、运输层到应用层的协议解析。通过上面步骤,可以更加直观的观察到TCP三次握手建立的过程,有助于理解TCP及其工作原理,掌握协议的语法细节。

3结语

计算机网络基本理论复杂抽象,不易理解,但这部分内容又是进一步学习“计算机网络”课程,培养实践应用能力的基础。在教学过程中,通过合理组织授课内容,采用先进的教学方法和较为科学的教学手段,使学生能够较好地掌握计算机网络的基本理论和方法。利用Wireshark网络协议分析软件,进行网络性能参数和数据代码的捕获分析,了解协议的封装结构、交互过程,对于计算机网络教学有很大的帮助。

参考文献:

[1] 谢希仁. 计算机网络[M]. 大连:大连理工大学出版社,2004.

[2] 杨春勇,潘文君,朱翠涛. 计算机网络课程教学及辅助教学方法研究[J]. 高等函授学报:自然科学版,2008,21(6):12-14.

[3] Angela Orebaugh,Gilbert Ramirez,Jay Beale. Wireshark & Ethereal Network Protocol Analyzer Toolkit[M]. Burlington:Syngress Press,2006.

[4] Forouzan.B.A. TCP/IP协议族[M]. 3版. 谢希仁,等译. 北京:清华大学出版社,2006.

[5] 蒋波,李方军,郝军. 数据包的截获与网络协议分析[J]. 重庆三峡学院学报,2006,22(3):26-28.

[6] Miller D. 数据通讯与网络[M]. 邓劝生,薛建新,王涌,译. 北京:清华大学出版社,2007.

The Application of Wireshark in TCP/IP Network Protocol Teaching

PAN Wen-chan, ZHANG Yun

(College of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing 210003, China)

篇4

【关键词】TCP/IP协议;通信报文;路由寻址;通信流程

1 概述

随着信息科学技术和通信技术的不断快速发展,基于互联网的网络通信应用在社会各个领域中的应用越来越广泛,使得互联网通信应用成为现代人日常生产生生活不可或缺的一部分,通过互联网络通信,网络用户之间可以实现数据传输、信息共享,从而极大地提高了人们的生活质量。然而,互联网络中的数据传输过程,并不是杂乱无章的随机传送,而是在计算机网络通信协议的基础上,双方都按照协议的内容和机制,来发送数据信息和读取分析数据信息,进而实现互联网络的数据传输和信息共享的功能,TCP/IP协议就是互联网络中重要的通信协议,它的存在奠定了整个互联网络通信的基础,所以对于TCP/IP通信协议的学习对于理解互联网通信机制来辅助互联网学习和工作具有很大的帮助。

2 计算机网络的TCP/IP通信协议

TCP/IP协议是“Transmission Control Protocol / Internet Protocol”的简写,是Internet网络基本的协议,它为计算机通讯的数据打包传输以及网络寻址提供了标准的方法。由于TCP/IP协议的优越性,使得越来越多的通信设备支持TCP/IP协议,使互联网络逐步走向规范化,最终TCP/IP协议成为了当前网络通信协议标准中最基本的网络通信协议、Internet国际互联网络的基础。

2.1 计算机网络TCP/IP协议

针对计算机互联网络的通信协议,国际标准组织ISO创立了七层OSI网络模型,自上而下,分别为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。而TCP/IP协议则是应用在传输层和网络层的数据传输控制协议,来规定网络设备接入互联网络以及设备间数据通信的标准。在通信设备经过互联网络进行数据传输时,通信设备数据发送端,发送TCP/IP通信报文,此时TCP/IP协议携带着通信设备发送端的传输数据内容以及目标通信设备的地址标示在互联网络中进行寻址,从而正确地传送到目标通信设备。当目标通信设备接收到TCP/IP通信报文后,按照协议内容,去除通信标示,来获取传输数据内容,并加以校验,如果经校验后发生差错,目标通信设备会发出TCP/IP信息重发报文,让发送通信设备再次将TCP/IP通信报文发展目标通信设备,去掉通信标示来获取传输数据信息。

2.2 TCP/IP通信协议报文格式

在互联网络中,基于TCP/IP通信协议传输的数据内容都是以通信报文的形式在互联网络内部进行传输,通信报文实质上就是一串二进制字符串,而字符串内不同位置的二进制字符标示不同的含义。从TCP/IP通信协议的主要报文格式可以看出,IP协议是基于TCP协议至上的,TCP协议报文时作为IP通信报文的数据部分来进行传输的。实际上,互联网内传输的通信字符串还有其他的通信协议,TCP/IP通信报文也是作为其外层协议的通信数据部分嵌入到通信报文中在互联网内进行传输。

在IP协议首部,包含了一些关于IP协议的标示、通信地址等信息,主要包括数据字符串总长度的信息、通信标示号、源IP地址和目标IP地址等信息,当IP通信报文经过路由寻址时,会根据首部内记录的目标IP地址来选择传输方向,最终根据目标IP地址传输至目标通信设备。此外,IP通信报文首部还包含其他信息,比如IP协议版本号、首部长度、校验信息、该IP通信报文生存时间(即该报文经过多少个路由后自动取消传输)等与IP通信报文相关的信息,以确保IP报文传输的正确性和安全性。TCP协议通信报文是作为IP通信报文数据内容存在的,TCP协议也分为TCP报文首部和TCP通信数据。TCP通信报文首部主要包括了源端口号和目标端口号等信息,当TCP/IP通信报文经过互联网络到达目标通过新设备后,通信设备会根据TCP报文首部的目的端口号选择设备端口号来接受该数据信息,进而实现互联网络的数据传输。

2.3 TCP/IP协议通信过程

互联网络的通信设备基于TCP/IP协议建立通信过程,也是根据TCP/IP协议来实现的。当源通信设备想向目标设备发送数据时,首先会发送一个TCP/IP通信报文来确认连接,该通信报文在互联网络中经过寻找传输后找到目标设备,目标设备也会向源通信设备发送一个TCP/IP报文以确认建立通信连接,此时,源通信设备就会将通信数据以TCP/IP通信报文的形式进行数据打包,然后向目标数据进行传输,在收到数据后,目标设备同样会发送TCP/IP报文以确认收到信息。当然,TCP/IP通信数据长度是一定的,当通信数据超过报文长度时,源通信设备会将其分段发送,而目标设备则会根据IP报文首部的标识号进行数据重组来重现传输数据信息,进而完成互联网络通信设备数据传输。

3 总结

TCP/IP网络协议是当前互联网络最基本的通信协议。根据TCP/IP网络协议,连接在互联网内的通信设备可以根据TCP/IP通信报文格式的内容将传输数据打包在TCP/IP通信报文内,并以其规定的通信流程进行数据传输,从而实现互联网络内的数据高效安全的传输。

参考文献:

[1]杨绍文.谈计算机网络的TCP/IP协议[J].科技信息.2011(02)

[2]查东辉.试论计算机网络通信协议[J].电脑知识与技术.2013(14)

[3]杨娇娟.浅谈TCP/IP协议[J].数字技术与应用.2012(03)

篇5

关键词:嵌入式系统;以太网;TCP/IP协议;UDP;ARP

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)04-10947-03

1 引言

目前,嵌入式系统与网络的结合已经成为嵌入式系统发展过程中所必须要面对的问题之一。嵌入式系统的网络接入一般可以通过RS-232或RS-485等间接接入,也可以通过网络协议直接与网络相互连,其中,直接接入方式正逐步成为嵌入式系统接入网络的主要方式,但是需要精简TCP/IP协议栈的支持。目前使用广泛的通用TCP/IP协议栈所包含的协议内容比较全,但同时也比较复杂。由于硬件平台的差别,这些协议站无法直接应用于嵌入式系统,主要表现在以下三个方面:

(1)嵌入式操作系统都面向特定的领域和需求,嵌入式应用对实时性要求比较高。

(2)多任务操作系统的内存分配是动态的,但是在嵌入式系统中片RAM是静态分配的,用于存放收到的数据包的的空间很有限。

(3)嵌入式系统在程序的具体实现上与通用计算机系统有所不同,主要体现在指针、参数传递、变量和数据结构的定义等方面。

因此,需要通用TCP/IP协议栈的基础上进行精简和改写,以设计出精简、高效的TCP/IP协议子集,以供嵌入式系统接入网络使用。

2 TCP协议分析与简化

通用计算机系统有足够的资源支持,但是嵌入式系统则不同,因为其CPU处理能力和系统存储能力都受到成本限制,充分利用资源、提高系统性价比是开发嵌入式应用的根本特点。

2.1 嵌入式TCP/IP协议栈的特点

嵌入式系统一般都是为了满足某一特定的需求,对网络支持的要求相对比较低,需要什么协议就添加相应的模块,不需使用完整的TCP/IP协议。嵌入式TCP/IP协议栈应具有以下的特点:

(1)代码比较简洁,占用的存储空间尽可能小,尽可能为应用程序节省系统资源。

(2)需要传输的数据量一般比较少,协议的实现代码要有较高的执行效率,具有较高的实时性。

(3)便于裁剪和扩展,对于面向不同应用的嵌入式系统应当根据特点对协议进行简化或扩展,整个协议栈在满足功能需求的前提下尽可能精简。

TCP/IP协议栈具有层次特性,各个协议都有自己的数据格式,每次发送数据都要进行上下层协议的数据交换,进行打包和拆包的过程,在这个过程中如果采用数据拷贝的策略进行数据传递则会大大增加系统开销。在嵌入式系统中,往往无法建立起数据传递的缓冲区,需要采用“零拷贝”技术用传递数据指针的方法来解决各层协议间的数据传递,以提高系统的实时性能。

2.2 TCP/IP协议的精简

TCP/IP是几百种网络协议的集合。通用计算机系统有足够的资源支持通信协议在内核实现,因此完整的TCP/IP协议栈(如图1)能够在数据传输的可靠性和数据流量的控制上做很多工作。

但是对于嵌入式系统来说,其硬件资源十分有限,同时对协议的要求也相对较低,必须对通用的TCP/IP协议进行精简。进行精简的途径有两种:

(1)将无关于系统功能的协议削减掉。即保留必需的协议,而对其它无关协议进行裁剪。

(2)对单独的协议进行简化。例如完整的ARP协议支持以太网、令牌环等网络,但是嵌入式系统可能是面向于某一具体类型网络的,对于其他的部分就可以简化掉。

图1

简化后的协议仍然需要符合规定的标准:在网络接口层,系统需实现ARP应答协议,该协议用于将IP地址映射成以太网MAC地址;在网际层,需要实现IP协议,主要负责IP报文报头的正确性,并且对TCP和ICMP报文实行分流,此外,为了能够测试系统与网络的连接,在网际层还需要实现ICMP协议中的Ping应答协议,主要用于检查网络在传输层是否连通。作为运输层的主要协议,TCP和UDP协议一般都不能缺少,对于具体的应用,一般都至少要实现其中之一。HTTP、FTP等应用层协议一般无需实现。这样简化后,就可以得到图2所示的嵌入式TCP/IP协议栈的结构:

图2 嵌入式TCP/IP协议栈结构

3 各协议的具体实现

本文实现的嵌入式TCP/IP协议运行于以89C51单片机和RTL8019AS网络控制器为核心元件的硬件平台上,协议代码在Keil C51 V7.0环境下编写。在程序的initial文件中提供了相关函数对89C51和RTL8019AS进行了初始参数设置,限于文章篇幅,与具体硬件相关的问题不再作详细说明。

3.1 ARP协议的实现

ARP协议不携带用户的有效数据,报头长度为28字节。在ARP报头中操作码域表明了ARP包是ARP请求还是ARP回答,其值为1时为请求,为2时为应答。目标以太地址为目标节点IP对应的MAC地址,解析前是未知的。发送ARP请求应使用广播方式,网段内的各个主机收到后检查包内的IP地址,如果和本机的IP地址一样则使用单播的方式返回ARP应答,在应答ARP包中源以太地址的域中填入自己的MAC地址。在具体设计时,要考虑到系统解析地址的实时性,如果每次互联都要进行地址解析,则系统的实时性要下降,一般的做法是建立一个ARP地址映射表,存放常用IP地址与MAC地址的映射,这样在解析地址时首先遍历该表,如果目标地址已经被解析过则可以省去解析过程了。解析过程中还需要为ARP缓存中每个新生成条目赋予一个初始生存时间,使用定时器中断,经过某一时间间隔对所有条目进行刷新检测,若发现有条目发生超时,将其从ARP缓存中删除。ARP缓存条目结构设计如下:

typedef struct

{unsigned long ip_addr; //IP地址

unsigned char macaddr[6]; //MAC地址

unsigned char timer; //定时器}

ARP_CACHE; //ARP缓存条目结构

3.2 IP协议及Ping 应答的实现

IP协议是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP包都以IP数据报格式传输。IP报头的标准长度为20字节。在具体项目中由于数据量比较小,可以不考虑数据报分段的问题,即不允许数据报超出IP包的有效载荷。标准以太网帧数据域为1500字节,除去IP头之外还有1480字节可以为上层协议提供有效的数据载荷,应该能够满足数据传送的要求。这样简化可以省去软件处理IP数据分段和重组的开销,可以提高系统数据传输的实时性。IP协议对上一层传下来的报文加上IP首部和IP校验和并发往下一层,同时还要对下一层传上来的报文进行校验和检查,将校验正确的去掉IP首部,送往上一层。

为了便于测试,需要实现PING程序,在收到ICMP的回显请求包后按照格式组装一个ICMP的回显应答包并发送。相关的主要函数有:

void ping_request() //PING请求

void ping_answer() //PING应答

void ping_echo() //PING应答收到后回显

3.3 UDP协议的实现

UDP际上是直接利用IP协议进行数据报的传输,也就是将报文包含在IP数据包中 。UDP的数据传输是无连接,不可靠的,因为它不像TCP那样,为了达到目标,首先要在两点之间建立一个可靠的连接,因此UDP协议无法保证数据可靠性。但UDP协议具有对网络资源开销较小,数据处理速度快的优点,UDP协议属于简单的端到端的数据传输协议,其报头只有8字节,其中源端口表示UDP应用进程的端口号,除了0~1023预定的端口外,其余的都可以使用。具体实现时要完成对应用层传下来的数据包,加上UDP首部和UDP校验和,发往下一层。以及对下一层传上来的数据包,进行校验和检查,若正确去掉UDP首部,提出数据送给应用层。需注意的是,要产生一个伪首部用于UDP数据检验和计算,涉及到的主要函数有:

unsigned char verifyudpcrc(union netcard xdata *pRxdnet) //对ucp头进行校验,错误返回0

void udp_send(union netcard xdata *pTxdnet, unsigned char xdata * psource, unsigned int len) //UDP包发送处理

void udp_recieve(union netcard xdata *pRxdnet)UDP包接收处理

3.4 TCP协议的实现

TCP协议是面向连接的、端对端的可靠通信协议,可分以下几个步骤实现:

(1)建立连接。这一过程就是我们常说的三次握手过程。

(2)验证。采取相应的措施消除传输中的错误,保障传输的可靠性,利用序列号解决通信时重复和失序的问题。

(3)流量控制。设置发送和接收窗口。

TCP协议的功能是为应用层协议提供可靠的面向连接的数据传输服务,是嵌入式应用系统协议栈中最为复杂的协议。在TCP协议实现中,由于请求发起端(客户端)与请求相应端(服务器端)在通信中所处地位不同,相应地两者的中间演变状态也不完全相同。客户端与服务器端在一个TCP连接从正常建立到正常中止分别经历5个和6个状态,相应控制信息均在TCP头部信息的6位控制标记位中得以表示。对于嵌入式系统中TCP协议的实现,应从嵌入式应用的角度出发,尽可能减少冗余状态。程序中需要构造一个TCP_STATUS结构来记录每一个TCP连接的状态信息,其结构如下:

typedef struct

{unsigned long ip_addr; //源IP 地址

unsigned int port; //端口号

unsigned long remo_sequ; //对方序列号

unsigned long local_sequ; //本方序列号

unsigned long old_sequ; //上一次序列号

unsigned long remo_ack; //对方应答号

unsigned char timer; //超时用定时器

unsigned char quiet; //连接活动性

unsigned char state; //当前状态

}TCP_STATUS; //连接状态结构

4 结束语

嵌入式系统的应用非常广泛,解决嵌入式系统的网络接入问题具有十分重要的意义。本文实现的精简TCP/IP协议栈在具体应用中有良好表现,可以满足正常的数据传输。由于设计与实现的过程中将应用层协议全部精简,协议在运行过程中的流量控制能力及协议自身的安全性都有所下降,在对安全性和稳定性要求较高的应用场合(如军事、金融等领域),需要对协议的简化有所斟酌。

参考文献:

[1]罗蕾. 嵌入式实时操作系统及应用开发[M]. 北京:北京航空航天大学出版社. 2005.

[2]徐爱钧,彭秀华. Keil Cx51 V7.0单片机高级语言编程与μVision2应用实践[M]. 北京:电子工业出版社,2004.

[3]程耕国,高厚礼. 基于TCP/IP协议单片机上网的设计与实现[J]. 武汉科技大学学报(自然科学版),2004,(2).

[4]田夏利,汪继军,薛胜军. 嵌入式Internet中UDP协议的实现[J]. 计算机与数字工程,2006,(2).

篇6

【关键词】计算机多线程 协议还原 方法概述

1 协议并行处理方法

1.1 数据包级别并行方法

在协议栈并行处理方法中,数据包级别并行方法是一种并行度最高的处理方法。对于不同的数据包都会按照对应的处理器进行系列处理,达到同时处理多个数据包或者是归属于同一个链接的数据包。因巨大的吞吐性能以及不存在负载均衡的优势得到了广泛运用。虽然其具有高度的并发性,但是在面对带有上下文信息或状态的协议来说,例如TCP,可以获得的性能提升空间受到了很大的约束。

1.2 函数级别并行方法

函数级别并行方法主要运用于早期的协议并行处理中。早期协议是将链路控制数据和传送数据置于同一个数据包中,这就意味着协议并行处理的函数必须要同时处理链路控制数据外加上传送数据,从而出现的一个问题就是协议处理函数单元之间务必会存在大量的上下文相关结果。

1.3 协议栈层次间并行方法

协议栈层次间并行方法主要运用于目前网络协议的层次结构中。在早期设计相关网络协议时,为了大幅度的降低协议实现难度而将每个层次协议设计成为了相对独立的部分,从而完成独立层间之间的并行处理。但是就目前实际情况来看,这种方法虽然有许多的优势,但是性能受到了层次结构中吞吐量最低层次结构的限制,所以目前需要对协议栈中的每一个层次进行研究,优化吞吐量最低的层次结构。

2 基于连接性多线程TCP/IP协议并行处理方法概述

2.1 TCP/IP协议栈多线程并行化存在的问题

TCP/IP协议栈多线程并行化存在的问题主要存在于临界锁以及处理器之间的负载均衡情况上。考虑到临街锁解决共享冲突的代价极大问题,多线程并发程序虽然可以解决部分问题,但是又带来了诸如临界区碰撞、内核陷入等等问题,影响程序的运行效率。因此,对于多线程并行的TCP/IP协议而言,消除临界锁问题是至关重要的。对于处理器之间的负载均衡情况,需要考虑的就是协调好处理器之间的负载均衡问题。

2.2 多线程TCP/IP协议栈的结构

本文所要分析的多线程TCP/IP协议栈结构主要还是共享内存多处理器平台运行下的多线程TCP/IP协议栈结构,其基本的特点就是当共享内存对处理器平台上的处理器数量增加时,其结构的性能也随之增加。多线程TCP/IP协议栈结构如图1所示。

2.3 处理器均衡措施

处理器均衡措施具体可以细化分为两个步骤。第一个步骤就是对IP数据包中的三元组即源地址、目的地址以及协议标识,按照一定的标准进行分发。仅仅采取第一步不能够对处理器进行深度的处理,需要借助于第二个步骤。第二个步骤包括设置协议栈、促进操作系统借助于任务调度完成负载均衡的操作。后者的时间点在于运行线程数不小于硬件平台的处理器数量。按照上述顺序,可以达到处理器负载均衡的目的。

3 实验方案结果

从本文的实验方案测试结果中可以看出,首先单线程下的程序只能够通过串来执行,从而不能够发挥出处理器的实际性能。其次,在处理器的数量和线程数量对等的情况之下,也不能够发挥出系统硬件的全部性能。最后,在处理器数量小于协议栈线程数量的时点,通过适当的增加线程数量,可以在很大程度上提高整个系统的吞吐量。另外,对于内存分配方式对系统性能的影响上,结合实践经验以及实验方案结构可以发现,相比PtMalloc以及SmartBits而言,FixMalloc可以降低动态内存分配过程中出现的处理器消耗,降低的幅度值大概在8.12%上下。

4 结束语

由于现代处理器性能和网络传输能力发展之间存在的很大的不平衡,从而推进了多处理器的发展。本文从网络协议还原技术出发,提出了一整套的多线程并行的TCP/IP协议的相关还原方案。此外,在通用性的多处理器计算平台的实际操作过程中发现,虽然计算机多线程TCP/IP协议还原技术可以很好的保障当下处理器平台性能的发挥,但是对于进一步提升网络入侵监测系统协议还原能力以及挖掘高性能处理器平台,以此来协调处理器性能和网络传输能力发展不平衡的矛盾,将是下一阶段研究和探究的重点内容。

参考文献

[1]Bjorkman M,Gunningberg P Performance Modeling of Multiprocessor Implementations of Protocols[J],2009,11(03):142-145.

[2]田伟,顾韵华,丁妮.网络行为监测与还原系统及关键技术研究[J].计算机工程与设计,2011,29(02):111-113.

[3]谭敏生,汤亮.基于HTIP的网络数据包还原技术研究[J].计算机技术与发展,2011,17(06):14-16.

篇7

关键词:TCP/IP 温度监测 Arduino LabView

中图分类号:TP2 文献标识码:A 文章编号:1007-9416(2015)09-0000-00

现场总线系统是一种传统的双向数字的通信标准,广泛应用于自动控制领域和生产过程中,但是由于现场总线的种类繁多,且各标准间的相互兼容性不强,加上各厂商和标准制订组织之间存在利益竞争,各种现场总线技术无法实现无缝连接,也无法将生产现场的监控数据共享给企业的信息管理系统,而将以太网技术引入到工业控制领域,将监控数据进行标准的TCP/IP封装,将能很好的解决不同生产设备间的高速连接问题和设备的“自动化孤岛”问题,最终将生产自动化和办公自动化无缝对接,实现“一网到底”[1]。工业以太网是指在工业环境的自动化控制及过程控制中应用的相关组件及技术,工业以太网多采用TCP/IP协议,和IEEE802.3标准兼容。温度是生产过程中重要的物理参数之一,在工业生产过程中经常要用到温度的检测及控制,本文对基于TCP/IP网络的远程温度检测系统进行了设计,给出了基于TCP/IP以太网的远程温度监测方案。

1 系统结构

1.1系统物理结构

使用标准的TCP/IP协议实现现场层与监控层的数据传输,其中现场层通过连接厂内的传感器,实时获取各种信息通过以太网络传送至监控层,这一层主要由低功耗运行稳定的嵌入式实现;监控层主要是通过以太网络连接厂内的现场层的各个数据采集点,将这些信息数据备份,存储至监控系统的数据库,并在温度超过警示值时发出警报。本系统完成了下位机数据采集与上位机数据监测的功能,物理结构图如图1所示。

图1 系统物理结构图

1.2 系统逻辑结构

本系统的温度信息由数据采集结点通过以太网发送到监控层计算机,并将历史数据存储致数据库服务器,企业的办公网络和外网用户可通核心路由器访问数据库,系统的数据在各层中的流向如图2所示。

图2 系统逻辑结构

2 数据采集与发送端

2.1数字温度采集点设计

K型热电偶可以测量固体介质和汽液体蒸气的表面温度,其测量范从0℃到1300℃[2]。具有很高的灵敏度和很好的稳定性,非线性误差小,热电动势较大,对于复杂环境下的工业环境有很好的适应性等优点,因此,在工业监控领域得到广泛的使用。但是,由于其输出热电势与冷端温度相关,输出的数据为模拟量,且与被测量端的温度有关,因此需要进行温度补偿和模数转换。如果采用软件补偿的方法,一方面会增加程序编制及调试电路的难度,另一方面,软件补偿会占用一定的数字结点的计算资源,而以太网使用了CSMA/CD,会产生数据传送过程中的不确定性,影响精度。所以,本系统采用了使用硬件进行温度补偿的方案,采用MAX6675串行模数转换器对采集的数据进行处理,在进行温度补偿的同时,也提供了信号量为12位分辨率的模数转换,加强了与控制器数据通信的兼容性[3]。

嵌入式控制器采用Arduino开源硬件平台,它使用AtmelAVR单片机为核心处理器,采用基于开放源代码的软硬件平台,由于其功耗低、稳定性强、开发周期短等特点,目前被广泛应用于各个领域,越来越多的工程师选用Arduino平台进行项目开发,截止到现在,Arduino开发团队已开发出多种控制器。考虑到系统部署后期可能有更多数据采集点的加入,本系统选用的是以Atmega2560核心的ArduinoMega2560控制板(以下简称Mega2560),相对于普通的Arduino Uno,Meg2560可用的数字输入输出口多达到54个,插接传感器扩展模块后的数字I/O可以达到100多个,给系统的升级与扩展带来极大的便利。

硬件连线如图3所示,将K型热电偶连接至MAX6675的接线座上,确保正负两极连接无误。分别将MAX6675对应用的电源、地线、SO、CS、SCK端连接至控制器 Mega256上的5V、GNU、数字口5、6、7。

图3 控制器与MAX675连线图

2.2以太网通信模块

由于Mega2560无法直接连接到以太网络,需要采用包含以太网的Ethernet模块来实现,本文选用的是集成WIZnetW5100网络芯片的扩展模块。W5100 是一款高集成度的网络通信芯片,全硬件实现标准的TCP/IP 协议栈、以太网介质传输层(MAC)和物理层(PHY),具备了高稳定、高性能和低功耗的特点,其数据传输速率最高可达100Mbps,由于TCP/IP协议均在商用与民用领域经过了多年的应用和长足的发展,相关技术已经十分成熟,资源丰富,极大的缩短了上位机与下位机程序的开发周期。

根据Mega2560的接口特点,本系统采了采用SPI总线方式与嵌入式控制器进行通信,与Ethernet模块连接如图4所示,其接口功能描述为SS:使能信号;SCLK:时钟信号;MOSI:数据发送;MISO:数据接收。

图4 SPI总线连接图

由于Arduino系列的控制器均采用了相互兼容的可堆叠的标准化设计,Ethernet可以直接插接到Mega2560上不作任何配置,即可进行通信。W5100 内部用于数据传输的缓冲存储器容量有 16KB,完全能够满足温度监控数据的本地缓存,使用W5100不需要考虑以太网底层的控制,采用常规的网络编程方法即可实现与W5100的以太网通信。通过Mega256引脚图(图5)[3]可知,插接了Ethernet模块后,SPI总线会占用Mega2560控制器的50~53号引脚,因此在使用的时候要注意避开。

图5 Arduino Mega2560引脚图

3 软件设计

3.1 温度采集点软件设计

在以太网传输中,常用的传输控制协议(TCP)和用户数据报协议(UDP)均可以完成下位机到上位机的数据传输,但TCP是基于连接的可靠传输协议,能进行错误监测,鉴于工业现场对于数据可靠性的要求,所以本文的软件设计中并未采用传输性能较高的UDP协议。因为,在办公网络中一个数据包的丢失可能是无关紧要的,但在工业现场监控中,带来的影响可能是巨大的。在Arduino标准库中包含了Ethernet和SPI通信所需要的类与函数,在编写程序的时候需要包含Ethernet.h、SPI.h和MAX6675.h这三个头文件。下面是Arduino控制器的程序代码。

#include “MAX6675.h”

#include “Ethernet.h”

#include “SPI.h”

MAX6675 mySenor(5,6,7); //定义MAX6675类型的传感器对象mySenor

EthernetServer server(8000); //创建一个服务器对象,并设置网络传送端口为8000

Byte mac[]={0XDE,0XAD,0XBE,0XEF,0XEF,0XFE,0XED};//设置Ethernet模块MAC地址

IPAdress ip{192.168.1.110}; //设置Ethernet模块IP地址

void setup(){ //初始化各功能模块

Serial.begin(9600); //设置串口波特率

mySenor.setOffset(0);

Ethernet.begin(mac,ip);

Server.begin();

}

void loop() //控制器循环操作

{

float sendData=0;

sendData=mySenor.getCelsius(); //从传感器对象读取温度数据

server.print(sendData); //通过网络发送数据

Serial.println(sendData); //向串口发送数据,用于监控调试

delay(500); //设置延时

}

3.2 监控层软件设计

在工业现场的温度监测中,不仅要完成实时温度数据的监测同时也需要将生成的历史数据进行分析,使用计算机丰富的计算资源以弥补嵌入式控制器的不足,使用虚拟仪器是一很好的选择,虚拟仪器是将计算机和仪器技术接合的结晶[4],同样也是测试技术和计算机深层次结合的产物,它具有数据采集与信号分析的功能,本文的监控层软件设计采用了美国国家仪器公司(NI)设计的LabVIEW平台,LabVIEW的系统的组成[2]如图6所示。

图6 LabVIEW系统组成

LabVIEW采用图形化的G语言进行编程,设置TCP连接地址为下位机的IP地址为192.168.110,通信端口为8000,超时设置为60000毫秒,通过波形控件提供历史温度显示,温度显示控件显示实时温度,监控层的上位机程序代码如图7所示。

图7 上位机程序框图

4 结语

经测试,本系统能准确的对工业现场的实时温度进行显示和历史数据的显示,如图8所示,可得知当前温度为200摄氏度,而在过去的500分钟历史记录中发现系统出现了10次超过温度警戒值800摄氏度的记录。该设计充分利用了TCP/IP技术实现了对工业生产过程的监控,进一步提高了各项监督工业,有助于现场工程师及时采取应急处理等业务操作,需要注意的是以太网技术带来的高数据高实时的同时,也产生了一些网络安全问题,对于这一问题可通过网关采取包过滤的方法将内部控制网络与外部网络系统分开[5]。综上所述,随着以太网技术在工业现场中的逐步推广和应用,使生产现场数据与企业信息系统实现无缝对接,在即将到来的第四次工业革命中,全面实现“数字化工厂”这一宏伟目标[6]。

图8 LabVIEW程序运行效果图

参考文献

[1]徐皑冬.工业以太网实时通信技术[J].信息与控制,2005,34(1):60-64.

[2]沈金鑫,Arduino与LabVIEW开发实战[M].北京:机械工业出版社,2014:182―187.

[3]开源硬件知识库[OL].[2014-10-21]. http:///

[4]余成,谢东坡.网络化测控技术与实现[M].北京:高等教育出版社,2009:194-198.

[5]孙德辉,史运涛,李志军,杨杨编,网络化控制系统[M].北京:国防工业出版社,2008:124―134.

[6]陈积明.工业以太网的研究现状及展望[J].化工自动化入仪表,2001,28(6):1-4.

收稿日期:2015-08-08

篇8

关键词:互联网;嵌入式系统;协议栈;数据;报文;拥塞

中图分类号:TP311 文献标志码:A 文章编号:1009-3044(2008)31-0860-03

Research of Congestion Control Based on Embedded TCP/IP Protocol Stack

LI Chao1,2, HE Xian-bo1, WANG An-zhi1, HUANG Miao3

(puter College, China West Normal University, Nanchong 637002, China; 2.Nanchong Tourism School, Nanchong 637000, China; 3.Software Engineering School, Pingdingshan University, Pingdingshan 467003, China)

Abstract: This paper according to the present development condition of the computer network and embedded system software, summing up the general characteristics and procecing of the embedded TCP/IP protocol stack. Furthermore, discussing Congestion Control mechanism of the protocol stack in detail, especially analyzing and comparing sorts and implement algorithm of TCP Congestion Control mechanism and IP Congestion Control mechanism.Finally, setting up present Congestion Control solving methods of embedded TCP/IP protocol stack.

Key words: Internet; embedded system; protocol stack; data; message; congestion

1 引言

计算机网络的飞速发展,已经改变了人们的生产和生活方式。数字化信息家电的日益普及,使嵌入式系统连接到网络成为了可能。互联网采用的是无连接的端到端数据包交换,提供“尽力而为”服务模型的设计机制。这种机制的最大优势是设计简单,可扩展性强。然而随着互联网用户数量的膨胀,网络的拥塞问题也越来越严重。据统计,互联网上95%的数据流和90%的报文数使用的是TCP/IP协议,因此,嵌入式TCP/IP协议栈的拥塞控制机制对控制网络拥塞更具有特别重要的意义。

2 嵌入式TCP/IP协议栈概述

TCP/IP协议是由很多协议组成的协议族[1]。嵌入式系统引入互联网支持所需的主要协议为ARP、RARP、IP、ICMP和TCP协议。ARP和RARP协议提供网络地址的解析;ICMP协议提供网络诊断功能;TCP和IP协议提供网络传输和网络互联[1-2]。在网络接口层,系统需实现ARP应答协议,该协议用于将IP地址映射成以太网MAC地址;在网际层,需要实现IP协议,主要负责IP报文报头的正确性,并且对TCP和ICMP报文实行分流,此外,为了能够测试系统与网络的连接,在网际层还需要实现ICMP协议中的Ping应答协议,主要用于检查网络在传输层是否连通。

2.1 TCP/IP协议栈处理流程

TCP/IP协议栈接收数据包的过程就是解析数据包的过程。首先当一个数据帧到达时,网络接口控制程序将其读入缓冲区,检查协议类型字段,如果值依次为0X0800,表示数据域内为IP包;如果值依次为0X0806,表示数据域内为ARP包[3]。由此以确定使用那种协议模块来处理此分组。去掉以太网帧首部的数据包将被分配到IP缓存或者ARP缓存。接着,由IP协议处理模块或ARP协议处理模块继续解析。在IP协议模块处理数据包的过程,它要通过调用ARP协议获得对方主机的物理地址。

2.2 嵌入式TCP/IP协议栈的特点

嵌入式系统一般都是为了满足某一特定的需求,对网络支持的要求相对比较低,不需使用完整的TCP/IP协议。嵌入式TCP/IP协议栈的特点如下:

1) 开放的协议标准,独立于特定的计算机硬件、操作系统和网络硬件,可以运行在局域网,广域网和互联网中。

2) 统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有唯一的地址;标准化的高层协议,可以提供多种可靠的用户服务。

3) 代码比较简洁,占用的存储空间尽可能小,尽可能为应用程序节省系统资源。

4) 便于裁剪和扩展,对于面向不同应用的嵌入式系统应当根据特点对协议进行简化或扩展。

TCP/IP协议栈具有层次特性,各个协议都有自己的数据格式,每次发送数据都要进行上下层协议的数据交换,进行打包和拆包的过程。在嵌入式系统中,往往无法建立数据传递的缓冲区,需要采用“零拷贝”技术来解决各层协议间的数据传递,以提高系统的实时性能。网络协议层次模型如图1所示。

3 拥塞控制概述

描述拥塞现象有许多不同的度量,如传输延时、数据吞吐量、队列长度和网络效率等,但是没有哪个度量能在局部和全局意义上完全满足拥塞评判要求,因此人们对拥塞控制并无严格定义,甚至对拥塞的定义都无法完全统一。

3.1 基本概念

定义1:若因为网络负载增加而导致用户的满意度降低,用户则认为网络发生拥塞。

形象地说,当网络中存在过多的报文时,网络的性能会下降,这种现象称为拥塞[4,5]。拥塞导致的直接结果是分组丢失率提高,端到端时延加大,甚至整个系统发生崩溃。当发生拥塞崩溃时,微小的负载增量将使网络的有效吞吐量急剧下降(如图2所示)。

定义2:当负载达到网络容量时,吞吐量开始缓慢增长,而响应时间急剧增加,这一点称为膝点(Knee)。

定义3:如果负载继续增加,路由器开始丢包,当负载超过一定量时,吞吐量开始急剧下降,这一点称为崖点(Cliff)。

定义4:拥塞控制就是采用某种策略或机制,保持网络工作在正常的状态下,也就是使网络经常工作在崖点左侧的区域内。从而避免拥塞的发生或者对拥塞的发生做出反应。拥塞控制的目标就是使网络在Knee附近工作。

3.2 产生拥塞的原因

网络拥塞是“尽力而为”服务模型的一个固有属性。用户间无法相互协作共享资源,多个用户对同一网络资源提出请求时,就可能发生拥塞。网络拥塞产生的原因有很多,直接原因主要有三个方面:1) 存储空间不足;2) 带宽容量不足;3) 处理器间处理能力和速度不一致。

3.3 拥塞控制算法的设计目标

由于拥塞控制算法性能的好坏会影响整个网络系统,因此在设计和评价算法时,应该站在整个系统的角度来考查。对于任何一种拥塞避免或控制方案,人们希望它能同时满足以下几点要求:高效性、公平性(鲁棒性)、稳定性、可扩展性。

4 TCP拥塞控制机制

TCP协议[6]是目前Internet上使用最广泛的一种传输层协议。TCP的主要目的是为了解决Internet的稳定性、异质性(接受端缓冲区大小,网络带宽及延迟等)、各流之间享用带宽的公平性,使用效率及拥塞控制等问题,从而为Internet提供可靠健壮的端到端通讯。TCP拥塞控制策略主要包括以下四个过程:

1) 慢启动阶段[7]:保证了连接建立初期进入网络的突发数据的流量不会过大。

2) 拥塞避免阶段:当数据发送速率超过一定阈值时,算法进入此阶段,而后发送速率缓慢线性增长,避免了网络拥塞的发生。

3) 快速重传阶段[9]:当网络发生拥塞造成数据丢失或者重传超时时,用该策略重传丢失的分组。

4) 快速恢复阶段:把网络从拥塞状态中恢复出来。

4.1 TCP拥塞控制的主要参数

1) 拥塞窗口(cwnd):描述源端在拥塞控制情况下一次最多能发送的数据包数量。

2) 慢启动阈值(ssthresh):拥塞控制中慢启动阶段和拥塞避免阶段的分界点。初始值设为65535bytes或awnd的大小。

3) 回路响应时间(RTT):一个TCP数据包从源端发送到接收端、源端收到接受端确认的时间间隔。

4) 超时重传计数器(RTO):描述数据包从发送到失效的时间间隔,是判断数据包丢失与否、网络是否拥塞的重要参数。通常设为2RTT和5RTT。

4.2 TCP拥塞控制算法

4.2.1 Reno算法

1990年Jacobson在Tahoe的基础上提出了Reno算法。Tahoe算法是最早被提出来的TCP源算法,但至今仍然被大多数TCP实现所采用。Reno算法对Tahoe的改进主要体现在两个方面。第一,收到连续三个dupACK,算法不经过慢启动,而直接进入拥塞避免阶段。第二,增加了快速重传/快速恢复(FR/FR)机制,具体过程为:

1) 收到三个dupACK进入FR/FR。ssthresh=max(cwnd/2,2);

2) 重发去失的数据包;

3) 窗口膨胀。cwnd=ssthresh+ndupndup为收到的重复ACK数;

4) 当min(awnd,cwnd)足够大时,发送新的数据包;

5) 当收到非重复的ACK时,cwnd=ssthresh;

6) 转入拥塞避免阶段。可见,Reno在收到三个dupACK后,就转入FR/FR,而遇到超时,Reno和Tahoe一样进入慢启动阶段。可从Reno状态转换图直观地看到Reno的整个数据传输过程(如图3所示)。

Reno目前被广泛采用,以其算法的简单、有效和鲁棒性成为TCP源算法的主流。

4.2.2 NewReno算法

NewReno算法对Reno算法的改进是通过尽量避免Reno在快速恢复阶段的许多重传超时,利用一个ACK来确定部分发送窗口,立即重传余下的数据包,从而提高网络性能。目前,在因特网中使用最广泛的是NewReno算法。然而NewReno算法也存在着不足,它在高速远距离网络中不能有效利用带宽。

4.2.3 Sack算法

Sack算法也是对Reno算法的改进,当检测到拥塞后,不用重传数据包丢失到检测到丢失时发送的全部数据包,而是对这些数据包进行有选择的确认和重传,从而避免不必要的重传,减少时延,提高网络吞吐量。由于使用选择重传,所以在一个窗口中数据包多包丢失的情况下,Sack算法优于NewReno算法。但是Sack算法的主要缺点是要修改接收端TCP。

5 IP拥塞控制机制

随着Internet业务的迅猛发展,仅依靠单一的端到端的拥塞控制机制不可能有效地解决拥塞问题,另外期望所有用户在Internet应用中都遵守这种端到端的拥塞控制也是不现实的,这要求网络本身也必须参与对资源的管理与控制。基于此,提出了IP拥塞控制机制。

5.1 IP拥塞控制算法

5.1.1 随机及早检测(RED)算法

RED(Random Early Detective)算法在路由器监控队列长度,一旦发现拥塞迫近,就通知源端调整拥塞窗口。它也是通过丢包的方式使源端发现超时或重复应答,隐式通知源端拥塞情况。RED算法包含两部分:如何监控队列长度和何时丢弃数据包。首先,RED使用类似TCP计算超时时使用的权值Weight来计算平均排队长度:Qe=(1-Weight)×Qe+Weight×SampleQe其中,0

5.1.2 显示拥塞指示(ECN)算法

ECN(Explicit Congestion notification)算法在源端数据包中嵌入ECN,由路由器根据网络情况设置CE(Congestion Experienced)比特位,源端从网络中接收反馈回来的已被CE置位的数据包,再将随后发出的数据包标记为“可丢弃”的数据包。改进算法NewECN可通过调整拥塞窗口cwnd大小,纠正了有长时间RTT的TCP连接的偏差,改进了共享瓶颈处带宽的公平性。

5.1.3 加权公平排队(WFQ)算法

WFQ(Weight Fair Queue)是公平排队(FQ)算法的改进算法。WFQ算法对每个流即每个排队分配一个权值。这个权值决定了路由器每次转发该队列的比特数量,从而控制数据流得到的带宽。将所有权值看成1,那么FQ也是一种特殊的WFQ。权值的分配往往对应不同优先级的数据流,例如用IP包头中TOS域指定流的优先级,排队时再按优先级分配权值。总之,WFQ根据不同数据流应用的不同带宽要求,对每个排队队列采用加权方法分配缓存资源,从而增加了FQ对不同应用的适应性。

6 结论

讨论了嵌入式TCP/IP拥塞控制领域的研究热点。近年来,非线性规划和系统控制理论被引入拥塞控制研究中来,一些研究者使用数学模型来描述端系统和网关组成的系统,这对拥塞控制研究有很大的推动作用。然而,对于Internet这样一个复杂系统的分析与控制,只有通过通信、控制和数学等多学科的共同努力,才有望获得突破性成果。

参考文献:

[1] W.Richard STEVEN. TCP/IP详解 卷1:协议[M].范建华,胥光辉,张辉,等译.北京:机械工业出版社,2000:170-269.

[2] Jon C.SNADER. 高级TCP/IP编程[M]. 刘江林译.北京:中国电力出版社,2001:251-286

[3] Adam DUNKELS.Design and Implementation of the TCP/IP Stack[M]. Swedish:Institude of Computer Science,2001.

[4] Gevros P, Crowcroft J, Kirstein P, etal.Congestion control mechanisms and the best effort service model[J].IEEE Network,2001,15(3):16-26.

[5] Steves W.TCP Slows Start, Congestion Avoidance, Fast Retransmit and Fast Recovery Algorithms.RFC,2001[S], 1997.

[6] 陈岗,张会生.基于IPv6的移动互联网络研究与实现[J].微电子学与计算机,2006,23(2):40-42

篇9

关键词:IPv4;IPv6;HSRP;双协议栈;平滑过渡

中图分类号: TP368.6 文献标识码:A文章编号:1009-3044(2011)22-5340-03

1 IPv4/IPv6双协议栈热备冗余网络在企业的应用前景

随着1998年IETF正式公布了RFC2460标准,IPv6协议就正式诞生了。IPv6具有2的128次方个IP地址,是IPv4地址的2的96次方倍,解决了IPv4地址空间的枯竭的问题。

IPv6具有极强的安全性和可靠性,在扩展头中增加了身份验证头AH和封装安全性数据头(ESP),大大降低了数据被篡改的可能;IPv6增强了对流的支持,流标签的引入为整合、优化语音、视频和数据网络提供了更好的条件,同时高QoS特性使得数据传输质量更加高效; IPv6还增强了对移动性主机的内在支持等功能。

将IPv6协议优秀的新特性和功能及早应用于企业,同时又能很好地兼容IPv4应用,增强企业核心网络性能,采用IPv4/IPv6双协议栈热冗余模式建设企业核心网络对企业计算机应用就有着非常重要的意义。

2 IPv6的新特性

2.1 全新的地址管理方案

地址管理方案中,首先改变了地址拥有方式,IPv4中,地址是用户拥有,IPv6成了ISP拥有。其次IPv6还包括IPv4中没有统一解决方案的地址解析协议(ABP)和可达性检测等等。

IPv6还提供了地址自动配置机制,实现了主机的即插即用功能。为了保证主机地址的唯一性,IPv6定义了重复地址检测过程,每当生成地址时,均反复执行生成和检测过程,直到得到唯一的地址。

2.2 报文的安全传送

IPv6继承了IPv4的报文传送技术,在IPv6地址设计中增强了接口ID设置,这种ID设置提供了确认对方物理终端的技术条件,同时在其扩展头中增加了身份验证头AH和封装安全性数据头(ESP)。

身份验证头AH首先为IP数据报提供强大的完整和身份验证,为IP数据报承载内容验证数据和将实体与数据报内容相链接;其次在完整中使用公共密钥数字签名算法,AH还可以为IP数据报提供不可抵赖服务以及通过使用顺序号字段来防止重放攻击。再有,AH还可以在隧道模式或透明模式下使用,既可用于为两个节点间的简单直接的数据报传送提供身份验证和保护,也可用于对发给安全性网关或由安全性网关发出的整个数据报流进行封装。

封装安全性数据头通过加密提供数据报的机密性,通过使用公共密钥加密对数据来源进行身份验证,通过由AH提供的序列号机制提供对抗重放服务,以及通过使用安全性网关来提供有限的业务流机密性。

2.3 对流的支持

IPv6在设计时就充分考虑了对流的支持,改变了IPv4对流的处理即需要路由器判断源和目的IP地址,又需要判断传输控制协议或用户数据报协议的端口号的复杂操作过程。在IP6的IP头的格式里,有专门的20bit流标签域。主机发送报文时,流标签里填入相应的流编号,路由器收到流的第一个报文时,以流编号为索引建立处理上下文,流中的后续报文都按上下文处理,因此IPv6对流的处理方式要高效得多。

同时IPv6定义了流的优先级,分别支持不同的业务需求。通过对语音、视频、数据等不同类型的数据流进行合理、有效的优先级设置,为企业建设和优化语音、视频、数据三网合一网络平台提供了远优于IPv4网络的解决方案。

3 IPv6采用的关键技术

3.1 应用支持IPv6的技术

IPv6继承了IPv4网络中大量应用协议,比如:FTP、Telnet、SMTP、HTTP、NFS、DNS等,它们会在IPv6中继续使用。只有少部分如:IPv4 socket接口需要改为IPv6 socket接口,而协议本身机制可以基本不做改动。

3.2 IPv6过度技术

为了保护在IPv4上的大量投资,IPv6应该能与IPv4的主机和路由器共存。逐步演进、逐步部署、地址兼容、降低费用等内容便成了IPv6设计时的指导思想。为了实现这一目标,IPv6主要过度技术有十多种,而基本的过度技术就是双协议栈和隧道。

1)双协议栈技术

IPv4/IPv6双协议栈技术,就是使IPv6网络节点具有一个IPv4栈和一个IPv6栈,同时支持IPv4和IPv6协议。两者都应用于相同的物理平台,以及承载相同的传输层协议TCP或UDP。

2)隧道技术

隧道(Tunnel)是指将一种协议报头封装在另一种协议报头中,这样一种协议就可以通过另一种协议的封装进行通信。IPv6隧道是将IPv6报头封装在IPv4报头中,这样IPv6协议包就可以穿越IPv4网络进行通信。

4 组建具有热备冗余功能的IPv4/IPv6双协议栈网络

4.1 IPv6网络建设策略

IPv4到IPv6的升级切换不可能一蹴而就,必须循序渐进。因此在基于IPv6的特点以及公司目前IPv4网络的应用情况,在建设IPv6网络时做了以下几点:不影响现有基于IPv4协议的所有网络应用;保持现有网络的层次结构;确保计算机终端同时对IPv4和IPv6网络的访问能力;满足今后平滑实现IPv4网络到IPv6网络的过渡;通过IPv6网络的建设,进一步提高企业核心网络的性能。因此,IPv6网络建设中采用了热备冗余功能和IPv4/IPv6双协议栈技术。

4.2 网络拓扑

IPv6网络核心建设完成后形成图1所示的结构示意图,核心交换机A与核心交换机B用两对光纤连接实现热备份互联基础,两台交换机与下一层交换机分别互联,形成双链路,在启用HSRP及相关配置后实现双机热备路由功能。

配置IPv4/IPv6网络需要完成如图2所示步骤。

4.3 双协议栈的启用

为了实现IPv4/IPv6双协议栈功能,在网络接口设置中必须同时启用两种协议。现有交换机IPv4已经启用,启用IPv6协议及配置节点地址步骤如下:

interface fastethernet 1/1

IPv6 enable //启用IPv6协议

IPv6 address 2001:400:25:1::1/64//配置IPv6节点地址

4.4 路由实现

全局模式下IPv4使用IP routing启用路由功能,IPv6则使用IPv6 unicast-routing启用路由功能。IPv6是对IPv4的革新,尽管大多数IPv6的路由协议都需要重新设计或者开发,但IPv6路由协议相对IPv4只有很小的变化。在静态路由方面与IPv4也基本相同,只需为节点配置地址并作为客户机网关,即可实现网段间的路由。

全局模式下启用IPv6路由及相关配置

IPv6 unicast-routing //打开ipv6单播路由功能

IPv6 dhcp pool test //新建一个IPv6的dhcp地址池test,供客户机自动获取使用

prefix-delegation pool test1 lifetime 1800 600

dns-server 2001:400:4:1::101//指定IPv6 dns服务器地址

4.5 Windows2003中IPv6 DNS配置

①安装DNS服务及IPv6 DNS插件;

②配置IPv6 DNS

a、打开了DNS配置向导;

b、在导航窗格中, 单击用于你的服务器在DNS服务器对象,用鼠标右键单击服务器对象,然后单击 配置DNS服务器以启动配置DNS服务器向导,步骤见图3。

4.6 IPv6客户机配置

通常情况下IPv6客户机在启用IPv6协议后,地址会从最近的网络节点自动获取,无需用户手动配置,但是对于像服务器这类需固定IP地址的则需手动配置,以便于访问。以Windows Server 2003为例,步骤如下:

1)IPv6 协议栈的安装

在“开始”―>“运行”处执行IPv6 install命令

2)IPv6 地址设置

在“开始”―>“运行”处执行netsh命令,进入系统网络参数设置环境netsh>,执行interface ipv6 add address “本地连接” 2001:d0a8:3207::e002命令设置地址;或者在 开始 -->“运行”处执行 ipv6 adu 4/2001:d0a8:3207::e002。

3)IPv6 默认网关设置,在netsh>标识后输入

interface ipv6 add route ::/0 “本地连接” 2001:d0a8:3207::e001 publish=yes命令即可;或者在在“开始”-->“运行”处执行 IPv6 rtu ::/0 4/2001:d0a8:3207::e001。

4.7 IPv6网站的访问

用户在实际使用中,IPv4和IPv6同样使用域名网址进行访问,使用IP地址访问时有所不同,IPv6协议需要使用带中括弧方式来访问,例如:[ 2001:d0a8:3207::e001]。

4.8 热备份路由器协议配置

网络核心采用热备份路由器协议技术(HSRP:Hot Standby Router Protocol),系统中使用两台路由交换机满足HSRP多台路由器的条件,组成一个“热备份组”,这个组形成一个虚拟路由器。在任一时刻,一个组内只有一个路由器是活动的,并由它来转发数据包,如果活动路由器发生了故障,将选择备份路由器来替代活动路由器,但是在本网络内的主机看来,虚拟路由器没有改变。所以主机仍然保持连接,没有受到故障的影响,这样就较好地解决了路由器切换的问题。配置步骤如图4。

1)热备份交换机通道配置

交换机A

interface Port-channel1 //创建一个捆绑通道组1

description HSRP_packet //描述该通道是传递hsrp包用

interface GigabitEthernet5/1

channel-group 1 mode on //将端口划入捆绑接口Port-channel1

在交换机B中进行同理配置。

2)VLAN冗余组配置

交换机A

interface Vlan1//配置vlan 1接口

ip address 10.1.1.12 255.255.255.0 //配置本地Vlan1接口Ipv4地址

IPv6 enable

standby version 2//启用版本2

standby 1 ip 10.1.1.1//设置vlan 1到热备组1,同时设置vlan 1的ipv4网关

standby 1 priority 110 //在本交换机的优先级110(默认100,优先级高的为主用)

standby 1 preempt//打开热备组1抢占功能

standby 1 track Port-channel1 //热备组1通过捆绑接口Port-channel1实现双机信息告知

standby 1 ipv6 2001:400:1:1::100/64 //启用IPv6 HSRP协议

在交换机B中进行同理配置。

5 结束语

1)通过双机热备份路由器协议的使用,公司网络稳定性能得到很大提高,更好地满足了目前公司数十套业务系统全天候不间断的运行要求,很好地支持了公司的发展;

2)为公司正进行的全面信息化及电子商务的建设提供了高效、安全、可靠和无阻塞的信息处理网络平台;

3)通过对IPv6技术的应用,它拥有的全新网络安全架构技术使企业业务数据的传输安全得到了进一步保证;

4)IPv6对流的充分支持,加快了企业对流业务应用系统的开发,为建设高效的企业语音、视频、数据三网合一网络平台起到了重要作用;

5)该系统的成功实施为公司业务系统今后及早融入IPv6网络环境打下了基础,为公司ERP及电子商务系统更快、更好地融入新的网络信息平台做好了充分准备。

6)IPv6网站的建成,已成为国家IPv6应用试验典范。

参考文献:

[1] 张宠科,苏伟.IPv6路由协议栈原理与技术[M].北京:北京邮电大学出版社,2006(7).

[2] 高发桂,郭学理,王路群.IPv6安全特性的分析与应用研究[J].计算机应用与软件,2002(11).

[3] 杜治国,肖德琴,徐东风.基于双栈技术的IPv6校园网络设计[J].计算机工程与设计,2007(11).

篇10

【关键词】TCP/IP;delphi6.0;SQLserver 2000

【Abstract】The designand implementation of LAN communication tool have been proposrd. The system was designed in delphi 6.0 and stored data in SQLserver 2000.The transmission form of TCP and UDP and C/S structure were used in the design.At last,the function just as user registration and login,the display and find between friends,the text chat,the voice and video chat were achived.

【Key words】TCP/IP;delphi6.0;SQLserver 2000

0 引言

随着全球信息化进程的不断发展,越来越多的企业使用局域网来管理各种事务。但随着局域网的机器增多,软件的应用对局域网的信息吞吐、处理能力的要求也越高。为解决上述矛盾,就有必要设计一个在局域网里的ICQ,通过该系统,进行文件传输,消息的,提高企业的工作效率。

1 需求分析

该系统基于TCP/IP网络协议,采用C/S模式,服务器端与数据库连接,客户端安装在不同电脑上可通过同一服务器实现数据通讯。实现的功能如下:

(1)用户注册,随机分配号码并填写个人信息;

(2)用户登入验证并导出好友列表;

(3)能够查找好友并认证后加为好友;

(4)文字聊天,聊天记录保存;

(5)点对点文件传输功能;

(6)视频语音捕获与传输(视频语音聊天功能)。

2 详细设计

2.1 概要设计

本课题在研究和分析计算机TCP/IP网络协议基础上,在不同计算机之间实现数据通讯。采用TCP和UDP传输方式,编写客户端与服务器端网络软件。客户向服务器发出服务请求,服务器作出应答响应,服务器监听客户发出的请求,当客户提出连接请求后,服务器作出应答,并为客户提供相应的服务。

本系统前台使用Delphi6.0进行设计,后台运用Sql Server 2000进行数据管理。

2.2 方案设计

该即时通的工作过程如下:当服务器开启时,用户从客户端登录,通过TCP/IP网络将输入的帐号和密码传到服务器,服务器从数据库中对应的数据表查找验证,若验证错误,返回错误提示信息;若验证通过,则登录QQ主页面。在进入主页面后,用户可通过输入对方QQ号查找其他用户且加对方为好友。两用户可通过点对点通讯实现文字聊天,语音视频聊天,文件传输等。

2.3 系统数据表设计

本系统使用SQL Server 2000设计后台数据库,共设计了两张数据表:用户信息表和好友信息表。

用户信息数据表用于储存注册用户的信息,存储的信息包括:用户QQ号(主键)、用户密码、用户昵称、性别、是否在线(1为在线,0为不在)、用户上线地址、国籍、省份、城市等。

好友信息数据表,主要用于添加用户好友信息,用户登录时调用相关信息并显示。存储的信息包括:用户QQ号、好友QQ号、好友是否在线、好友在线地址、好友昵称。

2.4 详细模块设计及功能实现

客户端包括七个模块:

(1)登录模块:此模块实现客户端与服务器连接,用户登录时验证身份,验证通过则进入QQ主页面模块,并调取好友信息显示。

(2)主页面模块:用户在登录模块验证身份通过后,从服务器调取好友信息,并在QQ主页面上显示。

(3)查找模块:该模块用于用户查找好友,输入对方帐号查找对方信息,并加为好友,与服务器连接并修改数据表的内容,在主页面上添加上新好友。

(4)文字聊天模块:此模块实现用户间的点对点聊天,两客户端通过UDP连接,发送和接收文字信息,实现局域网文字聊天。

(5)文件传输模块:此模块实现两客户端点对点文件传输,图片,文本文档及压缩包等均可传输。

(6)语音视频聊天模块:此模块实现了语音和视频的捕获以及点对点传输功能。

服务器端根据功能要求可分为以下三个模块:

(1)服务器监听模块:用于回应客户端请求,包括登录回应,注册回应,调用好友信息回应等。

(2)远程截图模块:此模块实现服务器端从上线的客户端获取IP地址后截取对方屏幕显示。

(3)查询模块:此模块实现服务器端访问数据库并查询数据库信息。分为综合查询和详细查询功能。

3 系统程序的总体设计与实现

本系统软件采用模块化结构,由用户登录程序、用户注册程序、好友信息显示程序、好友查找程序、文字聊天程序、文件传输程序等子程序构成。其中,文件传输,语音视频聊天模块都具有独立性,可在单独设计后加入到整个系统中,其余各模块间需要服务器客户端相互连接同时调试才可实现。服务器端首先开启运行,在和客户端相互通讯实现基本功能。

4 结束语

本系统基于Delphi6.0和Sql Server 2000的运用,在研究和分析计算机TCP/IP网络协议基础上,实现不同计算机之间的数据通讯。采用C/S结构,实现在功能有:用户的注册和登录,好友的显示和查找,好友文字、语音视频聊天,文件传输等。

【参考文献】