ICN Hop-By-Hop Fragmentation Marc Mosko Palo Alto Research Center Christian Tschudin University of Basel

Slides:



Advertisements
Similar presentations
Computer Networks20-1 Chapter 20. Network Layer: Internet Protocol 20.1 Internetworking 20.2 IPv IPv6.
Advertisements

CE363 Data Communications & Networking Chapter 7 Network Layer: Internet Protocol.
20.1 Chapter 20 Network Layer: Internet Protocol Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
20.1 Chapter 20 Network Layer: Internet Protocol Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
IPv4 - The Internet Protocol Version 4
1 Internet Protocol Version 6 (IPv6) What the caterpillar calls the end of the world, nature calls a butterfly. - Anonymous.
Gursharan Singh Tatla SLIP and PPP 27-Mar
1 IP - The Internet Protocol Relates to Lab 2. A module on the Internet Protocol.
Introduction1-1 message segment datagram frame source application transport network link physical HtHt HnHn HlHl M HtHt HnHn M HtHt M M destination application.
1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) User Datagram Protocol.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Leon-Garcia & Widjaja: Communication Networks Copyright ©2000 The McGraw Hill Companies A Little More on Chapter 7 And Start Chapter 8 TCP/IP.
Network Layer Packet Forwarding IS250 Spring 2010
5/31/05CS118/Spring051 twisted pair hub 10BaseT, 100BaseT, hub r T= Twisted pair (copper wire) r Nodes connected to a hub, 100m max distance r Hub: physical.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
1 Application TCPUDP IPICMPARPRARP Physical network Application TCP/IP Protocol Suite.
Chapter 3 Review of Protocols And Packet Formats
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Gursharan Singh Tatla Transport Layer 16-May
Copyright Kenneth M. Chipps Ph.D. PPP Last Update
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
Mukesh N. Tekwani Elphinstone College Mumbai
Fall 2005Computer Networks20-1 Chapter 20. Network Layer Protocols: ARP, IPv4, ICMPv4, IPv6, and ICMPv ARP 20.2 IP 20.3 ICMP 20.4 IPv6.
UNIT IP Datagram Fragmentation Figure 20.7 IP datagram.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Dr. John P. Abraham Professor UTPA
CS4550 Computer Networks II IP : internet protocol, part 2 : packet formats, routing, routing tables, ICMP read feit chapter 6.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
IPsec Introduction 18.2 Security associations 18.3 Internet Security Association and Key Management Protocol (ISAKMP) 18.4 Internet Key Exchange.
CSC 600 Internetworking with TCP/IP Unit 7: IPv6 (ch. 33) Dr. Cheer-Sun Yang Spring 2001.
Communications Services Connection Oriented Service  A connection is established  Data is sent or received over this connection  Connection may be terminated.
CS 4396 Computer Networks Lab
Internet Protocols (chapter 18) CSE 3213 Fall 2011.
Chapter 20 Network Layer: Internet Protocol
Network Layer4-1 Datagram networks r no call setup at network layer r routers: no state about end-to-end connections m no network-level concept of “connection”
CSC 600 Internetworking with TCP/IP Unit 5: IP, IP Routing, and ICMP (ch. 7, ch. 8, ch. 9, ch. 10) Dr. Cheer-Sun Yang Spring 2001.
Chapter 27 IPv6 Protocol.
Encapsulated Security Payload Header ● RFC 2406 ● Services – Confidentiality ● Plus – Connectionless integrity – Data origin authentication – Replay protection.
1 Lecture 13 IPsec Internet Protocol Security CIS CIS 5357 Network Security.
Authentication Header ● RFC 2402 ● Services – Connectionless integrity – Data origin authentication – Replay protection – As much header authentication.
CSE5803 Advanced Internet Protocols and Applications (13) Introduction Existing IP (v4) was developed in late 1970’s, when computer memory was about.
IP Protocol CSE TCP/IP Concepts Connectionless Operation Internetworking involves connectionless operation at the level of the Internet Protocol.
UDP: User Datagram Protocol Chapter 12. Introduction Multiple application programs can execute simultaneously on a given computer and can send and receive.
Chapter 3 TCP and IP 1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Internet.
K. Salah1 Security Protocols in the Internet IPSec.
Packet Over SONET Last Update Copyright Kenneth M. Chipps Ph.D. 1.
Network Layer Protocols COMP 3270 Computer Networks Computing Science Thompson Rivers University.
IP Fragmentation. Network layer transport segment from sending to receiving host on sending side encapsulates segments into datagrams on rcving side,
20.1 Chapter 20 Network Layer: Internet Protocol Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Multiplexing.
IP - The Internet Protocol
CSE 4905 IPsec.
ICN Hop-By-Hop Fragmentation Update: Begin-End Fragmentation (BEF)
Layered Architectures
Carrying IPSEC Authentication and ESP Headers Across SCPS-NP Networks
Hubs Hubs are essentially physical-layer repeaters:
IP - The Internet Protocol
Point to Point Data Link Control
Hubs Hubs are essentially physical-layer repeaters:
IP - The Internet Protocol
Dr. John P. Abraham Professor UTPA
Chapter 20 Network Layer: Internet Protocol
Dr. John P. Abraham Professor UTRGV, EDINBURG, TX
IP - The Internet Protocol
Dr. John P. Abraham Professor UTPA
CPEG514 Advanced Computer Networkst
Net 323 D: Networks Protocols
IP - The Internet Protocol
IP - The Internet Protocol
Transport Layer 9/22/2019.
Presentation transcript:

