nmtcpstructs.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //=============================================================================
  2. //  Microsoft (R) Network Monitor (tm). 
  3. //  Copyright (C) 1993-1999. All rights reserved.
  4. //
  5. //  MODULE: nmtcpstructs.h
  6. //
  7. //  Definitions/declarations for parsing TCP frames.
  8. //=============================================================================
  9. #ifndef NMTCPSTRUCTS_H
  10. #define NMTCPSTRUCTS_H
  11. #ifdef __cplusplus
  12. extern "C"
  13. {
  14. #endif
  15. //
  16. // TCP Packet Structure
  17. //
  18. typedef struct _TCP 
  19. {
  20.     WORD  SrcPort;
  21.     WORD  DstPort;
  22.     DWORD SeqNum;
  23.     DWORD AckNum;
  24.     BYTE  DataOff;
  25.     BYTE  Flags;
  26.     WORD  Window;
  27.     WORD  Chksum;
  28.     WORD  UrgPtr;
  29. } TCP;
  30. typedef TCP * LPTCP;
  31. typedef TCP UNALIGNED * ULPTCP;
  32. INLINE DWORD TCP_HdrLen(ULPTCP pTCP)
  33. {
  34.     return (pTCP->DataOff & 0xf0) >> 2;
  35. }
  36. INLINE DWORD TCP_SrcPort(ULPTCP pTCP)
  37. {
  38.     return XCHG(pTCP->SrcPort);
  39. }
  40. INLINE DWORD TCP_DstPort(ULPTCP pTCP)
  41. {
  42.     return XCHG(pTCP->DstPort);
  43. }
  44. //
  45. // TCP Option Opcodes
  46. //
  47. #define TCP_OPTION_ENDOFOPTIONS   0
  48. #define TCP_OPTION_NOP            1
  49. #define TCP_OPTION_MAXSEGSIZE     2
  50. #define TCP_OPTION_WSCALE         3
  51. #define TCP_OPTION_SACK_PERMITTED 4
  52. #define TCP_OPTION_SACK           5
  53. #define TCP_OPTION_TIMESTAMPS     8
  54. //
  55. // TCP Flags
  56. //
  57. #define TCP_FLAG_URGENT     0x20
  58. #define TCP_FLAG_ACK        0x10
  59. #define TCP_FLAG_PUSH       0x08
  60. #define TCP_FLAG_RESET      0x04
  61. #define TCP_FLAG_SYN        0x02
  62. #define TCP_FLAG_FIN        0x01
  63. //
  64. // TCP Field Masks
  65. //
  66. #define TCP_RESERVED_MASK   0x0FC0
  67. #ifdef __cplusplus
  68. }
  69. #endif
  70. #endif