Multi-part Messages in KMIP John Leiseboer, QuintessenceLabs.

Slides:



Advertisements
Similar presentations
IPv4 - The Internet Protocol Version 4
Advertisements

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Guide to TCP/IP, Third Edition
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie Chapter 5 End-to-End Protocols Copyright © 2010, Elsevier Inc. All rights.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
TCP/IP Protocol Suite 1 Chapter 13 Upon completion you will be able to: Stream Control Transmission Protocol Be able to name and understand the services.
TCP/IP Protocol Suite 1 Chapter 13 Upon completion you will be able to: Stream Control Transmission Protocol Be able to name and understand the services.
4/1/98Common Generic RTP Payload Format 1 Common Generic RTP Payload Format Anders Klemets.
Network Layer Packet Forwarding IS250 Spring 2010
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
Chapter 3 Review of Protocols And Packet Formats
User Datagram Protocol UDP. Remember, UDP is Not reliable; data may be dropped No guarantee of in-order delivery Duplicate data is possible No built-in.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
Internet Command Message Protocol (ICMP) CS-431 Dick Steflik.
Error Checking continued. Network Layers in Action Each layer in the OSI Model will add header information that pertains to that specific protocol. On.
Gursharan Singh Tatla Transport Layer 16-May
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
1 Chapter Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
TCP/IP Yang Wang Professor: M.ANVARI.
Computer Networks: Multimedia Applications Ivan Marsic Rutgers University Chapter 3 – Multimedia & Real-time Applications.
CS/EE 145A Reliable Transmission over Unreliable Channel Netlab.caltech.edu/course.
1 Chapter 1 OSI Architecture The OSI 7-layer Model OSI – Open Systems Interconnection.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.6 UDP Principles (Chapter 24) (User Datagram Protocol)
Multi-part Messages in KMIP John Leiseboer, QuintessenceLabs.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Transmission Control Protocol
(Business) Process Centric Exchanges
Dr. John P. Abraham Professor UTPA
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 21.
Lecture 4 Overview. Ethernet Data Link Layer protocol Ethernet (IEEE 802.3) is widely used Supported by a variety of physical layer implementations Multi-access.
Chapter 24 Transport Control Protocol (TCP) Layer 4 protocol Responsible for reliable end-to-end transmission Provides illusion of reliable network to.
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.
IP addresses IPv4 and IPv6. IP addresses (IP=Internet Protocol) Each computer connected to the Internet must have a unique IP address.
Internet Architecture. 2 INTRODUCTION INTERNET developed by a community of researchers centered around the Defense Advanced Research Projects Agency (DARPA)
Stream Control Transmission Protocol
CS/EE 145A Reliable Transmission over Unreliable Channel II Netlab.caltech.edu/course.
UDP & TCP BS IT 4 th Semester By: Muhammad Hanif User Datagram Protocol & Transmission Control Protocol.
ISA 95 Working Group (Business) Process Centric Exchanges Dennis Brandl A Modest Proposal July 22, 2015.
1 User Datagram Protocol. 2 Transport Protocols Provide logical communication between application processes running on different hosts Run on end hosts.
INF3190 – Home Exam 2. Goal The goal of this exercise is to provide network layer reliability for the monitoring/administration tool presented in “home.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
1 Chapter 24 Internetworking Part 4 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
Network Layer & IP Protocol.
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
5. End-to-end protocols (part 1)
TCP.
TCP/IP Transmission Control Protocol / Internet Protocol
Introduction of Transport Protocols
TCP - Part I Karim El Defrawy
Dr. John P. Abraham Professor UTPA
Process-to-Process Delivery:
Dr. John P. Abraham Professor UTRGV, EDINBURG, TX
Dr. John P. Abraham Professor UTPA
TRANSMISSION CONTROL PROTOCOL
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Process-to-Process Delivery: UDP, TCP
UDP Principles (Chapter 24) (User Datagram Protocol)
Based on notes from D. Hollinger
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Transport Layer 9/22/2019.
Presentation transcript:

Multi-part Messages in KMIP John Leiseboer, QuintessenceLabs

Response Message Response Header Protocol Version Time Stamp Batch Count Batch Item Operation Unique Batch Item ID Result Status Response Payload Message Extension Vendor ID = QLABS_MULTI_RESPONSE_ID Criticality Indicator = TRUE Vendor Extension = Packet Number = n Final Indicator = TRUE | FALSE [Length] [Length] … [Length] We have appended a message extension that indicates that the response consists of multiple parts, the packet (or sequence) number of the part contained in this message, and a final indicator (TRUE => last part; FALSE => not the last part). The criticality indicator is set to TRUE, meaning that if the receiver does not understand the extension, it should throw away the message. No other part of the message is changed. Each response message of the multi-part response is formatted as shown; i.e. each message part is a complete response message. It is only the contents of the response payload that get split across packets

What the receiving party needs to do The party receiving this form of message must identify and parse the message extension. If the receiver does not understand the extension, it throws away the message. If it does understand the message extension, then it processes the response payload. How it processes the payload is operation and implementation dependent. One way of processing, is to parse the (partial) response, and if it makes sense, do stuff with it, like return it to the caller. If the partial response cannot be fully parsed, perhaps because the part ends part way through a structure or other item, then the receiver needs to buffer the partial response until enough of the rest of the response (which come in one or more following messages) can be reassembled to create useful results. When the receiver sees that the final indicator is set to TRUE, it knows that the multi-part response has finished, and the receiver should do whatever it has to do when it sees the end of a response.

Why is there a packet number? Although KMIP currently specifies TLS (over TCP), which guarantees packet order, no lost packets, and no duplicated packets, this is not the case for all protocols. And in many systems, connections can be lost for a variety of reasons. The packet number allows sessions to restart from where they were interrupted (very useful for very large messages which is a likely scenario for multi-part messages), and to assist the receiver in message reassembly if a protocol that can lose, duplicate or reorder packets is used.

What are the item lengths specified in the response payload? The length of each item in the response payload is just that - the length of the item, but ONLY IF IT IS CONTAINED ENTIRELY WITHIN the current part. There is an implicit requirement here that the sender know and correctly populate the length of the items that fit entirely within the current part. Where items spill over a part boundary, that item's length is indicated in the message extension for the part containing the end of the item. The diagram on the next page shows an example.

Structure (L1=?) { Structure (L2=?) { Structure (L3=?) { Structure (L4=?) { Item (L5) {}. Item (L6=?){ PACKET #1, FINAL = FALSE. } Structure (L7=?) { PACKET #2, FINAL = FALSE, L6, L4. } PACKET #3, FINAL = FALSE, L3. Item (L8) {} Item (L9) {} } PACKET #4, FINAL = TRUE, L2, L1 Response Payload Message Extension

The structures with length L1, L2, L3 and L4, as well as the item of length L6 all start in packet #1, and spill over the packet boundary. Their lengths are unknown at the time of transmission of packet #1 (indicated by Li=?), so a special "unknown/indefinite" length value is written in the length field for these items (FF..FF could be used). The item with length L6 and the structure with length L4 end in packet #2. The sender can now indicate the length of these items in the message extension for packet #2. The receiver uses this information to identify the end of these items. In packet #3, the structures with length L7 and L3 end. The sender indicates the length of these structures in the message extension. And finally, the structures with length L2 and L1 end in the final packet, #4. Again the sender indicates these lengths in the message extension. Note the order of the length indications in the message extension. Order is LIFO (last in first out - like a stack). To put this in really simple terms: a) if the sender knows the length when it sends an item, then it fills in the length of the item at the start of the item (as in current specification); b) if the sender does not know the length of the item when it sends the item, it fills in a special "unknown" length value at the start of the item, calculates the item's length across all parts as it streams the item, and indicates the length in the message extension for the packet containing the end of the item.