tcp协议会限制传输数据吗

竭诚为您提供优质文档/双击可除tcp协议会限制传输数据吗

篇一:tcpip协议进行数据传输

摘要:阐述了在nilabView平台上结合tcp/ip协议进

行数据传输的工作方法,并给出对工业现场数据采集传送与监控的仿真实例。

关键词:tcp/ip;虚拟仪器;labView

1、引言

在现代仪器系统中,计算机已经与仪器结合得非常紧密,已成为整个系统的核心,许多传统仪器正在逐渐被计算机部分、甚至全部取代。粗略地说这种结合有两种方式:一种是将计算机装入仪器;另一种方式是将仪器装入计算机,即以

通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式,其实质就是一个按照仪器需求组织的数据采集系统。美国ni公司的labView就是目前在

这一领域内使用较为广泛的计算机语言。随着计算机网络的发展,虚拟仪器与internet技术的结合为虚拟仪器网络化、工业现场远程测控提供了更好的实现平台[1]。本文介绍在labView开发平台上结合tcp/ip技术实现远程数据采集传输

系统。

2、labView简介

labView广泛应用于数据采集与控制、信号处理以及数据表达等方面,它提供了一种全新的编程方法,即对软件对象“虚拟仪器(Vi)”进行图形化的组合操作[2][3]。labView 程序的执行顺序是按数据流的方式确定的,可以实现多任务的并行。

labView的程序由前面板(frontpanel)和流程图(blockdiagram)两部分组成,整个程序是基于多线程的设计,前面板和流程图各占用一个线程。前面板是labView程序的图形用户接口,此接口集成了用户输入,并显示程序的输出,相当于传统仪器的面板。流程图包含虚拟仪器程序的图形化源代码,编程控制和定义在前面板上的输入和输出功能。在虚拟仪器设计中,从控制模板中选取所需的控制及显示对象构建出仪器的操作面板;在功能模板中选取适当的功能模块并进行必要的连接与设置,制作控制流程图,完成所设计仪器应具有的功能,程序的模块化与层次化更为直观。

3、tcp技术

tcp/ip协议体系是目前最成功、使用最频繁的

intranet/internet协议[5]。作为一个流行的工业标准,tcp/ip技术有着良好的实用性和开放性。它定义了网络层的网际互连协议ip,传输层的传输控制协议tcp、用户数据协

议udp,等等。基于tcp/ip技术可以架构各种web服务,如邮件传输smtp、文件传输Ftp,以及利用超文本传输协议http 实现动态网页发布[5]和网络浏览。

在数据传输中,tcp/ip网络通过提供通用网络服务,使得具体网络技术对用户或应用程序透明,从而将具体通信问题从网络细节中解放出来,使网络应用更加灵活方便。体现到labview应用中,我们可以直接调用tcp模块完成流程编写,而无需过多考虑网络的底层实现。

协议结构上,tcp/ip体系利用基于无连接传输的ip协议,具体表现为ip地址,来区分网络中不同的数据站点。同时提供了两种传输方式:传输控制协议(tcp)为典型的传输大量数据或需要接收数据许可的应用程序提供面向连

接和可靠的通信;用户数据协议(udp)提供无连接的通信,典型的即时传输少量数据的应用程序使用udp。

根据ip协议内容和tcp的报文格式(图1),数据传输需确定各主机的ip地址及通信的源端口号、目标端口号,也即通常所称套接字socket,从而实现端口对端口基础上的面向连接的数据通信。

相对于其他网络协议,tcp/ip这种端对端的传输具有两大优点。第一,tcp/ip跟其它协议相比,显得简洁清晰。利用通用接口,实现方便。第二,tcp/ip的效率相当高。tcp/ip 的ip协议是“尽力传递”方式,只有tcp层为保证传输可

靠性而做必要的工作,这样的工作模式在物理网络可靠的环境下传输效率相当高,同时tcp实现的端对端连接也有效的保证了传输的正确率。

本文利用tcp、ip协议实现各数据采集点与处理主机的连接。

4、labview中tcp传输的实现

在labview中可以利用已发布的tcpVi及相关子例程设计实现tcp通信[4]。此前需要在通信的计算机正确安装tcp/ip协议簇。在已接入internet/intranet的

windows/unix系统中,tcp/ip协议是内置的;若是新接入的计算机系统,须确保tcp/ip正确的安装和设置,同时保证通信所需的源端口/目标端口开放。

