throbber
The Transport Layer: Tutorial and Survey
`SAMI
`IREN and PAUL D. AMER
`
`University of Delaware
`AND
`PHILLIP T. CONRAD
`
`Temple University
`
`Transport layer protocols provide for end-to-end communication between two or
`more hosts. This paper presents a tutorial on transport layer concepts and
`terminology, and a survey of transport layer services and protocols. The transport
`layer protocol TCP is used as a reference point, and compared and contrasted with
`nineteen other protocols designed over the past two decades. The service and
`protocol features of twelve of the most important protocols are summarized in both
`text and tables.
`
`Categories and Subject Descriptors: C.2.0 [Computer-Communication
`Networks]: General—Data communications; Open System Interconnection
`Reference Model (OSI); C.2.1 [Computer-Communication Networks]: Network
`Architecture and Design—Network communications; Packet-switching networks;
`Store and forward networks; C.2.2 [Computer-Communication Networks]:
`Network Protocols; Protocol architecture (OSI model); C.2.5 [Computer-
`Communication Networks]: Local and Wide-Area Networks
`General Terms: Networks
`Additional Key Words and Phrases: Congestion control, flow control, transport
`protocol, transport service, TCP/IP
`
`1. INTRODUCTION
`
`In the OSI 7-layer Reference Model, the
`transport layer is the lowest layer that
`operates on an end-to-end basis be-
`tween two
`or more
`communicating
`hosts. This layer lies at the boundary
`between these hosts and an internet-
`
`work of routers, bridges, and communi-
`cation links that moves information be-
`tween hosts. A good transport layer
`service (or simply, transport service) al-
`lows applications to use a standard set
`of primitives and run on a variety of
`networks without worrying about differ-
`ent network interfaces and reliabilities.
`
`This work was supported, in part, by the National Science Foundation (NCR 9314056), the U.S. Army
`Research Office (DAAL04-94-G-0093), and the Adv Telecomm/Info Dist’n Research Program (ATIRP)
`Consortium sponsored by ARL under Fed Lab Program, Cooperative Agreement DAAL01-96-2-0002.
`Authors’ addresses: S. Iren and P. D. Amer, Department of Computer and Information Sciences,
`University of Delaware, Newark, DE 19716; P. T. Conrad, Department of Computer and Information
`Sciences, Temple University, Philadelphia, PA 19122.
`Permission to make digital / hard copy of part or all of this work for personal or classroom use is granted
`without fee provided that the copies are not made or distributed for profit or commercial advantage, the
`copyright notice, the title of the publication, and its date appear, and notice is given that copying is by
`permission of the ACM, Inc. To copy otherwise, to republish, to post on servers, or to redistribute to
`lists, requires prior specific permission and / or a fee.
`© 2000 ACM 0360-0300/99/1200–0360 $5.00
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`Petitioners' Exhibit 1017
`Page 0001
`
`

