基于Internet的远程监控系统设计 - 图文(6)

2019-04-16 20:25

一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器时入Established状态,完成三次握手[10]。

TCP是以连接为基础的通信方式,它必须首先建立连接,然后利用连接的IP地址和端口号进行数据传输。TCP有两种连接方式:一被种是服务器模式(动开启),即等待接收连接请求以建立连接;另一种是客户端模式(主动开启),即发送连接请求到服务器,图3-2是W5100 实现TCP通信的示意图:

图3-2 :W5100 实现TCP通信

一、服务器模式(SERVER MODE):

采用此模式时,首先要进行端口初始化,初始化一个端口需要设置运行模式和端口号,并在端口命令寄存器打开端口。端口初始化涉及到以下寄存器: ? 端口n模式寄存器Sn_MR

21

? 本机端口n的端口号Sn_PORT ? 端口n命令寄存器Sn_CR

工作在服务器模式下的端口要侦听是否有连接请求,若有则建立连接准备收发数据。收发完数据后还要断开连接。过程流程如图3-3所示:

22

打开端口 侦听 N 建立连接成功? Y Y 收到数? 接收程序 N 发送数据程序 发送数? Y N 收到完成信号? Y N 断开连接程序 N Y 要断开连接? 关闭端口? N N 超时? N 超时? Y Y 关闭端口 图3-3 TCP数据服务器模式传输示意图

工作在服务器模式的程序实现方法如附录2所示。

23

二、客户端模式(client)

客户端模式下的端口要主动发起连接请求,若成功建立连接则准备收发数据。收发完数据后还要断开连接。过程流程如图3-4所示:

开端口 建立连接 建立成功? Y N N 收到数据? Y 接收程序 发送数据? N Y 最后的ACK? N N 超时? 要断开链接? N Y N 超时? Y 发送程序 关闭连接程序 Y 要关闭端口? N N 超时? N Y Y 关闭端口 图 3-4:TCP数据传输示意图(客户端模式)

24

TCP工作在客户端时需要首先进行端口初始化。初始化一个端口需要设置运行模式和端口号,并在端口命令寄存器打开端口,以下寄存器端口需初始化:端口n模式寄存器(Sn_MR),本机端口n的端口号(Sn_PORT),端口n命令寄存器(Sn_CR)。将端口n初始化为TCP模式的具体程序可以参考上面服务器模式中的初始化程序[11]。

3.1.3 W5100实现UDP数据通信

UDP(User Datagram Protocol),即用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。是一个简单的面向数据报的传输层协议。UDP是一种不可靠的、无连接的数据传输方式。它不需要建立 就可以进行数据传输,因此UDP的数据可能丢失,覆盖或翻转。由于数据包传输的速度可能较快,接收方可能无法及时处理数据包,因此,用户在应用层必须确保数据传输的可靠性。UDP传输数据过程流程如图3-5所示:

25


基于Internet的远程监控系统设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电加热炉温度微机控制系统课设

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: