ip协议范文五篇-ag尊龙app

2022-11-07 凯时k66会员登录的版权声明

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)

[4]李龙光,何伊斐.tcp/ip协议的安全性浅析[j].江西广播电视大学学报.2011(02)

ip协议篇2

关键词:tcp/ip协议;internet;网络通信

1 前言

tcp/ip初步架构的出现源于1964年,冷战时期美国国防部高级研究计划局darpa提出arpanet研究计划,目的是希望美国国防部的很多主机、通信控制处理机和通信线路在战争中,如部分遭到攻击而损坏时,其它部分还能正常工作,同时它希望适应从文件传送到实时数据传输的各种应用需求,因此它要求的是一种灵活的网络体系结构,实现异型网的互联(interconection)与互通(intercomunication)。

最初arpanet使用的是租用线路。当卫星通信系统与通信网发展起来之后,arpanet最初开发的网络协议ncp (net control protocol,网络控制协议)因其在通信可靠性较差的通信子网中出现了不少问题,导致了新的网络协议tcp/ip的出现。虽然tcp协议和ip协议都不是osi标准,但它们是目前最流行的商业化的协议,并被公认为当前的工业标准或“事实上的标准”。1974年,kahn最早定义出了的tcp/ip参考模型(tcp/ip reference model ); 1985年由leiner等人对该模型做了进一步的研究;1988年clark对该模型的设计思想进行了讨论。

今天,internet己经发展得更加商业化,更加面向消费者,尽管基本目的发生了改变,但其最初的质量标准(也就是开放式、抗毁性和可靠性)依然是必需的。这些特性包括可靠传输数据、自动检测、避免网络发生错误等。更重要的就是tcp/ip是一个开放式的通信协议,开放性就意味着在任何组合间,不管这些设备的物理特征有多大差异,都可以进行通信。

2 标准tcp/ip协议

如同osi参考模型一样,tcp/ip也是一种分层模型。与osi参考模型不同的是,tcp/ip参考模型更侧重于互联设备间的数据传送,而不是严格的功能层次划分。tcp/ip通过解释功能层次分布的重要性来做到这一点,但它仍为设计者具体实现协议留下很大的余地。因此,osi参考模型适用于解释互联网络的通信机制,而tcp/ip更适合做互联网络协议的市场标准。

tcp/ip协议是一套把因特网上的各种系统互联起来的协议组,可以保证因特网上数据准确又快速地传输。tcp/ip协议是一个很大的协议族,通常表示为一个简化的四层模型。这四层分别是应用层、传输层、网络层和链路层。其中一些常用协议在tcp/ip分层模型中所处的位置如图1所示。

图1tcp/ip层次结构图

3ip协议的实现

3.1 ip数据报格式

ip ( internet protocol,互联网协议)是tcp/ip协议中一个最重要的协议。ip数据报以32比特为一个计数单位(组),其格式如图2所示。

图21p数据报格式

3.2ip协议的软件实现

ip是tcp/ip协议中最为核心的协议。所有的数据都以ip数据报格式传输。ip协议可以实现无连接数据报传送、数据报路由选择和差错控制的功能。在本课题中,由于单片机资源有限,结合实际需要只实现了ip数据报传送和接收,没有实现路由选择算法和差错控制,同时也不支持ip数据报的分片和重组。

ip协议主要通过ip接收函数和ip发送函数两个函数实现。

①ip发送函数

void ip_send对来自上层的数据,按照ip数据报的结构构造数据报。通过调用arp处理程序解析对应ip的物理地址。若返回null值,则将数据存入一个已定义的结构体waite中,并发送arp请求。若返回对应ip的物理地址,则将数据交给底层以太网驱动程序处理。

②ip接收函数

void ip rcve (uchar xdata*inbuf)单片机收到数据包之后,应先对数据包的类型进行判断。如果是ip数据报,则调用该程序。接着再判断其数据域中所使用的协议类型,是icmp协议调用icmp处理子程序,是udp协议调用udp处理子程序,是tcp协议调用tcp处理子程序,其它返回。程序流程图如图3所示:

图3ip接收过程流程图

3.3 校验和算法

在大多数tcp/ip协议中采用的差错检验方法是校验和,校验和是在分组上附加的信息。校验和能够防止分组在传输时所受到的损伤。在发送端先计算检验和并将得到的结果与分组一起发送过去。接收端对包括校验和的整个分组重复进行同样的计算。若得到的结果正确则接收此分组,否则就将其丢弃。发送端和接收端的校验和计算方法分别如下:

①发送端按以下步骤产生校验和

②接收端按以下步骤产生校验和

下面给出校验和算法的源程序:

uint checksum (uchar xdata *checks uint length)//计算校验和

{long sum=0; uint i:uint xdata *ptr: ptr=(uint xdata *)check;

for (i=0:i

{sum =*ptr ;}

if (length&0x01)//表示长度为单数

{sum=sum ((*ptr)&oxff00);}

sum=(sum&oxffff) ((sum;16)&oxffff);//高16位和低16位相加

if(sum&oxffffu000){sum ;}//表示有进位

return((uint)((sum)&oxf});}

4tcp协议的实现

4.1 tcp数据报格式

tcp(transfer control protocol,传输控制协议)是传输层最常用的协议,是一个比较复杂的协议。tcp和ip一样,也是tcp/ip协议族中最重要的协议。它可以提供面向连接的、可靠的数据传输服务。tcp数据报文段格式如图4所示:

图4tcp报文段的格式

4.2 tcp协议的实现

tcp协议的实现是整个tcp/ip协议栈中最复杂的一个。tcp协议是面向连接的、端对端的可靠通信协议。tcp采取了很多机制来保证它的可靠性,比如tcp连接的建立与关闭机制、超时重传机制、数据包确认机制、流量控制机制等等。在嵌入式系统中实现tcp协议所要做的就是实现这些机制,当然要在不影响协议栈功能的前提下适当做一下简化。

4.3tcp的超时重传与流量控制机制的实现

当一个tcp连接顺利建立起来后,tcp连接的双方可以互相传递数据了。tcp的可靠传输是靠确认机制来实现的,也就是每发送一个数据包后,只有接收到对方发送确认包后,才能确定该数据包已经成功发送,否则就要重发。

tcp的流量控制是为了协调通信双方的收发速率不均衡而设计的。远端的客户机一般是通用计算机,相对与本地的嵌入式web server来说运行速度要快得多。因此,当远端快的发送方向本地慢的接收方发送数据的时候,如果发送速度很快,则会导致本端来不及处理,甚至导致死机。tcp连接建立时,双方会利用tcp首部中的window窗口字段通报双方的可用窗口。实际上,接收方通报的窗口大小是根据其接收缓存的大小而定,考虑到本系统在使用tcp协议时,只设置了一个中等ip包大小接收缓存,因此接收窗口设为1024。同时,每次接收包的ack确认时,窗口大小不再动态改变,恒定设置为1024。这样远端主机就会以较慢的传输速率与本端的web server进行通信。

5 结论

本文主要针对目前流行的tcp/ip网络通信协议的实现进行研究和探索,由于时间仓促,加上本人对该领域的研究才刚刚起步,所以还存在一些问题值得进一步研究探讨,主要有:

(1) 对于tcp/ip协议,时间的控制非常重要。包括tcp的超时重传,tcp状态的保活等。如果时间处理不当,将影响整个系统的通讯性能。

(2)如何进一步实现tcp/ip对于多点通信以及完整协议栈的实现还有待于进一步研究。

(3) ipv6作为下一代互联网的核心协议,能够提供几乎无限的地址空间,从根本上克服了ipv4中地址空间不足的问题。因此,下一步可增加对ipv6协议的研究与实现。

参考文献

[1] 胡海.嵌入式tcp/ip协议栈研究与实现[d].西南交通大学,2005.8.

[2] 袁晓莉,徐爱均.基于os-ii和tcp/ip的远程温度监测系统.2005.5.

[3] 吴艳光.嵌入式tcp/ip协议栈设计方法的研究 [d].太原理工大学,2004.

[4] 马永力. 基于sx52bd的嵌入式web服务器的设计与实现.山东大学,2005.

[5]路英娟.tcp/ip协议小议[j].科技情报开发与经济,2004(6).

[6]葛志辉,李陶深.tcp/ip协议的脆弱性与相应的对策.2004.

---------

作者简介:张凯(1980-),男,湖南益阳人,广东省湛江师范学院,助教,主要研究方向:计算机网络工程。(广东 湛江 524300)

ip协议篇3

关键词: 嗅探器;ip 漏洞;tcp 劫持;拒绝服务攻击

中图分类号:tp393文献标识码:a文章编号:1009-3044(2008)16-21230-04

tcp/ip protocol loophole analysis and prevention

wang xian-feng

(the department of the information engineering of lu'an vocational and technical college,lu'an 237158,china)

abstract:his paper is tcp/ ip's application to secure area.it analyzes several problems about a few of critical parts within,tcp/ip in details,discloses its security leakage and gives some constructive solutions in order to pave a basis on the further research.

key words: sniffer;ip leakage;tcp hijacking;denial of service attacks

internet/ intranet 是基于tcp/ip 协议簇的计算机网络。尽管tcp/ip 技术获得了巨大的成功,但也越来越暴露出它在安全上的不足之处,这是由于tcp/ ip 协议簇在设计初期基本没有考虑到安全性问题而只是用于科学研究。但随着应用的普及,它不仅用于一些要求安全性很高的军事领域,也应用于商业领域,因而对其安全性的要求也越来越高。下面从tcp/ip协议簇本身逐层来看它的安全漏洞。

1 tcp/ip 协议组的基本原理

tcp/ip分为4个层次,分别是应用层、传输层、网际层和物理网络接口层,如下图所示。

其中物理网络接口层相当于osi的物理层和数据链路层;网际层与osi 的网络层相对,但由于它考虑到了网际网环境,因而具有更强的网际环境通信能力,在网际层包含有四个重要的协议,它们是ip、icmp、arp、rarp;传输层与osi 的传输层相对应,包含tcp 和udp 两个协议;应用层相对于osi的会话层、表示层和应用层功能,主要定义了ftp、telnet、及e-mail 等应用服务。下面我们简要分析中间两层的有关协议。

2 链路层存在的安全漏洞

在以太网中,信道是共享的,数据在网络上是以很小的称为“帧”的单位传输的。如果局域网是由一条粗网或细网连接成的,那么数字信号在电缆上传输信号就能够到达线路上的每一台主机。当使用集线器的时候,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路,这样在物理线路上传输的数字信号也就能到达连接在集线器上的每个主机了。也就是说任何主机发送的每一个以太帧都会到达别的与该主机处于同一网段的所有主机的以太网接口。当数字信号到达一台主机的网络接口时,根据csma/ cd 协议,正常状态下网络接口对读入数据进行检查,如果数据帧中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据帧交给ip 层软件。当数据帧不属于自己时,就把它忽略掉。如果稍做设置或修改,使主机工作在监听模式下的话就可以使以太网卡接受不属于它的数据帧。或者采用虚拟设备开发技术,动态加载虚拟网络设备(vxd 或wdm) 驱动模块,驻留内存,实施侦听使网卡捕获任何经过它的数据。从而达到非法窃取他人信息(如密码、口令等) 的目的。这类软件被称为嗅探器(sniffer),如nexray,sniffit,ipman 等。解决该漏洞的对策是:改用交换式网络拓扑结构,在交换式以太网中,数据只会被发往目的地址的网卡,其它网卡接收不到数据包。但交换机的成本比较高。或者采用加密传输数据,使对方无法正确还原窃取的数据。同时可以安装检测软件,查看是否有sniffer 在网络中运行,做到防范于未然。

3 icmp漏洞

icmp是“internet control message protocol”(internet控制消息协议)的缩写。它是tcp/ip协议族的一个子协议,用于在ip主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。我们在网络中经常会使用到icmp协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的ping命令,这个“ping”的过程实际上就是icmp协议工作的过程。还有其他的网络命令如跟踪路由的tracert命令也是基于icmp协议的。

icmp协议对于网络安全具有极其重要的意义。icmp协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机. 例如,在1999年8月海信集团“悬赏”50万元人民币测试防火墙的过程中,其防火墙遭受到的icmp攻击达334050次之多,占整个攻击总数的90%以上!可见,icmp的重要性绝不可以忽视!

比如,可以利用操作系统规定的icmp数据包最大尺寸不超过64kb这一规定,向主机发起“ping of death”(死亡之ping)攻击。“ping of death” 攻击的原理是:如果icmp数据包的尺寸超过64kb上限时,主机就会出现内存分配错误,导致tcp/ip堆栈崩溃,致使主机死机。此外,向目标主机长时间、连续、大量地发送icmp数据包,也会最终使系统瘫痪。大量的icmp数据包会形成“icmp风暴”,使得目标主机耗费大量的cpu资源处理,疲于奔命。

虽然icmp协议给黑客以可乘之机,但是icmp攻击也并非无药可医。只要在日常网络管理中未雨绸缪,提前做好准备,就可以有效地避免icmp攻击造成的损失。

对于“ping of death”攻击,可以采取两种方法进行防范:第一种方法是在路由器上对icmp数据包进行带宽限制,将icmp占用的带宽控制在一定的范围内,这样即使有icmp攻击,它所占用的带宽也是非常有限的,对整个网络的影响非常少;第二种方法就是在主机上设置icmp数据包的处理规则,最好是设定拒绝所有的icmp数据包。

设置icmp数据包处理规则的方法也有两种,一种是在操作系统上设置包过滤,另一种是在主机上安装防火墙。

4 ip漏洞

ip 协议运行于网络层。在tcp/ ip 协议中, ip 地址是用来作为网络节点的惟一标志,但是节点的ip 地址又不是固定的,是一个公共数据,因此攻击者可以直接修改节点的ip 地址,冒充某个可信节点的ip 地址攻击,或者编程(如raw socket) ,实现对ip 地址的伪装。

4.1 tcp 劫持

也许对连接于internet的服务器的最大威胁是tcp劫持入侵(即我们所知的主功嗅探),尽管顺序号预测法入侵和tcp劫持法有许多相似之处,但tcp劫持之不同在于黑客将强迫网络接受其ip地址为一个可信网址来获得访问,而不是不停地猜ip地址直至正确。tcp劫持法的基本思想是,黑客控制了一台连接于入侵目标网的计算机,然后从网上断开以让网络服务器误以为黑客是实际的客户端。下图显示了一个黑客怎样操作一个tcp劫持入侵。

成功地劫持了可信任计算机之后,黑客将用自己的ip地址更换入侵目标机的每一个包的ip地址,并模仿其顺序号。安全专家称顺序号伪装为“ip模仿”,黑客用ip模仿在自己机器上模拟一个可信系统的ip地址,黑客模仿了目标计算机之后,便用灵巧的顺序号模仿法成为一个服务器的目标。

黑客实施一个tcp劫持入侵后更易于实施一个ip模仿入侵,而且tcp劫持让黑客通过一个一次性口令请求响应系统(如共享口令系统),再让一个拥有更高安全性的主机妥协。通过口令系统也让黑客穿过一个操作系统而不是黑客自己的系统。

最后,tcp劫持入侵比ip模仿更具危害性,因为黑客一般在成功的tcp劫持入侵后比成功的ip模仿入侵后有更大的访问能力。黑客因为截取的是正在进行中的事务而有更大访问权限,而不是模拟成一台计算机再发起一个事务。

4.2 源路由选择欺骗

tcp/ ip 协议中,为测试目的,ip数据包设置了一个选项―――ip source routing,该选项可以直接指明到达节点的路由。攻击者可以冒充某个可信节点的ip 地址,构造一条通往某个服务器的直接路径和返回的路径,利用可信用户作为同往服务器的路由中的最后一站,对其进行攻击。在tcp/ip协议的两个传输层协议tcp 和udp中,由于udp 是面向非连接的,不需初始化的连接过程,所以udp 更容易被欺骗。

4.3 非同步入侵

tcp 连接需要同步数据包交换,实际上,如果由于某种原因包的顺序号不是接收机所期望的,接收机将遗弃它,而去等待正确顺序号的数据包。黑客可以探明tcp协议对顺序号的要求以截取连接。在这种情况下,黑客或骗取或迫使双方终止tcp 连接并进入一个非同步状态,以使双方再也不能直接交换数据。黑客再用第三方主机(另一个连接于物理媒介并运行tcp 包的计算机)来截获实际中的数据包,经过窜改或伪造,第三方产生的数据包就可以模仿连接中的系统本应交换的数据包,从而以假乱真了。其过程如下图所示。

过程图在非同步状态下,客户端a 向服务器发送的数据包其序列号不是服务器所期望的,服务器便将其抛弃。而黑客主机c拷贝(截获) 服务器丢弃的包,修改其中的数据,并配以正确的序列号,以a 的名义发送出去,服务器便会接收。当然从服务器b到客户端a也存在同样的情况。从而黑客便相当于在客户和服务器之间充当的角色,来往于客户和服务器之间的数据都要经过它。

4.4 land 攻击

land 攻击是一种使用相同的源和目的主机和端口发送数据包到某台机器的攻击。结果通常使存在漏洞的机器崩溃。在land攻击中,一个特别打造的syn包中的原地址和目标地址都被设置成某一个服务器地址,这时将导致接受服务器向它自己的地址发送syn一ack消息,结果这个地址又发回ack消息并创建一个空连接,每一个这样的连接都将保留直到超时掉。对land攻击反应不同,许多unix实现将崩溃,而 windows nt 会变的极其缓慢(大约持续五分钟)。

4.5 syn 洪水攻击

拒绝服务攻击的一种,使用tcp syn 报文段淹没服务器。利用tcp建立连接的三个步骤的缺点和服务器

端口允许的连接数量的限制,窃取不可达ip 地址作为源ip地址,使得服务器得不到ack而使连接处于半开状态,从而阻止服务器响应别的连接请求。尽管半开的连接会因为过期而关闭,但只要攻击系统发送的spoofedsyn 请求的速度比过期的快就可达到攻击的目的。此方法是一种重要的攻击isp ( internet service provider) 方法,这种攻击并不会损坏服务,而是削弱服务器的功能。

4.6 防范措施

(1)对于来自网络外部的欺骗来说,可以在局部网络的对外路由器上加一个限制,做到只要在路由器里面设置不允许声称来自于内部网络中的机器的数据包通过就行了。当然也应该禁止(过滤) 带有不同于内部资源地址的内部数据包通过路由器到别的网上去,以防止内部员工对别的站点进行ip 欺骗。

(2)当实施欺骗的主机在同一网络内时,不容易防范。可以运用某些入侵检测软件或是审计工具来查看和分析自己的系统是否受到了攻击。

(3)对ip 包进行加密,加密后的部分作为包体,然后再附上一个ip 头构成一个新的ip 包。

(4)提高序列号的更新速率,或是增强初始序列号的随机性,使攻击者无法猜测出正确的序列号。

(5)对于源路由选项欺骗,因该禁止带有源路由的ip包进入内部网。

(6)对于land 攻击,可以通过配置路由器或防火墙将外部接口上到达的含有内部源地址的数据包过滤掉。

(7)对于syn 的洪水攻击,可以给内核加一个补丁程序或使用一些工具对内核进行配置。一般的做法是,使允许的半开连接的数量增加,允许连接处于半开状态的时间缩短。但这些并不能从根本上解决问题。实际上在系统内存中有一个专门的队列包含所有的半开连接,这个队列的大小是有限的,因此只要有意使服务器建立过多的半开连接就可以使服务器的这个队列溢出,从而无法响应其它客户的连接请求。

5 arp欺骗

arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说arp协议是一种将ip地址转化成mac地址的一种协议,它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。arp就是ip地址与物理之间的转换,当你在传送数据时,ip包里就有源ip地址、源mac地址、目标ip地址,如果在arp表中有相对应的mac地址,那么它就直接访问,反之,它就要广播出去,对方的ip地址和你发出的目标ip地址相同,那么对方就会发一个mac地址给源主机。而arp欺骗就在此处开始,侵略者若接听到你发送的ip地址,那么,它就可以仿冒目标主机的ip地址,然后返回自己主机的mac地址给源主机。因为源主机发送的ip包没有包括目标主机的mac地址,而arp表里面又没有目标ip地址和目标mac地址的对应表。所以,容易产生arp欺骗。例如:我们假设有三台主机a,b,c位于同一个交换式局域网中,监听者处于主机a,而主机b,c正在通信。现在a希望能嗅探到b->c的数据, 于是a就可以伪装成c对b做arp欺骗――向b发送伪造的arp应答包,应答包中ip地址为c的ip地址而mac地址为a的mac地址。 这个应答包会刷新b的arp缓存,让b认为a就是c,说详细点,就是让b认为c的ip地址映射到的mac地址为主机a的mac地址。 这样,b想要发送给c的数据实际上却发送给了a,就达到了嗅探的目的。我们在嗅探到数据后,还必须将此数据转发给c, 这样就可以保证b,c的通信不被中断。克服此问题的方法是:让硬件地址常驻内存,并可以用arp 命令手工加入(特权用户才可以那样做);也可以通过rarp服务器来检查客户的arp 欺骗。因为rarp 服务器保留着网络中硬件地址和ip 的相关信息。

6 路由欺骗

路由协议(rip) 用来在局域网中动态路由信息,但是各节点对接收到的信息是不检查它的真实性的(tcp/ ip 协议没有提供这个功能),因此攻击者可以在网上假的路由信息,利用icmp 的重定向信息欺骗路由器或主机,伪造路由表,错误引导非本地的数据报。另外,各个路由器都会定期向其相邻的路由器广播路由信息,如果使用rip 特权的主机的520 端口广播非法路由信息,也可以达到路由欺骗的目的。解决这些问题的办法是:通过设置主机忽略重定向信息可以防止路由欺骗;禁止路由器被动使用rip和限制被动使用rip的范围。

7 结束语

通过对tcp/ip 协议的分析,我们不难发现其在设计和实现上存在的种种缺陷,这是由于tcp/ip协议在设计初期只是用于科学研究,而未考虑到当今会如此广泛地被应用。黑客或黑客工具往往利用这些漏洞,对网络进行破坏。了解这些漏洞并熟悉相应的对策,做到知己知彼,我们才能构建一个安全稳固的网络。

参考文献:

[1] 张小斌,严望佳.黑客分析与防范技术[m].北京:清华大学出版社,2005.

[2] 闫宏生.计算机网络安全与防护[m].北京: 电子工业出版社,2007.

[3] (美)科默,林瑶,等.译.用tcp/ip进行网际互连.第1卷.原理、协议与结构(第五版) [m].北京:电子工业出版社,2007.

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.

作者简介 高毫林 男,1979年出生,硕士生。研究方向为卫星dvb信号的接收与处理。

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)

abstract: combining with the teaching practice of computer network, a concise probe into the teaching methods of computer network is made. wireshark is a network packet analyzer, which will try to capture network packets and tries to display these packet data as detailed as possible and make analysis of the network transport control protocol. the purpose of this study is to cultivate student ability to analyze and solve problems.