由于实现的是把各数据点的数据汇总到处理主机,设计上采用服务器/客户端通信模式,Vi程序分成两部分:处理主机工作在server模式,完成数据接受,并提供接口用于数据的相关后续处理;数据点计算机工作于client模式,实现数据传送。

设计其工作模式:

(1)server主机处于工作状态,并监听通信端口,等待client发送的连接请求;

(2)client计算机开启tcp连接;

(3)server主机响应并建立数据传输通道;

(4)连接过程判断网络错误,若有则中断连接;

(5)数据传输,利用Vi模块tcpread/write完成;

(6)传输完毕中断连接。

设计过程调用到labView提供基于tcp连接的Vi函数模块如图2所示,可以在blockdiagram中直接应用。

以下为根据此工作模式设计的数据传输实例。为通用起见,client端所用数据为正弦波发生器产生。通信过程引入错误检测机制,可以对传输过程的错误进行判断,方便管理,也可以针对不同应用屏蔽相关网络错误。

(图3server端流程图)

(图4client端流程图)

从工作情况看,server端能够正确接收client端的数据并能实时输出,工作延时只受网络条件影响,说明本方法成功实现数据tcp传送,完全可以应用到分布式的现场监控中。

(图5client工作过程面板显示)

(图6server工作过程面板显示)

5、总结

在远程测控中,由于存在数据采集点多级分散,数据的采集与传输通常需要专用的网络,花费较大。本方法利用现存的intranet/internet网络可以有效提高资源的使用率、削减应用成本,而实现采用面向连接的传输模式,更能保证

WebSocket协议的握手和数据帧

WebSocket协议的握手和数据帧 WebSocket是定义服务器和客户端如何通过Web通信的一种网络协议。协议是通信的议定规则。组成互联网的协议组由IETF(互联网工程任务组)发布。IETF发布评议请求(Request for Comments,RFC),精确地规定了协议(包括RFC 6455):WebSocket协议。RFC 6455于2011年12月发布,包含了实现WebSocket客户端和服务器时必须遵循的规则。 websocket基本上是一个很简单的协议, 主要流程非常少, 实现起来也很简单。 为简单起见, 下面只分析握手和数据帧的报文. 一. 握手(handshake). 握手协议由客户端发起, 服务器响应, 一来一回就完成了. 基本上是为了兼容现有的http 基础设施. 下面是一个客户端发起的握手请求: 47 45 54 20 2F 20 48 54 54 50 2F 31 2E 31 0D 0A GET./.HTTP/1.1.. 55 70 67 72 61 64 65 3A 20 77 65 62 73 6F 63 6B Upgrade:.websock 65 74 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 et..Connection:. 55 70 67 72 61 64 65 0D 0A 48 6F 73 74 3A 20 31 Upgrade..Host:.1 39 32 2E 31 36 38 2E 38 2E 31 32 38 3A 31 33 30 92.168.8.128:130 30 0D 0A 4F 72 69 67 69 6E 3A 20 6E 75 6C 6C 0D 0..Origin:.null. 0A 50 72 61 67 6D 61 3A 20 6E 6F 2D 63 61 63 68 .Pragma:.no-cach 65 0D 0A 43 61 63 68 65 2D 43 6F 6E 74 72 6F 6C e..Cache-Control 3A 20 6E 6F 2D 63 61 63 68 65 0D 0A 53 65 63 2D :.no-cache..Sec- 57 65 62 53 6F 63 6B 65 74 2D 4B 65 79 3A 20 64 WebSocket-Key:.d 33 35 39 46 64 6F 36 6F 6D 79 71 66 78 79 59 46 359Fdo6omyqfxyYF 37 59 61 63 77 3D 3D 0D 0A 53 65 63 2D 57 65 62 7Yacw==..Sec-Web 53 6F 63 6B 65 74 2D 56 65 72 73 69 6F 6E 3A 20 Socket-Version:. 31 33 0D 0A 53 65 63 2D 57 65 62 53 6F 63 6B 65 13..Sec-WebSocke 74 2D 45 78 74 65 6E 73 69 6F 6E 73 3A 20 78 2D t-Extensions:.x- 77 65 62 6B 69 74 2D 64 65 66 6C 61 74 65 2D 66 webkit-deflate-f 72 61 6D 65 0D 0A 55 73 65 72 2D 41 67 65 6E 74 https://www.360docs.net/doc/ad9984717.html,er-Agent 3A 20 4D 6F 7A 69 6C 6C 61 2F 35 2E 30 20 28 57 :.Mozilla/5.0.(W 69 6E 64 6F 77 73 20 4E 54 20 36 2E 31 3B 20 57 indows.NT.6.1;.W 4F 57 36 34 29 20 41 70 70 6C 65 57 65 62 4B 69 OW64).AppleWebKi 74 2F 35 33 37 2E 33 36 20 28 4B 48 54 4D 4C 2C t/537.36.(KHTML, 20 6C 69 6B 65 20 47 65 63 6B 6F 29 20 43 68 72 .like.Gecko).Chr 6F 6D 65 2F 33 32 2E 30 2E 31 36 35 33 2E 30 20 ome/32.0.1653.0. 53 61 66 61 72 69 2F 35 33 37 2E 33 36 0D 0A 0D Safari/537.36... 0A