ICN Hop-By-Hop Fragmentation Marc Mosko Palo Alto Research Center Christian Tschudin University of Basel IRTF ICNRG interim meeting, Dallas, Mar 22, 2015

Introduction In 2012, PARC (Mosko and Plass) worked with Tschudin to develop a ccnb hop-by-hop fragmentation protocol, which has been in CCN- Lite ever since. After the Cambridge interim meeting, Mosko and Tschudin updated the protocol for CCNx 1.0 and added ability to support other fragmentation protocols. The present work is not CCNx-centric, though we do only show CCNx 1.0 encodings of the protocol.

Possibilities (a la FRF.12) DTE Fragmentation Peers DTE DCE Frag DTE DCE NNIFrag NNI DCE DTE DCE Frag

Multilink PPP (RFC 1990, Aug 1996) PPP Header: | Address 0xff | Control 0x03 | | PID(H) 0x00 | PID(L) 0x3d | MP Header: |B|E|0|0|0|0|0|0|sequence number| | sequence number (L) | | fragment data | |. | PPP FCS: | FCS |

Multilink PPP Algorithm B = Begin Fragment E = End Fragment (may have BE in one packet) Algorithm 1.Discard until you receive a B 2.If missed sequence number, goto 1 3.Assemble until E, pass up stack Expects that packets arrive in order between peers (i.e. “point-to-point”)

Adaption of PPP to ICN Used inside an ICN network (we would expect an IP tunnel to use IP fragmentation) Carry a fragmentation protocol ID to allow different fragmentation protocols (experimentation) We specify basic protocol like multilink PPP Allow for variable-size sequence number

Terminology A fragment is not a packet, or confusion ensues... (Network Protocol) Packet: the thing to be fragmented Fragment: byte array containing all serialized data fields – fragment header: serialized control data – fragment data: payload Frame: A layer-2 datagram for transferring one or more fragments

Essential data (expressed in a encoding agnostic way) Fragment = FragProtocolID FragProtocolData FragProtocolID = / (other protocols' ids) FragProtocolData = SequencedFragmentsData / (other protocols' data) SequencedFragmentsData = Flags FragSeqNo FragLength FragData Flags = B / E / BE / I B = E = BE = I = FragSeqNo = 1*OCTETS FragLength = FragData =

Peers A sender keeps a sequence number per peer. A receiver keeps a reassembly buffer and sequence number per peer. A peer is (but not limited to): – An IP socket (tcp, udp, multicast, gre, etc.) [use IP frag]. – An ethernet tuple (dmac, smac, ethertype), including group dmac addresses. – The MAC address 01:00:5E:00:17:AA is the CCNx assigned group address for its IP multicast address. – Could use security associations instead of addresses (e.g x MKAs, ipsec SAs, etc.).

