ip协议十篇

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

ip协议

ip协议篇1

【关键词】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)

ip协议篇2

在网络应用日益普遍的今天,越来越多的嵌入式设备实现Internet网络化。TCP/IP协议是一种目前被广泛采用的网络协议。嵌入式Internet的技术核心是在嵌入式系统中部分或完整地实现TCP/IP协议。由于TCP/IP协议比较复杂,而目前嵌入式系统中大量应用低速处理器,受内存和速度限制,有必要将TCP/IP协议简化。

图1 协议处理

1 TCP/IP协议的实现

嵌入式TCP/IP协议一般实现:ARP/RARP、IP、ICMP、TCP、UDP、HTTP、SMTP、FTP、TELNET等协议,协议处理的主要流程如图1所示。

1.1 TCP协议的实现

工业控制领域传输层采用TCP协议、不用UDP协议,是考虑到实时监控系统中传输量并不大,而可靠性要求较高。TCP协议是面向连接的、端对端的可靠通信协议。它采用了许多机制来保证可靠传输,应用于嵌入式系统显得过于复杂。

TCP协议数据传输可分为三个阶段:建立连接、传输数据和断开连接。它的实现过程可以用状态机来描述。建立连接有两种方法,即主动打开和被动打开。服务器端是一种被动打开,它一直在侦听连接请求;而客户端是一种主动打开,它发送连接请求以建立连接。研究发现,如果TCP层的上层实现服务器端的应用,可以将标准TCP状态机建立连接过程中客户端建立连接的状态机部分简化掉。同理,如果应用是基于客户端的,可以将服务器端建立连接的状态机部分简化掉。断开连接有两种方式:一是主动断开连接;另一是被动断开连接。被动断开连接的处理较为简单,但标准TCP协议的主动断开连接的状态机部分过于复杂。经过实验发现,在需要主动断开连接的时候,发送一个Fin数据报;接收到对Fin数据报的确认后,再发送一个Reset数据报,即可顺利完成一次主动断开连接。

标准的TCP协议使用慢启动的滑动窗口机制。滑动窗口是一种在流量控制和网络传输效率之间折中的方案。它允许发送方在等待一个确认之前发送多个窗口,其确认是一种批量的确认。研究滑动窗口协议发现,滑动窗口的一个极限情况,是只使用单个窗口,就变成了一种简单确认的处理方法。使用该方法后,所有的处理只是对单个数据报的发送和确认,节约了系统的资源,也使维护更加方便。为了协议的兼容性,需要通信的另一方也使用简单确认方法。因为如果对方使用较大的窗口,就可能造成处理器被淹没。这个问题可以通过设置待发送数据报的TCP头部的Windows字段的大小解决。

在上述基础上,简化实现TCP协议的流程图如图2所示。其中“不同状态的相应处理”指根据接收到的TCP报文准备待发送数据报并将其发送到以太网上。这部分根据TCP所处的不同状态,所做的处理是不一样的。

1.2 IP协议

IP协议是TCP/IP的基础,为不同网络的主机之间发送数据报的操作序列提供无连接服务。通过在数据报前添加IP协议头,使每个数据报具有寻址能力。嵌入式系统只把IP作为传输工具,进行简化以完成主要的操作。得到IP包后,检验IP头部的版本、目的地址、校验和正确否,解析出协议类型字段,由此交给相应的高层协议处理。发送IP包时,将缓冲区内的源地址与目的地址互换,设置校验和,然后交给下层协议处理。不符合要求,则将此包丢弃。IP包最大可以为65KB,可以分段传输,而在嵌入式系统里根本无法容纳如此大的数据包,因此一般不支持分段传输。所以限制MCU发送和接收数据包的方式以避免分段传输,从而减少程序复杂度。

    1.3 其它协议

ARP协议为32位IP地址到对应的48位以太网地址之间提供动态映射。嵌入式系统中仅响应ARP请求,发送ARP回答包。请求者广播出包含ARP请求的以太帧、目的以太网地址为全1的广播地址。本机收到后,由目的IP地址发现自己是目的主机,发送一个ARP回答。ICMP通过IP协议传输其报文。IP协议是无连接的,它无法将报文和错误信息传到最初的主机,ICMP将状态信息和错误信息发送到发报文的主机。

2 前端设备的系统设计

TCP/IP协议扩展到工业控制级,将企业内部计算机网络应用于工业现场实时信息的和显示,通过Internet浏览器对现场工业信息进行动态监视。下面是笔者在某公司一分布式监控系统中的应用实例。基于TCP/IP协议的前端设备系统软件结构如图3。前端嵌入式设备处理器是Samsung公司的S3C4510B(ARM核)。该芯片是用在基于以太网系统的高性价比、高性能的16/32位RISC微控制器。通信部分采用BNC接口方式,信号输出经耦合隔离变压器由RJ45接头联入集线器,此外还设计了液晶显示和键盘输入当地接口功能。

在TCP/IP协议中多处用到超时和重发机制。这种机制对于确保两个或多个彼此独立的通信结点从通信错误或故障状态自动恢复到正常状态是非常有效的,但也增加了软件结构的复杂性。因为对超时的处理通常独立于正常程序流程,也就是与正常的程序流程异步。要实现的TCP/IP协议软件中有四处要用到定时器:第一是在ARP高速缓存的维护中,被添加到ARP高速缓存中的表项在一段时间后要置为无效;第二是在等待对发出的ARP请求返回响应时,可能会在指定的超时时间内还未收到返回的响应;第三是在IP组装收到分片时,由于部分分片在一定时间内没有收到而丢弃整个IP包;第四是在TCP等待接收方对数据段的确认时。如果在指定时间内还未收到对某个数据段的确认,需重新发送。从上述可见,要实现的定时器具备以下特点:

·对定时的精度要求都不是很高,基本都是秒级的精度。这样,完全可以稍滞后一些来处理定时器超时,不把超时处理放在时钟中断处理程序中。

    ·对同一类超时处理可以由同一处理程序来完成,只是传入到相应的处理程序中的参数不同而已。例如一个ARP高速缓存中的表项超时时,需要将其置为无效,可以统一用一个处理程序,参数中放入相应的表项地址即可。

首先,定义一定时器的数据结构,如图4所示。每一类超时都是由一个超时控制块和其所属的一个由超时事件项组成的链表管理。整个链表按超时事件将要发生的时间顺序排列,先发生的超时事件排列在前。超时控制块中的head_ptr用以指向一个超时事件项链表的首项;timeout_process是超时事件发生时处理程序的入口地址。在每个超时事件项中,next_ptr指向链表中的下一项;relative_time是本表项的超时事件相对于上一表项的超时事件发生的相对时间。所以某个表项表示的超时事件距离当前的时间是它以前所有表项(包括自身)中的relative_time的和。relative_time的基本单位是granularity。

ip协议篇3

(一)教材地位

《TCP/IP网络协议》这节内容选自高教版中职计算机网络技术第二版王协瑞主编的《计算机网络技术》。

(二)教学目标

1.知识目标:知道TCP/IP协议含义;理解TCP/IP协议的分层模式及各种协议的作用。

2.能力目标:通过案例教学法阐述知识点,培养学生的理解能力;通过小组完成任务,培养学生分析问题、思考问题、解决问题的能力。

3.情感目标:通过师生间的讨论、互动,培养学生爱动脑、勤思考、理解后记忆的良好习惯,激发学生的学习兴趣,培养学生的团队协作精神。

(三)教学重难点

重点:TCP/IP协议的分层模式、TCP协议及IP协议的作用。

难点:TCP协议及IP协议在实际中的应用。

二、学生分析

对于中职学生来讲,有了一定的网络应用基础,但仅局限于习得网络操作层面的知识,在这个学习阶段应该对网络的基础理论知识加以学习,从而提高对网络资源的认识。

三、教法分析

本节课主要运用案例法、讨论法、启发探究式、归纳总结、合作学习法等教学方法。

通过游戏激发学生求知欲,培养学生研究问题的能力;在教学过程中,充分发挥学生的主体地位,通过问题启发引导学生分析问题、解决问题。

四、学法分析

通过师(生)不断地设(释)疑,提示思维过程,将学生置于主体地位,发挥学生的主观能动性;根据学生的个体差异,设计不同的问题,带给他们直接的感性体验;调动学生的学习积极性,使学生在轻松的环境中掌握所学知识。

五、教学过程

(一)准备阶段

教师课前的工作是备好课,准备好上课素材。

(二)课堂教学过程

1.创设情境,引入课题。

游戏设计:串名字游戏。

小组成员围成一圈,任意提名一位队员自我介绍姓名,第二名队员轮流介绍,但是要说:我是***后面的***,第三名队员说:我是***后面的***的后面的***,依次下去……最后介绍的一名队员要将前面所有队员的名字复述一遍。分小组比赛,若小组一成员说错,则停止。

总结:掌握游戏的规则。

设计意图:通过游戏逐步引入课题,使学生对本课的学习内容产生求知欲,提高学生的反应能力,增强学生的团队意识。

2.知识初探――初识TCP/IP协议。

提问:INTERNET大家应该很熟悉,特别是QQ聊天工具使用很频繁,那么各种类型的电脑通过什么方法进行通信、进行资源共享呢?

设计意图:教师设问,启发引导学生思考、分析、讨论、总结问题,从而归纳出TCP/IP协议的含义与作用,使学生对TCP/IP协议有了初步了解,从而达到自主探究学习的目的。

举例分析:“所有电脑生来都是平等的”。为了让这些“生来平等”的电脑能够实现“资源共享”就要在这些系统的标准之上,建立一种大家都必须遵守的规则,这样才能让不同的电脑按照一定的规则进行“谈判”,并且在谈判之后能“握手”。在确定今天因特网各个电脑之间“谈判规则”后,才能使今天各种不同的电脑能按照协议上网互联。

3.深入探究――再看TCP/IP协议。

提问:(1)大家对OSI参考模型并不陌生,说说对OSI参考模型的了解。(2)因为TCP/IP协议先于OSI参考模型,所以两者肯定有不同之处,那么TCP/IP协议的参考模型又如何呢?

设计意图:提问1借助于提问,达到新旧知识的过渡,从而巩固知识,加深印象。

提问2,教师提出新的问题,让学生进行比较,激发学生的学习兴趣,指明学生的学习方向,集中精神,全身心地投入到课堂教学的双边活动中去。IP层包含的几个主要协议:

Ⅰ.网际协议(IP)

举例分析:在现实生活中,我们进行货物运输时都是把货物包装成一个个纸箱或者是集装箱之后才进行运输,在网络世界中各种信息也是通过类似的方式进行传输的。IP协议规定了数据传输时的基本单元和格式。如果比作货物运输,则IP协议规定了货物打包时的包装箱尺寸和包装的程序。除了这些以外,IP协议还定义了数据包的递交办法和路由选择。同样用货物运输作比喻,IP协议规定了货物的运输方法和运输路线。

设计意图:教师给出案例,可以锻炼学生的思维能力,从而使学生加深对所学知识的理解。

Ⅱ.网际控制报文协议(ICMP)

Ⅲ.地址解析协议(ARP)

Ⅳ.逆向地址解析协议(RARP)

(三)归纳总结

1.TCP/IP协议的含义与作用。

2.TCP/IP协议分层体系结构。

设计意图:归纳要点,加深学生的理解和记忆。

(四)作业布置

P52页①选择题:第20-23题②简答题:第11题

ip协议篇4

