TCP协议

2024-09-24

TCP协议(共10篇)

TCP协议 篇1

摘要:人们在享受网络技术带来的便利的同时, 安全问题逐渐引起关注, 成为计算机领域的研究热点之一, 笔者在介绍互联网中所使用的TCP/IP协议的基础上, 对TCP/IP协议的安全性进行了讨论。

关键词:TCP/IP协议,常用命令,安全

TCP/IP (Trans m is s ion ControlProtocol/Inte rne t Protocol的简写, 中文译名为传输控制协议/互联网络协议) 协议是当今Internet最基本的协议。TCP/IP协议组是目前使用最广泛的网络互连协议。按照OSI体系划分, TCP/IP协议可分为数据链路层、网络层、传输层和应用层。TCP/IP的几个常用命令。

1 ping

当网络运行中出现故障时, 采用这个实用程序来预测故障和确定故障源是非常有效的。如果ping不成功, 则可以推断故障出现在以下几个方面:网线是否连通, 网络适配器配置是否正确, IP地址是否可用等;如果执行ping成功而网络仍无法使用, 那么问题很可能出在网络系统的软件配置方面, ping成功只能保证当前主机与目的主机间存在一条连通的物理路径。它还提供了许多参数, 如-t使当前主机不断地向目的主机发送数据, -n可以自己确定向目的主机发送的数据帧数等等, 使用Ctrl+C可以中断ping命令。

2 trace rt

这个程序的功能是判定数据包到达目的主机所经过的路径、显示数据包经过的中继节点清单和到达时间。还可以使用参数-d决定是否解析主机名。

3 ne ts tat

这个命令可以看到当前网络的整体使用情况。它可以显示当前正在活动的网络连接的详细信息, 如协议类型、当前主机与远程主机的IP地址以及它们之间的连接状态等。常用的参数为:-e用以显示以太网的统计信息;-s显示所有协议的使用状态, 这些协议包括TCP、UDP和IP, 一般这两个参数都是结合在一起使用的-se。另外-p可以选择特定的协议并查看其具体使用信息, -n以数字形式显示地址和端口号, -a可以显示所有主机的端口号, -r则显示当前主机的详细路由信息。

4 ipconfig

TCP/IP协议的设计与实现使不同计算机之间、不同操作平台之间的通信成为可能。但是, TCP/IP协议是在网络规模不大、应用范围不广、计算机技术尚不够发达的情况下设计与实现的, 当时的一种普遍认识是:安全性同题是上层的问题与底层协议无关, 因此TCP/IP在安全性方面做得不够完善。随着网络规模、计算机技术的日益发展, TCP/IP存在的不可克服的脆弱性。越来越阻碍着TCP/IP的进一步广泛使用, 也难以满足未来网络发展的需求。由于TCP/IP协议族本身存在一些安全缺陷, 所以即使正确地实现了它, TCP/IP网络仍会受到攻击。像序列号欺骗、路由攻击、源地址欺骗和授权欺骗等。对于TCP/IP协议族的安全缺陷可得出三个结论:1) 依赖于IP源地址的认证是极其不安全的;2) 大量的入侵都源于序列号攻击;3) 大多数网络控制机制都是危险的, 而且基于以太网的数据包易被监听, 入侵者甚至可以更改IP或MAC地址, 致使攻击方式更加复杂。

在以太网中, 数据以“帧”为单位进行传输。任何主机发送的帧都会到达与其处于同一网段的所有主机的网络接口, 而每一个网络接口都有一个唯一的硬件地址, 即网卡的MAC地址。信息以数据包的形式传送, 其报头包含了目的主机的MAC地址, 如果其携带的MAC地址是自己的或者是广播地址, 那么就会将数据帧交给IP层, 否则丢掉。网络上也存在一些能接收所有数据包的接口, 攻击通过某些手段使网卡工作在监听模式下, 从而达到非法窃取他人信息的目的。

处理方法:1) 对网络中传输的数据进行加密, 使攻击方无法正确还原窃取的数据, 并且传输的数据是经过压缩的, 可以加快传输的速度。2) 安装检测软件, 做到防范于未然。3) 改用交换式的网络拓扑结构。因为在交换式以太网中, 数据只会被发往目的地址的网卡, 其他网卡接收不到数据包, 但是交换机的成本比较高。

参考文献

[1]Craig Zacker著, 王晓东等译.TCP/IP网络管理[M].中国水利水电出版社, 1998.

[2]王锐等译.网络最高安全技术指南[M].机械工业出版社, 1998.

TCP协议 篇2

TCP IP协议栈:网络接口层

模型的基层是网络接口层。负责数据帧的发送和接收,帧是独立的网络信息传输单元。网络接口层将帧放在网上,或从网上把帧取下来。

TCP IP协议栈:互联层

互联协议将数据包封装成internet数据报,并运行必要的路由算法。这里有四个互联协议:

网际协议IP:负责在主机和网络之间寻址和路由数据包。

地址解析协议ARP:获得同一物理网络中的硬件主机地址。

网际控制消息协议ICMP:发送消息,并报告有关数据包的传送错误,

互联组管理协议IGMP:被IP主机拿来向本地多路广播路由器报告主机组成员。

TCP IP协议栈:传输层

传输协议在计算机之间提供通信会话。传输协议的选择根据数据传输方式而定。两个传输协议:

传输控制协议TCP:为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。

用户数据报协议UDP:提供了无连接通信,且不对传送包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。

TCP IP协议栈:应用层

应用程序通过这一层访问网络。

网络接口技术

IP使用网络设备接口规范NDIS向网络接口层提交帧。IP支持广域网和本地网接口技术。

串行线路协议

TCP协议 篇3

关键词: 实时操作系统; LwIP; Modbus/TCP; 客户端/服务器

中图分类号: TP 273文献标识码: Adoi: 10.3969

引言所谓工业以太网,是根据国际标准IEEE802.3,设计应用于工业控制系统现场的需要,它的特点主要有系统安全性高和数据实时性强等。近年来,工业以太网控制技术和网络协议设计技术快速发展,协议设计也有了突破性的进展,工业以太网技术得以迅速发展。ModbusIDA组织是由施耐德公司成立的,就是为了专门对Modbus协议进行研究和开发的。在国内,Modbus TCP/IP协议已经处于比较成熟的阶段,并对其广泛应用。为了让Modbus广泛有效地使用,提出了一种支持多线程实时应用的方案,即基于AT91R40008的微处理器,在实时操作系统uC/OSII和ARM7内核的软硬件平台上,通过移植TCP/IP协议栈[1]LwIP到ARM开发平台并结合Modbus/TCP协议实现通信处理器模块通信的功能。1Modbus/TCP协议模型Modbus/TCP协议[23]是在TCP/IP标准中,应用层采用工业领域事实标准Modbus实现的。经过国际公认,502端口被专门用于Modbus TCP/IP应用层,且其串行总线方式支持各种介质的rs232、rs422、rs485接口,网络通信模式如图1所示。

