Changeset 389 for azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.h
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 9 * ã«ãã£ã¦å 10 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 11 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 12 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼ 14 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 33 * 害ãããï¼ä¸è¨èä½æ¨©è 34 ããã³TOPPERSããã¸ã§ã¯ããå 35 責ãããã¨ï¼ 7 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 8 * によって公表されている GNU General Public License の Version 2 に記 9 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 10 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 11 * 利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次の条件を満たすこと. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 84 72 85 73 /* 86 * TCP ããããRFC 793 åç 87 § 74 * TCP ヘッダ、RFC 793 参照 88 75 */ 89 76 90 77 typedef struct t_tcp_hdr { 91 uint16_t sport; /* éä¿¡å 92 ãã¼ãçªå· */ 93 uint16_t dport; /* å®å 94 ãã¼ãçªå· */ 78 uint16_t sport; /* 送信元ポート番号 */ 79 uint16_t dport; /* 宛先ポート番号 */ 95 80 96 uint32_t seq; /* SEQ çªå·*/81 uint32_t seq; /* SEQ 番号 */ 97 82 98 uint32_t ack; /* ACK çªå·*/83 uint32_t ack; /* ACK 番号 */ 99 84 100 uint8_t doff; /* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã) */101 uint8_t flags; /* ãã©ã°(ä¸ä½6ããã) */102 uint16_t win; /* ã¦ã£ã³ããµã¤ãº*/85 uint8_t doff; /* データオフセット(上位4ビット) */ 86 uint8_t flags; /* フラグ(下位6ビット) */ 87 uint16_t win; /* ウィンドサイズ */ 103 88 104 uint16_t sum; /* ãã§ãã¯ãµã*/105 uint16_t urp; /* ç·æ¥ãã¤ã³ã¿*/89 uint16_t sum; /* チェックサム */ 90 uint16_t urp; /* 緊急ポインタ */ 106 91 } __attribute__((packed, aligned(2)))T_TCP_HDR; 107 92 … … 109 94 110 95 /* 111 * TCP ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã96 * TCP ヘッダ構造体メンバアクセスマクロ 112 97 */ 113 98 … … 117 102 118 103 /* 119 * TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ã®å®ç¾©104 * TCP ヘッダのフラグフィールドの値の定義 120 105 */ 121 106 122 #define TCP_FLG_FIN UINT_C(0x01) /* FIN: æçµ */ 123 #define TCP_FLG_SYN UINT_C(0x02) /* SYN: åæ */ 124 #define TCP_FLG_RST UINT_C(0x04) /* RST: ã³ãã¯ã·ã§ã³ã®ãªã»ãã */ 125 #define TCP_FLG_PUSH UINT_C(0x08) /* PUSH:ããã·ã¥æ©è½ */ 126 #define TCP_FLG_ACK UINT_C(0x10) /* ACK: è¯å®å¿ç */ 127 #define TCP_FLG_URG UINT_C(0x20) /* URG: ç·æ¥æ 128 å ± */ 107 #define TCP_FLG_FIN UINT_C(0x01) /* FIN: 最終 */ 108 #define TCP_FLG_SYN UINT_C(0x02) /* SYN: 同期 */ 109 #define TCP_FLG_RST UINT_C(0x04) /* RST: コネクションのリセット */ 110 #define TCP_FLG_PUSH UINT_C(0x08) /* PUSH:プッシュ機能 */ 111 #define TCP_FLG_ACK UINT_C(0x10) /* ACK: 肯定応答 */ 112 #define TCP_FLG_URG UINT_C(0x20) /* URG: 緊急情報 */ 129 113 130 114 /* 131 * TCP ãªãã·ã§ã³ã®å®ç¾©115 * TCP オプションの定義 132 116 */ 133 117 134 /* ãªãã·ã§ã³ã®å*/118 /* オプションの型 */ 135 119 136 #define TCP_OPT_EOL UINT_C(0) /* æçµ*/137 #define TCP_OPT_NOP UINT_C(1) /* ä½ãããªã*/138 #define TCP_OPT_MAXSEG UINT_C(2) /* æ大ã»ã°ã¡ã³ãé·*/139 #define TCP_OPT_WINDOW UINT_C(3) /* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°*/140 #define TCP_OPT_SACK_PERM UINT_C(4) /* é¸æ ACK 許å¯*/141 #define TCP_OPT_SACK UINT_C(5) /* é¸æACK */142 #define TCP_OPT_TIMESTAMP UINT_C(8) /* ã¿ã¤ã ã¹ã¿ã³ã*/143 #define TCP_OPT_CC UINT_C(11) /* æ¥ç¶ã«ã¦ã³ã*/144 #define TCP_OPT_CCNEW UINT_C(12) /* æ¥ç¶ã«ã¦ã³ã*/145 #define TCP_OPT_CCECHO UINT_C(13) /* æ¥ç¶ã«ã¦ã³ã*/120 #define TCP_OPT_EOL UINT_C(0) /* 最終 */ 121 #define TCP_OPT_NOP UINT_C(1) /* 何もしない */ 122 #define TCP_OPT_MAXSEG UINT_C(2) /* 最大セグメント長 */ 123 #define TCP_OPT_WINDOW UINT_C(3) /* ウィンドスケーリング */ 124 #define TCP_OPT_SACK_PERM UINT_C(4) /* 選択 ACK 許可 */ 125 #define TCP_OPT_SACK UINT_C(5) /* 選択 ACK */ 126 #define TCP_OPT_TIMESTAMP UINT_C(8) /* タイムスタンプ */ 127 #define TCP_OPT_CC UINT_C(11) /* 接続カウント */ 128 #define TCP_OPT_CCNEW UINT_C(12) /* 接続カウント */ 129 #define TCP_OPT_CCECHO UINT_C(13) /* 接続カウント */ 146 130 147 /* ãªãã·ã§ã³ã®é·ã*/131 /* オプションの長さ */ 148 132 149 #define TCP_OPT_LEN_MAXSEG 4 /* æ大ã»ã°ã¡ã³ãé·*/150 #define TCP_OPT_LEN_WINDOW 3 /* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°*/151 #define TCP_OPT_LEN_SACK_PERM 4 /* é¸æ ACK 許å¯*/152 #define TCP_OPT_LEN_SACK 5 /* é¸æACK */153 #define TCP_OPT_LEN_TIMESTAMP 10 /* ã¿ã¤ã ã¹ã¿ã³ã*/154 #define TCP_OPT_LEN_CC 6 /* æ¥ç¶ã«ã¦ã³ã*/155 #define TCP_OPT_LEN_CCNEW 6 /* æ¥ç¶ã«ã¦ã³ã*/156 #define TCP_OPT_LEN_CCECHO 6 /* æ¥ç¶ã«ã¦ã³ã*/133 #define TCP_OPT_LEN_MAXSEG 4 /* 最大セグメント長 */ 134 #define TCP_OPT_LEN_WINDOW 3 /* ウィンドスケーリング */ 135 #define TCP_OPT_LEN_SACK_PERM 4 /* 選択 ACK 許可 */ 136 #define TCP_OPT_LEN_SACK 5 /* 選択 ACK */ 137 #define TCP_OPT_LEN_TIMESTAMP 10 /* タイムスタンプ */ 138 #define TCP_OPT_LEN_CC 6 /* 接続カウント */ 139 #define TCP_OPT_LEN_CCNEW 6 /* 接続カウント */ 140 #define TCP_OPT_LEN_CCECHO 6 /* 接続カウント */ 157 141 158 142 /* 159 * TCP æ大ã»ã°ã¡ã³ããµã¤ãº143 * TCP 最大セグメントサイズ 160 144 */ 161 145 162 146 /* 163 * IPv4 ã® TCP æ大ã»ã°ã¡ã³ããµã¤ãº164 * IP4_MSS 㯠576 ã§ãæ¨æºã® IPv4 ãããé· (20) ã¨165 * TCP ãããé· (20) ãå¼ããå¤ 536 ã§ãããã512 ãæ¨æºã¨ããã147 * IPv4 の TCP 最大セグメントサイズ 148 * IP4_MSS は 576 で、標準の IPv4 ヘッダ長 (20) と 149 * TCP ヘッダ長 (20) を引いた値 536 であるが、512 を標準とする。 166 150 */ 167 151 … … 169 153 170 154 /* 171 * IPv6 ã® TCP æ大ã»ã°ã¡ã³ããµã¤ãº172 * IPV6_MMTU 㯠1280 ã§ãæ¨æºã® IPv6 ãããé· (40) ã¨173 * TCP ãããé· (20) ãå¼ããå¤ 1220 ã§ãããã1024 ãæ¨æºã¨ããã155 * IPv6 の TCP 最大セグメントサイズ 156 * IPV6_MMTU は 1280 で、標準の IPv6 ヘッダ長 (40) と 157 * TCP ヘッダ長 (20) を引いた値 1220 であるが、1024 を標準とする。 174 158 */ 175 159 … … 177 161 178 162 /* 179 * TCP æå°ã»ã°ã¡ã³ããµã¤ãº163 * TCP 最小セグメントサイズ 180 164 * 181 * 256 ï¼æå°ãªã³ã¯ MTUï¼- 40 = 216165 * 256(最小リンク MTU)- 40 = 216 182 166 */ 183 167 … … 185 169 186 170 /* 187 * TCP æ大ã¦ã£ã³ãã¦ãµã¤ãº171 * TCP 最大ウィンドウサイズ 188 172 */ 189 173
Note:
See TracChangeset
for help on using the changeset viewer.