关键词:DVB;MPE;MPEG-2;IP

中图分类号:TN972 文献标识码:B

文章编号:1004373X(2008)0510703

Analysis of IP Data Sent by DVB MPE

GAO Haolin,HUANG Yan

(Information Engineering College,Information Engineering University of PLA,Zhengzhou,450002,China)

Abstract:The communications need more safety method,special information is rarely sent by general means.Then satellite channel is used to sendIP data.To capture them deeply study is made on how these data are sent,the method of data broadcast with DVB is introduced,then MPE protocol is depictedin detail.At last,they are illustrated with examples to show that the payload could be got.

Keywords:DVB;MPE;MPEG-2;IP

目前,卫星传送的信号不仅有常用的音视频信号,还有其他可能含有关键信息的信号,在这些信息的获取过程中对DVB传送的IP数据进行分析有着重要的意义。本文首先对DVB数据广播的方式进行了概述,然后对多协议封装的原理进行了说明,最后结合实例说明了这种封装模式的应用,说明了信息获取的方法。

1 引 言

当前,DVB的应用已经十分普及,尤其是用于传送广播电视节目的设备几乎已经遍布各地,这为应用DVB标准传送其

他格式的数据提供了硬件基础。而DVB标准对其传送的数据包载荷的具体内容并没有进行具体规定,这种开放性使得他成为多种格式数据的载体,除了广播和电视节目外,也可用来完成数据检索、邮件服务、视频会议、远程教育、电子商务、电子收费、远程医疗等业务。而军用信息的传送对信息获取有更大的价值。

2 DVB数据广播协议结构模型

DVB(Digital Video Broadcast)系统提供了在各种不同的传输媒介传送MPEG传输流的手段,这些传输流一般都包含MPEG-2音视频内容。这种传送音视频节目是应用得最多也最成熟的,为边远地区提供了方便的低成本的接入方式,尤其是在“村村通”工程中发挥了巨大作用。而以IP数据为主的数据传送业务是对基于DVB传输标准MPEG-2的重要扩展。在IP数据包中又可以封装网页、邮件、语音等多种数据。针对不同的应用需求,DVB规定了6种业务模式:数据管道(data piping)、数据流(data streaming)、多协议封装(Multi-protocol encapsulation,MPE)、数据轮放(data carousels)、对象轮放(data carousels)和用户定义服务(registered service)。而对应于这6种业务模式有相应的传输规范,构成了DVB数据广播协议结构模型。这些方式有不同的应用条件,其中的多协议封装一般被用来传送其他各式的数据,实际中用得较多的是传送IP数据。这些数据在传送时候被封装成数据包。

DVB标准的数据包的格式分为基于TS包、基于PES包和基于MPEG-2数据片3种格式。其中基于TS包格式,其固定长度为188 B,基于私有数据机制,数据管道采用这种方式;基于PES包格式是MPEG-2提供的一种长度可变的打包方式,最大包长为64 kB,提供数据流精确同步机制,所以DVB多选择PES用于同步和被同步的码流传输。基于MPEG-2数据片也是长度可变的打包方式,最大包长为4 kB,多协议封装和轮放采用这种打包方式。

3 多协议封装(MPE)

多协议封装规范支持在DVB信道中传输符合其他通信协议的数据,他针对IP包进行了优化,也可用于传输其他网络协议的数据。利用DVB多协议封装可以实现单点广播(数据包发给单一接收者)、多点广播(发给一组接收者)、广播(发给所有接收者)。

一个数据片可以包含许多具有同一个PID的MPEG包。在MPEG包的净荷中,报文依次紧凑排列。这就需要利用图1中NMP字节来指示下一个报文的起始位置。如果该字节的值不为零,净荷单元起始位将被后移,后移的位置由该字节的值说明,如果该字节的值为0,即十六进制的0x00,说明其后紧接着的就是MPE包。MPE包包括MPE包头和MPE负载,MPE包头为12个字节,一般以“3E”开始。MPE负载又包括IP包头和IP包负载,IP包头为20个字节。IP包负载一般由TCP/UDP包头和TCP/UDP包负载组成,IP包头中第十个字节指明了所用的传输层的协议是TCP还是UDP等,其他各字节含义将在后面说明。这种嵌套方式的数据封装格式如图1所示。