图1Modbus/TCP的网络通信模式

Fig.1The network communication mode of

Modbus/TCP

图2Modbus/TCP通信结构

Fig.2Modbus/TCP communication structure

在一个客户端与服务器的以太网TCP/IP协议为基础的网络上,Modbus报文传输服务提供商的设备之间可以进行相互的通信,且支持Modbus请求、响应、指示和证实这4 种类型的客户端/服务器模式报文。Modbus/TCP客户端首先要通过启动事务报文处理,并在网络上发送一个Modbus请求,服务器端接收到该报文请求,产生Modbus指示信号,当服务器收到该请求时,会自动产生一个Modbus响应,并向客户端发送此响应,当客户端接收到信息时,也会做出响应的反应,即产生Modbus证实来确认已经将Modbus请求发送完毕。Modbus TCP/IP的通信系统可以包括不同类型的嵌入式设备,例如TCP/IP网络可以通过网桥或交换机与串行链路子网相连,且客户端串行链路和服务器端串行链路通过TCP/IP网关连接到MODBUS TCP/IP上,最终可以相互之间进行通信,其通信结构如图2所示。光学仪器第35卷

第1期李慧燕,等:Modbus/TCP协议的通信处理器模块设计

Modbus/TCP功能组件结构模型[4]主要由四个层次组成,由下到上是TCP/IP栈、TCP管理层、通信应用层和用户应用程序。其中,在Modbus/ TCP通信的应用层中包含了Modbus客户端、Modbus服务器、Modbus客户端接口和Modbus服务器接口四个部分,是系统的核心所在。 Modbus设备可以提供客户端/服务器Modbus接口和Modbus后台接口,而后台接口包括四种数据类型:离散输入Discrete Input、离散输出Coil、寄存器输入Input Register和寄存器输出Holding Register。Modbus客户端完成对用户的远程控制和设备间的交换信息,用户发送一个Modbus请求到客户端接口,然后调用一个Modbus等待,最后再确认该事务处理。 Modbus客户端接口允许用户应用程序生成,并通过提供的Modbus服务请求接口访问Modbus应用对象。 Modbus服务器的主要功能是等待接收一个Modbus请求来读取和写入,然后生成Modbus响应。Modbus的后台接口仅仅是一个Modbus服务器的应用程序对象之间的接口。图3系统硬件开发平台框图

Fig.3The block diagram of system hardware

development platform2硬件开发平台设计考虑到网络协议软件和实时操作系统与嵌入式工控产品的应用发展需求,硬件平台采用了美国Atmel公司提供的AT91R40008微控制器和台湾Asix公司推出的一款基于AX88796网卡的以太网接口芯片。硬件开发平台框图如图3所示。AT91R40008是一款主要面向嵌入式应用的高性能32位微处理器,目前在很多嵌入式设备上已经被大量的使用,工作频率为66 MHz,且集成256 kB的片内ARM,支持嵌入式ICE内电路仿真以及调试通信接口,不需要外扩RAM就可以满足一般的嵌入式系统的开发。AX88796是一款内部集成有10/100 Mbps自适应的介质访问控制层(MAC)[5]和物理层收发器(PHY)的以太网控制器,与NE2000快速兼容。AX88796与AT91R40008的接口电路如图4所示。

TCP协议 篇4

在现代化工业控制中, 由于被控对象、测控装置等物理设备的地域分散性, 以及控制与监控等任务对实时性的要求, 不同设备之间现场交互性信息的传递越来越多。Modbus这一全开放、免费提供, 非常容易理解和实施的协议,得到了广泛的应用。其Master/ Slave通信机理能很好地满足实时性要求, 是一种真正开放的理想解决方案。目前工业中常用的Modbus通信分为两种, 一种是经由RS-232C兼容串行接口组成Modbus网络进行通信, 另一种是通过以太网结合TCP/IP协议组成Modbus/TCP网络进行通信。

本文就上述两种Modbus通信方式, 用VC++6.0/MFC开发了监测两种通信时效的时间监测软件,以比较其通信的优劣。通过这个软件, 实现通信、传输数据与计时等功能。

本文在介绍协议的基础上对时间监测软件进行探讨。

1 Modbus串口通信

标准的Modbus口使用的是RS-232C兼容串行接口, 它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验等, 控制器能直接或经由Modem组网。Modbus协议采用请求响应模式进行通信,通信方法是对等的。Modbus规定仅客户机能发起查询,服务器仅能对客户机发出的查询消息作出响应。

在Modbus串行链路上的所有设备(客户机和服务器),需要配置相同的串口参数和通信模式才能进行通信。

Modbus串口通信模式包括ASCII模式和RTU模式。

典型的ASCII数据帧格式如表1所示。

典型的RTU消息帧如表2所示。

在相同的波特率下,相对于ASCII模式, RTU模式表达相同的信息需要较少的位数,且具有更大的数据流量,所以本课题采用RTU模式。

1.1 Modbus串口通信的实现

Modbus串口通信由SerialPort类方法实现,包括参数设置、串口的选择、串口的打开及串口的关闭。

其中,参数设置在主类中实现。

sportbaud=19200; //波特率 sportnum=1; //端口号

sportparity=[XCΡ20.ΤΙF,JΖ]Ν[XCΡ20.ΤΙF,JΖ]; //奇偶校验 sportdatabits=8; //数据位数

sportstopbits=1; //停止位

使用OnButtonSportopen()函数完成打开串口功能,当点击“打开串口”按钮时,消息触发。

使用OnButtonSportclose()实现关闭串口的功能,点击“关闭串口”按钮时,消息触发。

1.2 Modbus串口数据处理

由于条件有限,课题中客户端发给服务器的数据是自己定义的,服务器返回给客户端的数据也是自己定义的。

串口传输数据时,使用OnButtonSportsend()函数实现字符发送功能,点击命令栏组框中的“串口传输”按钮时,消息触发。

使用OnComm()函数实现字符接收功能,当输入缓冲区有字符时,消息触发。

2 Modbus/TCP通信

Modbus/TCP协议以一种比较简单的方式将Modbus帧嵌入到TCP帧中,它具有较好的通信效率。

Modbus TCP/IP的协议实现了IOS 7层协议的下五层,即物理层、数据链路层、网络层(IP协议)、传输层(TCP协议)、应用层。

