TCP/IP

2024-10-14

TCP/IP(共11篇)

TCP/IP 篇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/IP 篇2

TCP IP协议栈:网络接口层

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

TCP IP协议栈:互联层

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

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

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

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

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

TCP IP协议栈:传输层

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

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

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

TCP IP协议栈:应用层

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

网络接口技术

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

串行线路协议

TCP/IP协议的安全性分析 篇3

摘要:TCP/IP协议是目前使用最为广泛的网络互联协议。在详细叙述TCP/IP基本工作原理的基础上,深入分析了各层协议的安全性,指出了存在的安全漏洞及攻击方式,并给出了针对安全性问题的防范措施。为网络安全的研究提供了参考。

关键词=TCP/IP协议;网络安全;防范

1引言

随着信息技术的迅猛发展,计算机网络技术已经广泛地应用到名个领域。Internet,Intranet是基于TCP/IP协议簇的计算机网络。TCP/IP协议簇在设计初期只是用于科学研究领域,因而没有考虑安全性问题。但随着Internet应用迅猛发展和应用的普及,它不仅用于安全性要求很高的军事领域,也应用于商业及金融等领域,因而对其安全性的要求也越来越高。对TCP/IP协议及其安全性进行分析和研究就显得尤为重要。

2TCP/IP的工作原理

TCP/JP协议是一组包括TCP协议和P协议、UDP协议、ICMF协议和其他协议的协议组。TCP/IP协议共分为4层,即应用层、传输层、网络层和数据链路层。其中应用层向用户提供访问internet的一些高层协议,使用最为广泛的有TELNET、FTP、SMTP、DNS等。传输层提供应用程序端到端的通信服务。网络层负责相邻主机之间的通信。数据链路层是TCP/IP协议组的最低一层,主要负责数据帧的发送和接收。其工作原理是:源主机应用层将一串应用数据流传送给传输层,传输层将其截成分组,并加上TCP报头形成TCP段送交网络层,网络层给TCP段加上包括源主机和目的主机IP地址的IP报头,生成一个IP数据包,并送交数据链路层;数据链路层在其MAC帧的数据部分装上IP数据包,再加上源主机和目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。目的主机的数据链路层将MAC帧的帧头去掉,将IP数据包送交网络层:网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包。如果一致则去掉IP报头,将TCP段送交传输层;传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据,若正确,则向源主机发确认信息,若不正确则丢包,向源主机要求重发信息,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的字节流,就像是直接来自源主机一样。

3TCP/IP各层的安全性分析

3.1数据链路层

数据链路层是TCP/IP协议的最底层。它主要实现对上层数据(IP或ARP)进行物理帧的封装与拆封以及硬件寻址、管理等功能。在以太网中,由于信道是共享的,数据以“帧”为单位在网络上传输,因此,任何主机发送的每一个以太帧都会到达与其处于同一网段的所有主机的以太网接口。当数字信号到达一台主机的网络接口时,根据CSMA/CD协议,正常状态下,网络接口对读入数据进行检查,如果数据帧中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据帧交给IP层软件。当数据帧不属于自己时,就把它忽略掉。然而,目前网络上存在一些被称为嗅探器(sniffer)的软件,如NeXRay、Sniffit、IPMan等。攻击方稍作设置或修改,使网卡工作在监听模式下,则可达到非法窃取他人信息(如用户账户、口令等)的目的。防范对策:(1)装检测软件,查看是否有Sniffer在网络中运行,做到防范于未然。(2)对数据进行加密传输,使对方无法正确还原窃取的数据,并且对传输的数据进行压缩,以提高传输速度。(3)改用交换式的网络拓扑结构,使数据只发往目的地址的网卡,其他网卡接收不到数据包。这种方法的缺点是交换机成本太高。

3.2网络层

3.2.1IP欺骗

在TCP/IP协议中,IP地址是用来作为网络节点的惟一标志。IP协议根据IP头中的目的地址来发送IP数据包。在IP路由IP包时,对IP头中提供的源地址不做任何检查,并且认为IP头中的源地址即为发送该包的机器的IP地址。这样,攻击者可以直接修改节点的IP地址,冒充某个可信节点的IP地址攻击或者编程(如RawSocket),实现对IP地址的伪装,即所谓IP欺骗。攻击者可以采用IP欺骗的方法来绕过网络防火墙。另外对一些以IP地址作为安全权限分配依据的网络应用,攻击者很容易使用IP欺骗的方法获得特权,从而给被攻击者造成严重的损失。防范对策:(1)抛弃基于地址的信任策略。(2)采用加密技术,在通信时要求加密传输和验证。(3)进行包过滤。如果网络是通过路由器接入Internet的,那么可以利用路由器来进行包过滤。确认只有内部IAN可以使用信任关系,而内部LAN上的主机对于LAN以外的主机要慎重处理。路由器可以过滤掉所有来自于外部而希望与内部建立连接的请求。

3.2.2ICMP漏洞