表1是MPE包头的部分字段,table[CD#*2]id的值一般为3E,说明MPE报的开始。section[CD#*2]syntax[CD#*2]indicator置“1”说明使用CRC校验,privator[CD#*2]indicator置“0”,reserved置“11”,section[CD#*2]length说明该MPE报的长度,包括CRC校验的4个字节。MAC[CD#*2]address[CD#*2]6是目的MAC地址的最低字节,目的MAC地址共六个字节,依次是MAC[CD#*2]address[CD#*2]1到MAC[CD#*2]address[CD#*2]6,分别对应于MAC的六个字节。payload[CD#*2]scrambling[CD#*2]control和address[CD#*2]scrambling[CD#*2]control分别定义负载和MAC地址的加密模式,他们的值为“0X00”时说明负载没有加密,MAC地址也没有加密。

IP协议是网络层的协议,在网络层上的运输层中的协议有TCP、UDP等,如图2所示。具体的协议类型在IP包头的“协议”字段即第十个字节,该字段说明使用何种类型的传输层协议。当他的值为“0x06”时说明传输层使用的是TCP协议;当他的值为“0x11”时说明传输层使用的是UDP协议。而TCP协议和UDP协议又分别对应于具体的应用层协议,如TCP协议常对应于应用层的SMTP,HTTP,TELNET等协议,而UDP协议常对应于应用层的DNS,RIP等协议。该字段在对收到的卫星数据进行分类接收并还原的过程中非常重要。IP包和TCP包的解析按各自的封装格式进行,在他们的包头中指明了发送方和接收方的IP地址、段长度、包头长度、协议类型、发送方和接收方端口号、数据偏移等。具体字节含义可在相关协议中查看。

下面对一段多协议封装的IP数据进行分析。数据首先要从DVB信道中进行采集,由于目前常用的DVB信号的符码率可达到90 Mb/s,所以需要使用高速的数据采集设备才能采到完整的连续的数据包。采集下来的数据在保存的过程中数据也不能有丢失或错误,这样才能保证分析的正确。

下面结合实际数据进行分析。采集下来的数据需要使用能对二进制数据进行编辑的软件进行查看和分析。如图3所示,该图是数据分析软件的界面,他显示了MPE数据包的详细内容,其中第一行前面四个字节是MPE数据包的包头,从中可看出,该段数据的PID值为“0x195”,第五个字节“0X08”说明该MPE数据片在8个字节后以“3E”开始,其后的“0X041”说明该MPE数据片长度为65。第二行的“47、14、00、76、06、00”是目的MAC从低到高依次排列的6个字节。MPE数据包包头共12个字节。紧接着MPE数据包包头的是20个字节的IP包头,以“0X45”开始,“4”说明是IPv4数据包,“5”说明5个单位共20个字节,“0X00 34”说明该IP包长度为52个字节。IP包头中的第十个字节“0X06”说明该IP包承载的是TCP协议,包头的后十个字节是源地址和目的地址,分别为“45 24 FA 09”和“CA AE 9A CB”,即69.36.250.09是源IP地址,而202.174.154.203是目的IP地址。紧接着IP包头的是20个字节的TCP包头。首先是各2个字节源端口和目的端口“00 50”和“CD F2”,即源端口是80,目的端口是52722,可见源端口是常用的http协议的80端口。然后是各4个字节的发送序号和接收序号“A9 60 A2 48”和“1A C8 C9 60”。TCP包中的第十三个字节中的“8”说明数据偏移为32个字节,即头部结束后还有12 个字节才是载荷数据。

图4是一份计数指示从0X14到0X1A的连续的 IP数据片,每行设置为显示204个字节,正好为DVB的MPEG传送流的包长,所以每行开始的都是同步字节“7E”。各行第四个字节为连续计数字段,可见他们是同一数据包的不同分段。负载在第一行开始,由第二个字节中的“4”指示。该行第四个字节“00”说明从其后第一个字节开始就是MPE数据片,以“3E”开始的12个字节为MPE包头,其中“5E9”指示数据片长度为0x5E9,即1513。网卡地址为00D0D73003D7。紧接着的是IP包,以“45 00”开始。

图5是一段含有用户登录文本信息的IP数据片,负载字段记录有用户登录的日期、服务器名、数据长度等信息。在卫星DVB信号中承载的多种数据如邮件、图片等等业务都可以从负载中提取出来。

4 结 语

本文结合DVB多协议封装的EN300468协议对数据封装的格式进行了详细分析,并针对负载的具体类型结合IP协议、TCP协议、UDP协议对具体数据进行了逐字段的分析,最后得到了可用于提取关键信息的数据。这些数据在DVB的传送流中都是以二进制形式连续存在的,在实际工作中要想获取负载中的有用的信息必须采用逐层剥离的方法用软件来自动实现。这种方法在卫星DVB数据承载的多业务数据的自动接收和分类等工作中是非常重要的。

参考文献

[1]张武平,姜文波.利用多协议封装实现HFC网的IP over DVB透明传输[J].现代电视技术,2003(7):76-78.

[2]李二建.在IPTV平台上集成有条件接收系统的研究[J].现代电子技术,2006,29(24):4-7.

ip协议篇5

关键词:“计算机网络”教学;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)

ip协议篇6

关键词:TCP/IP;网络协议;防御;安全协议

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)03-0485-02

在短期内,基础TCP/IP网络协议不可能进行重新设计和部署实施,无法从根本上改变目前网络面临严重安全威胁的状况。通过部署一些监测、预防与安全加固的防范措施,是增强网络对已知攻击的抵御能力不可或缺的环节。

1 网络各层防范措施

在网络接口层,主要监测和防御的安全威胁的方法是网络嗅探,可以利用防范网络嗅探的思路,检测出局域网中的监听点,并在网络设计上尽量细分和优化网络结构,尽量消除数据广播的情况,并对关键路径上的网关、路由器等设备进行严格的安全防护,以减少网络嗅探造成的影响。此外,对于无线网络而言,应增强链路层加密的强度,同时对各类网络采用加密通信协议,使得在通信过程中,即使遭受嗅探也不会破坏数据要达到的机密性要求。

在互联层上,虽然IP、ICMP、ARP等协议中存在安全缺陷,安全问题带来的风险很难完全避免,但我们可以采用多种检测和过滤技术来发现和阻断网络中可能出现的欺骗攻击,此外也可以增强防火墙、路由器和网关设备的安全策略,对一些用于欺骗攻击的特殊数据包进行过滤,特别是对外部网络进行欺骗攻击的数据包进行出站过滤,只有如此,才能共同维护整个互联网的安全。对关键服务器使用静态绑定IP-MAC映射表、使用IP sec协议加密通信等预防机制,可以有效地增强网络对欺骗攻击的抵御能力。

在传输层,可以实现基于面向连接和无连接服务的加密传输和安全控制机制,包括身份认证,访问控制等。

应用层可以采用加密、用户级身份认证、数字签名技术、授权和访问控制技术,以及主机安全技术,如审计、入侵检测等。

2 网络各层安全协议

为了克服TCP/IP协议栈的安全缺陷和问题,互联网研究机构也在不断地研究和开发一些网络安全协议,IETF、IEEE 802等国际性的网络研究和标准化组织在不断地进行讨论和改进,并作为标准化协议规范对业界进行,使得业界能够在这些标准在网络设备、操作系统中实现和应用这些安全协议,从而增强现有网络的安全性。在TCP/IP协议栈各个层次上运用的网络安全协议如下表1所示。