Modbus/ TCP协议在应用层采用Modbus协议,在传输层和网络层采用TCP/IP协议 ,用于以太网通讯。在通讯过程中,通讯链路的两端被分别定义为Modbus主机(TCP客户端) 及Modbus从机(TCP服务器),两者间遵循“主- 从”通讯原则,主机(客户端) 请求数据,从机(服务器) 提供数据。一个完整的通讯过程由查询周期和响应周期组成,查询周期由Modbus 主机发起,从机收到主机发来的查询指令并验证后,在响应周期中回传主机需要的数据信息(或者是错误提示)。

Modbus/TCP 数据帧包括报文头、功能代码和数据三个部分, 其结构如图1所示。

其中,MBAP报文头被用于Modbus/ TCP主从/机双方,在各种TCP数据流中唯一地标识Modbus应用数据单元(ADU)。功能码被用于表示主机请求从机执行的任务类别或者从机响应的类别。数据则反映主机要求的信息范围或从机响应的数据内容。

2.1 Modbus/TCP通信

Modbus/TCP通信由Winsock实现,过程如下:(1)用Connect命令建立与目标设备的连接; (2)准备Modbus报文包括7个字节的MBAP在内的请求;(3)使用send命令发送报文;(4)在同一连接下等待应答;(5)用recv命令读取报文,完成一次数据交换过程。当通信任务结束时,使用closesocket(),WSAClear()关闭TCP连接,使Modbus/TCP Slave可为其它服务,如图2所示。

其中,使用OnButtonConnect()函数实现套接字的建立及连接,当点击TCP/IP组框中的“连接”按钮时,消息触发。

2.2 Modbus/TCP数据处理

TCP/IP传输数据时,使用SendOneMessage()函数实现字符的发送功能,点击命令栏组框中的“TCP/IP传输”时,消息触发。

使用SListen()函数实现字符的接收功能,有数据到达时,消息触发。

3 计时实现

由于测试时定义的传输数据只有100个字节,无法进行计时。所以,设计时采用了多次传输取平均的方法。

计时时,先使用GetLocalTime()函数获得消息发送时刻与发送完成时刻的系统时间,然后用TimeDiff()函数计算得到传输完全部数据所消耗的时间,最后用总时间除以发送的次数就可以得到传输一次数据所需的平均时间。

4 实验结果

4.1 时间监测界面

本课题中设计了一个时间监测主界面,即Modbus串口通信与Modbus/TCP通信的客户端设计在了一个界面里,还设计了Modbus串口通信服务器界面。

客户端主界包括:用于选择通信模式的两个组框,TCP/IP通信的组框与串口通信组框;用于选择命令类型、命令执行次数及通信方式的组框;用于显示的组框。具体如图3所示。

串口服务器的界面包括:任务栏组框,命令栏组框和显示组框,如图4所示。

4.2 时间监测结果

串口通信的测试由虚拟串口软件VSPD XP 5设置一对虚拟的串口完成。

实验测得的数据如表3所示。

由上表可计算出数据传输的平均速度是4.4kbps。

以太网测试由一台计算机完成,所以测试时将服务器的IP地址设置为本机地址即127.0.0.1。

实验测得的数据如表4所示。

由上表可计算出数据传输的凭据时间为0.6301485ms,平均速度是1.21Mbps。

实验所得速度与以太网的10Mbps相差很多,是因为测试时用的是无线网,它的传输速度在实验时是1.307Mbps,这与实验结果是很相近的。说明Modbus/TCP的传输速率是与所使用的网速相一致的。

5 结束语

由实验结果可以很明显地看出,在速率上:Modbus/TCP通信速率比Modbus串口通信快很多倍,理论上,Modbus/TCP通信速率最快可达100Mbps甚至更快,而Modbus串口通信在使用RS-232进行传输时最快只有20kbps,使用较快的RS-485进行传输的速率最快也只有10Mbps。在距离上:Modbus/TCP通信不受距离限制,能够进行全球通信,而Modbus串口通信有距离的约束,RS-232最远只能传送50米左右,功能更强大点的RS-485最远距离也只有3000米左右。在传输的数据量上,Modbus/TCP通信采用的是多线程通信,能够满足数据大量而快速的传输。在传输的可靠性上,Modbus/TCP通信的传输层采用的是TCP协议,该协议在传输时,为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区,并为每个已发送的数据包启动一个超时定时器,如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可以是对本包后续包的应答),则释放该数据包占用的缓冲区,否则,重传该数据包,直到收到应答或重传次数超过规定的最大次数为止,且接收方会发送一个应答包给发送方表明接收情况,这样就保证了数据的传输及接收。而串口通信则没有这样的功能。

参考文献

[1]贺怀清,刘洁瀚,郭航.Visual C++的使用及面向对象软件工程实例分析[M].北京:电子工业出版社,2007:13-80.

[2]万跃华,胥芳,张宪.Visual C++.Net网络编程[M].北京:科学出版社,2002:324-351.

[3]白焰,钟艳辉,秦宇飞.基于VC的Modbus协议通信测试软件的实现[J].现代电力,2008,25(6):76-80.

[4]孙璐.Modbus/TCP协议在远程监测中的应用[J].计算技术与自动化,2009,28(4):119-124.

[5]胡平平,王东兴,王晶杰.Modbus协议在无线监控系统中的应用[J].电气自动化,2006,28(1):56-59.

[6]刘忠.基于Modbus/TCP协议的以太网监控软件的设计与实现[J].工业控制计算机,2008,21(2):6-7.

[7]徐银生,王晞.基于以太网的Modbus/TCP协议的实时性研究[J].微计算机应用,2007,28(12):1256-1259.

[8]蒋近,毛六平,戴瑜兴.基于Modbus和TCP/IP协议的远程网络通信[J].低压电器,2005,1:43-46.

[9]林勇坚.基于Modbus/TCP工业以太网的计算机控制系统[J].通信技术,2008,10(41):207-209.

[10]王可鹏.基于Modbus TCP/IP通信的实现[J].电脑知识与技术,2008,3(4):553-554,764.

TCP协议 篇5

【摘 要】伴随大规模集成电路的不断发展,在单片中完成具有复杂功能的微处理器已变为现实。这种微处理器在价格和性能的提升,促使嵌入式系统系使用在有更高。更复杂要求的专用系统当中。嵌入式设备凭借着PC机结构灵活、稳定、经济等优势迅速成为了科技发展的快速增长点。嵌入式系统重要技术的切实发展,促使其自身不断更新换代,同时其普及应用也逐渐向纵深方向迈进。TTCP/IP协议就是指传输控制协议/网际协议,它是当前应用最广泛的一类协议,同时它也是开放系统互联的事实标准。