传输控制协议(TCP)

《计算机网络实验》实验报告 实验名称:传输控制协议(TCP) 年级: 专业:班级: 姓名: 学号:成绩: 指导教师:卢正添 提交报告时间: 2012年 5月3 日 实验目的 1.掌握TCP协议的报文格式 2.掌握TCP连接的建立和释放过程

3.掌握TCP数据传输中编号与确认的过程 4.掌握TCP协议校验和的计算方法 5.理解TCP重传机制 实验环境配置 该实验采用网络结构一 实验步骤 练习一 1.主机B、C、D启动协议分析器进行数据捕获,并设置过滤条件(提取TCP协议)。 2.主机C打开TCP工具,类型选择“服务器”,端口填写大于1024的值;点击“创建”,如 果端口被占用则选择其它。主机A打开TCP工具,类型选择“客户端”,地址填入主机C 的IP地址;在端口填入主机C的TCP工具监听的端口;点击[连接]按钮进行连接。 3.察看主机B、C、D捕获的数据,填写下表。 CP连接建立时,前两个报文的首部都有一个“maximum segment size”字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。 maximum segment size=1460

4.主机A断开与主机C的TCP连接。 5.察看主机B、C、D捕获的数据,填写下表。

练习二 ?本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组,现仅以主机A和B为例,说明实验步骤。 ?在本实验中由于TCP连接有超时时间的限制,故仿真编辑器和协议分析器的两位同学要默契配合,某些步骤(如计算TCP校验和)要求熟练、迅速。 ?为了实现TCP三次握手过程的仿真,发送第一个连接请求帧之前,仿真端主机应该使用“仿真编辑器/工具菜单/TCP屏蔽/启动屏蔽”功能来防止系统干扰(否则计算机系统的网络会对该请求帧的应答帧发出拒绝响应)。 ?通过手工编辑TCP数据包实验,要求理解实现TCP连接建立、数据传输以及断开连接的全过程。 在编辑的过程中注意体会TCP首部中的序列号和标志位的作用。 首先选择服务器主机上的一个进程作服务器进程,并向该服务器进程发送一个建立连接请求报文,对应答的确认报文和断开连接的报文也编辑发送。其步骤如下: 1.主机B启动协议分析器捕获数据,设置过滤条件(提取HTTP协议)。 2.主机A上启动仿真编辑器,在界面初始状态下,程序会自动新建一个单帧,可以利用仿真 编辑器打开时默认的以太网帧进行编辑。 3.填写该帧的以太网协议首部,其中: 源MAC地址:主机A的MAC地址。 目的MAC地址:服务器的MAC地址。 协议类型或数据长度:0800(IP协议)。 4.填写IP协议头信息,其中: 高层协议类型:6(上层协议为TCP)。 总长度:40(IP首部+TCP首部)。 源IP地址:主机A的IP地址。

101规约_报文传输过程,数据传输方式

101规约报文分析与101规约_报文传输过程 ?平衡式和非平衡式传输 ?非平衡传输(Unbalanced tranmission) 主站采用顺序地查询(召唤)子站来控制数据传输,在这种情况下主站是请求站,它触发所有报文的传输,子站是从动站,只有当它们被查询(召唤)时才可能传输。 ?平衡传输(Balanced tranmission) 采用平衡传输,每一个站可能启动报文传输。因为这些站可以同时既作为启动站又可以作为从动站,它们被称为综合站。 初始化过程 ?控制站初始化 ?被控站初始化 ?被控站被远方初始化 过程 ?召唤链路状态 ?复位RTU ?召唤链路状态 ?召唤一级数据。 初始化过程报文分析: 1)当通信中断后,主站发“请求链路状态”,等待与子站建立通信联系 M->R :10 49 01 4A 16 M->R :10 49 01 4A 16 报文解析:请求链路状态,固定帧。