ICMP运行于网络层,它被用来传送IP的控制信息,如网络通不通、主机是否可达、路由是否可用等网络本身的消息。常用的Ping命令就是使用ICMP协议,Ping程序是通过发送一个ICMP Echo请求消息和接收一个响应的ICMP回应来测试主机的连通性。几乎所有的基于TCP/IP的机器都会对ICMP Echo请求进行响应。所以如果一个敌意主机同时运行很多个Ping命令,向一个服务器发送超过其处理能力的ICMP Echo请求时,就可以淹没该服务器使其拒绝其它服务。即向主机发起“Ping of Death”(死亡之Ping)攻击。死亡之Ping是较为原始的拒绝服务攻击手段。解决方法较成熟:(1)可给操作系统打上补丁(patch)。(2)在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。(3)利用防火墙来阻止Ping。但同时会阻挡一些合法应用。可只阻止被分段的Ping。使得在大多数系统上只允许一般合法的64Byte的Ping通过,这样就能挡住那些长度大于MTU(Maximum TransmiSsIon Unit)的ICMP数据包,从而防止此类攻击。

3.3传输层

TCP是基于连接的。为了在主机A和B之间传递TCP数据,必须通三次握手机制建立连接。其连接过程如下:A→B:A向B发SYN,初始序列号为ISNI;B→A:B向A发SYN,初始序列号为ISN2,同时对ISNI确认;A→B:A向B发对ISN2的确认。建立连接以后,主要采用滑动窗口机制来验证对方发送的数据,如果对方发送的数据不在自己的接收窗口内,则丢弃此数据,这种发送序号不在对方接收窗口的状态称为非同步状态。由于TCP协议并不对数据包进行加密和认证,确认数据包的主要根据就是判断序列号是否正确。这样一来,当通信双方进入非同步状态后,攻击者可以伪造发送序号在有效接收窗口内的报文,也可以截获报文,篡改内容后,再修改发送序号,而接收方会认为数据是有效数据,即进行TCP会话劫持。目前存在一些软件可以进行TCP会话劫持,如Hunt等。防范对策:(1)在传输层对数据进行加密。(2)使用安全协议,对通信和会话加密,如使用SSI代替telnet和ftp。(3)运用某些入侵检测软件(IDS)或者审计工具,来查看和分析自己的系统是否受到了攻击。

3.4应用层

在应用层常见的攻击手段是DNS欺骗。攻击者伪造机器名称和网络的信息,当主机需要将一个域名转化为IP地址时,它会向某DNS服务器发送一个查询请求。同样,在将IP地址转化为域名时,可发送一个反查询请求。如果服务器在进行DNS查询时人为地给出攻击者自己的应答信息,就产生了DNS欺骗。由于网络上的主机都信任DNS服务器,一个被破坏的DNS服务器就可以将客户引导到非法的服务器,从而就可以使某个地址产生欺骗。防范对策:(1)直接用IP访问重要的服务,从而避开DNS欺骗攻击。(2)加密所有对外的数据流。在服务器端,尽量使用SSH等有加密支持的协议;在客户端,应用PGP等软件加密发到网络上的数据。

4结束语

TCP/IP 篇4

1 嵌入式 TCP/IP 协议

TCP/IP包含应用层、传输层 、网络层等一系列协议 , 且每层可采用的协议有多种。由于嵌入式设备的硬件资源有限, 其可直接寻址的程序空间和数据空间都很小, 处理速度较慢, 所以嵌入 式设备一 般采用最 精简的TCP/IP协议栈 (包括ARP、IP、UDP、ICMP等协议)[1], 在设计和开发过程中主要使用了ARP和TCP协议。

(1) ARP协议 (地址解析协议 : Address Resolution Proto- col) 是获取MAC物理地址的TCP/IP协议, 其主要作用是通过已知IP地址, 获取对应MAC物理地址的协议。当ARP请求被广播到网络上后, 目的主机收到请求包后发出一个ARP回应包, 给出自己的MAC地址和IP地址[2]。

(2) TCP协议 (传输控制协议 : Transmission Control Pro- tocol) 是一种面向连接的、可靠的、基于字节流的传输层通信协议, 通过3次握手建立连接, 通信完成时要删除连接, 采用“带重传的肯定确认”技术来实现传输的可靠性。

2 系统设置流程

上位机远程修改嵌入式设备的IP地址的流程包括:

(1) 上位机发出查询下位机MAC地址的ARP广播请求包, 嵌入式设备接收后响应ARP请求, 返回本地MAC地址; (2) 上位机记录响应ARP请求的嵌入式设备IP地址和MAC, 为建立TCP连接做准备; (3) 选择需要进行修改的嵌入式设备IP并发送TCP连接请求, 嵌入式设备建立与上位机的TCP连接;(4) 上位机发送IP?参数数据包, 嵌入式设备截取数据包中的信息来完成本地IP设置[3]。

3 上位机软件系统实现

在VC++开发平台上对上位机软件系统进行了实现, 使用基于TCP的Socket与嵌入式设备进行连接, 通过gethostby- name函数返回给定嵌入式设备IP地址对应于的包含主机名字和地址信息的hostent结构指针。使用IP地址和默认端口号与下位机进行连接, 如果连接成功则将封装好的数据包到下位机并给出提示[4]。关键代码如下:

4 结语

TCP/IP 篇5

【关键词】视频播放;同步;共享;流媒体

【中图分类号】TP309

【文献标识码】A

【文章编号】1672—5158(2012)10-0111-01

1 引言