(full) Sender Protocol 1.A sender maintains a separate state machine for each peer. 2.When a peering is established, the FragSequenceNumber begins at 0. 3.After sending a Fragment, FragSequenceNumber is incremented by one. 4.In the first fragment for a packet, set the B bit to '1’. 5.In the last fragment for a packet, set the E bit to '1’. 6.Both the B and E bits must be set to '1' for a single fragment. 7.If both the B and E and I bits are not set, the fragment is in the middle of a series. 8.When not sending a fragment (with fragment data), the sender may send an Idle fragment with only the 'I' bit set. This indicates that the sender has no packet to send. Idle frames may only be sent in between E and B frames.

(full) Receiver Protocol 1.A receiver maintains one reassembly queue per peer. 2.Discard Idle fragments. 3.Discard fragments until a 'B' fragment is received. Store the received sequence number for this sender. 4.If an out-of-order fragment is received next, discard the reassembly buffer and go to step (2). 5.Continue receiving in-order fragments until the first 'E’ fragment. At this time, the fragmented packet is fully re-assembled and may be passed on to the next layer. 6.The receiver cannot assume it will receive the 'E' fragment or a subsequence 'I' frame, so it should use a timeout mechanism appropriate to the link to release allocated memory resources.

CCNx Basic Encoding | Version | PT_FRAG | PacketLength | |X|B|E|I| FragSequenceNumber | HeaderLength | / Optional Hop-by-hop header in TLV format / | Fragment Data TLV / / Optional CCNx ValidationAlgorithm TLV / / Optional CCNx ValidationPayload TLV (ValidationAlg required) / o X: Extended Format (X=0 shown above) o FragSequenceNumber is 20 bits o Validation could be HMAC or CRC or Signature Validated

CCNx Extended Encoding | Version | PT_FRAG | PacketLength | |1|0|0|0| Reserved | HeaderLength | / Optional Hop-by-hop header in TLV format / | T_FRAG_HEADER | (length) | |1|B|E|I|0|0|0|0| FragSequenceNumber (length-1 bytes) / / / | Fragment Data TLV / / Optional CCNx ValidationAlgorithm TLV / / Optional CCNx ValidationPayload TLV (ValidationAlg required) / Validated

CCNx Multiple Protocol Support | Version | PT_FRAG | PacketLength | |1|0|0|0| Reserved | HeaderLength | / Optional Hop-by-hop header in TLV format / | T_OTHER_FRAG | (length) | / (other protocol data) / / / | Fragment Data TLV / / Optional CCNx ValidationAlgorithm TLV / / Optional CCNx ValidationPayload TLV (ValidationAlg required) / Validated

Total overhead per fragment For CCNx1.0 / 2+2 TLV – 12 bytes (basic format, no validation) – 20 bytes (extended format, no validation) – 28 bytes (basic format, CRC32c) – 64 bytes (basic with HMAC SHA256) – 72 bytes (extended with HMAC SHA 256)

Frame Packing with Fragments A single frame may carry multiple fragments. – Example output queue to a peer interest1(200B) content1(3500B) interest2(200B) content2(500B)  6 Ethernet frames ?! – Possible packing (basic, no validation) [frag(interest1, 200B), frag(content1, 1276B)] [frag(content1, 1488B)] [frag(content1, 236B), frag(interest2, 200B), frag(content2, 500B)]  3 Ethernet frames

Other Extension Using Idle frames and Hop-By-Hop headers for link quality measurements. Allowing the receiver to support out-of-order packets. Link negotiation protocol could agree on starting fragment number and fragment sequence number length.

Security Considerations The basic protocol has no protection for the fragmentation header The extended protocol could be strongly authenticated, but MACSEC might be a better option as it will be lower overhead and provide encryption.

Conclusion Provide a fragmentation container. Specify one protocol, like PPP. Specify a basic and extended encoding for CCNx 1.0. Future: compare end-to-end with hop-by-hop, add encodings for NDNLP.