【关键词】单片机;嵌入式;TCP/IP協议

TCP/IP是一种定义计算机怎样利用网络完成通讯的协议。在自动化产业当中,数以万计的PLC、检测器、感应器等设备,相互连接构成一张控制网络,将其作为信息系统中数据管理的工具,最常用于这些设备通信界面的连接便是RS-422/485或者RS-232总线。近年来,网络架构开始在自动化产业当中使用,开始代替了以往的串口通信,因此,以TCP/IP协议为代表的开放式技术逐渐使用在各自动化系统设备当中。所以,对于设备生产商及其使用者来说,找到一个良好的粗粒方法,使现有设备及时连接网络进行使用,已经成为了各方竞争的主要着力点。

一、关于TCP/IP协议构成

TCP/IP协议首先在UNIX系统当中实现,此后DOS、LINUX以及windows也都实现了TCP/IP协议。接着,TCP/IP协议逐渐被移植到多种嵌入式处理器当中。基于指令和资源方面因素,在UNIX当中所实现的TCP/IP协议,其源代码不可直接移植至8位单片机当中,而且单片机无充足代码控制来实现所有的协议。通常情况下,在单片机当中仅实现和要求相关的部分,无需使用的协议都予以支持。从这一思想出发,相关工作人员在进行嵌入式Internet设计时便能够在TCP/IP协议子集当中予以实现,这样一来便促使设计难度有所减小。以下将针对嵌入式Internet怎样实现TCP/IP协议的关键点进行集中阐述。

通产情况下,嵌入式TCP/IP协议栈主要包含了FTP、SMTP、HTTP、UDP、ICMP、IP、ARP/RAPR等协议。在实现协议之前需要先对各个协议之间的具体关联进行全面、系统的了解。如下图一所示,为基本协议流程图。

图一 基本协议流程图

嵌入式系统利用网络接口来控制芯片将其连入到网络当中。其中,链路层的作用主要是为了上一层协议来接收以及发送数据包,按照物理层的差异性,链路层中拥有许多协议可供选择。基于理解的方便性考虑,并对其适用性进行考虑,文章仅阐述以太网协议。嵌入式Internet应该利用以太网连接Internet,这就务必要实现此协议的相关规定,而且实现此协议可利用通用网络接口来控制芯片。

二、关于单片机的存储要点

单片机的存储是人们较为熟知的一个问题,然而因单片机需实现TCP/IP协议,那么就必须要针对其存储提出新的具体的要求。

因TCP/IP协议具有层次的特点,每一层次均有自身的数据格式。使用者在数据传输过程中要通过多个协议,需不断打包、拆包。若是在此过程中使用拷贝数据来完成数据传输,便会增加相应的开销,同时也使性能有所下降,要处理这一问题,就要单片机将数据包放在指定的存储区内。协议栈中每层的传递均是数据指针,唯有数据被驱动程度发送或被应用程序拿走,才能实施真正意义上的数据转移。

若是嵌入式系统要实现HTTP应用程序, 则需要设计存放网页的位置 。可将网页放至e2prom内,同时也可将一些以太网地址、IP 地址参数放至其中,以便使用。

三、嵌入式TCP/IP的未来发展前景

从当前情况来看,单片机已在工业以及家庭当中的各领域中实现了广泛的应用,通过使用单片机、TCP/IP软件的手段,便能够使嵌入式系统连接上Internet,进而促使嵌入式设备之间进行相互通信。这项技术手段目前已经广泛的使用在工业自动化、电子收款机系统(POS)网络、电子商务以及智能公路等诸多领域当中。

现今嵌入式TCP/IP的使用仍旧处于起步阶段,已经实现的使用仅仅是局限在数据传输方面。未来嵌入式TCP/IP协议设备需要拥有实时性特点,能够实时接收影音、图像信息。伴随单片机处理速度的持续加快,以及适用嵌入式系统实时操作系统的不断创新,极有可能会在家政系统、环境工程当中得到广泛应用,甚至还有可能利用网络进行电影视频的实时观看,那时才是嵌入式TCP/IP应用时代的真正到来时期。

结语:

总而言之,伴随网络技术等诸多方面的不断发展,Internet控制电子设备的应用必将成为未来社会发展的一种趋势。从当前形势来看,很多电子设备都未能具备传输网络数据的功能,因而网络传输设备应用逐渐广泛化。同时,文章叙述的嵌入式TCP/IP协议单片机,拥有硬件少,成本低、传输快、占用面积小等多重优势,适合在网络传输系统使用,并且在数据采集和传输等多个领域中也具有良好的使用前景。

参考文献:

[1]牟英峰,徐殿国,张东来.基于嵌入式TCP/IP协议栈的信息家电连接Internet单芯片解决方案[J]. 电子技术应用. 2008(06).

[2]王金廉,谢剑英,贾青.基于TCP/IP的多线程通信及其在远程监控系统中的应用[J]. 电子技术应用.2006(01).

TCP/IP协议的安全问题初探 篇6

TCP负责发现传输的问题, 一有问题就发出信号, 要求重新传输, 直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。TCP/IP协议数据流采用明文传输。TCP/IP协议组本身存在很多安全性方面的漏洞。这些弱点正导致了攻击者的拒绝服务 (DOS) 、Connection Hijacking以及其它一系列攻击行为。

TCP/IP主要存在以下几个方面的安全问题:

(1) 源地址欺骗 (Source address spoofing) 或IP欺骗 (IP spoofing) 。

(2) 源路由选择欺骗 (Source Routing spoofing) 。

(3) 路由选择信息协议攻击 (RIP Attacks) 。

(4) 鉴别攻击 (Authentication Attacks) 。

(5) TCP序列号欺骗 (TCP Sequence number spoofing) 。

(6) TCP序列号轰炸攻击 (TCP SYN Flooding Attack) , 简称SYN攻击。

(7) 易欺骗性 (Ease of spoofing) 等等。

2 对TCP/IP所受的攻击类型

2.1 TCP SYN attacks或SYN Flooding

TCP利用序列号以确保数据以正确顺序对应特定的用户。在三向握手 (Three-Way Handshake) 方式的连接打开阶段, 序列号就已经建立好。TCP SYN攻击者利用大多数主机执行三次握手中存在的漏洞展开攻击行为。当主机B接收到来自A的SYN请求, 那么它必须以“Listen Queue”跟踪那部分打开的连接, 时间至少维持75秒钟, 并且一台主机可以只跟踪有限数量的连接。一台非法主机通过向其它主机发送SYN请求, 但不答复SYN&ACK, 从而形成一个小型的Listen Queue, 而另一台主机则发送返回。这样, 另一台主机的Listen Queue迅速被排满, 并且它将停止接收新连接, 直到队列中打开的连接全部完成或超出时间。至少在75秒内将主机撤离网络的行为即属于拒绝服务 (Denialof-Service) 攻击, 而在其它攻击中也常发生这样的行为, 如伪IP。

