朱新星
摘要:随着计算机网络的广泛运用,作为计算机网络体系结构中的重要协议之一 —— UDP传输协议,已经广泛的运用到计算机网络的数据传输的过程中,而且希望数据可以高效、准确、迅速的完成传输。本文研究了运输层的UDP协议发送来的数据包在网络层的IP协议条件下对数据进行处理、发送的过程,主要包括建立连接,数据的接收和缓存,IP数据包头的处理以及数据发送四个步骤,接着设计了以为基础FPGA的功能实现方案。
关键词:UDP 协议 FPGA
中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2016)05-0000-00
传输控制协议/网际协议(Transmission Control Protocol/ Internet Protocol,TCP/IP)协议簇是Internet 和全球各地网络互联的引擎。本文针对网际层IP协议下的一项功能的实现,主要是针对从UDP协议下的数据包处理的过程。UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。
1数据报处理方案
1.1端口设计
端口应该由外部端口和内部端口组成。外部端口是控制硬件(以FPGA为例),主要包括时钟输入信号和复位输入信号。内部端口为运输层与网络层相互联系为原则设计的,不仅需要数据输入输出,也需要这两个模块间的相互控制。具体内部端口主要包括数据输入输出信号及对应的数据同步信号,两个准备信号,两个IP地址输入信号和输入同步信号的结束信号。信号描述如下:
时钟信号(clk)、复位信号(res)、UDP准备信号(udprd)、输入数据信号(isd):、输入数据同步信号(iss)、输入数据结束信号(ise)、源IP地址(sipa):、目的IP地址(dipa)、IP准备信号(iprd)、输出数据信号(osd)、输出数据同步信号(oss)。
具体端口设置如图1:
1.2 功能模块
1.2.1 建立连接模块
运输层和网络层之间有很多协议,不同协议对应不同数据包,如何选择合适通路选择特定数据包,这就要求有特定的连接过程完成特定的数据传输。
为了建立UDP协议数据和IP数据之间的相互通信,在方案中,选择增添一个建立连接模块,目的是完成两个功能。首先是完成UDP协议下的数据在特定通道内向网络层的传输,其次是产生控制信号,控制下一模块工作状态。在此过程中,主要涉及到两个信号,其一是udprd信号,是建立连接第一步,这个信号旨在反映UDP数据报已经准备好发送;其二是iprd信号,建立连接第二步,本信号是为了给运输层的UDP协议的反馈信号,如果接到收此信号,UDP数据报就开始发送了。本信号还有一个功能:当网络层对数据处理时,此信号会自动变低电平,将不会接收UDP数据报,直到在网络层的数据处理完毕。
1.2.2 数据接收存储模块
在此模块下,可分为数据接收部分和数据的存储部分。
首先介绍一下数据的接收部分,当大量的数据报准备进入网络层时,有些数据是没有意义的,所以要准确有效的接收来自UDP协议下的数据报,需要在这一部分完成此功能。在端口的设置,增加了同步接收信号和终止信号,当同步信号有效,数据为有效数据,当终止信号有效,则一个完整的UDP数据包就发送完成了。
当大量的UDP数据包进入到IP协议下准备处理,而处理速度是远远小于接收的速度,会导致数据的滞留,甚至数据会丢失。为了解决该问题,增加了一个数据存储模块,把数据存储下来,弥补了处理速度和接收速度的不匹配。
此模块还额外的完成了一个功能:计数功能。在加I P数据头需要每一包UDP数据包字节的长度信息进行存储。
1.2.3 IP数据包头处理及发送模块
每一份的IP数据包都是有IP数据包头和对应的UDP数据包组合成的。需要将其对应封装。
当IP数据包头处理完成了,紧接任务就是将其发送出去。在发送完IP数据包头紧跟要发送其对应的UDP数据包,这就是一个完整的IP数据包。如果输出同步信号有效,这些处理好的数据将发送到数据链路层供其使用。
2方案综述
(1)运输层和网络层之间建立连接,保证数据准确无误差的传输到网络层,产生控制信号,控制数据的接收;产生反馈信号,保证运输层的UDP数据包适时的传送过来。(2)读取UDP数据包并准确的计数,将已读的数据存入缓存中,产生信号,控制IP头处理模块的启动,然后将必要数据传递到IP头处理模块。(3)处理数据,将对应的一包UDP数据产生相应的IP数据包头,形成一个IP数据包。然后将包头发送,产生输出的同步信号,之后产生信号读取缓存中的数据,通过输出端口将其发送出去。
这就是一个UDP数据包的处理过程,不断反复以上步骤,UDP数据段就转变成了IP数据段。
本方案增加了同步数据的输出信号,这就可以自由的控制输入输出数据,不会导致数据的意外丢失。而这些信号还可以支持数据间断输入,给运输层数据传输很大的灵活性;还增加了udp和iprd信号,它们完成这两个层连接,给数据传输提供良好的初始条件。
参考文献
[1]TCP-IP详解(中文).pdf.
[2]张帆.《基于FPGA的IP协议处理器》.湖南大学硕士论文.
[3]雷钊等.《基于FPGA的TCP-IP协议的实现》.电脑编程技巧与维护,2009(5).