美文网首页
UDP数据包的简单分析

UDP数据包的简单分析

作者: 李die喋 | 来源:发表于2019-08-14 15:01 被阅读0次

UDP报文头

image

UDP的报文头结构比较简单。

  • 源端口:16位,标识本地端口
  • 目的端口:16位,标识目标端口
  • 总长度:标识该报文段包括报头部分的所有数据字节的长度。
  • 校验和:计算方式和TCP相似
  • 数据:可变长度

UDP校验和

UDP中的校验和是不必要的,即使数据段校验和不通过也没办法通知对端发送数据。但效率比TCP高。

UDP头部报文代码解析

public class UDPacket {

    public static final int SOURCE_PORT_BIT = 0;
    public static final int DESTINATION_PORT_BIT = 2;
    public static final int TOLAL_LENGTH_BIT = 4;
    public static final int CHECK_SUM_BIT = 6;

    public byte[] m_Data;
    public int m_Offset;

    public UDPacket(byte[] data,int offset){
        this.m_Data = data;
        this.m_Offset = offset;
    }

    public int getSourcePort(){
        return Packet.readShort(m_Data,m_Offset + SOURCE_PORT_BIT);
    }

    public int getDestinationPort(){
        return Packet.readShort(m_Data,m_Offset + DESTINATION_PORT_BIT);
    }

    public int getTotalLength(){
        return Packet.readShort(m_Data,m_Offset + TOLAL_LENGTH_BIT);
    }
    
    public int getCheckSum(){
        return Packet.readShort(m_Data,m_Offset + CHECK_SUM_BIT);
    }
    
    public void setSourcePort(int port){
        Packet.writeShort(m_Data,m_Offset + SOURCE_PORT_BIT,(short) port);
    }
    
    public void setDestinationPort(int port){
        Packet.writeShort(m_Data,m_Offset + DESTINATION_PORT_BIT,(short) port);
    }
}

UDP相较于之前的IP头、TCP头的代码解析就相对简单了许多,在会这些之前会位运算是很重要的。加油啊!!!

相关文章

  • UDP数据包的简单分析

    UDP报文头 UDP的报文头结构比较简单。 源端口:16位,标识本地端口 目的端口:16位,标识目标端口 总长度:...

  • 网络 Conclusion

    1. TCP和UDP TCP/UDP详细分析TCP是点对点的通信,UDP是广播TCP控制了数据包的发送序列的产生,...

  • (009)TCP/IP协议-UDP

    一、引言 UDP(User Datagram Protocol 用户数据包协议)是一个简单的面向数据包的运输层协议...

  • 网络协议补完计划--UDP协议

    目录 前言 UDP协议概述 套接字 多路复用 多路分解 UDP数据包格式 UDP校验和的计算 UDP工作流程 标准...

  • UDP协议

    定义: 用户数据包协议(UDP),是一个简单的面向数据报的传输层协议。 功能: UDP为网络层以上和应用层一下提供...

  • TCP/IP详解 第十一章 UDP

    UDP特点 面向数据包的运输层协议,进程的每次输出都正好产生一个udp数据包,不提供可靠性。 IP 协议中的两大关...

  • Java NIO(十二) DatagramChannel

    Java NIO DatagramChannel是可以发送和接收UDP数据包的通道。 由于UDP是无连接的网络协议...

  • 构建UDP服务

    1. 什么是UDP服务? UDP又称用户数据包协议,与TCP一样同属于网络传输层。UDP与TCP最大的不同是UDP...

  • python面试题

    一、简述TCP和UDP的区别以及优缺点。 1、UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口...

  • 网络编程-select

    什么是UDP UDP,是User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI ...

网友评论

      本文标题:UDP数据包的简单分析

      本文链接:https://www.haomeiwen.com/subject/teigjctx.html