云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 串口转以太网,TCP转RS232

串口转以太网,TCP转RS232

  • 62 次阅读
  • 3 次下载
  • 2025/12/19 10:06:41

哈尔滨工业大学(威海)本科毕业设计(论文)

网点1的事件发送SYN seq=x网络报文网点2的事件接收SYN报文段 发送 SYN seq=y ACKx+1接收SYN+ACK报文段发送ACKy+1接收ACK报文段

图4-5 三次握手的报文序列

发送第一个SYN的一端将执行主动打开。接收这个SYN并发回下一个SYN的另一端执行被动打开。当一端为建立连接而发送它的SYN时,它为连接选择一个初始序号。ISN随时间而变化,因此每个连接都将具有不同的ISN。系统中采用系统的时钟计数器作为初始的ISN,由于系统时钟是一个32比特的计数器,每2ms加1,这样选择序号就可以防止在网络中被延迟的分组在以后又被传送,而导致某个连接的一方对它作错误的解释。

建立一个连接需要三次握手,而终止一个连接要经过4次握手,具体过程如图4-6。关闭连接需要几个步骤:

网点1的事件(应用程序关闭连接)发送 FIN seq=x网络报文网点2的事件接收FIN报文段发送ACKx+1(通知应用程序)(应用程序关闭连接)发送 FINseq=y ACKx+1接收ACK报文段接收FIN+ACK报文段发送ACKy+1接收ACK报文段

图4-6 用于关闭连接的改进的四次握手操作

(1) 首先进行关闭的一方(即发送第一个FIN)将执行主动关闭,而另一方(收到这个FIN)执行被动关闭。

(2) 当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。同时TCP服务器还向应用

- - - 25 -

哈尔滨工业大学(威海)本科毕业设计(论文)

程序传送一个文件结束符。

(3) 接着这个服务器程序就关闭它的连接,导致它的TCP端发送一个FIN。

(4) 客户必须发回一个确认,并将确认序号设置为收到序号加1。 3. 套接字定义

查看TCP头部数据的源端口号和目的端口号。源端口号和目的端口号是不能简化的,因为一个TCP连接是由源IP地址、源端口号、目的IP地址、目的端口号唯一确定的。所以每次服务器端在侦听状态时,当接收到一个TCP的连接请求,发送SYNACK后,或作为客户端在申请建立TCP连接时,要记录两端的IP地址、使用的端口号等关于该连接的相关信息,以便对后面到达的数据报进行判断,看是否属于某个已建立的连接。如果支持多个连接,就要记录大量与连接相关的数据,并且在每个数据报到达时,都要判断该数据报所属连接,然后在不同连接间切换。而且如果支持多个连接,对其他一些对应于某个连接的相关信息,如序列号、确认号、所处状态等,都要分别进行存储并作相应处理。基于此,系统定义了套接字来存储TCP的连接信息。

基于套接字的函数定义如下:

TCPSocket()。函数原型:socket xdata * TCPSocket(IP_ADDR ScrIP)。功能:申请一个套接字。ScrIP是这个套接字的本地IP地址。

TCPConnect()。函数原型:BOOL TCPConnect(socket xdata*pTCB, IP_ADDR DestIP, WORD DestPort, void (code*recv)(void xdata*buf, WORD size), void (ode*close)(socket xdata*pSocket))。功能:向IP地址为DestIP的服务器的DestPort端口发起连接。参数recv和close用于设置当接收到数据包和对方要求关闭TCP连接时应该调用的回调函数指针。

TCPSend()。函数原型:BOOL TCPSend(socket xdata*pTCB, void xdata*buf, WORD DataSize)。功能:发送数据。发送数据的TCP连接是套接字指针pTCB对应的连接,发送的数据的起始地址为buf,大小为DataSize。

TCPListen()。函数原型:BOOL TCPListen(socket xdata*pTCB, WORD ScrPort, void(code*accept)(socket xdata*pNewTCB))。功能:使用套接字pTCB在ScrPort端口监听。参数accept是当有客户端向这个监听端口连接成功时调用的回调函数指针。

TCPClose()。函数原型:void TCPClose(socket xdata*pTCB)。功能:主

- - - 26 -

哈尔滨工业大学(威海)本科毕业设计(论文)

动关闭连接时调用TCPClose函数,它将要求关闭套接字pTCB对应的连接。