2.1 网络接口层的安全协议

网络接口层的安全协议设计和标准化主要由IEEE802委员会负责推进,由于无线网络传输媒介的共享特性,因此比有线网络更加需要安全保护机制,目前常用的802.11WiFi、蓝牙(Bluetooth)等无线网络均实现了用于身份认证、加密传输和防止假冒篡改攻击的安全协议,如WEP(Wired Equivalent Privacy)和WPA/WPA2(Wi-Fi Protected Access)协议等。此外IEEE802委员会还制定了802.1X协议,提供了基于端口访问控制的接入管理协议标准,为各种不同类型网络中的用户认证和访问控制给出了通用的解决方案。

2.2 网络互联层的安全协议

网络互联层目前最重要的安全通信协议主要是IP sec协议簇。IP sec (Internet Protocol Security),即互联网安全协议,是IETF(Internet Engineering Task Force)提供的一系列的互联网安全通信的标准规范,这些是私有信息通过公用网的安全保障。 IP sec适用于目前的IP版本IPv4和下一代IPv6。IP sec规范相当复杂,规范中包含大量的标准文档。由于IP sec在TCP/IP协议的核心层――IP层实现,因此可以有效地保护各种上层协议,并为各种安全服务提供一个统一的平台,IP sec也是被下一代互联网所采用的网络安全协议。 IP sec协议是现在VPN开发中使用最广泛的一种协议,有可能在将来成为IPVPN的标准。

IP sec协议簇的基本目的是把密码学的安全机制引入IP协议,通过使用现代密码学方法支持机密性和认证服务,使用户能有选择地使用,并得到所期望的安全服务。IP sec将几种安全技术结合形成一个完整的安全体系,包括安全协议部分和密钥协商部分。IP sec的安全协议主要包括AH协议(Authentication Header,认证头)和ESP协议(Encapsulate Security Payload,封装安全载荷)两大部分:AH认证协议提供五连接的完整性、数据源认证和抗重放保护服务,但是AH不提供任何机密性保护服务;而ESP协议则为IP协议提供机密性、数据源验证、抗重放,以及数据完整性等安全服务。其中,数据机密性是ESP的基本功能,而带有数据源身份认证、数据完整性检验以及抗重放保护等功能。此外IP sec中还包含了密钥协商和交换协议,如Internet密钥交换协议(Internet Key Exchange,IKE),负责处理通信双方的协议及算法的协商,产生并交换加密和认证密钥,以建立起AH和ESP协议需要的通信双方安全关联(Security Association,SA)。

IP sec协议支持隧道及传输两种模式。隧道模式用于主机与路由器或两部路由器之间,保护整个IP数据包。通常情况下,只要IP sec双方有一方是安全网关或路由器,就必须使用隧道模式。传输模式用于两台主机之间,保护传输层协议头,实现端到端的安全。它所保护的数据包的通信终点也是IPsec终点。传输模式下,IP sec主要对上层协议即IP包的载荷进行封装保护,通常情况下,传输模式只用于两台主机之间的安全通信。

由于工作在互联层上,IP sec协议能够为IP协议之上的任何网络应用提供安全保护机制,而网络应用无需任何的特殊设计和实现,就可以使用IP sec.

2.3 传输层的安全协议

传输层上的安全协议主要是TLS(Transport Layer Security),其前身是由Netscape公司所开发的SSL(Secure Socket Layer),目前最新版本是IETF的TLS l.2标准化网络安全协议(RFC 5246)。TLS协议在传输层上通过密码学算法,为应用层的网络通信提供了安全的点到点传输,在Web浏览、电子邮件、即时通信和VoIP (Voice over IP)等网络应用服务中得到了广泛使用。

TLS协议基于密码学算法支持在互联网上的身份认证和通信机密性保护,能够防止窃听、干扰和消息伪造。TLS协议包括两个协议组:TLS记录协议和TLS握手协议。 TLS记录协议位于可靠的传输协议TCP之上,用于封装各种高层协议,提供的安全性具有两个基本特性。

① 加密:使用对称加密算法(如 DES、RC4等)进行数据加密,以保证传输数据的机密性,对称加密所产生的密钥对每个连接都是唯一的,对称密钥由TLS握手协议进行协商,记录协议也可以不使用加密。

② 可靠:信息传输使用密钥进行消息完整性检查,通常使用安全哈希函数(如SHA、MD5等)来计算消息完整性校验和(Message Authentication Code,MAC)。

TLS握手协议允许服务器与客户机在应用程序协议传输和接收其第一个数据字节前,进行单向身份认证,或者彼此之间相互认证,并协商加密算法和加密密钥。

TLS协议已被用于封装整个网络栈以创建虚拟专有网络(Virtual Private Network,VPN),如开源的Open VPN软件,一些厂商也将TLS的加密和认证机制与访问授权相结合,研制出功能更强的SSLVPN产品,与传统的IP sec VPN技术相比,TLS在防火墙和网络地址转换(Network Address Translation,NAT)设备穿越方面具有内在的优势,使其在存在大量远程访问用户的环境中具有更好的易管理性。

2.4 应用层的安全协议

在应用层,安全通信协议的特点是需要针对不同的应用安全需求,设计不同的安全机制,例如HTTP安全、电子邮件、远程控制、电子交易等,在安全协议设计过程中也会尽量地使用底层协议已经提供的安全防护能力。

对于万维网访问进行安全防护的主要协议是安全超文本传输协议(Secure Hypertext Transfer Protocol,HTTPS),基于传输层安全协议TLS实现,端口号为443,通常应用于电子商务、资产管理等应用,随着近年来的发展,HTTPS在Web上逐步流行,在涉及个人敏感信息的登录及使用环节,安全的网站一般都会使用HTTPS协议进行加密传输和身份认证。

安全电子邮件协议(Secure/Multipurpose Internet Mail Extensions,S/MIME),由RSA公司提出,是电子邮件的安全传输标准。S/MIME使用PKI数字签名技术,支持消息和附件的加密传输,采用单向散列算法,如SHA―1、MD5等,也采用公钥机制的加密体系,证书格式采用X.509标准。目前大多数电子邮件产品都包含了对S/MIME的内部支持,网络管理员应启用该安全协议,从而避免了电子邮件明文传输所面临的信息泄露等安全风险。

3 结束语

TCP/IP协议是互联网得以蓬勃发展的基础,然而TCP/IP协议在开始设计时并没有考虑到现在网络上如此多的安全威胁,因此不可避免地遭遇了各种形形的攻击方式。本文介绍了网络各层上的防范措施和安全协议,包括它们的技术原理和具体过程。应对网络协议的攻击威胁,TCP/IP协议也正在进行着完善和改进,对于防御者而言,应采用最新的安全协议来武装自己的网络,从而降低网络安全风险。

参考文献:

ip协议篇7

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

中图分类号: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

ip协议篇8

引言

S1C33209是EPSON公司推出的RISC结构的32位高性能CMOS微处理器,具有高速、低功耗、低电压操作、精简指令集等特点,提供乘与累加功能,既可用于办公设备,也特别适用于需要高级数据处理的便携设备,可以进行高速运算、灵活的I/O口控制和高效的数据操作。S1C33209具有8KB的内部RAM,其运算速率可达60MHz,加上优化的多数为单时钟周期的指令集,使S1C33209吞吐量大为提高。S1C33209比常规MCU有更快的运算速度及可靠的性能、可重复编程的结构,使得精简的TCP/IP能够在其中可靠运行。

1 硬件平台结构及设计

信息家电远程访问时,通信数据量不大,10M以太网的通信速率即可满足要求;其次信息家电对实时性的要求不高,可定位在秒级。

在这种情况下,构造了家电网络硬件平台服务器S1C-WebServer,其结构如图1所示。S1C33-WebServer主要由三部分组成,即S1C33209微处理器、RTL8019AS全双工以太网控制器(RealTek公司出品,100脚的TQFP封装,最大速率10Mbps,自带16KB的SRAM,工作在Ethernet II和IEEE802.3、10Base5、10Base2、10BasetT下,全双工,支持8位与16位数据总线,与NE2000兼容)、可擦写Flash(采用Intel的E28F320,容量为4MB)。考虑到Flash的擦写在程序调试中不太方便,所以为S1C33209扩展512KB的SDRAM。在S1C33209中,运行用户程序和S1C33-Stack。在Flash中,存放S1C-WebServer的各种Web资源信息,综可处理Web页面、图像文件等,与PC机上WebServer中的硬盘可以存储大量的不同页面。Flash的容量决定了WebServer的资源文件的大小。RTL9019AS是Ethernet控制器,负责S1C33209与Ethernet的数据传递。在信息家电已具备RS232或相关标准接口的条件下,使用家庭自动化总线HAB(Home Automation Bus)作为S1C33-WebServer与家庭网络协议SHNP(Simple Home Networks Protocol)。家电通过RS232接口与S1C33-WebServer连接,经由EEthernet接入Internet。

    经过分析,S1C33209与RTL8019AS读写时序是兼容的,而且MCU的读写时延比RTL8019AS小得多。MCU与RTL8019AS的连接如图2所示。RTL8019AS的工作电压为5V,而S1C33209的工作电压为3.3V,所以RTL8019AS的数据线输出需要电平的转换。选用2个8位(采用16位数据总线)的具有双向数据传输功能的74HC245来完成,由于S1C33209的输出电平符合RTL8019AS输入电平的要求,所以地址线可以直接相连,而不需电平转换,RTL8019AD中断信号(INT0)为高电平有效,在S1C33209中选用端口中断输入的K60端口与之相连。由于S1C33209的中断有效方式(高、低电平或脉冲)可以根据对寄存器的设置调节),所以不用对INT0作反向或电平转换。

2 精简TCP/IP协议栈的实现

构建的S1C33-Stack运行在以S1C33209嵌入式CPU为基础的硬件平台上,是一组可配置的多种Internet协议的组成。这些协议按照分层协议栈的方式组织,包括应用层的HTTP、DHCP、SMTP,传输层的TCP、UDP,网络层的IP/ICMP、ARP,通过链路层和物理层(如Ethernet)进行数据的交互。S1C33-Stack的结构模型如图3所示。S1C33-Stack利用S1C33的高速处理能力处理TCP/IP数据包,避免了在有限容量的RAM中缓存大量数据,使得控制器可以处理比内部RAM总线更多的数据包。利用嵌入的S1C33-Stack,Webserver能通过Hypertext Transfer Protocol(HTTP)与任何浏览器通信,能够提供各种类型的资源,如HTML、图片文件等。这些资源可以使用一种特殊的文件系统URI,被存放在容量为4MB的Flash中。这种文件系统可包含任意多的目录,对URL的长度也没有限制。

    考虑到嵌入式系统的可用资源有限,在此采用经过裁减的TCP/IP协议栈—uIP。uIP协议主要包括TCP/IP协议组中的四个基本的协议:ARP、IP、ICMP、TCP。链路层协议,如PPP,则作为设备驱动在uIP底层实现。应用层协议,如HTTP、FTP、SMTP则作为应用程序在uIP上层实现。

(1)地址解析协议ARP