近来随着计算机技术的成熟和网络通信技术的快速发展使得制约视频数据在网络上传输的主要问题迎刃而解,然而几乎所有的用户都是使用视频播放器相对独立地播放各种视频文件,本系统通过对视频播放知识的学习和网络通信的理解再加上对视频播放控制技术的研究设计并且以VS.NET开发出一款可以让局域网之间用户共享并且同步播放视频文件的播放器,为网络用户提供更加人性化的播放条件。

2 视频同步播放系统的设计

2.1 同步视频播放器的特点

视频同步播放器利用TCP/IP协议获得视频播放数据,并且利用UDP协议使得使用视频同步播放器的双方进行播放信息的交互从而实现了视频的同步播放。在用户登录成功后,用户可以获得当前在线的用户列表,并且可以请求对方一起同步欣赏视频。同步播放开始后,播放器会自动根据各自的播放进度进行播放进度的同步。

在进行单机播放时候同步播放器跟普通的单机播放器没有什么异同,各种播放、暂停、快进等命令会得到播放器的快速响应,让用户有完美的体验。而在用户进行登录时必须指定加入的组播组,这个将直接影响到登录后计算机用户可以进行网络通信的计算用户列表。

2.2 视频同步播放系统的设计方案

通过需求分析,弄清楚了软件的各种需求,较好地掌握了用户的各种要求后,必须进行软件的总体设计,这个将解决这个软件应该怎么做的问题,并且为详细设计起到指导性的作用。在这个阶段着重实现需求的程序模块设计问题,并将需求转化为软件的系统结构,进行模块的划分,确定每个模块的功能、接口及模块之间的调用关系。视频同步播放系统的总体功能如图1所示:

由于视频同步播放器可以分为:网络配置,用户登录,单机播放,同步播放以及即时通讯等功能模块,根据视频同步播放系统用户的各种行为设计了用例图如图2所示:

3 视频同步播放系统的实现

3.1 视频同步播放系统的主要功能模块

(1)视频同步播放系统界面模块

UI层,负责对整个界面的按钮事件处理和棋盘的绘制。其主要是根据播放视频的大小自动进行大小和布局的调整,使得不管视频的原始尺寸如何都能做到尺寸真实而且播放器界面布局保持不变。

(2)单机视频播放模块

本系统主要是调用VS.NET特有的axwindowsplayer播放控件进行视频文件的播放,在打开同时获取视频的时间总和,文件大小以及根据视频尺寸进行播放器界面大小的调整。

(3)用户登录和即时通讯模块

用户登录主要是根据UDP协议实现的,在登录时创建一个UdpClient,并且加入到特定的组播组,然后向这个组广播一个本机的登录信息,同时接收这个广播组的公共信息和自己的私人消息来实现用户的登录和即时通讯的功能:

(4)同步控制模块

同步播放控制模块也是运用了UDP协议来实现的,在确认进行同步播放后会新建一条线程进行专门的控制消息的接收。而用户在播放过程中就是根据这个模块进行同步:

(5)数据传输模块

数据传输模块主要是运用了TCP面向连接的可靠传输的特点通过流的方式来完成的,当确定进行数据传输之后,从机会新建一条TCP连接监听线程进行连接的监听,而主机也会根据IP地址和预先约定的端口号进行连接,当连接成功后即刻进行数据传输:

3.2 同步控制主要实现过程和算法

(1)主要控制模型

从计算机用户向其他用户发送同步播放请求到开始播放,系统必须进行一系列确认动作,图3是系统进行确认时的消息交互示意图:

(2)进度同步

本系统进度同步的主要是思想是每间隔一定的时间,系统就会获取本机的播放进度然后再以特定的命令格式发送到对方,而在对方接受到此命令之后就立刻进行进度分析和进度调整,而系统认为进度差在2秒之内是正常范围,而一旦超出这个临界值,接受到命令的主机将会立即调整自己的播放时间。

4 结论及研究展望

本文介绍了实现视频同步播放系统的总体方法,在运用TCP协议进行视频数据传输时也没有采用多条线程同时传送一个文件,而仅仅是采用单一线程一直到发送完毕,这个视频同步播放系统,满足用户进行视频共享的同步播放,并且还可以进行即时通讯。经过测试,在局域网间进行视频同步播放是两部机相差不会超过0.5秒,而且一旦由于其它的原因使得播放进度相差超过了2秒播放器会自动进行调整。以后将在以下两个方面进行研究:

(1)视频文件直接发送,非常浪费带宽。而且由于本身数据传输时浪费了极大的带宽也会导致网络的极大延时从而影响了同步播放的控制;

(2)在用UDP进行控制命令地发送时没有对命令进行编号,由于UDP是不可靠的无连接的协议,所以有可能由于网络的延时造成了播放器对控制命令的误读,最后大大影响了同步播放的质量;

参考文献

[1]赵增敏.Visual C#2008程序开发入门与提高.北京:电子工业出版社,2009

[2]张海藩.软件工程导论,北京:清华大学出版社,2009

[3]麻志敏.面向对象分析与设计.北京:机械工业出版社,2009

TCP/IP 篇6