`

`CONTENTS
`
`1. Introduction
`2. Transport Layer Concepts and Terminology
`2.1 Introduction to TCP
`2.2 General Role of the Transport Layer
`2.3 Terminology: SDUs, PDUs, and the like
`2.4 Example TCP Connection, Step-by-Step
`2.5 What this example shows. . . and does not show
`3. Transport Service
`3.1 CO-message vs. CO-byte vs. CL
`3.2 Reliability
`3.3 Blocking vs. Non-Blocking
`3.4 Multicast vs. Unicast
`3.5 Priority vs. No-priority
`3.6 Security vs. No-security
`3.7 Status-reporting vs. No-status-reporting
`3.8 Quality-of-service vs. No-quality-of-service
`4. Transport Protocol Features
`4.1 Connection-oriented vs. Connectionless
`4.2 Transaction-oriented
`4.3 CO Protocol Features
`4.4 Error Control: Sequence Numbers, Acks, and
`Retransmissions
`4.5 Flow/Congestion Control
`4.6 Multiplexing/Demultiplexing
`4.7 Splitting/Recombining
`4.8 Concatenation/Separation
`4.9 Blocking/Unblocking
`4.10 Segmentation/Reassembly
`5. Transport Protocol Examples
`5.1 UDP
`5.2 TP4
`5.3 TP0
`5.4 NETBLT
`5.5 VMTP
`5.6 T/TCP
`5.7 RTP
`5.8 APPN (SNA)
`5.9 NSP (DECnet)
`5.10 XTP
`5.11 SSCOP/AAL5 (ATM)
`5.12 Miscellaneous Transport Protocols
`6. Future Directions and Conclusion
`6.1 Impacts of Trends and New Technologies
`6.2 Wireless Networks
`6.3 Debates
`6.4 Final Observations
`APPENDIX
`
`Essentially, the transport layer isolates
`applications from the technology, de-
`sign, and idiosyncracies of the network.
`Dozens of transport protocols have
`been developed or proposed over the last
`two decades. To put this research in
`perspective, we focus first on the fea-
`tures of probably the most well-known
`transport protocol — namely the Inter-
`net’s Transmission Control Protocol
`
`Transport Layer
`
`•
`
`361
`
`(TCP) — and then contrast TCP with
`many alternative designs.
`Section 2 introduces the basic con-
`cepts and terminology of the transport
`layer through a simple example illus-
`trating a TCP connection. Section 3 sur-
`veys the range of different services that
`can be provided by a transport layer.
`Similarly, Section 4 surveys the range
`of protocol designs that provide these
`services. (The important distinction be-
`tween service and protocol is a major
`theme throughout this paper.) Section 5
`briefly surveys nine widely imple-
`mented transport protocols other than
`TCP (UDP, TP0, TP4, SNA-APPN,
`DECnet-NSP, ATM, XTP, T/TCP and
`RTP) and two others that, although not
`widely implemented, have been particu-
`larly influential (VMTP and NETBLT).
`This section also includes briefer de-
`scriptions of eight experimental proto-
`cols that appear in the research litera-
`ture (Delta-t, MSP, SNR, DTP, k-XP,
`TRUMP, POC, and TP11). Section 6
`concludes the paper with an overview of
`past, current, and future trends that
`have influenced transport layer design
`including the impact of wireless net-
`works. This section also presents a few
`of the debates concerning transport pro-
`tocol design. As an appendix, tables are
`provided summarizing TCP and eleven
`of the transport protocols discussed in
`Section 5. Similar tables for the experi-
`mental protocols are omitted for reasons
`of space, but are available on the au-
`thors’ Web site: www.eecis.udel.edu/
`˜amer/PEL/survey/.
`This survey concentrates on unicast
`service and protocols — that is, commu-
`nication between exactly two hosts (or
`two host processes). Multicast protocols
`[Armstrong et al. 1992; Bormann et al.
`1994; Braudes and Zabele 1993; Deer-
`ing 1989; Floyd et al. 1995; McCanne et
`al. 1996; Smith and Koifman 1996] pro-
`n $ 2
`vide
`communication
`among
`hosts. Multicast represents an impor-
`tant research area currently undergoing
`significant
`change and development,
`and is worthy of a separate survey.
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`Petitioners' Exhibit 1017
`Page 0002
`
`

`

`362
`
`•
`
`S. Iren et al.
`
`study surveying eight
`A previous
`transport protocols can be found in Do-
`eringer et al. [1990].
`
`2. TRANSPORT LAYER CONCEPTS AND
`TERMINOLOGY
`
`From an application programmer’s per-
`spective, the transport layer provides
`interprocess
`communication between
`two processes that most often are run-
`ning on different hosts. This section in-
`troduces some basic transport layer con-
`cepts and terminology
`through an
`example: a simple document retrieval
`over the World Wide Web (herein Web)
`utilizing the TCP transport protocol.
`
`2.1 Introduction to TCP
`
`Although we provide a broad survey of
`the transport layer, the service and pro-
`tocol features of TCP are used through-
`out this paper as a point of reference.
`Over the last two decades the Inter-
`net protocol
`suite
`(also
`called the
`TCP/IP protocol suite) has come to be
`the most ubiquitous form of computer
`networking. Hence,
`the most widely
`used transport protocols today are TCP
`and its companion transport protocol,
`the User Datagram Protocol (UDP). A
`few other protocols are widely used,
`mainly because of their connection to
`the proprietary protocol suites of partic-
`ular vendors. Examples include the
`transport protocols from IBM’s SNA,
`and Digital’s DECnet. However,
`the
`success of the Internet has led nearly all
`vendors in the direction of TCP/IP as
`the future of networking.
`The Internet’s marked success would
`not alone be sufficient justification for
`organizing a survey around a single pro-
`tocol. Also important is that TCP pro-
`vides examples of many significant is-
`sues that arise in transport protocol
`design. The design choices made in TCP
`have been the subject of extensive re-
`view, experimentation, and large-scale
`experience, involving the best research-
`ers and practitioners in the field. TCP
`represents the culmination of many
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`years of thought about transport proto-
`col design.
`A final reason that TCP provides a
`good starting point for study, is that the
`history of research and development on
`TCP can be traced in publicly available
`documents. Ongoing research and de-
`velopment of transport protocols, partic-
`ularly TCP, is the focus of two working
`groups of
`the Internet Society. The
`end2end working group of the Internet
`Research Task Force (IRTF, www.irtf.
`org) discusses ongoing long-term re-
`search on transport protocols in general
`(including TCP), while the tcp-impl
`group of the Internet Engineering Task
`Force (IETF, www.ietf.org) focuses on
`short-term TCP implementation issues.
`Both groups maintain active mailing
`lists where ideas are discussed and de-
`bated openly. The work of these groups
`can be found in journal articles, confer-
`ence
`proceedings,
`and
`documents
`known as Internet Drafts and Requests
`for Comments (RFCs). RFCs contain not
`only all the Internet Standards, but also
`other information of historical and tech-
`nical interest. It is much more difficult
`for researchers to obtain similar infor-
`mation concerning proprietary proto-
`cols.
`
`2.2 General Role of the Transport Layer
`
`To illustrate the role that the transport
`layer plays in a familiar application, the
`remainder of Section 2 examines the
`role of TCP in a simple interaction over
`the Web.
`The Web is an example of a client/
`server application. A human interacts
`with a Web browser (client) running on
`a “local” machine. The Web browser
`communicates with a server on some
`“remote” machine. The Web uses an ap-
`plication layer protocol called the Hy-
`pertext Transfer Protocol (HTTP) [Bern-
`ers-Lee et al. 1996]. HTTP is a simple
`request/response protocol. Suppose, for
`example, that you have a personal com-
`puter with Internet access, and you
`wish to retrieve the page “http://www.
`eecis.udel.edu/research.html”
`
`Petitioners' Exhibit 1017
`Page 0003
`
`

`

`from the University of Delaware Web
`site. In the simplest case,1the client
`sends a request containing the filename
`of the desired Web page (“GET /re-
`search.html”)
`to a server
`(“www.
`eecis.udel.edu”),
`and
`the
`server
`sends back a response consisting of the
`contents of that file.
`This communication takes place over
`a complex internetwork of computers
`that is constantly changing in terms of
`both technology and topology. A connec-
`tion between two particular hosts may
`involve such diverse technologies as
`Ethernet, Token Ring, X.25, ATM, PPP,
`SONET, just to name a few. However, a
`programmer writing a Web client or
`server does not want to be concerned
`with the details of how communication
`takes place between client and server.
`The programmer simply wants to send
`and receive messages in a way that does
`not change as the underlying network
`changes. This is the function of the
`transport layer: to provide an abstrac-
`tion of interprocess communication that
`is independent of the underlying net-
`work.
`HTTP uses TCP as the transport
`layer. The programmer writing code for
`an HTTP client or server would access
`TCP’s service through function calls
`that comprise that transport layer’s Ap-
`plication Program Interface (API). At a
`minimum, a transport layer API pro-
`vides functions to send and receive mes-
`sages; for example, the Berkeley Sockets
`API provides functions called write()
`and read() (for more details,
`see
`Stevens [1998]).
`Because TCP is connection-oriented,
`the Berkeley Sockets API also provides
`a connect() function for setting up a
`connection between the local and remote
`processes. It also provides a close()
`
`1To simplify the discussion, we will assume HTTP
`version 0.9 and a document containing only hyper-
`text: no inline images, applets, etc. This avoids
`discussion of HTTP 1.0 headers, persistent con-
`nections as in HTTP 1.1, (which complicate the
`issue of how and when the connection is closed,)
`and the necessity for multiple connections where
`inline images are involved.
`
`Transport Layer
`
`•
`
`363
`
`function for closing a connection. Note
`that while TCP is connection-oriented,
`not all transport services establish a
`connection before data is sent. Connec-
`tion-oriented and connectionless ser-
`vices and protocols are discussed in Sec-
`tions 3.1, 3.2.5 and 4.1.
`
`2.3 Terminology: SDUs, PDUs, and the like
`
`One difficulty in summarizing any topic
`is the wide range of terms used for
`similar concepts. Throughout this pa-
`per, we use a simplified communication
`model (Figure 1) that employs some OSI
`terminology. At the top layer, a user
`sender (e.g., a Web client) has some
`messages to communicate to the user
`receiver (e.g., a Web server). These so-
`called application entities use the ser-
`vice of the transport layer. Communica-
`tion between peer entities consists of an
`exchange
`of Protocol Data Units
`(PDUs). Application peers communicate
`using Application PDUs (APDUs), while
`transport peers
`communicate using
`Transport PDUs (TPDUs), etc. In our
`Web example, the first APDU is the
`request
`“GET /research.html” sent
`from the client (application entity) to
`the server (its peer application entity).
`The Web server will respond with an
`APDU containing the entire text of the
`file “research.html”.
`Many transport and application pro-
`tocols are bidirectional; that is, both
`sides can send and receive data simulta-
`neously. However, it is frequently use-
`ful to focus on one direction while re-
`maining aware that the other direction
`is also operational. As Figure 1 shows,
`each application entity can assume both
`the role of sender and receiver; for the
`APDU “GET /research.html”, the cli-
`ent is the user sender and the server is
`the user receiver (as shown by more
`prominent labels). When the APDU con-
`taining the contents of the file “re-
`search.html” is sent, user sender and
`user receiver reverse roles (as indicated
`by the dotted line boxes, and the lighter
`italicized labels).
`The term transport entity refers to the
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`Petitioners' Exhibit 1017
`Page 0004
`
`

`

`364
`
`•
`
`S. Iren et al.
`
`Host A
`
`User Sender
`(Receiver)
`Application (e.g. web client)
`
`Submit
`
`Transport Sender
`(Receiver)
`
`APDUs
`
`TPDUs
`
`Host B
`
`User Receiver
`(Sender)
`Application (e.g. web server)
`
`Deliver
`
`Transport Receiver
`(Sender)
`
`Transmit/Send
`
`Arrive/Receive
`
`Application
`Entities
`
`TSAP
`
`User/Transport
`Interface
`
`Transport
`Entities
`
`NSAP
`
`Transport/Network
`Interface
`
`Network
`
`Figure 1. Transport service.
`
`software within a
`hardware and/or
`given host that implements a particular
`transport service and protocol. Again,
`even when the protocol is bidirectional,
`we focus on one direction for purposes of
`clarity. In this model, the user sender
`submits a chunk of user data (i.e., a
`Transport Service Data Unit (TSDU), or
`informally, a message) to thetransport
`sender. The transport sender transmits
`or sends this data to the transport re-
`ceiver over a network which may provide
`different levels of reliability. The trans-
`port receiver receives the data that ar-
`rives from the network and delivers it to
`the user receiver. Note that even when
`one transport entity assumes the role of
`sender and the other assumes the role
`of receiver, we use solid lines to show
`TPDUs flowing in both directions. This
`illustrates that TPDUs may flow in both
`directions even when user data flows
`only from sender to receiver. TPDUs
`from receiver to sender are examples of
`control TPDUs, which are exchanged
`between transport entities for connec-
`tion management. When the flow of
`user data is bidirectional, control and
`data information can be piggybacked, as
`discussed in Section 4. Control TPDUs
`may flow in both directions between
`sender and receiver, even in the absence
`of user data.
`Figure 2 shows the terminology we
`use to describe what happens to the
`request APDU “GET /research.html”
`as it passes through the various layers
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`on its way from the Web client to the
`Web server. When the user sender sub-
`mits the request APDU to the transport
`sender, that APDU becomes a TSDU.
`The transport sender adds its own
`header information to the TSDU, to con-
`struct a TPDU that it can send to the
`transport receiver. TPDUs exchanged
`by the transport entities are encapsu-
`lated (i.e., contained) in NPDUs which
`are exchanged between the network en-
`tities, as illustrated in Figure 2. The
`network layer routes NPDUs between
`the local and remote network entities
`over
`intermediate
`links. When an
`NPDU arrives, the network layer entity
`processes the NPDU header and passes
`the payload of the NPDU to a transport
`layer entity. The transport entity either
`passes the payload of the TPDU to the
`transport user if it is user data, or pro-
`cesses the payload itself if it is a control
`TPDU.
`In the previous paragraph we de-
`scribe a single APDU becoming a single
`TSDU, being encapsulated in a single
`TPDU, which in turn becomes a single
`NSDU encapsulated in a single NPDU.
`This is the simplest case, and one that
`is likely to occur for a small APDU such
`as the HTTP request in our example.
`However, there are many other possibil-
`ities for the relationships between AP-
`DUs, TSDUs, TPDUs, NSDUs, and NP-
`DUs, as described in Step (5) of Section
`2, and also in Sections 3 and 4.
`Figure 2 also shows some of the ter-
`
`Petitioners' Exhibit 1017
`Page 0005
`
`

`

`Application
`(or Session)
`Layer
`
`Transport
`Layer
`
`TPDU
`header
`
`Network
`Layer
`
`NPDU
`header
`
`Transport Layer
`
`•
`
`365
`
`APDU (e.g., "GET /research.html")
`
`TSDU
`
`TPDU (e.g., TCP segment)
`
`NSDU
`
`NPDU (e.g., IP Datagram)
`
`Figure 2. Relationship between Service Data Units (SDUs) and Protocol Data Units (PDUs).
`
`minology commonly used in the Internet
`protocol suite to identify PDUs at vari-
`ous layers. TCP’s PDUs are called seg-
`ments, while IP’s NPDUs are called
`datagrams. However, the Internet com-
`munity’s terminology can be confusing.
`For example, the term packet is often
`used informally to refer to both IP Data-
`grams (NPDUs) and TCP segments (TP-
`DUs). The term datagram can refer ei-
`ther to IP’s NPDUs, or to the TPDUs of
`the User Datagram Protocol. To avoid
`such confusion, we make use of some
`OSI terms throughout the paper. Al-
`though some may criticize OSI termi-
`nology as being cumbersome,
`it often
`has the advantage of being more pre-
`cise.
`
`2.4 Example TCP Connection, Step-by-
`Step
`
`Now let us consider the Web document
`retrieval example, one step at a time.
`This discussion omits many details; the
`purpose here is to provide a general
`understanding of the transport layer in
`the context of a well-known application.
`(1) You select
`“http://www.eecis.
`udel.edu/research.html”
`with
`your Web client.
`the application
`—http indicates
`layer protocol to be used; more
`importantly
`from a
`transport
`layer perspective, it also implic-
`itly indicates the TCP port num-
`
`ber that will be used for the con-
`nection (80,
`in this case). Port
`numbers
`differentiate
`between
`multiple connection points on the
`same machine; for example, be-
`tween servers for Web, File Trans-
`fer Protocol (FTP) and telnet (re-
`mote terminal) requests.
`—“www.eecis.udel.edu” indicates
`the host name to which a TCP
`connection is established. This is
`converted
`to
`the
`IP address
`128.175.2.17 by the Domain
`Name System (which is outside
`the scope of this discussion). The
`combination of IP address and TCP
`port number (128.175.2.17, 80)
`represents what OSI calls a TSAP
`address. A TSAP (Transport Ser-
`vice Access Point) address identi-
`fies one endpoint of a communica-
`tion channel between a process on
`a local machine, and a process on
`a remote machine.
`—“/research.html” is the file you
`are requesting;
`the Web client
`uses this to form the HTTP request
`(APDU)
`“GET /research.html”
`that must be sent to the Web
`server via TCP.
`
`(2) The Web client starts by making a
`connection request to the transport
`entity at (128.175.2.17, 80) by
`calling the connect() function.
`This causes the local-client TCP en-
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`Petitioners' Exhibit 1017
`Page 0006
`
`

`

`366
`
`•
`
`S. Iren et al.
`
`tity (or simply, the “local TCP”) to
`initiate a 3-way-handshake with the
`remote-server TCP entity (or sim-
`ply, the “remote TCP”). TPDUs are
`exchanged between the TCP entities
`to ensure reliable connection estab-
`lishment, and to establish initial se-
`quence numbers to be used by the
`transport layer (see Figure 3, and
`Section 4). If the 3-way-handshake
`fails, TCP notifies the application by
`returning an error code as the result
`of the connect() function; other-
`wise a success code is returned. In
`this way, TCP provides what OSI
`calls confirmation of the connect re-
`quest.
`
`(3) Once the connect request is con-
`firmed, the Web client submits a
`request to send data (in this case
`the APDU “GET /research.html”).
`The local TCP then sends this data
`— most likely, in a single TPDU.
`This TPDU (i.e., TCP segment) con-
`tains the service user’s data (the
`TSDU), plus a transport
`layer
`header,
`containing (among other
`things)
`the negotiated initial se-
`quence number for the data. The
`purpose of this sequence number is
`discussed in Step (2).
`
`(4) When the remote TCP receives the
`TPDU,
`the
`data
`“GET
`/re-
`search.html” is buffered. It is de-
`livered when the Web server does a
`read(). In OSI terminology, this
`delivery is known as a data indica-
`tion. The remote TCP also sends
`back an acknowledgment (ACK) con-
`trol TPDU to the local TCP. Ac-
`knowledgments inform the trans-
`port sender about TPDU arrivals
`(see Section 4).
`
`(5) The Web server then responds with
`the contents of “research.html”.
`This file may be too large to be
`efficiently submitted to TCP in one
`write() call, i.e., one TSDU. If so,
`the Web server divides this APDU
`into multiple write() calls,
`i.e.,
`multiple TSDUs. The remote TCP
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`then sends these TSDUs to the local
`TCP in multiple TPDUs, utilizing
`the service of the underlying net-
`work layer.
`One interesting aspect of TCP is
`that the sizes of the TSDUs submit-
`ted by the transport entities may
`bear little or no relationship to the
`sizes of
`the TPDUs actually ex-
`changed by TCP. TCP treats the
`flow of data from sender to receiver
`as a byte-stream and segments it in
`whatever manner seems to make
`best use of the underlying network
`service, without regard to TSDU
`boundaries. It delivers data in the
`same fashion; thus for TCP, the
`boundaries between APDUs, sub-
`mitted TSDUs, TPDUs, and deliv-
`ered TSDUs may all be different.
`Other
`transport services/protocols
`have a message orientation, mean-
`ing that they preserve the bound-
`aries of TSDUs (see Section 3).
`
`(6) Because the network layer (IP in
`this case) can lose or reorder NS-
`DUs, TCP must detect and recover
`from network errors. As the remote
`TCP sends the TPDUs containing
`the successive portions of the file
`“research.html”, it includes a se-
`quence number in each TPDU corre-
`sponding to the sequence number of
`the first byte in that TPDU relative
`to the entire flow of data from re-
`mote TCP to local TCP. The remote
`TCP also places a copy of the data in
`each TPDU sent into a buffer, and
`sets a timer. If this timer expires
`before the remote TCP receives a
`matching ACK TPDU from the local
`TCP, the data in the TPDU will be
`retransmitted in a new TPDU. In
`TCP, the data are tracked by indi-
`vidual byte-stream sequence num-
`bers, and TPDUs retransmitted may
`or may not correspond exactly to the
`original TPDUs. The remote TCP
`also places a checksum in the TPDU
`header to detect bit errors intro-
`duced by noise or software errors in
`the network, data link and physical
`
`Petitioners' Exhibit 1017
`Page 0007
`
`

`

`layers. Such error control is a major
`function of the transport layer as
`discussed in Section 4.
`
`(7) As TPDUs are received by the local
`TCP, any TPDUs with checksum er-
`rors are discarded. The sequence
`numbers of the incoming TPDUs are
`checked to ensure that no pieces of
`the byte-stream are missing or have
`arrived out-of-order. Any out-of-or-
`der pieces will be buffered and re-
`ordered. As TPDUs arrive, the local
`TCP responds to the remote TCP
`with ACK TPDUs. If ACKs are lost,
`the remote TCP may send a TPDU
`which duplicates data sent in an
`earlier TPDU. The local TCP also
`discards any duplicate data that ar-
`rives. By detecting and recovering
`from loss, reordering, duplication
`and noise, the local and remote TCP
`entities cooperate to ensure reliable
`delivery of data. As pieces of the
`byte-stream arrive correctly, these
`will be buffered until the Web client
`requests them by doing read()
`calls. Each read() results in deliv-
`ery of a TSDU to the Web client.
`
`(8) In general, a TCP connection is bidi-
`rectional, and either side may ini-
`tiate the closing of the connection.
`However,
`in first-generation Web
`systems,
`the server initiates the
`close by calling the close() func-
`tion after it sends the last piece of
`the file requested. In OSI terminol-
`ogy, this is called a disconnect re-
`quest. TCP handles disconnect re-
`quests with a
`4-way-handshake
`procedure (shown in Figure 4) to
`ensure graceful termination without
`loss of data. The remote TCP re-
`sponds to the server’s disconnect re-
`quest by sending a disconnect TPDU
`and waiting for an ACK TPDU. The
`local TCP signals the server’s dis-
`connect request to the client by re-
`turning “end-of-file” as the result of
`a client read() request. The client
`then responds with its own close()
`request;
`this causes another ex-
`
`Transport Layer
`
`•
`
`367
`
`change of a disconnect TPDU and
`ACK. This procedure and other
`methods of connection termination
`are discussed in Section 4.3.4.
`
`2.5 What this example shows. . . and does
`not show
`
`From this example, we see that TCP
`provides a connection-oriented (CO)
`byte-stream, no-loss, no-duplicates, or-
`dered transport service, and that its
`protocol is designed to operate on top of
`a lossy network service, such as IP
`datagram service [Postel 1981].
`This example also shows a few as-
`pects of communication between the
`user layer and the transport layer, and
`between peer entities. It illustrates one
`example of connection establishment,
`reliable data exchange, and connection
`termination. However, many aspects of
`this example were not discussed, such
`as flow control and congestion avoid-
`ance, piggybacking of ACKs, and round-
`trip-time estimation, to name just a few.
`Also, consider that in the case of a
`Web browser using TCP, the transport
`service is reliable, which means (among
`other things) that the transport service
`may not lose any TSDUs. This guaran-
`tee comes at the expense of potentially
`increased delay, since reliable delivery
`may require more TPDUs to be ex-
`changed. Other transport services (for
`example, those used for audio or video
`transmission) do not provide reliability,
`since for some applications lower delay
`is more important than receiving every
`TSDU.
`Many variations exist both in the type
`of service provided by the transport
`layer, and in the design of transport
`protocols. These variations are what
`make the transport layer so interesting!
`Sections 3 and 4 provide an overview of
`the most important of these variations.
`
`3. TRANSPORT SERVICE
`
`This section classifies the typical service
`provided by the transport layer (see Ta-
`ble I). A transport service abstracts a
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`Petitioners' Exhibit 1017
`Page 0008
`
`

`

`368
`
`•
`
`S. Iren et al.
`
`Table I. Transport Service Features
`CO-message vs. CO-byte vs. CL
`No-loss vs. Uncontrolled-loss vs. Controlled-loss
`No-duplicates vs. Maybe-duplicates
`Ordered vs. Unordered vs. Partially-ordered
`Data-integrity vs. No-data-integrity vs. Partial-
`data-integrity
`Blocking vs. Non-blocking
`Multicast vs. Unicast
`Priority vs. No-priority
`Security vs. No-security
`Status-reporting vs. No-status-reporting
`Quality-of-service vs. No-quality-of-service
`
`set of functions that is provided to a
`higher layer. A protocol, on the other
`hand, refers to the details of how a
`transport sender and a transport re-
`ceiver cooperate to provide that service.
`In defining a service, we treat the trans-
`port layer as a black box. In Section 4,
`we look at internal details of that black
`box.
`One of the valuable contributions of
`the OSI Reference Model is its emphasis
`in distinguishing between service and
`protocol. This distinction is not well dif-
`ferentiated in the TCP/IP protocol suite
`where RFCs intermix service and proto-
`col concepts, frequently in a confusing
`manner. As will be seen in Section 4,
`there are often several different protocol
`mechanisms that can provide a given
`service.
`
`3.1 CO-message vs. CO-byte vs. CL
`
`Transport services can be divided into
`two types: connection-oriented and con-
`nectionless. A connection-oriented (CO)
`service provides for the establishment,
`maintenance, and termination of a logi-
`cal connection between transport users.
`The transport user generally performs
`three distinct phases of operation: con-
`nection establishment, data transfer,
`and connection termination. When a
`user sender wants to transmit some
`data to a remote user receiver by using
`a connection-oriented service, the user
`sender first explicitly asks the transport
`sender to open a connection to the re-
`mote transport
`receiver
`(T-Connect).
`
`ACM Computing Surveys, Vol. 31, No. 4, December 1999
`
`Once a connection is established, the
`user
`sender provides
`the transport
`sender with the data to be transmitted
`(T-Data). At the end of the data trans-
`fer, the user sender explicitly asks the
`transport sender to terminate the con-
`nection (T-Disconnect).
`CO service itself has two variations:
`message-oriented and byte-stream.
`In
`the former, the user sender’s messages
`(or what OSI calls service data units
`(SDUs)) have a specified maximum size,
`and message boundaries are preserved.
`When two 1K messages are submitted
`by a user sender, they are delivered to
`the user receiver as the same two dis-
`tinct 1K messages, never for example as
`one 2K message or four .5K messages.
`TP4 is an example that provides mes-
`sage-oriented service.
`In byte-stream
`service as provided by TCP, the flow of
`data from user sender to user receiver is
`viewed as an unstructured sequence of
`bytes that
`flow in a FIFO manner.
`There is no concept of message (or mes-
`sage boundary or maximum message
`size) for the user sender. Data submit-
`ted by a user sender is appended to the
`end of the byte-stream, and the user
`receiver reads from the head of the
`byte-stream.
`An advantage of byte-stream service
`is that it gives the transport sender
`flexibility to divide TSDUs in ways that
`make better use of the underlying net-
`work service. However, byte-stream ser-
`vice has been criticized because it does
`not deliver data to an application in
`meaningful units. A message-oriented
`service better preserves the semantics
`of each APDU down through the lower
`layers for so-called Application Level
`Framing [Clark and Tennenhouse 1990]
`(see Section 6). One research team notes
`that adaptive applications are much
`easier to develop if the unit of process-
`ing (i.e., APDU) is strongly tied to the
`unit of control (i.e., TPDU) [Dabbous
`and Diot 1995].
`A connectionless (CL) service provides
`only one phase of operation: data trans-
`fer. There are no T-Connect and T-Dis-
`
`Petitioners' Exhibit 1017
`Page 0009
`
`

`

`connect primitives exchanged (either ex-
`plicitly or implicitly) between a user
`sender and the transport sender. When
`the user sender has some data, it simply
`submits
`the data to the transport
`sender. As with CO-message service, in
`a CL service the user sender submits
`messages, and message boundaries are
`maintained. Messages submitted to a
`CL service as in UDP often are referred
`to as datagrams.
`
`3.2 Reliability
`
`Unfortunately, the terms reliable and
`unreliable mean different things to dif-
`ferent people. To avoid ambiguity in our
`definition, unless otherwise stated, a
`service is reliable if and only if it is all
`of the following (as defined below): no-
`loss, no-duplicates, ordered, and data-
`integrity. If even one feature is lacking,
`the service is unreliable.
`3.2.1 No-loss vs. Uncontrolled-loss vs.
`Controlled-loss. There are three levels
`of delivery guarantee. A no-loss (or at-
`least-once delivery) service guarantees
`that for all data submitted to the trans-
`port sender by the user sender, one of
`two results will occur. Either (1) the
`data is delivered2 to the user receiver,
`or (2

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket