UDP作为传输层协议,本身并不具有可靠性传输特点,所以不需要建立连接通道,可以直接发送数据。当然,前提是需要知道对方的通信端点,也就是IP地址和端口号。
端口号是传输层协议中最显著的特征,传输层根据它来确定上层绑定的应用程序,以达到把数据交给上层应用处理的目的。
所以如果要构造UDP报文,必须要设置UDP Port口。UDP报文结构如下:
UDP报文结构相对简单,CAPL构造它也很容易。完整代码如下:
on key 's'
{
ethernetPacket ppkt;//声明
ppkt.udp.Init();//udp initial
ppkt.udp.source = 52;//设置源端口号
ppkt.udp.destination = 17;//设置目标端口号
ppkt.udp.SetData(0, "Hello", elcount("Hello"));//设置payload数据
ppkt.ipv4.source = ipGetAddressAsNumber("192.168.0.52");//设置源IP地址
ppkt.ipv4.destination = ipGetAddressAsNumber("192.168.0.17");//设置目的IP地址
ppkt.source = ethGetMacAddressAsNumber("02:00:00:00:00:52"