随着网络时代的到来, 监控技术的不断创新, 特别是随着CPU处理能力、硬盘容量和光纤传输等技术发展, 促使实时监控的多媒体处理技术的发展, 实时的监控技术从而成熟。它是集视频技术、网络技术和处理技术的综合技术的系统, 被应用在很多领域。利用视频监控技术, 能自动监视重点地区的危险状况, 当一些危害社会行为出现时, 监控系统能够实时向相关人员和部门提供现场情况, 从而避免工作人员出现场, 避免二次事故的发生, 从而节省了大量的物质资料的投入。另外, 实时的监控技术对城市商业区、城市交通十字路口、学校门前等重点地区的人流量进行监控[1]。除了上述的应用, 还有一些应用允许游客访问遥远的景点。

2 实时监控系统需求

实时监控系统主要应用在远程视频监控上, 同时连接数字/模拟摄像头、有线或无线网络等, 实时监控系统需要将得到视频数据处理后传输至网络, 用户可以在PC机、手持PDA或智能手机上的客户端实时监控现场等[1]。其实时监控系统的应用架构如图所示。

实时监控系统主要的硬件是流媒体服务器。在系统构架设计之前必须做好硬件选型, 其次结合硬件平台, 进行软件研究和系统设计。流媒体转发服务系统[2]包括硬件设备、文件管理和系统软件等几部分。整个系统的工作流程是:第一, 通过视频监控设备采集监控现场的音视频信息;第二, 将采集的视频数据信息编码压缩;第三, 是通过网络传输技术将处理后数据传输至用户的客户端。同时, 实时监控系统按照应用的需要进行用户数量和传输的控制, 确定网络自动调整发送码率。因此, 流媒体转发服务的实时监控必须具备以下功能和性能: (1) 支持多路复用和多用户服务, 同时支持不同的编码的视频格式; (2) 提供实时视频数据的处理, 实现视频数据的帧率、码率和和网络带宽适应; (3) 支持各种网路环境的监控, 实时视频数据质量高, 传输数据连续性高。

3 实时监控方案设计

根据分析实时监控系统的需求, 确定了流媒体服务器的功能需求, 通过流媒体服务器的协议栈的设计, 在传输层协议上解释RTP, RTCP, RTSP协议, 流媒体数据也都是打成RTP包, 通过UDP端口发出去的, 因此, 对系统进行模块化分析, 对于TCP/IP端口事件的调度以及把大量的流媒体数据从磁盘空间传递到网络上, 依据此给出了流媒体系统的软件架构, 由流媒体服务器和客户端两部分组成, 二者之间通过信令传输信息, 数据发送和控制。计算机网络系统的结构复杂, 其最基本的体系结构是分层次的, TCP/IP协议的传输层有面向连接的传输控制协议TCP和无连接的用户数据报协议UDP两个重要的协议。而RTP/RTCP是端对端的协议, RTP协议通常使用UDP来传送数据, 也可以使用TCP协议提供时间信息和实现流同步。RTP和RTCP的配合使用, 能有效的适合网上的实时数据处理。

4 实时监控系统工作流程

根据实时监控系统的方案设计, 通过视频编码技术对所采集的视频数据信息进行处理, 从而将视频数据信息压缩成为能够适合网络传输的信息;客户端的任务是执行接收视频信息和解压缩视频数据, 从而使得使用者能够通过客户端观看实时监控图像信息, 其系统工作流程为:

(1) 实时监控流媒体转发服务器初始化, 开启监听线程; (2) 自动搜索实时监控服务器, 准备接收数据; (3) 进行登录实时监控服务器, 并且配置传输方式发出请求; (4) 对请求用户进行认证, 检查用户权限及服务用户的上限; (5) 传输连接建立后, 向流媒体转发服务器发送视频传输请求, 等待建立会话; (6) 用户接收到视频通道信息, 并且产生接收数据地址; (7) 成功建立链接, 服务器将该用户加入发送队列, 并处理控制命令; (8) 进行发送实时监控的流媒体信息; (9) 流媒体服务器控制信令传输, 控制视频、音频数据的反馈信息; (10) 断开服务器连接, 结束会话。

5 小结

本文分析了实时监控系统的需求以及整体的方案设计和系统的工作流程。实现了实时视频数据传输的设计, 并设计了调用关系以及接口。

摘要:随着计算机技术与网络技术的广泛应用, 实时视频监控的技术也得到了广泛应用。在现今的网络公司均把大力发展视频流技术放在了非常重要的位置, 其中的流媒体编码技术也得到很大的发展, 而客户端与服务器之间的认证和传输也成为了该技术的重点, 谁能更好的解决这些问题, 提供最方便, 快捷的解决办法, 谁就能在未来的网络竞争中占得先机。

关键词:流媒体,TCP/IP,实时监控

参考文献

[1]陈轶博.智能视频监控系统的设计与实现[D].大连:大连海事大学, 2008 (05) :15-21.

[2]Karim Yaghmour.Building Embedded Linux System.Sebastopol:O'Reilly, 2003:53-54.

[3]陈颖, 视频编码技术的流媒体网络传输适应性[J].福建信息技术教育, 2007 (04) .

TCP/IP 篇7