TCPAbort().函数原型:void TCPAbort(socket xdata*pTCB)。功能:当使用完这个套接字以后,调用TCPAbort,将这个套接字释放,还给系统。

4. 简化的窗口机制

标准的TCP协议使用慢启动的滑动窗口机制。滑动窗口是一种在流控制和网络传输效率之间取得折中的方案,它允许发送方在等待一个确认之前发送多个窗口。对于使用了滑动窗口的TCP连接,其确认是一种批量的确认,处理器要对多个数据报连续传输进行维护和处理,困难较大[18]。

而滑动窗口的一个极限情况,是只使用单个窗口,这就变成了一种简单确认的处理方法。使用该方法后,所有的处理只是对于单个数据报的发送和确认,虽然节约了系统的资源,也使维护更加方便,但是却降低了效率。

系统采用了折衷的方法,在定义最大报文段长度(MSS)时,取一个相对较小的值,因为系统应用于用串行通讯方式进行信息交流的嵌入式系统,通常传输的数据量不是很大,选取的MSS为512BYTE,窗口大小选定为1024BYTE,这样虽然在数据量很大时效率较低,但在数据量不是很大时显示出了相对的优势。

5. 简化的超时与重传机制 系统中采用简化的超时与重传机制。由于系统资源有限,在报文丢失是采取了比较简单的解决办法,如果在每个套接字里保存一个最近发送段的副本,在报文丢失时重新传输,将会占用有限的存储空间,本系统采用了比较经济的方法,就是在套接字中保存最近一个报文的必要信息,使得最近的传输可以被重新生成出来,报文丢失时,循环缓冲区的试验指针移回到发送指针的位置、数据、标志或者这两者就都可以重新发送[19]。

报文被发送出后,系统将启动一个定时器,记录发送的时间,在套接字定义中为time字段,同时初始化一个超时时间字段timeout,当超时时间到而并没有收到该报文段的确认时,即认为此报文段丢失,重传该报文,并将超时时间字段增倍,若在超时时间内收到确认ACK,则复位发送时间及超时时间字段,若超时时间到达后仍没有收到该报文段的确认,再次重发此报文,并且超时时间再加倍,如此重发三次后若超时时间到达仍旧没有收到确认,即认为该TCP连接己断开,初始化套接字。剩余发送次数保存在retries字段中。

- - - 27 -

哈尔滨工业大学(威海)本科毕业设计(论文)

6. TCP报文处理

系统处理接收的TCP段由TCP报文处理函数实现,数据存放在TCP缓冲区中,并置位相应标志。TCP报文处理流程如图4-7所示。

开始开始正确的正确的TCPTCP报文报文Y校验和正确否?校验和正确否?Y读入读入TCPTCP选项(若有)选项(若有)NN有匹配的有匹配的SOCKETSOCKET??N有空闲的有空闲的SOCKETSOCKET??N读入读入TCPTCP报文报文YY读入读入TCPTCP报文报文复位连接复位连接结束结束

图4-7 TCP报文处理流程

7. 发送TCP报文

系统的TCP/IP协议栈实现了模块化的机制,在发送TCP报文时,TCP层把数据报文封装好之后,交给IP层,即认为报文已发送,至于报文的发送任务就由IP层处理。TCP报文发送流程如图4-8所示。

- - - 28 -

搜索更多关于: 串口转以太网,TCP转RS232 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

哈尔滨工业大学(威海)本科毕业设计(论文) 网点1的事件发送SYN seq=x网络报文网点2的事件接收SYN报文段 发送 SYN seq=y ACKx+1接收SYN+ACK报文段发送ACKy+1接收ACK报文段 图4-5 三次握手的报文序列 发送第一个SYN的一端将执行主动打开。接收这个SYN并发回下一个SYN的另一端执行被动打开。当一端为建立连接而发送它的SYN时,它为连接选择一个初始序号。ISN随时间而变化,因此每个连接都将具有不同的ISN。系统中采用系统的时钟计数器作为初始的ISN,由于系统时钟是一个32比特的计数器,每2ms加1,这样选择序号就可以防止在网络中被延迟的分组在以后又被传送,而导致某个连接的一方对它作错误的解释。 建立一个连接需要三次握手,而终止一个连接要经过4次握手,具体过程如图4-6。关闭连接需要几

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com