报文

报文

  报文是网络中交换与传输的数据单元。报文包含了将要发送的完整的数据信息,其长短很不一致。(可分为自由报文和数字报文)
  报文也是网络传输的单位,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头
  以一定格式组织起来的数据.
  比如里面有报文类型, 报文版本, 报文长度, 报文实体等等信息.
  完全与系统定义, 或自定义的数据结构同义.
  来几个 TCP/IP 头结构感受一下:
  typedef struct _iphdr //定义IP首部
  {
  unsigned char h_lenver; //4位首部长度+4位IP版本号
  unsigned char tos; //8位服务类型TOS
  unsigned short total_len; //16位总长度(字节)
  unsigned short ident; //16位标识
  unsigned short frag_and_flags; //3位标志位
  unsigned char ttl; //8位生存时间 TTL
  unsigned char proto; //8位协议 (TCP, UDP 或其他)
  unsigned short checksum; //16位IP首部校验和
  unsigned int sourceIP; //32位源IP地址
  unsigned int destIP; //32位目的IP地址
  }IP_HEADER;
  typedef struct psd_hdr //定义TCP伪首部
  {
  unsigned long saddr; //源地址
  unsigned long daddr; //目的地址
  char mbz;
  char ptcl; //协议类型
  unsigned short tcpl; //TCP长度
  }PSD_HEADER;
  typedef struct _tcphdr //定义TCP首部
  {
  USHORT th_sport; //16位源端口
  USHORT th_dport; //16位目的端口
  unsigned int th_seq; //32位序列号
  unsigned int th_ack; //32位确认号
  unsigned char th_lenres; //4位首部长度/6位保留字
  unsigned char th_flag; //6位标志位
  USHORT th_win; //16位窗口大小
  USHORT th_sum; //16位校验和
  USHORT th_urp; //16位紧急数据偏移量
  }TCP_HEADER;
  // 这里只是数据头, 但头最能让你看清报文是啥东东
  // IP_HEADER::total_len 指明了实体数据(也就是真正的消息内容)长度.
  // 其他以此类推
  

报文的认证方式


  报文的认证方式有传统加密方式的认证、没有报方加密的报文认证、使用密钥的报文认证码方式、使用单向散列函数的认证和数字签名认证方式。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值