在电力系统信息化高速发展的今天, 智能电网受到了重视, 在中国大陆建立一套完善的智能电网系统迫在眉睫。传统的电工24小时值班制度, 大量的电磁式仪表的使用, 使得值班人员操作繁琐容易出错。文章讲述的基于TCP/IP的配电柜监控装置就是在这样的条件下诞生的。有了该装置电力系统就可以对供电情况集中调控和监测管理;实现配电房无人值班, 节约资源。TCP/IP网络通信搭建相当简单, 只需在原有的网络上架设设备交换机和相关的网络线路即可, 这大大减少了电力控制线路布线的成本。本文主要从两个方面讲述该装置:以51单片机构成的监测和控制系统和TCP/IP网络通信模块。

装置的原理实现框图如下图1所示。51单片机构成的微机系统担任进线或馈线的电流、电压、相位、频率等参数的测量及运算和上位机的命令实施;对测量异常数据进行记录和报警输出, 对上位机的要求执行。所有的正常数据及异常数据和报警均通过51单片机的通信口 (串口) 输出, 所有上位机要施行的命令均通过51单片机的通信口 (串口) 接收。51单片机的通信口 (串口) 经串口转TCP/IP网络模块对外进行数据交流。所有的监测和控制得到与PC机组态系统实时沟通。TCP/IP网络接口组合灵活, 方便搭建智能监控平台。

监测和控制系统

1.监测模块。电力系统中, 配电柜的电能参数和开关量的监测是电力系统可靠运行的信息源泉, 因此数据准确性相当重要。在单片机系统中, 为了防止现场强电磁干扰或工频电压通过输出通道反串到测控系统, 常常采用通道隔离技术。在输出通道的隔离中, 最常用的隔离元件是光耦合器。在本检测系统中, 设置了光电隔离器件实现“隔离保安”。在硬件方面, 采用常用光电隔离器P521, 采用常用A/D转换芯片TLC549。

2.控制模块。该部分主要承担控制断路器和其他电气元件的合、分动作的控制。采用继电器干结点输出接口, 单片机可以通过设置决定若干路继电器输出的先后级别;同时可以设定继电器输出的常态 (常开/常闭) 及节点闭合、分断的时间。单片机通过ULN2003驱动继电器输出。

监测和控制系统与TCP/IP网络通信模块之间采用串行通信格式。数据格式采用RTU协议。RTU模式中, 每次传送信息前都有3.5个字符的静止时间;当对方接收到3.5个字符的静止信号时就开始清理内存准备接收数据 (依据使用的波特率, 很容易计算这个3.5个字符的静止的时间实际值) 。接着, 传送的第一个区的数据为设备地址。各个区允许发送的字符均为16进制的0-9, A-F。

网络上的设备连续监测网络上的信息, 包括静止时间。当接收第一个地址数据时, 每台设备立即对它解码, 以决定是否是自己的地址。发送完最后一个字符号后, 也有一个3.5个字符的静止时间, 然后才能发送一个新的信息。

整个信息必须连续发送。如果在发送帧信息期间, 出现大于1.5个字符的静止时间时, 则接收设备刷新不完整的信息, 并假设下一个地址数据。

同样一个信息后, 立即发送的一个新信息, (若无3.5个字符的静止时间) 这将会产生一个错误。是因为合并信息的CRC校验码无效而产生的错误。

当数据帧到达终端设备时, 它通过一个简单的“端口”进入被主机寻址到的设备, 该设备去掉数据帧的“信封” (数据头) , 读取数据, 如果没有错误, 就执行数据所请求的任务, 然后, 它将自己生成的数据加入到取得的“信封”中, 把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址 (Address) 、被执行了的命令 (Function) 、执行命令生成的被请求数据 (Data) 和一个校验码 (Check) 。发生任何错误都不会有成功的响应。

数据帧格式如下表1所示。

地址域 (Address) 在帧的开始部分, 由一个字节 (8位二进制码) 组成, 十进制为0~255。这些位标明了用户指定的终端设备的地址, 该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是唯一的, 仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应, 响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。

TCP/IP网络通信模块

TCP/IP网络通信模块负责衔接单片机RTU通信的数据并解析出功能后打包成TCP/IP网络通信协议对外交换数据。其报文控制框图如图2:

在数据分析过程中对电器控制的各个功能做了详尽的划分。

功能域。功能域代码告诉了被寻址到的终端执行何种功能。以下列出了本设计用到的功能码 (如下表2所示) , 以及它们的意义和功能。

系统使用的功能码如下表3所示:

数据域。数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。例如:功能域码告诉终端读取一个寄存器, 数据域则需要指明从哪个寄存器开始及读取多少个数据, 内嵌的地址和数据依照类型和从机之间的不同内容而有所不同。

错误校验允许主机和终端检查传输过程中的错误。有时, 由于电噪声和其它干扰, 一组数据在从一个设备传输到另一个设备时在线路上可能会发生一些改变, 出错校验能够保证主机或者终端不去响应那些传输过程中发生了改变的数据, 这就提高了系统的安全性和效率, RTU方式出错校验使用了16位循环冗余的方法 (CRC16) 。

结束语

TCP/IP 篇8

目前,各医院检验科的检验仪器按对外通信接口大致分为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/IP 篇9

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.

TCP/IP 篇10

[关键字]卫星通信TCP/IPSkyX协议加速器XTP

1引言