启动字符(1个字节):10; 控制域(1个字节):49(4:主->子站。FCB位无效,9:请求链路状态) 链路地址(1个字节):1 校验码(1个字节):4A 结束字符(1个字节):16 2)通信建立,开始初始化过程,共四个报文。 初始化过程-1 请求链路状态 M->R :10 49 01 4A 16 R->M :10 0B 01 0C 16 报文解析: 控制域(1个字节):49(4:主->子站。FCB位无效,9:请求链路状态) 0B(0:子->主站。FCB位无效,B:响应链路状态)初始化过程-2 复位远方链路 M->R :10 40 01 41 16 R->M :10 20 01 21 16 报文解析: 控制域(1个字节):40(4:主->子站FCB位无效,0:复位远方链路) 20(2:子->主站FCB位无效,ACD=1, 0:确认)初始化过程-3 请求1级数据 M->R :10 7A 01 7B 16 R->M :68 09 09 68 08 01 46 01 04 01 00 00 02 CRC 16 报文解析: 控制域(1个字节):7A(7:主->子站FCB位有效,A:召唤一级数据) 回答报文:有单字节报文,有子站初始化结束的可变帧报文,有无所回答的固定帧报文。?总召唤命令 初始化报文报文结束后进行全数据召唤命令。 全数据召唤后,子站需回答确认命令,然后等待主站召唤一级数据, 将全数据上传。

Socket通信协议

一.登录 指令:SocketCommand.LoginCommand.Login 参数:用户名+“|”+密码 二.登录成功 指令:SocketCommand.LoginCommand.LoginOk 参数:服务器下当前账号所拥有的的摄像头数量+“|”+上次登录时间+“|”+上次登录IP 说明:登录成功会同时返回服务器上该账号下摄像头的数量,请与本地摄像头数量进行比对,然后再发起上传或者下载的指令 三.登录失败 指令:SocketCommand.LoginCommand.LoginError 参数:登录失败原因,一般为“用户名或者密码错误!” 说明:收到此指令,可直接用弹出窗口显示参数内容提醒用户,用户重新输入用户名密码后再重新发起登录指令 四.创建数据连接 指令:SocketCommand.NormalCommand.CreatDataSocket 参数:用户名+“|”+密码 说明:申请创建数据传输专用连接,主要是为了在高峰期或者数据量大的情况下同步摄像头数据而不会影响到主端口通讯 五.返回数据端口 指令:SocketCommand.NormalCommand. ReturnDataSocketPort 参数:数据传输端口 说明:服务端针对CreatDataSocket指令所返回的结果,当服务端目前没有可用端口的时候参数会返回空值,请注意判断,如果参数不为空,可针对此端口发起socket短 连接,此连接不需要保持心跳包,不需要验证身份 六.上传摄像头 指令:SocketCommand.CaramCommand.UploadCaramer 参数:摄像头ID+“|”+摄像头密码+“|”+当前数量+“|”+总数量 说明:登录成功后如果判断到本地的摄像头数量大于服务器上的摄像头数量,就可以立即发起创建数据连接指令,然后根据返回的端口成功创建数据连接之后,就可以 发起该指令了,一次只上传一个摄像头,第三个参数默认从1开始 七.上传摄像头成功 指令:SocketCommand.CaramCommand. UploadSucess 参数:摄像头ID+“|”+摄像头在线状态+“|”+已同步数量+“|”+总数量 说明:当已同步数量等于总数量的时候,就可以关闭连接了,关闭连接不需要通知服务端 八.上传摄像头失败 指令:SocketCommand.CaramCommand. UploadFail 参数:摄像头ID+“|”+失败原因+“|”+已同步数量+“|”+总数量 说明:失败原因有以下几个值:(1)ID和密码不匹配(2)该摄像头绑定账号已满九.下载摄像头 指令:SocketCommand.CaramCommand.DownLoadCaramer 参数:已下载的摄像头数量 说明:同上传摄像头的说明