该协议将IP地址映射成以太网MAC地址。在uIP中,ARP的执行依靠维持一张表来完成IP地址和MAC的地址的映射。当有一个IP数据包要发送到以太网上时,从ARP表中查询相应的MAC地址。如果在ARP表中找不到IP地址则送出相应的ARP请求。当目的主机收到ARP请求报文后,发送ARP REPLY报文将请求的MAC地址送出。当收到ARP REPLY后,ARP表被更新。每隔10s,ARP表就被新新一次,旧的ARP表项将被删除。每个ARP表项的生存周期是20min。

(2)网间协议IP

在uIP中,IP层的代码有两个功能:验证到来的IP报文报头的正确性,并且对TCP和ICMP报文实行分流。因为不考虑IP的分片和重组,uIP中IP层的代码非常的精简。

(3)网间报文控制协议ICMP

在uIP中,仅有一种类型的ICMP信息被实现:ICMP ECHO主要用于应用程序ping,检查网络是否连通。在uIP中,ICMP ECHO通常以一种很简单的方式进行处理;将ICMP类型由“ECHO”改为“REPLY”,同时调整ICMP校验,交换发送方和接收方的IP地址。

(4)传送控制协议TCP

为了减少对内存的使用,在uIP中,TCP并不使用滑动窗口来接收和发送数据,到达的TCP报文并不进行缓冲而是立刻交给应用程序处理。但是应用程序本身可以对要发送的程序本身可以对要发送的数据进行缓冲,因为每次连接中通常有若干的TCP报文要发送。uIP网络通信模块结构如图4所示。

网络通信需要要底层RTL8019AS驱动程序的支持,参考RTL8019AS与S1C33209的资料说明文档,编写出针对此系统的RTL8019AS驱动。

uIP并不缓存到达的数据包,当网络上有数据包(在这里专指出太帧)到达网卡时,网卡驱动程序将暂存在网卡缓存中的数据包,一次一个的以DMA形式传送到目标板上的RAM中。这时将会有一段代码将到达目标板RAM中的数据包复制到全局数组uip_buf[]中,uIP协议栈程序随后对uip_buf[]中的数据进行操作。

当上层应用程序或协议栈程序产生了向网络上发送的数据包时,也将数据包放入uip_buf[]。然后调用网卡驱动程序,将uip_buf[]中的数据读到网卡的缓存中,随后发送到网络中。

在此要说明一下协议栈与网卡驱动程序、应用程序之间的同步机制问题。在系统初始化的时候,通过操作系统提供的系统调用vcre_tsk()创建三个任务:任务一(task1),uIP协议栈;任务二(task2),家电监控程序;任务三(idle_task),空闲任务。而网卡驱动程序则作为硬件中断,由“检测到网络上传过来数据包”事件激发。

整个协议栈程序流程图如图5所示。

任务一的优先级最高,任务二次之,任务三的优先级最低。当系统开始运行时,任务一首先进入RUN状态,在任务一中加入系统调用wai_flg(),由于没有网络请求,任务一随后进入WAIT状态。此时任务二进入RUN状态。当网络上有数据包到达,网卡驱动程序作为硬件中断开始执行。在退出中断前,通过系统调用set_flg(),将任务一期望的标志位置位。当中断返回后,由于任务一的等待条件已经满足,任务一的优先级又高于任务二,因此任务一进入RUN状态,即uIP协议开始处理数据。如果网络上一直有数据包到达,则任务一和中断程序不断的切换。当网络任务完成,返回到任务二的断点处继续向下执行。

由于uIP不缓存网络数据,因此在任务一执行的过程中,即uip_buf[]正在被操作时,将关闭所有中断。这样可以避免数据包被破坏,缺点是实时性差了一些,但是满足本系统要求。

3 操作系统

本系统使用的操作系统是由EPSON公司提供的ROS33V31。ROS33是为S1C33系列MCU提供的一种嵌入式实时操作系统,符合uITRON 3.0标准。使用ROS33可以迅速、有效地开发针对打印机、PDA以及各类控制设备的嵌入式应用程序。

ROS33具有以下特点:

*支持uITRON 3.0标准——符合该标准的S级*最大任务数为255,采用优先级调度机制,支持9种不同的优先级,提供信号灯、邮箱、消息缓冲等多种通信机制:

*内核优先并紧凑——最小可为1.7K;

*响应快——最快调度响应时间为7.8μS(CPU主频为33MHz,下同),最大中断屏蔽时间为4.3μs ;

*高级语言支持——除汇编语言外,还支持基于ANSI标准的C语言编程。

注释:μITRON将系统功能分成四级。R级(必要级)只提供包括实时、多任务OS所需的基本系统调用;S级(标准级)提供所有标准的系统调用;E级(扩展级)包括附加的和扩展的系统功能;C级(CPU依赖级)的系统功能依赖于具体的CPU和系统实现方式。

ROS33基本内核按功能划分为6大部分:

*任务管理——负责系统中任务状态的变迁;

*任务相关的同步管理——通过睡眠/唤醒、挂起/解挂等操作,处理相关任务及任务之间的同步关系;

*同步与通信——通过信号灯、事件、邮箱等通信机制,实现独立任务之间的同步与通信;

*系统管理——对系统环境的管理;

*时钟管理——日历时钟、定时器、定时任务等的管理;

*中断管理——开/关中断。

图6给出了ROS33内核的概念模型。

4 Web服务器及上层应用程序框架

WEB服务器所采用的方式称为uip_connect,比通常在设计中所使用的Socket套接字更适合于嵌入式系统下面即是WEB服务器的大体框架。

#include<uip.h>

void http_listen_init(void){

uip_listen(80);

} //http listen初始化

void listen_init(void){

http_listen_init();

}

void application(void){

if(uip_connected()) //如果当前的连接状态为connected

switch (uip_conn->lport){

case htons(80):

httpd; //如果80 PORT有数据到达,则调用HTTP处理HTML文件的传送

}

}

    首先,服务器与客户机建立连接,再通过侦听端口80,判断是否有客户请求到达,若有则将调用应用程序httpd进行相应处理,否则,继续侦听。Httpd是用于处理HTTP请求的应用程序,具体设计在协议栈uIP中有描述。uip.h是协议uIP的一个头文件。