随着通信技术的飞速发展,传统的低速数据传输将逐步被采用TCP/IP协议实现的数据高速远程传输所淘汰。但是,在利用卫星通信信道来进行数据传输时,由于卫星通信的一些特殊性,TCP/IP传输应用于卫星通信环境时出现了一些在地面系统应用中并不存在的问题,这些问题严重影响了TCP/IP的传输性能。

2卫星数据通信中影响TCP/IP传输性能的几个因素

TCP/IP通过卫星信道传输的传输性能明显下降,这主要体现在数据传输的速率很难接近信道标定速率,带宽的利用率低,从而影响数据传输的实时性,这对本来分配的带宽就较窄的卫星通信信道的影响是非常大的。因此,如果期望利用TCP/IP传输数据,那么,改善卫星通信中TCP/LP的传输性能的需求是非常迫切的。以下几个因素是造成卫通信道利用率降低的主要原因。

2.1噪声的影响

在无线技术中,噪音是一个突出而不可避免的问题。根据TCP/IP的定义,每一个丢失的数据包都意味着网络拥塞,为了减轻拥塞,发送端通常采用减小窗口尺寸的算法来改变传输率,但这种方法并不能解决由噪声引起的误码问题,反而会降低整个网络的吞吐量。

目前用于解决信道恶化问题的方法多是通过在无线信道中增加诸如前向纠错(FEC)码等冗余码来改善信道质量,而这不可避免地会增加信号带宽和处理的复杂度。但是这种处理是必要的。卫星信道的误码率如果能调整到10-7,就基本能满足传输要求了。

2.2时延的影晌

较长的时延不会对数据传输的内容有所影响,但是它在很大程度上对网络的性能产生有害的影响。如果发送方在它认为应该收到ACK(确认信息)的时间内没有收到ACK,就会认为数据已经丢失而重传这些其实可能已经传送到目的地的数据报。而在卫星传输过程中,长时延是很正常的。例如,典型的同步轨道卫星的时延将高达540ms,这必然影响到TCP/IP的性能。

时延对TCP/IP传输性能影响的另一个例子就是对传输策略的影响。在标准TCPaP中,控制策略中的主要方法是慢启动和拥塞避免。为了避免通信在开始阶段就出现拥塞,TCP/IP采取了慢启动的方法。慢启动的功能是发送方逐渐增加发送数据进入网络的速率。

2.3不对称带宽的影响

TCP/IP通信的本质是对称的,一个方向是数据流,另一个方向是ACK信息。而在卫星网络中带宽是不对称的,一个传输方向有较高的数据传输率,而另一个方向的链路由于受到天线尺寸和发射功率的限制而导致数据传输率较低。例如,目前在测控通信网中应用的VSAT系统中,下行通道是由多个卫星小站复用的。这种状况也会对TCP/IP的性能有所冲击。

2.4窗口尺寸的限制

TCP/P的接收窗口尺寸尤其重要,因为它与RTT(环路时间)一起决定了网络的吞吐量。

最大吞吐量=TCP/IP的窗口尺寸/RTF

(2)

因为TCP/IP的标准窗口尺寸是64kbyte(表示窗口长度的选项为16bit),所以,地球同步轨道卫星的最大吞吐量应该是:

最大吞吐量=64kbyte/540ms=l18,518byte/s=948,148bit/s(3)

因此,卫星通信的最大吞吐量被限制在0.94Mbit/s,尽管卫星可以提供2Mbids的带宽,但由于窗口的限制,实际的带宽利用率最大还达不到50%。

3卫星通信中提高TCP/IP数据传输的实现

为了改善基于卫星信道的TCP/IP传输性能,IETF提出了以下五方面建议。为了确保兼容性,IETF建议这些新的应用在TCP/IP数据报头的初始字段来实现。这些建议主要有:

(1)路径最大发送单元发现(RFCll91);

(2)窗口尺寸的缩放(RFC 1323);

(3)选择性确认(RFC 2018);

(4)时间戳(RFC 1323);

(5)快速恢复与快速重传(RFC 2581)。

这些建议主要是针对高带宽时延积(信道能够处理的最大的比特数)的卫通信道提出的,用以解决卫星通信中提高信道的利用率问题,测控通信领域主要关注其中的窗口尺寸调整、快速重传与快速恢复算法以及选择性确认。

当前,实现卫通信道中传输TCP/IP数据的方式主要是引入协议网关和在通信终端使用虚拟目的终端。

虚拟目的终端是由卫星节点代替目的终端向发送终端发回各种应答信息,包括窗口尺寸、拥塞控制信息以及确认信息等。由于卫星信道的较长时延和较差的信道质量,数据报在缓存器中的时间会较长,这种方式要求卫星节点有足够大的缓存空间给予支持。

而协议网关的作用是将一个TCP/IP连接分割成三个独立的连接:在发送端和协议网关之间建立一个TCP/IP连接;在两个协议网关之间采用适合卫星通信的协议进行通信;而在接收端和协议网关之间又是一个TCP/IP连接。

使用协议网关提高卫星通信中TCP/IP传输的效率是目前实际应用中较成熟的方法,本文将针对实际使用情况着重介绍使用XTP技术的SkyX协议加速器。

4SkyX协议加速器初探