IP Spoofing——伪IP技术是指一种获取对计算机未经许可的访问的技术, 即攻击者通过伪IP地址向计算机发送信息, 并显示该信息来自于真实主机。IP层假设它所接收到的任何IP数据包上的源地址都与实际发送数据包的系统IP地址 (没有经过认证) 相同。很多高层协议和应用程序也会作这样的假设, 所以似乎每个伪造IP数据包源地址的人都可以获得非认证特免。伪IP技术包含多种数据类型, 如Blind和Non-Blind Spoofing、Man-in-theMiddle-Attack (Connection Hijacking) 等。

2.2 Routing Attacks

该攻击利用路由选择信息协议 (RIP:TCP/IP网络中的基本组成) 。RIP主要用来为网络分配路由选择信息 (如最短路径) 并将线路传播出局域网络。与TCP/IP一样, RIP没有建立认证机制, 所以在无需校验的情况下就可以使用RIP数据包中的信息。RIP攻击会改变数据发送目的地, 而不能改变数据源位置。例如, 攻击者可以伪造一个RIP数据包, 并声称他的主机“X”具有最快网外路径。所有从网络中发送出去的数据包可以通过“X”发送, 并且进行修改或检查。攻击者还可以通过RIP高效模仿任何主机, 并导致所有将要发送到那台主机上的通信流量全部发送到了攻击者机器上。

2.3 ICMP Attacks

IP层通常使用Internet控制信息协议 (ICMP:Internet Control Message Protocol) 向主机发送单行道信息, 如“ping”信息。ICMP中不提供认证, 这使得攻击者有机会利用ICMP漏洞攻击通信网络, 从而导致拒绝服务 (Denial of Service) 或数据包被截取等攻击。拒绝服务基本上利用ICMP Time Exceeded或Destination Unreachable信息, 使得主机立即放弃连接。攻击者可以伪造其中一个ICMP信息, 然后将它发送给通信主机双方或其中一方, 以取消通信双方之间的连接。

2.4 ARP欺骗

在局域网中, 是通过ARP协议来完成IP地址转换为第二层物理地址 (即MAC地址) 的。ARP协议对网络安全具有极其重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗, 能够在网络中产生大量的ARP通信量使网络阻塞。

ARP协议是“Address Resolution Protocol” (地址解析协议) 的缩写。在局域网中, 网络中实际传输的是“帧”, 帧里面是有目标主机的MAC地址的。在以太网中, 一个主机要和另一个主机进行直接通信, 必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

3 总结

TCP协议 篇7

传输控制协议TCP是TCP/IP的一个重要的传输层协议, 是TCP/IP最具代表性的协议, 是整个计算机网络教学的重难点内容之一, 该部分内容抽象难懂, 采用传统教学方法, 学生学习和接收均比较困难, 教师授课费力, 却收效甚微。笔者将sniffer软件引入到该部分内容的教学之中, 通过分析由该软件从实际网络中获取的数据包具体讲解了TCP协议的数据报格式、TCP运输连接机制和TCP传输中的流量控制机制等内容, 讲解形象具体, 浅显易懂, 取得了较好的教学效果。

2、sniffer简介及原理分析[1,2,3]

ISS (因特网安全系统公司) 是这样定义Sniffer的:Sniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具软件。

Sniffer的基本原理是这样的:因为在以太网中, 所有的通信都是按广播方式进行的, 对于网卡来说能否获取网络中的数据包, 主要取决于网卡的工作模式。网卡的工作模式有四种, (1) 广播方式, 该模式下的网卡能够接收网络中的广播信息; (2) 组播方式, 设置在该模式下的网卡能够接收组播数据; (3) 直接方式, 在这种模式下, 只有目的网卡才能接收该数据; (4) 混杂模式, 在这种模式下的网卡能够接收一切通过它的数据, 而不管该数据是否是传给它的。

因此, 我们让网卡工作在混杂模式, 接收一切通过它的IP数据包, 通过分析这些获得的IP数据包, 可以知道和理解各种协议定义的数据结构、数据包的数目和大小, 也可以理解数据在每一层上的封装情况以及数据传输过程中的相关情况。本课堂教学正是利用Sniffer的这种功能来提高课堂教学效果的, 首先利用Sniffer软件获取http协议访问网络的IP数据包, 通过对数据包的分析结合TCP协议的相关内容进行讲解。

3、sniffer在TCP协议教学中的应用[4,5,6]

3.1 sniffer在TCP数据报格式教学中的应用

3.1.1 获取数据包

启动Sniffer软件, 点击"Capture"→"Define Filter"→"Address", 选择"IP", 在station1中填入211.64.47.177, 在station2中填入211.64.32.3, 即让Sniffer软件仅获取主机211.64.47.177和主机211.64.32.3之间的IP数据包。

打开浏览器, 在地址栏中输入http://211.64.32.3, 出现我校电子邮件服务器的登陆界面, 输入用户名和密码, 然后选择Sniffer软件"Capture"菜单中的"start"选项, 最后点击电子邮件服务器登陆界面上的确定按钮, 待显示登陆信息后, 选择Sniffer软件"Capture"菜单中的"Stop and Display"选项, 停止数据包获取, 并将获取的数据包以32.3.cap文件名保存, 点击"decode"按钮, 查看捕获的数据包, 如图2所示。

3.1.2 TCP数据报

图3即为本次从主机211.64.47.177登陆学校电子邮件服务器211.64.32.3所获得的数据包, 可以看到总共32个数据包, 点击图2中的第1个数据包, 如图1所示, 即为本节课要讲的TCP数据报。

数据报是TCP协议传输的基本数据单元, 一个数据报包括数据包头和数据两部分, TCP数据报头携带的主要标识及控制信息如下:

(1) 源端口和目的端口:各占16位, 分别表示发送方和接收方的端口号, 图1中TCP数据报源端口号Source port=1037, 目的端口号Destination port=80。

(2) 发送序号和确认序号:这两个字段都是32位的无符号整数, 其中, 发送序号表示数据部分第一个字节的序列号, 而确认序号表示该数据报的接收者希望对方发送的下一个字节的序号, 图1中TCP数据报发送序号Initial sequence number=

