TCP/UDP数据结构

struct   tcp_hdr
    {
        u_int16_t   source;                
        u_int16_t   dest;                    
        u_int32_t   seq;                            
        u_int32_t   ack_seq;                 
#     if   __BYTE_ORDER   ==   __LITTLE_ENDIAN
        u_int16_t   res1:4;
        u_int16_t   doff:4;

        u_int16_t   fin:1;
        u_int16_t   syn:1;
        u_int16_t   rst:1;
        u_int16_t   psh:1;
        u_int16_t   ack:1;
        u_int16_t   urg:1;

        u_int16_t   res2:2;
#     elif   __BYTE_ORDER   ==   __BIG_ENDIAN
        u_int16_t   doff:4;
        u_int16_t   res1:4;
        u_int16_t   res2:2;

        u_int16_t   urg:1;
        u_int16_t   ack:1;
        u_int16_t   psh:1;
        u_int16_t   rst:1;
        u_int16_t   syn:1;
        u_int16_t   fin:1;
#     else
#       error   "Adjust   your   <bits/endian.h>   defines "
#     endif
        u_int16_t   window;
        u_int16_t   check;
        u_int16_t   urg_ptr;
};


struct udp_hdr
{
 u_short sport; // 源端口(Source port)
 u_short dport; // 目的端口(Destination port)
 u_short len;   // UDP数据包长度(Datagram length)
 u_short crc;   // 校验和(Checksum)
};

 

 

 

数据包:
 在应用层成为data
 在TCP层称为segment
 在IP层称为packet
 在数据链路层称为frame

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值