目前,在建设基于卫通信道传输的数据网时,通常会采用美国Mentat公司的SkyX协议加速器,将skyx协议加速器加装于卫星设备的两侧,把整个端到端的连接分为三段:在面向客户端和服务器端的连接中,采用通用的TCP/IP协议,而在卫星段的传输过程中,使用XTP协议。这样在最大限度的优化协议的同时,又保持了与TCP/IP的兼容,对所有的主机和终端都完全透明,不用作任何优化与修改。同时,XTP协议在设计之初,就考虑到了卫星通信系统的网络拓扑结构,分别支持点到点、星状及网状网通信,涵盖了绝大多数卫星通信系统的网络拓扑结构。

影响SkyX性能的因素很多,包括链路的带宽、延迟、不对称性和误码率,还有同时连接数、数据的可压缩性等,不同的应用软件对其也具有一定的影响。

没有使用SkyX时,大多数操作系统使用的TCP的窗口尺寸为8KB,吞吐量在100Kbps左右。在TCP窗口尺寸为32K时,吞吐量在440Kbps。使用SkyX时,吞吐量和带宽成线性增长。

在10MHz带宽、标准误码率的卫星链路条件下测试,TCP随着RTF的增加。吞吐量会迅速下降,而SkyX则没有变化。

如果卫星链路带宽10Mm,TCP窗口尺寸1MB。在误码率极低的情况下,TCP只能到1.5 Mbps的吞吐量,当误码率是1xl0-5时吞吐量降到了0.03 Mbps,而此时SkyX依然能达到2.7 Mbps。

5小结

TCP/IP 篇11

一、TCP协议

TCP协议是一种可靠的、面向连接的传输协议, 它提供面向连接的可靠的传输服务, 支持多种网络应用程序, 可用于各种可靠或不可靠的网络。面向连接意味着两个使用TCP的应用在彼此交换数据前必须先建立一个TCP连接。因此, TCP主要是为了在主机间实现可靠性的包交换传输。

1. TCP数据包的格式

原端口号:说明源服务的端口号。目的端口号:表示目标服务访问的端口号。序号:本段中第一个数据字节的顺序号。确认号:捎带应答的顺序号, 指明接收方期望接收到的下一个数据字节的顺序号。首部:给出首部中32bit字的树目。保留:必须为0。位标示:用6bit表示各种控制信息, 包括URG紧急指针字段有效。ACK:确认序号有效。PSH:接收方应尽快将这个报文段交给应用层。RST:重新连接, 通常用于连接后的故障恢复。SYN:对顺序号同步, 用于连接的建立。FIN:数据发送完成, 用于连接的建立。

2. TCP连接

上面说过, TCP连接是可靠的, 保证了传送数据包的顺序, 顺序是用序号来保证的。响应包内也包含一个序号, 表示接受方准备好接受这个序号的包。在TCP传送一个数据包时, 它同时把此数据包放入重发队列中, 同时启动计数器, 若收到这个包的确认信息, 就将此包从队列中删除, 若计时超时就重发此包。

TCP在两个通信主机间建立一个逻辑的端对端的连接。建立时交换称为“握手”的控制信息, 使用的是三方握手。所谓三方握手, 是指每次发送数据前, 通信双方先进行协商, 使数据段发送和接收能够同步进行, 并建立虚拟连接。为了提供可靠的传送, TCP在发送新的数据前, 以特定顺序将包进行编号, 并要求这些包传送到目标主机后回复一个确认消息。TCP总是用来发送大量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。例如, 主机1向主机发出连接申请。首先主机1的TCP实体发送一个报文段, 其位标示SYN置1, 序号为n, 然后向主机2发送连接报文;主机收到上述报文后也同样发出一个位标示SYN置1, 同时ACK置1, 确认号置n+1的报文, 表示序号为n的报文段已收到, 此报文为应答报文, 下一个希望收到的报文序号为n+1;主机在收到这一应答报文后, 再继续发送序列号为n=1的报文。

3. TCP协议特点

1) 面向流的投递服务。应用程序之间传输的数据可视为无结构的字节流 (或位流) , 流投递服务保证收发的字节顺序完全一致。

2) 面向连接的投递服务。数据传输之前, TCP模块之间需建立连接, 其后的TCP报文在此连接基础上传输。

3) 可靠传输服务。接收方根据收到的报文中的校验和, 判断传输的正确性:如果正确, 进行应答, 否则丢弃报文。发送方如果在规定的时间内未能获得应答报文, 自动进行重传。

4) 缓冲传输。TCP模块提供强制性传输 (立即传输) 和缓冲传输两种手段。缓冲传输允许将应用程序的数据流积累到一定的体积, 形成报文, 再进行传输。

5) 全双工传输。TCP模块之间可以进行全双工的数据流交换。

6) 流量控制。TCP模块提供滑动窗口机制, 支持收发TCP模块之间的端到端流量控制。

二、UDP协议

UDP协议, 即用户数据报协议, 是一种简单的面向数据报的传输协议, 在使用UDP进行网络传输的过程中, UDP只负责数据传输, UDP不保证数据一定到达目的地;若传输出现故障, 不负责重传数据, 是否重传由应用程序控制;当数据到达后, 接收方不发送到达确认信息。UDP仅通过端口号指明发送程序端口和接收程序端口, 不保证数据一定到达目的主机。因此, 对应用层而言, UDP提供的数据传输服务称为无连接、不可靠的用户数据报服务。