2823747293, 确认序号Next expected Seq number=2823747294。

(3) SYN标志位用来建立连接, 是连接双方同步序列号。如果SYN=1而ACK=0, 表示连接请求;如果SYN=1, 而ACK=1, 则表示是接收连接, 图1中SYN=1, 表示这是一个连接请求报文。

(4) FIN标志位表示发送方已经没有数据要传输了, 希望释放连接, 图1中FIN的值为0。

(5) 窗口大小字段表示从被确认的字节开始, 发送方对多可以连续发送的字节个数。接收方通过设置该窗口值的大小, 可以调节源端发送数据的速度, 从而实现流量控制, 图1中窗口大小Window=65535。

(6) 校验和域是TCP协议提供的一种检错机制, 对发送数据的正确性进行校验, 图1中Checksum=E960, 后面括号中显示correct, 表示该数据校验正确。

3.2 sniffer在TCP运输连接机制教学中的应用

TCP协议是面向连接的协议, TCP连接的建立和释放是每一个采用TCP协议的进行数据传输的网络协议每一次通信必不可少的过程, 3.1.1中所获取的数据包是http协议访问时的数据包, 而http协议采用的时面向连接的TCP协议, 所以必然要遵循TCP运输连接机制, 这种机制发生在两个主机刚刚开始建立连接时, 具体见图2中的前3个数据包:

(1) 图2中的第1个数据包是211.64.47.177客户主机首先向211.64.32.3服务器主机发起连接请求, 其中SYN=1, SEQ=2823747293。

(2) 图2中第2个数据包是211.64.32.3服务器主机向21164.47.177客户主机的确认, 其中SYN=1, ACK=2823747294, SEQ=3129892668 (区别于 (1) 中的SEQ) 。

(3) 图2中的第3个数据包是211.64.47.177客户主机对211.64.32.3服务器主机发送的数据包的确认, 其中ACK=3129892669。

同样TCP连接的释放也遵循"三次握手"机制, TCP协议用FIN数据包 (数据报头中FIN标志位置1) 来请求关闭一个连接。该过程对应的数据包为图3中的第29、30、31和32四个数据包:

(1) 图2中第29个数据包, 主机211.64.32.3向211.64.47177主机发起连接拆除的请求, 其中FIN=1, SEQ=3127195609。

(2) 图2中的第30个数据包主机211.64.47.177向主机211.64.32.3发送确认信息, 其中ACK=3127195610, 同时发送关闭连接的请求, 图2中的第31个数据包, 其中FIN=1, SEQ=482231041。

(3) 图2中的第32个数据包, 主机211.64.32.3向主机21164.47.177发送确认信息, 其中ACK=482231042。

3.3 sniffer在TCP传输中的流量控制机制中的应用

TCP协议采用滑动窗口机制来进行流量控制, 窗口是指发送方在未收到接收方返回的确认信息的情况下, 最多能发送多少个字节的数据。

图2中第1个数据包发送窗口大小为WIN=65535, 第2个数据包发送窗口大小为WIN=5840, 第3个数据包发送窗口为WIN=65535, 第5个数据包发送窗口大小为WIN=6622。

说明发送窗口不仅在建立连接时由通信双方商定, 接收端还会在通信过程中根据本地资源的情况动态地调整接收窗口的大小, 并通知对方, 使对方的发送窗口和自己的接收窗口保持一致。以上几个数据包中发送窗口的大小变化印证了TCP协议数据发送过程中采用的动态窗口滑动机制。

4、结束语

本教学过程从同学们平时最为熟悉的上网问题 (登陆电子邮箱) 为切入点, 通过Sniffer软件抓取网络中的数据包, 并对其进行分析讲解, 解决了同学们以往学习该部分内容是普遍存在的"TCP数据报是什么样子的、是否真实存在、TCP数据报头具体有哪些域, 具体在什么位置"等诸多疑问, 使原本抽象枯燥的理论讲解变为了生动的科普教学, 可谓教师易教, 学生易学, 摆脱了传统教学法中理论说教, 加深了同学们对理论的理解, 收到较好的教学效果。

参考文献

[1].施永军.使用Sniffer检测局域网内Nachi蠕虫病毒[J].茂名学院学报, 2004, 14[1]:44-47.

[2].陈夕华, 李生红.利用Sniffer分析数据库应用系统的数据传输安全性[J], 计算机应用, 2005, 25[2]:297-300.

[3].李志远, 黎慧.借助Sniffer深入理解TCP/IP协议[J], 桂林航天工业高等专科学校学报, 2006, [1]:10-13.

[4].谢希仁.计算机网络教程[M].人民邮电出版社.2002, 5:166-224.

[5].马立云, 马皓等.计算机网络基础教程[M].清华大学出版社, 北方交通大学出版社.2005, 8:166-202.

TCP协议 篇8

关键词:传输控制协议,数据传输,数据包

1 引言

TCP/IP是Internet/Intranet使用的协议体系,也是大多数网络采用的协议。本文内容主要阐述有关TCP协议如何应用于传输数据及数据传输的详细过程解析。

2 TCP/IP协议概述

TCP/IP协议(Transmission Control Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。TCP/IP协议使用范围极广,是目前异种网络通信使用的唯一协议体系,适用于连接多种机型,既可用于局域网,又可用于广域网,许多厂商的计算机操作系统和网络操作系统产品都采用或含有TCP/IP协议。TCP/IP协议已成为目前事实上的国际标准和工业标准。

TCP/IP是很多的不同的协议组成。TCP用户数据报表协议,也称作TCP传输控制协议(Transport Control Protocol,可靠的主机到主机层协议),这里要先强调一下,传输控制协议是OSI网络的第四层的叫法,TCP传输控制协议是TCP/IP传输的6个基本协议的一种。两个TCP意思不相同)。TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。通过每个TCP传输的字段指定顺序号,以获得可靠性。是在OSI参考模型中的第四层,TCP是使用IP的网间互联功能而提供可靠的数据传输,IP不停的把报文放到网络上,而TCP是负责确信报文到达。在协同IP的操作中TCP负责:握手过程、报文管理、流量控制、错误检测和处理(控制),可以根据一定的编号顺序对非正常顺序的报文给予从新排列顺序。

3 三次握手原理解析

在TCP会话初期,有所谓的“三握手”,即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。由于TCP需要时刻跟踪,这需要额外开销,使得TCP的格式有些显得复杂。

TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ES-TABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。Backlog参数:表示未连接队列的最大容纳数目。

SYN-ACK:重传次数。服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。

半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。如图1所示。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据。

需要断开连接的时候,TCP也需要互相确认才可以断开连接,采用四次挥手断开一个连接,如图2所示。在第一次交互中,首先发送一个FIN=1的请求,要求断开,目标主机在得到请求后发送ACK=1进行确认;在确认信息发出后,就发送了一个FIN=1的包,与源主机断开;随后源主机返回一条ACK=1的信息,这样一次完整的TCP会话就结束了。

4 结束语

TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后数据传送,最后拆除连接三个过程。通过三个过程实现网络数据包的发送与接收。

参考文献

[1]汪贤锋.TCP/IP协议的漏洞分析及防范[J].电脑知识与技术,2008(6).

[2]周志忠.论基于TCP的数据流拥塞控制技术[J].网络与信息,2008(5).

[3]杨尚森.网络管理与维护技术[M].电子工业出版社,2007(7):11-19.

TCP协议 篇9

目前,各医院检验科的检验仪器按对外通信接口大致分为2类:一是串行通信接口(简称串口),二是基于网络接口(RJ45)。前者符合RS232接口协议,这种接口占所有检验仪器的80%以上,而且实现串口编程已经有非常成熟的方法可供参考[2]。后者采用TCP/IP协议,最近几年被越来越多的中外检验仪器厂商所采用,此种连接方式相比较传统的串口方式,更简单方便,而且通信速率高,适于高速率传送,相信会有更广阔的前景。但是目前采用RJ45接口检验仪器联机编程比较少见,本文就此进行探讨。

1 通信协议简介

与串口通信编程使用Microsoft Mscomm32.ocx控件一样,基于RJ45网络接口使用Microsoft MSWINSCK.OCX控件,该控件相比Mscomm32.ocx更简单,因为WINSOCK控件允许用户以UDP和TCP 2种协议中任选一种进行通讯

1.1 UDP协议设置

UDP协议是一种无连接的通讯协议,在通讯之前,需要绑定remotehost和remoteport属性,如果需要双向通讯,还要设置localport属性。

1.2 TCP协议设置

TCP协议是一种连接协议,在通讯前需要进行连接。如果把计算机设为服务器,其设置如下:

根据检验仪器的通信参数需求,选择合适的通信协议。本文根据笔者连接迈瑞BC5500五分类血细胞分析仪来进行说明。

2 编程实现

2.1 编程准备

(1)在计算机上装2块网卡,配置2个IP地址,其中一块连接LIS服务器,另一块连接BC5500血细胞分析仪。

(2)网上下载Mswinsock.Ocx控件。

(3)其他软件工具:Powerbuilder9,TCP&UDP测试工具,Winhex等。

2.2 数据接收分析

(1)用直通网线连接BC5500和LIS网络.

(2)根据BC5500通信说明,把BC5500设置为服务器端,联机计算机设为客户端[2]。以管理员权限进入BC5500的设置—通信界面,设置BC5500的IP地址为192.168.0.1,网关192.168.0.2,见图1。

设置联机计算机和检验仪器连接网卡的IP地址为192.168.0.2,网关为192.168.0.2。

(3)在联机计算机上安装TCP&UDP测试工具,并设为本机为客户端,然后创建到BC5500的联接,目标IP为192.168.0.1,端口为5500,本机端口随意,协议选TCP,从检验仪器BC5500发送检验结果,这时TCP&UDP测试工具接受区应该接收到数据。

(4)用Winhex软件分析上一步接收的数据,可以看到样本数据以0×05开始,以0×0A结束。

3 程序基本流程

3.1 在Windows中注册

使用Microsoft winsock通信控件前,必须事先在Window中注册,因为该控件是Microsoft Visual Basic的控件,最好在开发环境下先安装一个Visual Basic6,或者在注册表中加入HKEY_CLASSES_ROOTLicenses2c49f800-c2dd-11cf-9ad6-0080c7e7b78d=mlrljgrlhltlngjlthrligklpkrhllglqlrk,否则会报未授权错误。

3.2 应用程序中定义外部全局函数

Function long Dllregisterserver()library'Mswinsck.Ocx'

在应用的open事件中加入以下语句:

DLLRegisterServer()//完成Mswinsck.ocx控件注册

3.3 添加ole控件并设置其属性

在程序主窗口中加入ole控件即Mswinsck.Ocx,并命名为ole_comm,按照初始化参数对ole_comm属性进行如下设置:

3.4 数据接收与处理

在ole_comm控件的dataarrival事件中接收数据

//接收到BC5500数据后

string gs_receive

This.object.getdata(def gs_receive)

3.5 数据分析函数f_parsedata(read)

数据分析时要认真阅读迈瑞公司的BC-5500主机与终端通信协议说明书,了解其通信协议、数据格式,这里给出参考程序:

4 联机程序调试

接口程序编制完毕后,启动TCP&UDP测试工具模拟检验仪器BC5500,并把其IP地址设为和BC5500一样,再将模拟数据从TCP&UDP测试工具发送到自己开发的程序,看能否正常接受处理,发现问题给予处理。模拟调试完毕后,再和实际检验仪器联合调试,看数据能否正常接受处理并写入LIS数据库。

5 结论

基于网络接口的检验仪器是今后发展的方向。使用Mswinsck.ocx控件,结合Powerbuilder编程,可以非常方便地实现该类检验仪器检验结果的自动采集,技术简单、成熟,对开发人员要求较低,是一种简便可行的方法。

摘要:目的:实现检验结果的自动采集。方法:使用Mswinsck.ocx控件结合POWERBUILDER编程。结果:实现了基于TCP/IP协议的检验仪器与LIS系统的通信。结论:使用该方法技术简单、可靠,值得推广使用。

关键词:LIS,Mswinsck控件,检验仪器

参考文献

[1]傅征,任连仲.医院信息系统的建设与应用[M].北京:人民军医出版社,2002:162-165.

TCP协议 篇10

TCP/IP网络协议栈源于20世纪60年代美国军方资助的一个分组交换网络的研究项目, 在设计之初是使用环境中的用户都是可信任的, 并未考虑到其中存在的安全问题, 后来TCP/IP协议栈取得巨大的成功, 并促成全球互联网时代的到来, 但随着互联网的逐步扩展与开放, 使得原先用户可信任的缺省假设不再满足, TCP/IP协议栈存在的安全缺陷被发现, 如:缺乏加密认证机制、TCP序列号易被猜测、定时器及连接建立过程中的问题等, 都是TCP/IP协议固有的缺陷。而这些缺陷成了黑客们的攻击点, 对目标网络的安全性构成危害和威胁。

2 常用的 TCP/IP 网络协议栈攻击技术

2.1 网络层攻击