在应用软件上实现简单WEB服务器功能,其主要由两个模块构成:一是用户登陆模块;二是家电监控模块。用户登陆模块需要解决用户的合法性检查,即接收用户输入的用户名和密码,进行校验,合法则进入家单监控页面,非法则发出警告页面。家电监控模块针对各家电的硬件情况,收集信息家电的状态码,并通过网页形式显示。

在两个模块中,有一部分相似的处理,即对输入的数据进行解析。现在定义数组htmlinputs来存放解析后的信息。对表单输入的数据进行解析后,将其name值和value值分别存放在htmlinput_struct.name和htmlinput_struct.value里,便于以后的处理。变量htmlinputcount存放表单里输入变量的个数。定义如下:

struct htmlinput_struct htmlinputs[100];

int htmlinputcount=0;

除此外,定义函数get_inputs()和translate()对输入的数据进行处理。

Int get_inputs();//将从表单输入的数据分别装到对应的name/value数据队中

Void translate(char*sourcestr);//解读编码URL字符

具体程序代码在此就不再多述。

整个上层应用程序的流程图如图7所示。

ip协议篇9

【关键词】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结构,实现在功能有:用户的注册和登录,好友的显示和查找,好友文字、语音视频聊天,文件传输等。

【参考文献】

ip协议篇10

【关键词】TCP/IP协议 多线程 通信软件 客户端 服务器

通信软件就是一种用于通信交流的互动式软件,将数据采集、通信和显示功能集于一体,它所具有的实时性、准确性和高效率为人们的交流和其他领域中系统性能提供了很大帮助。为了让通信软件的效率得到有效提高,就可以采取多线程技术,将整个任务划分为多个线程同时进行,进而提高程序的执行效率。

1 通信软件的总体设计与实现

通信软件的服务器与客户端都是在Visual Studio 2005开发平台上进行编译实现的,并通过TCP/IP协议和多线程技术实现客户机和服务器结构(C/S结构)的通信,将大型企业版的ORACLE9i数据库作为服务器的数据库,因为嵌入式数据库不会占据太多的资源,符合客户端软件的容量下等特点,因此该客户端的数据库是嵌入式数据库Sqlite。利用TCP/IP协议来实现网络通信的主要环节就是建立客户端和服务器之间的联系,服务器需要通过怎样的方式对已连接的客户端列表进行维护,以及当通信故障出现或服务器发生重启等现象又该怎样及时快速的让系统恢复运行,其中建立客户端和服务器之间联系的具体活动应该是服务器可以对一个由合法客户端传达的请求链表进行维护,当客户端长时间不接收数据或者发现客户端出现网络连接错误,那么就会对这类客户端进行定期清理,并只接受合法客户端传达的连接请求,对其进行数据发送。当服务器和客户端进行交互时,从中可以看出客户端向服务器发出连接请求的时候,服务器首先会对config.txt文件进行读取操作,用以检查客户端IP地址的合法性,当检查合法就进行接受操作,反之拒绝。当完成连接后客户端会发出读取数据的请求,服务器则接受请求并进行数据的发送,这时客户端进行多线程处理。将阻塞类的CSocket作为Socket的基类,它能在非阻塞socket的基础上进行阻塞操作,进而在此期间进行消息循环。

而服务器端的运行应该是从AISSender向TransferCenter发送AIS data,通过确定AIS data再向ParserView发送AIS binary file,然后再由Manager执行socket port has data,锁定MsgQueue。也就是当服务器端与通信运营商进行SIA数据中心的首次转发,就进行TCP/IP连接的建立,并将接受数据线程启动,负责进行二进制数据文件的接受;处理数据线程,负责进行二进制数据的解析,将解析结果显示在界面上的同时向服务器数据库进行存储;而对客户端连接线程的监听则主要是实现监听Socket和用户Socket之间关系的建立。客户端运行在运行的时候,客户端启动连接程序主要是负责在某些情况下进行与服务器的重新连接操作,例如客户端与服务器端连接错误,服务器重启或者网络错误等现象。当连接成功后则会将读数据线程启动,此时能够对网卡缓冲区中的数据进行直接读取,并将数据写入到MsgQueue的变长链表中,储存数据,避免丢失。而OnInitialUpadate则会将数据处理进程启动,读取消息链表中的数据,逐条解析,并在数据库中插入数据,或者更新数据,将其在界面上显示出来,同时删除全部处理完的数据。

为了避免客户端出现死机现象,就要保持客户端和服务器端程序中Reservered for Regional Application同为byte类型,这样才不会让m_buf数组长度较81920大,让网卡缓冲区持续进行新数据的读入,进而让程序一直判断m_nlen长度,从而陷入死循环中。

2 结束语

总而言之,通信软件通过采用客户端/服务器模式进行数据的传输和采集,在Visual Studio 2005的开发平台上利用多线程技术和Socket实现编程,并利用面向对象方法进行系统的分析设计过程,不断加强系统的扩展性和可重用性,进一步提升通信软件的实效性。

参考文献

[1]刘爽,史国友,张远强.基于TCP/IP协议和多线程的通信软件的设计与实现[J]. 计算机工程与设计,2010(07):1417-1420+1522.

[2]陈张荣.计算机多线程TCP/IP协议还原技术概述[J].电子技术与软件工程,2014(21):19.

[3]孙桂斌. 基于TCP/IP协议多客户连接的服务端程序实现[J].电脑编程技巧与维护,2009(20):83-85.

[4]曹秀霞.基于TCP/IP协议的无线视频传输控制系统的设计与实现[D].西安电子科技大学,2013.