1. UDP数据报格式

UDP数据报的格式由5个域组成:原端端口、目的地端口、用户数据包的长度、检查和和数据。其中, 前4个域组成UDP标题, 每个域由4个字节组成;检查和域占据2个字节, 用来检测传输过程中是否出现了错误;用户数据包的长度包括所有5个域的字节数;原端端口是可选域, 当其有意义时, 它指的是发送进程的端口, 这也就假定了在没有其他信息的情况下, 返回信息应该向什么地方发送。如果不使用它, 则在此域中填0。

2. UDP的工作机制

UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方将UDP数据报通过源端口发送出去, 而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口, 而另外一些网络应用则可以使用未被注册的动态端口。因为UDP报头使用两个字节存放端口号, 所以端口号的有效范围是从0-65535。

UDP使用报头中的校验值来保证数据安全。校验值首先在数据发送方通过特殊的算法计算得出, 在传递到接收方后, 还需要重新计算。若某个某个数据报在传输过程中受到损坏, 发送和接收方的校验计算值不会相符, 由此可检测是否出错。

3. UDP协议的特性

总的来说, UDP协议具有以下特性:

1) UDP仅负责数据报的发送和接收, 其传输过程中出现的数据报丢失、重复和顺序错乱等问题均有上层的应用程序负责解决。

2) UDP是一个无连接协议, 传输数据之前原端和目的端不连接, 当它想传送时就简单地去抓取来自应用程序的数据, 并尽可能快的把它扔到网上。在发送端, UDP传送数据的速度仅仅受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接受端, UDP把每个报文段放在队列中, 应用程序每次从队列中读一个报文段。

3) 由于传输数据不连接, 也就不需要维护连接状态, 因此, 一台服务器可同时向多个客户机传输相同报文。

4) UDP数据包标题很短, 有8个字节, 而TCP有20字节, 数据包额外开销小。

5) 吞吐量不受拥挤控制算法调节, 只受应用软件生成数据速率、传输带宽、原端目的端主机性能的限制。

三、动态选择TCP、UDP的方法

由于TCP、UCP协议各有优缺点, 于是便产生了一种动态选择TCP、UDP协议的方法。这种动态选择TCP-UDP的方法有两方面优点:首先, 对于需要比较少数据传输的情况, 它将使用UDP作为传输层的协议, 避免了TCP链接的多次握手开销;另外, 对于需要较多数据传输的情况, 它将使用可靠的带有重排序和拥塞控制的TCP协议作为传输层的协议。动态选择TCP-UDP的实现方法只需要对应用层的改动, 而操作系统的核心代码不用任何更改。

动态选择TCP-UDP协议的实现

客户端首先尝试使用UDP作为传输协议, 如果对于所请求的URLUDP并不适合, 则再次使用TCP链接。这种方法提供了以下保证: (1) 如果初始的UDP数据包丢失, 将采用TCP重新链接而不会受到影响。 (2) 如果所链接的服务器没有使用动态选择传输层的实现机制, 客户端将使用TCP重新进行链接。

上图给出了动态选择TCP、UDP的实现算法。一个采用此算法的HTTP客户端首先使用UDP作为传输层的协议发出HTTPGET请求, 同时启动超时定时器。当服务器处理客户端发来的请求时, 它可以从以下两点做出选择: (1) 如果响应的数据足够小, 服务器将使用UDP出响应。像比较小的网页或HTTPREDIRECT响应就属于这一类。 (2) 如果响应的数据很大, 无法放进一个UDP数据包中, 服务器则要求客户端使用TCP重试。这可以通过添加一个HTTP的头部字段来解决, 如TCPRETR。

在客户端, 将会出现三种情况: (1) 客户端从服务器接收到响应。如果响应中包含了所需HTTP响应, 客户端将对数据进行处理。如果服务器要求客户端重试, 客户端将使用TCP作为传输层重试。 (2) 如果服务器没有处理通过UDP传输的HTTP包, 客户端就会收到ICMP错误消息 (目的地址无法到达/协议无法到达) 。此时客户端将会使用TCP重试。

(3) 如果定时器超时, 客户端应使用TCP重试。

上图给出了在定时器超时情况下, 客户端和服务器间数据包的交换。这种超时机制提供了可靠性, 及与未使用混合TCP-UDP方法的服务器的兼容性。

上图示意了服务器要求客户端使用TCP重发请求时, 客户端和服务器之间的数据交换。

四、总结

很明显, 当数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时, TCP协议是当然的选择。当强调传输性能而不是传输的完整性时, 如:音频和多媒体应用, UDP是最好的选择。当网络延迟大, 带宽窄, 性能不佳时, 动态选择UDP-TCP传输协议亦是一个不错的选择。

摘要:本文描述了TCP协议、UDP协议及其混合协议的机制及其特点, 分析了三种机制的不同的适用环境, 对于网络传输协议的选择具有一定的指导作用。

关键词:TCP,UDP,混合TCP-UDP

参考文献

[1]计算机网络及应用马志峰主编上海科学普及出版社

[2]计算机网络伍孝金主编清华大学出版社

【TCP/IP】推荐阅读:

上一篇:高中数学语言的优化下一篇:五大学习技能

本站热搜

    相关推荐