TCP传输控制协议

传输控制协议(英语:Transmission Control Protocol, TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。 在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP 为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。 运作方式

TCP连接包括三个状态:连接创建、数据传送和连接终止。 通路的创建 TCP用三路握手(three-way handshake)过程创建一个连接。在连接创建过程中,很多参数要被初始化,例如序号被初始化以保证按序传输和连接的强壮性。 TCP连接的正常创建 一对终端同时初始化一个它们之间的连接是可能的。但通常是由一端打开一个套接字(socket)然后监听来自另一方的连接,这就是通常所指的被动打开(passive open)。服务器端被被动打开以后,用户端就能开始创建主动打开(active open)。 1.客户端通过向服务器端发送一个SYN来创建一个主动打开,作 为三路握手的一部分。 2.服务器端应当为一个合法的SYN回送一个SYN/ACK。 3.最后,客户端再发送一个ACK。这样就完成了三路握手,并进 入了连接创建状态。

MODBUS-TCP 协议

MODBUS-TCP 协议 一 以太网的标准 以太网是一种局域网。早期标准为IEEE 802.3,数据链路层使用CSMA/CD,10Mb/s 速度物理层有: (1)10 Base 5粗同轴电缆,RG-8,一段最长为500m; (2)10 Base 2细同轴电缆,RG-58,一段最长为185m; (3)10 Base T双绞线,UTP或STP,一段最长为100m。 快速以太网为100Mb/s,标准为802.3a,介质为100 Base Tx双绞线、100 Base Fx光纤。 目前10/100M以太网使用最为普遍,很多企事业用户已实现100M到以太网桌面,确实体验到高速“冲浪”的快感,另外从距离而言,非屏蔽双绞线(UTP)为100m,多模光纤可达2~3km,单模光纤可大于100km。千兆以太网1000Mb/s为802.3z/802.3ab,万兆以太网10Gb/s 为802.3ae,将为新一轮以太网的发展带来新的机遇与冲击。 二 工业以太网与商用以太网的区别 什么是工业以太网?技术上,它与IEEE802.3兼容,故从逻辑上可把商用网和工业网看成是一个以太网,而用户可根据现场情况,灵活装配自己的网络部件,但从工业环境的恶劣和抗干扰的要求,设计者希望采用市场上可找到的以太网芯片和媒介,兼顾考虑下述工业现场的特殊要求:首先要考虑高温、潮湿、振动;二是对工业抗电磁干扰和抗辐射有一定要求,如满足EN50081-2、EN50082-2标准,而办公室级别的产品未经这些工业标准测试,表1列出了一些常用工业标准。为改善抗干扰性和降低辐射,工业以太网产品多使用多层线路板或双面电路板,且外壳采用金属如铸铝屏蔽干扰;三是电源要求,因集线器、交换机、收发器多为有源部件,而现场电源的品质又较差,故常采用双路直流电或交流电为其供电,另外考虑方便安装,工业以太网产品多数使用DIN导轨或面板安装;四是通信介质选择,在办公室环境下多数配线使用UTP,而在工业环境下推荐用户使用STP(带屏蔽双绞线)和光纤。 三 TCP/IP 1. 为什么使用TCP/IP? 最主要的一个原因在于它能使用在多种物理网络技术上,包括局域网和广域网技术。TCP/IP协议的成功很大程度上取决于它能适应几乎所有底层通信技术。 20世纪80年代初,先在X.25上运行TCP/IP协议;而后又在一个拨号语音网络(如电话系统)上使用TCP/IP协议,又有TCP/IP在令牌环网上运行成功;最后又实现了TCP/IP远程

WebSocket协议中文版

Internet Engineering Task Force (IETF) I. Fette Request for Comments: 6455 Google, Inc. Category: Standards Track A. Melnikov ISSN: 2070-1721 Isode Ltd. December 2011 张开涛[译] WebSocket协议

摘要 WebSocket协议实现在受控环境中运行不受信任代码的一个客户端到一个从该代码已经选择加入通信的远程主机之间的全双工通信。用于这个的安全模型是通常由web浏览器使用的基于来源的安全模型。该协议包括一个打开阶段握手、接着是基本消息帧、TCP之上的分层(layered over TCP)。该技术的目标是为需要与服务器全双工通信且不需要依赖打开多个HTTP连接(例如,使用XMLHttpRequest或