Working Group Z. Cao Internet-Draft D. Liu Intended status: Informational H. Deng Expires: March 18, 2011 China Mobile September 14, 2010 TCP Header Compression in Low Power and Lossy Networks draft-cao-lwip-tcp-hc-00 Abstract The document specifies a TCP compression header for low-power and lossy networks. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on March 18, 2011. Copyright Notice Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Cao, et al. Expires March 18, 2011 [Page 1] Internet-Draft TCP HC September 2010 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Encoding of TCP Header . . . . . . . . . . . . . . . . . . . . 4 3. An Example . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Security Considerations . . . . . . . . . . . . . . . . . . . 7 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 6. Normative References . . . . . . . . . . . . . . . . . . . . . 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10 Cao, et al. Expires March 18, 2011 [Page 2] Internet-Draft TCP HC September 2010 1. Introduction The LOWPAN_HC1 algorithm in [RFC4944] defines the common compressed header encoding for IPv6 packets. The "Next Header" encoding bits, i.e., bit 5 and 6 in Figure 1, denotes the way the following header type is either UDP, ICMP or TCP. And the HC2 encoding bit (bit 7) denotes if there is more header compression bits followed. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HC1 encoding | Non-Compressed fields follow... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: LOWPAN_HC1 (common compressed header encoding) The LOWPAN_IPHC algorithm in [I-D.6LOWPAN-IPHC] also defines the general compression header for next header following the IPv6 header. Now the encoding format for the IPv6 extension headers and UDP header compression are defined, but the TCP header compression format is not defined yet in both LOWPAN_HC1 and LOWPAN_IPHC algorithm. However, Zigbee Smart Energy Profile 2.0 [Zigbee-SE] requires that all devices shall support TCP on its transport layer. To support the applications based on TCP, it is important to specify a TCP compression header for the low-power devices. This document is dedicated to this task. Cao, et al. Expires March 18, 2011 [Page 3] Internet-Draft TCP HC September 2010 2. Encoding of TCP Header Bits 5 and 6 of the LOWPAN_HC1 allows compressing the Next Header field in the IPv6 header (for UDP, TCP, and ICMP). This section explains how the TCP header itself may be compressed. The HC2 encoding in this section is the HC_TCP encoding, and it only applies if bits 5 and 6 in HC1 are both set to "1" indicating that the protocol following the IPv6 header is TCP. The HC_TCP encoding is defined in Figure 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |HC_TCP encoding| Fields carried in-line follow... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: TCP Compression Header Encoding The HC_TCP encoding for TCP is shown as below (starting with bit-0 and ending at bit-7). TCP Source Port (bit 0) 0: TCP source port is not compressed, but carried in-line. 1: TCP source port is compressed to 4 bits. The actual 16-bit source port is obtained by calculating: P + short_port value. The value of P is the number 61616 (0xF0B0). The short_port is expressed as a 4-bit value which is carried "in-line" TCP Destination Port (bit 1) 0: TCP destination port is not compressed, but carried in-line. 1: TCP destination port is compressed to 4 bits. The actual 16- bit destination port is obtained by calculating: P+short_port value. The value of P is the number 61616 (0xF0B0). The short_port is expressed as a 4-bit value which is carried "in- line" TCP Sequence Number (bit 2) 0: TCP Sequence Number is not compressed, and the full length 32-bit Seq.No is carried in-line. 1: TCP Sequence Number is compressed to 4 bits, and the short sequence number is carried in-line. Cao, et al. Expires March 18, 2011 [Page 4] Internet-Draft TCP HC September 2010 TCP ACK Sequence Number (bit 3) 0: TCP ACK Sequence Number is not compressed, and the full length 32-bit sequence is carried in-line. 1: TCP ACK Sequence Number is compressed to 4 bits, and the short sequence number is carried in-line. TCP Header Length(bit 4) 0: TCP Header Length is not compressed, and the full length 4-bit header length value is carried in-line. 1: TCP Header length is omitted, and actually the stack do not need to know the exact length of the header. TCP Window Size (bit 5) 0: TCP window size is not compressed, and the full length 16-bit window size is carried in-line. 1: TCP window size is compressed to 4-bit, and the short window size is carried in-line. Reserved (bit 6) Reserved (bit 7) Cao, et al. Expires March 18, 2011 [Page 5] Internet-Draft TCP HC September 2010 3. An Example If the HC_TCP encoding equals to "11111111", the TCP header will be compressed into 8 bytes as in Figure 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |sport |dport | Seq# | Ack# | | UAPRSF |Window| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: TCP Compressed Header Cao, et al. Expires March 18, 2011 [Page 6] Internet-Draft TCP HC September 2010 4. Security Considerations TBD. Cao, et al. Expires March 18, 2011 [Page 7] Internet-Draft TCP HC September 2010 5. IANA Considerations This document does not require any IANA actions. Cao, et al. Expires March 18, 2011 [Page 8] Internet-Draft TCP HC September 2010 6. Normative References [I-D.6LOWPAN-IPHC] Hui, J. and P. Thubert, "Compression Format for IPv6 Datagrams in 6LoWPAN Networks", draft-ietf-6lowpan-hc-06.txt (work in progress), Oct 2009. [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, "Transmission of IPv6 Packets over IEEE 802.15.4 Networks", RFC 4944, September 2007. [Zigbee-SE] "Zigbee Smart Energy Profile 2.0 Technical Requirements Document", Dec 2009. Cao, et al. Expires March 18, 2011 [Page 9] Internet-Draft TCP HC September 2010 Authors' Addresses Zhen Cao China Mobile Unit2, 28 Xuanwumenxi Ave,Xuanwu District Beijing 100053 China Email: zehn.cao@gmail.com Dapeng Liu China Mobile Unit2, 28 Xuanwumenxi Ave,Xuanwu District Beijing 100053 China Email: liudapeng@chinamobile.com Hui Deng China Mobile Unit2, 28 Xuanwumenxi Ave,Xuanwu District Beijing 100053 China Email: denghui@chinamobile.com Cao, et al. Expires March 18, 2011 [Page 10]