(1) ARP缓存欺骗

ARP缓存是ARP协议的重要组成部分。当使用ARP协议解析了MAC地址和IP地址的映射关系, 该映射便会被缓存下来。因此就不再使用ARP协议来解析已存在缓存中的映射关系。但是因ARP协议是无身份认证的, 所以ARP缓存很容易被恶意的虚假ARP数据报实施欺骗, 这样的攻击被称为ARP缓存欺骗。

在这样的攻击中, 攻击者通过伪造ARP数据报来欺骗被攻击主机的电脑使之缓存错误的MAC地址和IP地址映射。因攻击者的动机不同, 攻击的结果也有很多。例如, 攻击者可以使被攻击主机的默认网关IP映射到一个不存在的MAC地址达到DoS攻击, 攻击者也可以使被攻击主机的通信重定向至其他机器等等。

(2) ICMP重定向攻击

ICMP重定向报文是路由器为网络中的机器提供最新的路由信息以达到最短路由而使用的。当主机收到一个ICMP重定向报文就会根据报文来更新自己的路由表。由于缺乏确认机制, 如果攻击者想要使被攻击主机使用特定路由, 他们只要向被攻击主机发送欺骗性的ICMP重定向报文, 使它改变路由表即可。

2.2 传输层攻击

(1) SYN flood攻击

SYN flood攻击是DoS攻击的一种形式, 攻击者向被攻击主机的TCP端口大量发送SYN请求包, 但不去完成TCP的“三次握手”的过程, 例如攻击使用一个假的IP地址, 或只是简单地不再继续建立TCP连接的过程, 这都使被攻击主机处于”半连接”状态 (即在”三次握手”过程中, 有了前两次握手, SYN包和SYN-ACK包的传输, 但没有最后一次ACK包的确认。

被攻击主机的主机会使用一个队列来保存这种半连接的状态, 当这个队列存储空间满了的时候, 目标主机便无法再接受任何其它连接。这一队列的空间大小事实上是一个系统变量, 在Linux中, 可以这样查看它的大小:#sysctl–qnet.ipv4.tcp_max_syn_backlog。

我们还可以使用”netstat -na”命令去检查队列的使用情况。处于半连接的连接状态被标示为”SYN-RECV”, 完成了”三次握手”的连接被标示为”ESTABLISHED”。

你可以使用Netwox去实施攻击, 并使用嗅探器来获取数据包。攻击实施的过程中, 在被攻击主机上运行”netstat -na”命令去观察受攻击的情况。

SYN Cookie保护机制:如果你的攻击看起来并不成功, 你可以检查一下目标主机的SYN Cookie机制是否被开启。SYN cookie是针对SYN flood攻击的一种保护机制。这一机制会在探测到SYN flood攻击时开始生效。你可以使用sysctl命令去打开或关闭这一机制:

# sysctl -w net.ipv4.tcp_syncookies=0 (关闭SYN cookie)

# sysctl–w net.ipv4.tcp_syncookies=1 (打开SYN cookie)

(2) TCP RST攻击

比如被攻击者使用浏览器访问一个视频网站, 并选择播放某个视频大多数情况下视频的完整内容被存放在一个不同的主机上, 该主机接下来会与被攻击主机建立起TCP连接, 从而使被攻击主机能够接收视频的内容, 通过破坏上述TCP连接来干扰视频流的传输。你可以让被攻击主机试图去访问一个假的IP地址或是攻击主机的IP地址来获取视频 (从而它无法成功获得视频内容) , 但请注意, 攻击的目标应该是被攻击主机, 这是受你控制的一台主机, 不要针对提供视频的主机 (不受你控制的主机) 。你的攻击实验应出于学习目的而不要造成真正的危害。

(3) TCP会话劫持 (bonus)

TCP会话劫持的目标是劫持一个已经存在于两台被攻击主机之间的TCP连接, 在会话中注入恶意的内容。如果这是一个telnet会话连接, 攻击者可以注入一些恶意的命令, 使得被攻击主机运行这些恶意的命令。在这个任务中, 我们使用telnet作为例子, 并且仍然假定攻击机与目标主机在同一个局域网内。

3 TCP/IP 网络协议栈 IP 欺骗的应对措施

上述诸多黑客攻击TCP/IP网络协议栈的情况非常普遍, 这里我们只针对较普遍的IP欺骗采取应对策略加以说明。

在网络攻击技术中IP欺骗是针对TCP/IP协议栈中不完善的机制而发展起来的, 目前尚无简便的方法防止IP地址的欺骗行为。我们只能采取一些弥补措施来使其造成的危害减少到最小的程度。防御这种攻击的主要防范策略:

(1) 在局域网内部的IP数据包发出之前, 需对每一个连接局域网的网关或路由器进行IP源地址进行检验。如果该IP包的IP源地址不是其所在局域网内部的IP地址, 则该IP包就被网关或路由器拒绝, 不允许该包离开局域网。这样攻击者至少需要使用其所在局域网内的IP地址才能通过连接该局域网的网关或路由器。因此建议每一ISP或局域网的网关路由器都对出去的IP数据包进行IP源地址的检验和过滤。

(2) 使用防火墙决定是否允许外部的IP数据包进入局域网, 对来自外部的IP数据包进行检验。如果数据包的IP不是防火墙内的任何子网, 它就不能离开防火墙。这种方法虽然能够很好地解决问题, 但是一些防火墙并不能够正确的区分内部与外部的数据包, 并且在实际应用中局域网与局域网之间也常常需要有相互的信任关系以共享资源, 这种方案不具备较高的实用价值。

(3) 在包发送到网络上之前, 我们可以对它进行加密。虽然加密过程要求适当改变目前的网络环境但它将保证数据的完整性和真实性。虽然服务拒绝攻击的工具很多, 但一般都有相应的补丁, 所以网络管理员应经常在网上查找并安装这此补丁。

4 结束语

针对上面的各种CP/IP网络协议栈攻击技术我们在工作实践中不断寻求不同的解决方案, TCP /IP协议的安全隐患目前是无法从根本上消除的, 我们只有通过深入分析TCP/IP协议所存在的漏洞, 研究黑客利用这些漏洞进行攻击的常用方法并针对这些漏洞可能导致的安全隐患采取相应的解决策略才能达到提高网络安全性能、减少网络系统免受攻击的目的。

参考文献

[1]季云龙, 邵国强.TCP/IP协议的网络安全电脑学习, 2011, 2:29-30.

[2]颜学雄, 王清贤, 李梅林.SYN Flood攻击原理与预防方法, 计算机应用, 2000.

上一篇:绩效管理下一篇:精品课程开发与管理