`US008514871B2
`
`c12) United States Patent
`Anschutz et al.
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 8,514,871 B2
`Aug. 20, 2013
`
`(54) METHODS, SYSTEMS,AND COMPUTER
`PROGRAM PRODUCTS FOR MARKING
`DATA PACKETS BASED ON CONTENT
`THEREOF
`
`(75)
`
`Inventors: Thomas Arnold Anschutz, Conyers, GA
`(US); Edgar Vaughan Shrum, Jr.,
`Smyrna, GA (US)
`
`(73) Assignee: AT&T Intellectual Property I, L.P.,
`Reno, NV (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 501 days.
`
`(21) Appl. No.: 11/491,859
`
`(22) Filed:
`
`Jul. 24, 2006
`
`(65)
`
`Prior Publication Data
`
`US 2008/0019371 Al
`
`Jan.24,2008
`
`(51)
`
`(2006.01)
`(2006.01)
`
`Int. Cl.
`H04L 12128
`H04L 12156
`(52) U.S. Cl.
`USPC ............................ 370/412; 370/235; 370/468
`( 58) Field of Classification Search
`USPC .......................................................... 370/235
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`6,205,150 Bl*
`3/2001 Ruszczyk ..................... 370/412
`6,222,841 Bl*
`4/2001 Taniguchi ..................... 370/389
`6,381,649 Bl*
`4/2002 Carlson ......................... 709/235
`2/2006 Agrawal et al.
`7,006,440 B2
`7,114,002 Bl*
`9/2006 Okumura et al. ............. 709/232
`
`7,320,037 Bl*
`2001/0036157 Al *
`2003/0112814 Al
`2004/0085964 Al *
`2005/0163048 Al*
`2006/0164978 Al *
`2006/0174035 Al *
`2010/0091676 Al*
`
`.......... 709/236
`1/2008 Maturi et al.
`11/2001 Blanc et al. ................... 370/235
`6/2003 Modali et al.
`5/2004 Vaananen .................. 370/395.4
`7/2005 Arora et al. ................... 370/230
`7/2006 Werner et al.
`. ......... 370/229
`8/2006 Tufail
`........................... 709/239
`4/2010 Moran et al. .................. 370/252
`
`OTHER PUBLICATIONS
`
`Chen et al. "Network Architecture to Support QoS in Mobile Ad Hoc
`Networks", Dept. Elec. and Comp. Eng. Univ. of Rochester, NY pp.
`1-4.
`G. Jin "Packet Drop Avoidance for High-speed Network Transmis(cid:173)
`sion Protocol", Distributed Systems Dept. Lawrence Berkeley Nat.
`Lab. pp. 1-5.
`"Digital Video Broadcasting (DVB); Transport of MPEG-2 Based
`DVB Services over IP Based Networks", ETSI TS 102 034vl.l.l pp.
`1-91 (2005).
`
`* cited by examiner
`
`Jae Y Lee
`Primary Examiner -
`(74) Attorney, Agent, or Firm - Myers Bigel Sibley &
`Sajovec, P.A.
`
`ABSTRACT
`(57)
`A method of encoding data for distribution over a network
`includes determining a relative importance of content of a
`data packet associated with a predetermined class-of-service
`as compared to content of other data packets associated with
`the predetermined class-of-service. The data packet is
`marked to indicate the relative importance of the content
`thereof within the predetermined class-of-service. For
`example, based on the information contained in the data
`packet, the data packet may be marked as discard-eligible.
`The data packet is selectively discarded based on the marking
`thereof. Related methods, systems, and devices are also dis(cid:173)
`cussed.
`
`6 Claims, 5 Drawing Sheets
`
`Router
`lli
`
`326c
`
`399a
`
`I .._I __ 39_9_b __,
`Outgoing Packets m
`
`High Priority Queue 305
`
`3268
`1..-0-•E-2 -30-4a-
`
`0~2 304b
`
`DE1
`
`304c
`
`304d
`
`326b
`
`314b
`
`I ~I __ 31_4c___,I ~I __ 31_4d___,~
`
`396
`I
`I DE
`
`394c
`
`I ~I __ 39_4d_J,
`
`Incoming Packets 302
`
`Medium Priority Queue .3.10.
`
`330
`
`327
`
`340
`
`324b
`
`I I ~ - -~
`
`324c
`
`DE
`
`324d
`
`Low Priority Queue ill
`
`VMWARE 1020
`
`
`
`"'""' = N
`
`-....l
`00
`"'""' ~
`tit
`00
`d r.,;_
`
`112
`
`Data Out
`
`lli
`
`Destination Device
`
`11l
`
`Decoder
`
`0 ....
`....
`.....
`rJJ =(cid:173)
`
`('D
`('D
`
`Ul
`
`0 ....
`N
`~o
`N
`~
`~
`
`~
`
`~ = ~
`
`~
`~
`~
`
`00 .
`~
`
`115b
`Router
`
`-I
`
`111111
`
`llQ
`
`Inspection
`
`Packet
`Deep
`
`FIG. 1
`
`120
`
`Network
`
`/100
`
`125
`
`Gateway
`
`115a
`Router
`
`Fire H
`
`108
`wall
`
`Encoder
`
`107
`
`.1Q.5.
`
`Source Device
`
`102
`
`Data In
`
`
`
`U.S. Patent
`U.S. Patent
`
`Aug. 20, 2013
`0
`
`Sheet 2 of 5
`5
`
`us 8,514,871 B2
`
`US 8,514,871 B2
`
`
`
`
`
`2EEm3wVNNNNN8Ng{¥M<
`
`
`
`
`
`
`
`
`
`
`
`.3me.owwNhmwmENMN}NIIWII}3\J\JWJ\llrl\1ENDflDAMA
`
`
`
`owE>uwNzwxoma.wuoocmUNONQNONnNONmNom
`
`
`
`
`
`MON
`
`033uwNzwxomaMdum.
`
`Emgw82>
`
`
`
`
`
`
`
`
`
`.mBUMDMDIIEEAAUa2EmwbmowE>aFLMJ\
`
`.38.8828”Sow
`
`
`
`UVONovomnvommvom
`
`WII}I)\II
`
`NGE
`
`
`
`
`
`"'""' = N
`
`-....l
`00
`"'""' ~
`tit
`00
`d r.,;_
`
`FIG. 3
`
`~
`
`('D
`('D
`
`0 ....
`.....
`rJJ =(cid:173)
`
`Ul
`
`0 ....
`N
`~o
`N
`~
`~
`
`~
`
`~ = ~
`
`~
`~
`~
`
`00 .
`~
`
`Low Priority Queue 325
`
`'324d
`
`324c I
`
`l I
`
`324b
`
`340
`
`327
`
`330
`
`Outgoing Packets 320
`
`\
`
`399b
`
`] I
`
`399a
`
`Medium Priority Queue 310
`
`Incoming Packets 302
`
`314d
`
`I I
`
`314c
`
`I I
`
`314b
`
`326b
`
`394d 1
`
`1
`
`I I
`
`394c
`
`I bE
`L
`396
`
`~04d
`
`I ,□E1 304c
`
`I DE2 304b
`
`I
`
`304a
`
`~E2
`
`326c
`
`High Priority Queue 305
`
`326a't
`
`ill
`Router
`
`
`
`U.S. Patent
`
`Aug. 20, 2013
`
`Sheet 4 of 5
`
`US 8,514,871 B2
`
`Begin
`
`Determine A Relative Importance Of Content Of
`A Data Packet Associated With A Predetermined
`Class-Of-Service As Compared To Content Of
`Other Data Packets Associated With The
`Predetermined Class-Of-Service
`
`Mark The Data Packet To Indicate The Relative
`Importance Of The Content Thereof Within The
`Predetermined Class-Of-Service
`
`400
`
`410
`
`End
`
`FIG. 4
`
`Begin
`
`Begin
`
`Selectively Discard A Data Packet Associated
`With A Predetermined Class-Of-Service
`Based On A Marking Thereof Indicating A
`Relative Importance Of Content Of The Data
`Packet As Compared To Content Of Other
`Data Packets Associated With The
`Predetermined Class-Of-Service
`
`600
`
`End
`
`FIG. 6
`
`Determine Information Contained In A Data
`Packet
`
`Mark The Data Packet As Discard-Eligible
`Based On The Information Contained Therein
`
`500
`
`510
`
`End
`
`FIG. 5
`
`
`
`U.S. Patent
`
`Aug. 20, 2013
`
`Sheet 5 of 5
`
`US 8,514,871 B2
`
`Begin
`
`Determine Content Of A Data
`Packet Associated With An MPEG(cid:173)
`Encoded Video Stream
`
`Mark The Data Packet As Discard(cid:173)
`Eligible When The Content Of The
`Data Packet Does Not Include An
`Intra-Coded (I) Picture Of The
`MPEG-Encoded Video Stream
`
`Selectively Discard The Data
`Packet Based On The Marking
`Thereof Indicating That The
`Content Thereof Does Not
`Comprise An Intra-Coded (I)
`Picture Of A MPEG-Encoded Video
`Stream
`
`700
`
`710
`
`720
`
`End
`
`FIG. 7
`
`
`
`US 8,514,871 B2
`
`1
`METHODS, SYSTEMS, AND COMPUTER
`PROGRAM PRODUCTS FOR MARKING
`DATA PACKETS BASED ON CONTENT
`THEREOF
`
`FIELD OF THE INVENTION
`
`The present invention relates to connnunications networks,
`and, more particularly, to the distribution of data packets over
`communications networks.
`
`BACKGROUND OF THE INVENTION
`
`Connnunications networks are widely used for nationwide
`and worldwide connnunication of voice, multimedia and/or
`data. As used herein, connnunications networks include pub(cid:173)
`lic connnunications networks, such as the Public-Switched
`Telephone Network (PSTN), terrestrial and/or satellite cellu(cid:173)
`lar networks, and/or the Internet.
`Current network technology may provide connnunication
`services using packet technology. Packetization is the break(cid:173)
`ing-up of a data file and/or continuous stream of data into
`discrete segments. As such, a packet may include a relatively
`small portion of the data, which may be transmitted as a single
`unit from a source node on a network to a destination node on
`the network. The packet may include the data as well as
`addressing, routing, and/or reliability information in the form
`of headers and/or trailers to enable the network's connnuni(cid:173)
`cation protocols to deliver the data within the packet to the
`intended recipient, and to ensure that the data arrives intact
`and/or without corruption. Breaking connnunications into
`packets may also allow the same data path to be shared among
`many users in the network. Such use, however, may result in
`network congestion and resultant delays in receipt of com(cid:173)
`munications. For example, network traffic may fill input
`queues in destination systems faster than processing mecha(cid:173)
`nisms can distribute the content, which may thereby cause a
`bottleneck in the connnunication process.
`It is known to utilize various methods of traffic manage(cid:173)
`ment in an attempt to alleviate bottlenecks of this kind. For
`example, multiple transmit queues may be made available in
`order to provide enhanced quality of service ("QoS") based
`on the preferential treatment of some packets over others.
`More particularly, queues of varying priority levels ( e.g., one
`queue per priority level) may be provided into which packets
`may be stored while awaiting transmission on a network. For
`example, voice and/or video traffic may be sensitive to net(cid:173)
`work delays, and as such, may be assigned to a higher priority
`queue than other data. Many network communication proto(cid:173)
`cols, such as the Internet Protocol (IP), may provide the
`capability to specify a priority for a packet as a part of an IP
`header. Providing queues of varying priority levels may
`enable the network adapter to transmit higher priority packets
`before lower priority packets, even though the higher priority
`packets may have been queued subsequent to the lower pri(cid:173)
`ority packets.
`
`SUMMARY OF THE INVENTION
`
`According to some embodiments of the present invention,
`a method of encoding data packets for distribution over a
`network includes determining a relative importance of con(cid:173)
`tent of a data packet associated with a predetermined class(cid:173)
`of-service as compared to content of other data packets asso(cid:173)
`ciated with the predetermined class-of-service. The data
`packet is marked to indicate the relative importance of the
`content thereof within the predetermined class-of-service.
`
`2
`For example, the data packet may include a header section
`and a payload section, and the relative importance of the
`content of the pay load section may be determined. As such, a
`marker may be provided in the header section of the data
`packet to indicate the relative importance of the content of the
`payload section within the predetermined class-of-service.
`In some embodiments, the relative importance of the con(cid:173)
`tent of the data packet may be determined based on an amount
`of information carried in the payload section and/or based on
`10 particular information contained in the payload section.
`In other embodiments, the data packet may be marked as
`discard-eligible based on the relative importance of the con(cid:173)
`tent thereof. More particularly, the relative importance of the
`content of the data packet may be determined based on
`15 whether a file and/or data stream associated with the packet
`can be presented at a predetermined level of quality by a
`destination device coupled to the network if the data packet is
`not received by a receiver thereof. As such, the data packet
`may be marked as discard-eligible when the file and/or data
`20 stream can be presented at the predetermined level of quality
`if the data packet is not received by the receiver.
`In some embodiments, the data stream may be a real-time
`data stream including voice data (such as IP telephony data),
`audio/video data (such as streaming multimedia data and/or
`25 video teleconferencing data), and/or interactive gaming data.
`In other embodiments, the data packet may be marked with
`a specific level of discard-eligibility based on the relative
`importance of the content thereof as compared to the content
`of the other data packets associated with the predetermined
`30 class-of-service.
`In some embodiments, the file and/or data stream may be
`an MPEG-encoded video stream. As such, the data packet
`may be marked as discard-eligible when the content of the
`data packet does not comprise an intra-coded (I) picture of the
`35 MPEG-encoded video stream. For example, the data packet
`may be marked as discard-eligible when the content of the
`data packet comprises a forward-predicted (P) picture and/or
`a bi-predictive (B) picture of the MPEG-encoded video
`stream. In addition, the data packet may be marked at a higher
`40 level of discard-eligibility when the content of the data packet
`comprises a bi-predictive (B) picture of the MPEG-encoded
`video stream.
`In other embodiments, the data packet may be selectively
`discarded based on the marking thereof indicating the relative
`45 importance of the content of the data packet.
`In some embodiments, the header of the data packet may be
`marked at an Application Layer of the Open Systems Inter(cid:173)
`connection (OSI) Reference Model.
`According to other embodiments of the present invention,
`50 a network device is provided that is configured to determine a
`relative importance of content of a data packet associated
`with a predetermined class-of-service as compared to content
`of other data packets associated with the predetermined class(cid:173)
`of-service. The network device is further configured to mark
`55 the data packet to indicate the relative importance of the
`content thereof within the predetermined class-of-service.
`For example, the network device may be an encoder, a fire(cid:173)
`wall, gateway, and/or deep packet inspection (DPI) router.
`According to further embodiments of the present inven-
`60 tion, a method of encoding data packets for distribution over
`a network includes determining information contained in a
`data packet. Based on the information contained in the data
`packet, the data packet is marked as discard-eligible. For
`example, in some embodiments, the information contained in
`65 the data packet may be a portion of an associated file and/or
`data stream. As such, an importance of the data packet to
`rendering the associated file and/or data stream at a destina-
`
`
`
`US 8,514,871 B2
`
`4
`In some embodiments, the data packet may be selectively
`discarded at a Network Layer of the Open Systems Intercon(cid:173)
`nection (OSI) Reference Model based on the marking of a
`header thereof.
`According to still further embodiments of the present
`invention, a network router device is provided that is config(cid:173)
`ured to selectively discard a data packet associated with a
`predetermined class-of-service based on a marking thereof.
`The marking indicates a relative importance of content of the
`data packet as compared to content of other data packets
`associated with the predetermined class-of-service. In addi-
`tion, the router may be configured to selectively discard the
`data present based on a marking thereof indicating that the
`data packet is discard-eligible.
`Other methods, systems, devices, and/or computer pro(cid:173)
`gram products according to other embodiments of the inven(cid:173)
`tion will become apparent to one with skill in the art upon
`review of the following drawings and detailed description. It
`is intended that all such additional methods, systems, devices,
`20 and/or computer program products be included within this
`description, be within the scope of the present invention, and
`be protected by the accompanying claims.
`
`15
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG.1 is a block diagram that illustrates a system for packet
`distribution according to some embodiments of the present
`invention.
`FIG. 2 is a block diagram illustrating an encoder config-
`30 ured to packetize data for distribution over a network accord(cid:173)
`ing to some embodiments of the present invention.
`FIG. 3 is a block diagram illustrating packet queuing in a
`router according to some embodiments of the present inven(cid:173)
`tion.
`FIG. 4 is a flowchart illustrating operations for packet
`distribution according to some embodiments of the present
`invention.
`FIG. 5 is a flowchart illustrating operations for packet
`distribution according to other embodiments of the present
`40 invention.
`FIG. 6 is a flowchart illustrating operations for packet
`distribution according to further embodiments of the present
`invention.
`FIG. 7 is a flowchart illustrating exemplary operations for
`packet distribution according to still further embodiments of
`the present invention.
`
`3
`tion device may be determined based on the information
`contained therein, and the data packet may be marked as
`discard-eligible based on the importance thereof.
`In some embodiments, the data packet may be marked with
`a specific level of discard-eligibility based on a relative
`importance thereof as compared to other data packets asso(cid:173)
`ciated with the file and/or data stream. For example, the data
`stream may be an MPEG-encoded video stream, and a data
`packet containing a bi-predictive (B) picture of the MPEG
`encoded video stream may be marked with a higher level of 10
`discard-eligibility than a data packet that does not contain a
`bi-predictive (B) picture, such as data packets containing
`intra-coded (I) pictures and/or data packets containing only
`forward-predicted (P) pictures of the MPEG encoded video
`stream.
`In other embodiments, the data packet may be associated
`with a predetermined class-of-service. The data packet may
`be marked with a specific level of discard-eligibility based on
`the relative importance thereof as compared to other data
`packets associated with the predetermined class-of-service.
`In some embodiments, the data packet may be selectively
`discarded based on the marking thereof indicating the relative
`importance of the information contained therein.
`According to still other embodiments of the present inven(cid:173)
`tion, a method of distributing data packets over a network 25
`includes selectively discarding a data packet associated with
`a predetermined class-of-service based on a marking thereof.
`The marking indicates a relative importance of content of the
`data packet as compared to content of other data packets
`associated with the predetermined class-of-service.
`In some embodiments, the data packet may be selectively
`discarded from a queue corresponding to the predetermined
`class-of-service based on the marking thereof. More particu(cid:173)
`larly, the data packet may be selectively discarded based on
`the marking thereof as compared to markings of other data 35
`packets stored in the queue and/or incoming data packets
`associated with the queue. For example, the data packet may
`be selectively discarded when a buffer of the queue is full
`and/or when network congestion exceeds a predetermined
`threshold.
`In other embodiments, the data packet may be selectively
`discarded from a first queue based on the marking thereof as
`compared to markings of data packets stored in and/or incom(cid:173)
`ing to a second queue. As such, bandwidth may be dynami(cid:173)
`cally allocated to the second queue based on an available 45
`bandwidth in the first queue after selectively discarding the
`data packet from the first queue.
`In some embodiments, the data packet may be selectively
`discarded based on a marking thereof indicating that the
`content of the data packet is discard-eligible. For example, the 50
`data packet may be selectively discarded based on the mark(cid:173)
`ing thereof indicating that the content thereof does not com(cid:173)
`prise an intra-coded (I) picture of a MPEG-encoded video
`stream. More particularly, the data packet may be selectively
`discarded based on the marking thereof indicating that the 55
`content of the data packet comprises a forward-predicted (P)
`picture and/or a bi-predictive (B) of the MPEG-encoded
`video stream.
`In other embodiments, the data packet may be selectively
`discarded based on the marking thereof indicating a specific 60
`level of discard-eligibility based on a relative importance of
`the content of the data packet as compared to information
`contained in other data packets. For example, the data packet
`may be selectively discarded based on the marking thereof
`indicating a higher level of discard-eligibility when the con(cid:173)
`tent of the data packet comprises a B picture of the MPEG(cid:173)
`encoded video stream.
`
`DETAILED DESCRIPTION OF EMBODIMENTS
`OF THE INVENTION
`
`Specific exemplary embodiments of the invention will now
`be described with reference to the accompanying drawings.
`This invention may, however, be embodied in many different
`forms and should not be construed as limited to the embodi-
`ments set forth therein. Rather, these embodiments are pro(cid:173)
`vided so that this disclosure will be thorough and complete,
`and will fully convey the scope of the invention to those
`skilled in the art. The terminology used in the detailed
`description of the particular exemplary embodiments illus-
`trated in the accompanying drawings is not intended to be
`limiting of the invention. In the drawings, like numbers refer
`to like elements.
`As used herein, the singular forms "a," "an," and "the" are
`intended to include the plural forms as well, unless expressly
`65 stated otherwise. It will be further understood that the terms
`"includes," "comprises," "including," and/or "comprising,"
`when used in this specification, specify the presence of stated
`
`
`
`US 8,514,871 B2
`
`5
`features, integers, steps, operations, elements, and/or compo(cid:173)
`nents, but do not preclude the presence or addition of one or
`more other features, integers, steps, operations, elements,
`components, and/or groups thereof. It will be understood that
`when an element is referred to as being "connected" or
`"coupled" to another element, it can be directly connected or
`coupled to the other element or intervening elements may be
`present. Furthermore, "connected" or "coupled" as used
`herein may include wirelessly connected or coupled. As used
`herein, the term "and/or" includes any and all combinations
`of one or more of the associated listed items.
`The present invention is described hereinafter with refer(cid:173)
`ence to flowchart and/or block diagram illustrations of sys(cid:173)
`tems, methods, and computer program products in accor(cid:173)
`dance with some embodiments of the invention. These 15
`flowchart and/or block diagrams further illustrate exemplary
`operations of the system and device architectures of FIGS. 1
`to 7. It will be understood that each block of the flowchart
`and/or block diagram illustrations, and combinations of
`blocks in the flowchart and/or block diagram illustrations,
`may be implemented by computer program instructions and/
`or hardware operations. These computer program instruc(cid:173)
`tions may be provided to a processor of a general purpose
`computer, a special purpose computer, or other program(cid:173)
`mable data processing apparatus to produce a machine, such
`that the instructions, which execute via the processor of the
`computer or other programmable data processing apparatus,
`create means for implementing the functions specified in the
`flowchart and/or block diagram block or blocks.
`These computer program instructions may also be stored in
`a computer usable or computer-readable memory that may
`direct a computer or other programmable data processing
`apparatus to function in a particular manner, such that the
`instructions stored in the computer usable or computer-read(cid:173)
`able memory produce an article of manufacture including
`instructions that implement the function specified in the flow(cid:173)
`chart and/or block diagram block or blocks.
`The computer-usable or computer-readable medium may
`be, for example but not limited to, an electronic, magnetic,
`optical, electromagnetic, infrared, or semiconductor system,
`apparatus, or device. More specific examples (a nonexhaus(cid:173)
`tive list) of the computer-readable medium would include the
`following: a portable computer diskette, a random access
`memory (RAM), a read-only memory (ROM), an erasable
`programmable read-only memory (EPROM or Flash 45
`memory), and a compact disc read-only memory (CD-ROM).
`Note that the computer-usable or computer-readable medium
`could even be paper or another suitable medium upon which
`the program is printed, as the program can be electronically
`captured, via, for instance, optical scanning of the paper or 50
`other medium, then compiled, interpreted, or otherwise pro(cid:173)
`cessed in a suitable marmer, if necessary, and then stored in a
`computer memory.
`The computer program instructions may also be loaded
`onto a computer or other programmable data processing 55
`apparatus to cause a series of operational steps to be per(cid:173)
`formed on the computer or other programmable apparatus to
`produce a computer implemented process such that the
`instructions that execute on the computer or other program(cid:173)
`mable apparatus provide steps for implementing the func-
`tions specified in the flowchart and/or block diagram block or
`blocks.
`Computer program code for carrying out operations of
`systems, methods, and computer program products according
`to embodiments of the present invention discussed below
`may be written in a high level programming language, such as
`C or C++, for development convenience. In addition, com-
`
`6
`puter program code for carrying out operations of embodi(cid:173)
`ments of the present invention may also be written in other
`programming languages, such as, but not limited to, inter(cid:173)
`preted languages. Some modules or routines may be written
`in assembly language or even micro-code to enhance perfor(cid:173)
`mance and/or memory usage. It will be further appreciated
`that the functionality of any or all of the program modules
`may also be implemented using discrete hardware compo(cid:173)
`nents, one or more application specific integrated circuits
`10 (ASICs), or a progranimed digital signal processor or micro(cid:173)
`controller.
`As used herein, the term "packet" may refer to a unit of
`information and/or a block of data that may be transmitted
`electronically as a whole or via segments from one device to
`another. Accordingly, as used herein, the term "packet" may
`encompass such terms of art as "frame" and/or "message,"
`which may also be used to refer to a unit of transmission. In
`addition, as used herein, the term "multimedia device" may
`20 include any device that is capable of receiving and displaying
`audio and/or video content, and may include a television; a
`set-top box for a television; a satellite or cellular radiotele(cid:173)
`phone with or without a multi-line display; a Personal Com(cid:173)
`munications System (PCS) terminal that may combine a cel-
`25 lular radiotelephone with data processing, facsimile and data
`communications capabilities; a PDA that can include a radio(cid:173)
`telephone, pager, Internet/intranet access, Web browser, orga(cid:173)
`nizer, calendar and/or a global positioning system (GPS)
`receiver; and a personal computer (mobile or stationary) that
`30 includes a modem or other network transceiver. Also, "media
`services" or "multimedia content" may include audio and/or
`video content, applications and/or services.
`Unless otherwise defined, all terms (including technical
`and scientific terms) used herein have the same meaning as
`35 commonly understood by one of ordinary skill in the art to
`which this invention belongs. It will be further understood
`that terms, such as those defined in commonly used dictio(cid:173)
`naries, should be interpreted as having a meaning that is
`consistent with their meaning in the context of the present
`40 application and the relevant art, and will not be interpreted in
`an idealized or overly formal sense unless expressly so
`defined herein.
`Some embodiments of the present invention may arise
`from a realization that when a router queue level exceeds a
`predetermined threshold, such as during periods of high net(cid:173)
`work congestion, incoming packets of a corresponding prior-
`ity level may be randomly dropped or discarded, which may
`negatively affect quality of service. For example, in order to
`render video data, such as an MPEG-encoded video stream, it
`may be necessary to receive and present packets in the correct
`order, with little or no packet loss, and with smooth, continu-
`ous timing, or else essential information may be missing. As
`such, the dropped packets may have to be retransmitted,
`which may result in inefficiency, distribution delays, and/or
`reduced service quality. Accordingly, rather than indiscrimi(cid:173)
`nately dropping data packets during periods of network con-
`gestion, it may be desirable for a network router to selectively
`drop data packets based on the importance of the data con(cid:173)
`tained therein to a destination device that is configured to
`present a file associated with the data packet. Thus, some
`embodiments of the present invention provide methods, sys-
`tems, and devices for prioritizing data packets based on an
`importance of the content of a data packet, for example,
`within a predetermined class-of-service. In addition, certain
`65 packets may be marked as discard-eligible based on the
`importance of the content of the data packet to the destination
`device.
`
`60
`
`
`
`US 8,514,871 B2
`
`7
`FIG. 1 is a block diagram illustrating systems, methods,
`and computer program products for packet distribution
`according to some embodiments of the present invention.
`Referring now to FIG. 1, a packet distribution system 100
`includes a source device 105 that is configured to provide
`packetized data to a destination device 110 via one or more
`communications networks, such as network 120. For
`example, the source device 105 may be a multimedia service
`provider configured to provide multimedia services, such as
`digital telephone, digital cellular phone, internet, and/or digi- 10
`ta! television services to one or more destination devices, such
`as the destination device 110. Accordingly, the destination
`device 110 may be a multimedia device that is configured to
`decode and present the received packetized data to a user. For
`example, the source device 105 and the destination device 15
`110 may be voice-over Internet Protocol (VoIP) enabled tele(cid:173)
`phones configured to transmit and receive voice data there be(cid:173)
`tween over the network 120. As such, the destination device
`110 and/or the source device 105 may also include a user
`interface (not shown) to present the received data. More gen- 20
`erally, although termed as a source device 105 and a destina(cid:173)
`tion device 110 inFIG.1, it is to be understood that the device
`105 may be a destination device and the device 110 may be a
`source device according to some embodiments of the present
`invention.
`The network 120 may represent a global network, such as
`the Internet, and/or other publicly accessible network. The
`network 120 may also, however, represent a wide area net(cid:173)
`work, a local area network, an Intranet, and/or other private
`network, which may not accessible by the general public.
`Furthermore, the network 120 may represent a combination
`of one or more wired and/or wireless public and/or private
`networks and/or virtual private networks (VPN). The network
`120 may be circuit-switched network, such as the Public(cid:173)
`Switched Telephone Network (PSTN), and/or a packet(cid:173)
`switched network, such as the Internet. More generally, the
`network 120 may be any network that is configured to dis(cid:173)
`tribute packetized data from the source device 105 to the
`destination device 110. For example, in some embodiments,
`the network 120 may be coupled to and/or may include an IP
`Multimedia Subsystem (IMS) network. IMS is a standard that
`has been developed to provide for control and integration of
`multimedia services in a packet-switched network. In particu(cid:173)
`lar, the IMS architecture defines a set oflogical functions that
`use a signaling protocol, known as session initiation protocol
`(SIP), to setup, maintain, and terminate packet-switched
`voice and data. As such, an IMS network may provide a
`standardized way to connect IP devices and networks.
`The source device 105 and the destination device 110 may
`be coupled to the network 120 by several other network
`devices. More particularly, as shown in FIG. 1, the source
`device 105 is connected to the network 120 via a firewall 108,
`a router 115a, and a gateway device 125. Similarly, the des(cid:173)
`tination device 110 is connected to the network 120 via a
`firewall 118, a router 115b, and a deep-packet inspection
`device 130. As is well known in the art, the firewalls 108 and
`118 may be configured to intercept, inspect, and/or block
`further distribution of packets traveling to or from an appli(cid:173)
`cation to prevent unwanted outside traffic from reaching
`devices coupled thereto. The routers 115a and 115b may be
`configured to sel