throbber
Purdue University
`Purdue e-Pubs
`
`Computer Science Technical Reports
`
`Department of Computer Science
`
`2-1-1997
`
`Active Gateway: A Facility for Video Conferencing
`Traffic Control
`
`ShungeLi
`
`Bharat Bhargava
`
`Li, Shunge and Bhargava, Bharat, "Active Gateway: A Facility for Video Conferencing Traffic Control" ( 1997). Computer Science
`Technical Reports. Paper 1349.
`http://docs.lib.purdue.edu/
`cstech/ 1349
`
`This document has been made available through Purdue e-Pubs, a service of the Purdue University Libraries. Please contact epubs@lpurdue.edu
`
`for
`
`additional
`
`information.
`
`INV0009324
`
`Page 1 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`ACTIVE GATEWAY:
`A FACILITY FOR VIDEO
`CONFERENCING TRAFFIC CONTROL
`
`Shunge Li
`Bharat Bhargava
`
`Department of Computer Sciences
`Purdue University
`West LafayUc, IN 47907
`
`CSD-TR 97-011
`February 1997
`
`INV0009325
`
`Page 2 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`Active Gateway:
`
`
`A Facility for Video Conferencing Traffic Control*
`
`Shunge Li and Bharat Bhargava
`
`
`
`Department of Computer Sciences
`Purdue University
`
`West Lafayette, IN 47907, U.S.A
`
`{lis, b b }@cs.purdue.edu
`
`Abstract
`
`Active technology is emerging as one of the most promising fields in networking and
`
`
`
`
`
`
`distributed computing. It permits customized and more flexible control over the underlying
`
`
`
`networks. End users can systematically and strategically study and change the network
`
`
`
`behaviors by programming individual nodes of the network. The functionality of an active
`
`
`network goes beyond the traditional data transmission; each node of an active network
`
`
`has the ability to executing certain programs ( or commands) passing through it. This
`
`
`
`
`
`
`pa.per describes our research work of applying active technology to video conferencing traffic
`
`
`
`
`
`control. We present the architecture and the design of an application-level facility, called
`
`
`active gateway, for video conferencing traffic and quality of service (QoS) control. We
`
`show that this facility enables more control functions for video conferencing which are
`
`
`
`not seen in conventional video conferencing tools. We illustrate its features through several
`
`
`
`
`experiments. Many important issues related to the design of an active network are discussed.
`
`
`
`Some technical solutions and future improvement a.re suggested.
`
`1 Introduction
`
`Recent technological advances in computing has come to a point where human,s understanding of
`
`
`
`
`
`computation model and the way computing should be done are about to change. Computers are
`
`
`
`not stand-alone entities any more. They are networked globally, or at least within an enterprise
`
`
`
`or an organization. On the other hand, people have realized that the computer network itself
`
`
`
`·This research is supported by NSF under grant number NCR-9405931
`
`
`
`INV0009326
`
`Page 3 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`It is no longer just a passive medium for moving data from one
`can function as a computer.
`place to another. It can actively generate, store, exchange, and control information, and can be
`programmed by end users. In other words, it can be a computer itself!
`
`Active technology, under this situation, is emerging as one of the most promising fields in dis(cid:173)
`tributed computing. Under the networking context, each network node is active if it can not only
`perform its traditional
`task of data transmission, but also execute programs or commands passing
`through it. Therefore, end users of an active network can systematically and strategically study
`and change the network's cooperative or non-cooperative behaviors by, for example, injecting to
`each active node a piece of programs in certain way and letting them be executed simultaneously
`to create some useful scenarios that aren't easily repeated in practice. With active technology,
`end users can have more flexible control of the network by programming
`the network as a whole.
`They can conduct scientific experiments repeatedly
`in a more controHable fashion. They can
`also customize the network computing environments by manipulating
`the network resources as
`well as the performance parameters of each node. By programming
`the network routers, end
`users can have better control over the way shared system and network resources are managed.
`Bandwidth mismatch problem among different network links, personalized QoS requirements, as
`well as traffic scheduling, can be handled more easily.
`
`Active network or programmable network also brings to the network community another
`benefit that isn't seen in traditional network systems. Currently, it is difficult to incorporate new
`algorithms or services into routers or switches without going through the complex standardization
`process that can last for at least 5 years. This is due to the fact that whatever new services come
`to the intermediate gateways are expected to have a wide range of applications to build upon and
`therefore must be adopted with care. Active network permits rapid development, deployment,
`and utilization of new network services, protocols, functionalities by giving users the ability to
`programming network nodes and to experimenting
`their new ideas right away.
`
`in networking. For example,
`Active technology opens up a door with many opportunities
`resource management is a big issue in multimedia communications. Resource reservation usually
`results in resource under-utilization. With active technology, bandwidth which has been reserved
`for some application can be temporarily borrowed by other applications needing it if the former is
`not using full amount of reserved bandwidth. This can be easily achieved by forcing the involved
`gateway to run a program that properly marshals the bandwidth among applications.
`
`Active network is a timely service because its ability to executing programs at each node is
`much needed by many application domains: security, multimedia, network management,
`traffic
`control, service customization,
`to name a few. This paper describes our research work of applying
`active technology to video conferencing control. We present the architecture and the design of
`an application-level facility called active gateway. We show that its facility enables more control
`functions which are not seen in conventional video conferencing tools. We illustrate its features
`
`2
`
`INV0009327
`
`Page 4 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`issues related to the design of an active network
`through several experiments. Many important
`are discussed. Some technical solutions and future improvement are suggested.
`
`2 Related Work
`
`An active network isn't something that is different from current networks in its entirety. Some
`forms of preliminary active network capabilities can be found in several products or systems.
`For example, a typical commercial router encapsulates multiple protocol modules that can be
`easily configured by system administrators based on their running environments. This kind
`of configurability
`is very limited compared to the programmability
`the active network offers,
`however, because human knowledge about when and what to configure in the router under a
`certain condition has not been incorporated
`into a program; the corrfiguration task is currently
`performed through human interaction with the router at run time. With active network, we
`can program this human knowledge into the configuration task and launch the program at the
`intermediate routers. Routers will no longer need the system administrators
`to configure them;
`the program does it all.
`
`Similarly, video gateway ([AMZ95]) and mixer mechanism defined in RTP ([SCFJ96]) can
`perform 1 at intermediate network nodes, certain application-level processing functions such as
`transcoding, stream synthesizing, and filtering. Firewalls, Web proxies, and agents are also
`mechanisms that allow fixed sets of processing tasks to be performed at some network nodes.
`The fact that all these technologies are applied within individual end systems and above the
`end-to-end network layer ([TW96]) has led to several recent research activities that leverage and
`extend these technologies for use within the network.
`
`The laboratory for Computer Science at MIT has implemented a network service called Active
`IP Option ([WT96]), in which Tel scripts are embedded in IP packets using IP option fields. Any
`gateway recognizing the special options can interpret and execute the scripts. Others just ignore
`them. With this new service, many traditional networking services, such as finding MTU of a
`remote network link, can be re-implemented
`in a more efficient fashion. More importantly, new
`functionalities can be built upon.
`
`Researchers at MIT also proposed to build an experimental ActiveNet on the Internet ([TGSK96]).
`ActiveNet is intended to be designed as a network infrastructure
`that will serve as a testbed and
`environment for active network researches. It is proposed to be built very much the same way
`the MBone ([Eid94]) was built, that is, through tunneling. This is a cost-effective approach
`because it does not build a separate network. The ActiveNet will be made transparent
`to other
`Internet users as they won't be aware of the existence of the ActiveNet. The Internet and the
`ActiveNet wiJl co-exist, and the Internet will operate as usual. About a dozen institutes have
`agreed to work towards this goal and many other organizations have expressed their interests in
`
`3
`
`INV0009328
`
`Page 5 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`participating
`
`in such a construction.
`
`NetScript ([YdS96]) is another effort by researchers at Columbia University towards build(cid:173)
`ing active programmable networks. The NetScript project focuses on the architecture
`issue for
`programmable network. Each intermediate programmable network node is considered as a Vir(cid:173)
`tual Network Engine (VNE) interconnected by Virtual Links (VL). A VNE is programmed by
`NetScript agents to process packets and route them to other VNEs via some VLs. Agents them(cid:173)
`selves receive services from the Agent Services layer which supports delegation, execution, and
`control of agent programs, as well as communication services among agents. NetScript is a small
`and simple dataflow language specifically designed for communications-based
`tasks.
`
`The idea of active network can be applied to network hardware facility as well. Switch Ware,
`proposed by researchers at University of Pennsylvania and Bellcore, is an instance of active
`network engineering practice [Sea96]. A Switch Ware is a programmable, software-controlled net(cid:173)
`work switch intended to replace the special-purpose switching hardware. It consists of input and
`output ports controlled by a software-programmable element. Sequences of messages contain(cid:173)
`ing programs a.re sent to the SwitchWare switch's input ports, which interpret
`the messages as
`programs.
`
`In this paper, we demonstrate a. practical prototype system that controls video conferencing
`streams via active application gateways. We show that by programming active application
`gateways, we can achieve new control services that would otherwise hardly be achievable with
`traditional video conferencing technology.
`
`3 Active Application Gateways
`
`3.1 Design Methodology
`
`3.1.1 Application Domains
`
`One of the primary objectives for us to develop the facility of active gateways is to build a testbed
`for conducting experiments on real-time multimedia communications. This facility will allow us
`to study these issues in a more controllable and more systematic way. Study of new protocols for
`multimedia communications, new resource management schemes, and new QoS control mecha(cid:173)
`nisms will be largely facilitated through the use of such a facility. However, the facility is not
`just limited to these domains. It can also be used in network management, distributed object
`systems, security, world-wide information systems, etc. In this paper, we focus on its use in video
`conferencing traffic control.
`
`4
`
`INV0009329
`
`Page 6 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`3.1.2 Kernel Implementation
`
`vs. Application-Level
`
`Implementation
`
`We implemented
`following reasons:
`
`the facility of active gateways as an application-level service because of the
`
`1. Because many features of active gateways are in experimental stage, they are expected to
`be added, removed, or updated frequently. Developing them directly within kernels would
`mean frequent kernel changes, compilations, and installations, which are time-consuming
`tasks.
`
`2. An active network provides end users with an ability to customizing the systems for specific
`applications. A specific application, however, usually has specialized requirements
`that
`cannot be generalized to other applications. This highly application-oriented nature makes
`its development and deployment. unsuitable
`to be done in the operating systems' kernels,
`which are supposed to offer services for all applications.
`
`3. Developing active gateways as an application service allows current systems to continue
`operation without being affected by the development process.
`
`4. Most developers don't have access to the kernel source codes, making application-level
`development the only choice.
`
`Not only does the development of active gateways not need to change kernel, it does not re(cid:173)
`quire super-user permission to run it 1 either. In fact, during development process we deliberately
`avoided using those system services that would require root permission. A superuser permission
`requirement limits the usability of a software to a great extent. It may also leave some security
`holes to malicious users. Easy compilation, installation, execution, and great degree of usability
`are what we seek for this software.
`
`3. 1.3 Program Encoding Schemes
`
`role in an active
`The scheme in which a program is encoded or expressed plays an important
`network. A good scheme must support mobility, portability, and efficiency. It may optionally
`support built-in security features, or simply let network protocols to handle the issue.
`
`Mobility not only refers to heterogeneity or platform-in.dependency, but also implies the ability
`to adjusting to running environments of different network nodes. Because a program is expected
`to flow through a number of network nodes on a range of possibly different platforms in an active
`network before it reaches its ultimate destination, either the program encoding scheme must be
`platform-independent or each active node must be capable of doing on-the-fly compilation on the
`program source codes. If the program is expressed in binary code, it may not be recognizable
`by some active nodes unless it also carries binary codes that can be recognized by the nodes.
`
`5
`
`INV0009330
`
`Page 7 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`However, simultaneously carrying binary codes for multiple platforms increases code redundancy
`and wastes considerable network bandwidth. Therefore, although binary encoding scheme is the
`In a heterogeneous
`most efficient one, it works only on platforms with binary compatibility.
`environment such as the Internet, this approach has very limited interoperability.
`
`There are two ways to deal with programs expressed in source code scheme: interpretation and
`on-the-fly compilation. On-the-fly compilation, while achieving the greatest interoperability, has
`severe performance penalty because the nodes must first compile a program and link the object
`code with libraries before they can execute it. This time-consuming process is sometimes not
`affordable for real-time applications. Even though an application is not time-critical, run-time
`compilation usually takes long time, which will result in unpleasant response time. Interpretation,
`on the other hand, allows programs to be evaluated right away without requiring knowledge about
`the binary co de formats of local platforms. For programs of small sizes, it has reasonable response
`time. Furthermore,
`it supports rapid prototyping.
`
`Intermediate code scheme is a compromise between compilation scheme and interpretation
`scheme in terms of efficiency and portability. This approach introduces a concept of Virtual
`Machine (VM), whose intermediate code format is supported universally. Every active node
`recognizes the intermediate code format and has a translation routine that does the mapping
`from the intermediate code format onto binary code format of the local platform. A program
`is compiled and translated
`into the intermediate code format at the dispatcher node before
`this intermediate code into its
`dispatched to active nodes. Each active node then translates
`own binary code which is linkable and executable on its local machine. This approach achieves
`a good balance between portability and efficiency, therefore is the most promising approach.
`The only requirement for this approach to work globally is that every node must support VM
`intermediate code format (e.g., the bytecode format in Java) and must have a Lranslation routine
`to map between its local platform binary code format and the VM intermediate code format.
`
`Therefore, a good candidate of the program encoding schemes must be both platform(cid:173)
`independent and interpretable.
`In addition,
`it must be simple and concise in order to save
`network bandwidth. Many scripting languages, such as Tel ([Ous93)) and Perl ([Lar96)), meet
`these requirements. Java ([GM95]), though not a scripting language, falls into this category well
`due to its Virtual Machine (VM) model. Its nice integration with the World-Wide-Web (WWW)
`and its built-in security features make it especially attractive
`in future deployment of active
`network technology through WWW. Perl, as one of the major languages for Common Gateway
`Interface (CGI) programming in the WWW stage, has been very successful in the WWW world,
`which is by nature heterogeneous. It has great potential towards being developed as one major
`working language for active network. Tel has already been used in the Active IP Option re(cid:173)
`search. Its conciseness, ease to build GUis with, and ease to integrate with C language, make it
`a non-negligible choice as a working language for active network. Other languages, such as ML,
`
`6
`
`INV0009331
`
`Page 8 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`have also been used in active network programming ([Sea96]). (YdS96] developed a dataflow
`language called NetScript as a means for programmable network research. However, they need
`to be further developed towards mobility, portability, and efficiency, in order to be accepted
`globally.
`
`We use Tel scripting language in our development of active gateways due to following reasons:
`
`It took us about one month to build our prototyped (demonstratable)
`1. Rapid prototyping.
`active gateways, though constant improvement is always needed.
`
`into C programming language, which is used to implement major gateway
`2. Embeddability
`functionalities. Tcl's interpreter
`is implemented as a library of C functions that can easily
`be incorporated
`into applications.
`
`flexible
`3. GUI support by .Tk, a companion toolkit of Tel. AccessibHity, customization,
`control, and systematic manipulation of active network imply an easy-to-use and friendly
`GUI.
`
`4. Efficiency and portability. For small programs, Tel achieves reasonably good efficiency.
`Compared to Java-approach, which will be described later, no compilation process is in(cid:173)
`volved. As to portability, Tcl's interpreters are available on most platforms.
`
`3.2 Architecture
`
`of the Active Network
`
`We have constructed an experimental active network prototype on top of our campus network
`environment. The active network consists of a set of active application gateways, a set of end
`systems, and a set of dispatchers, all of which can be placed on arbitrary network nodes. Such
`an active network is virtual because it does not exist physically; it is built on top of conventional
`IP networks. However, it is a network from end users' perceptions because they are not aware
`of the existence of the underlying physical network, which actually delivers dispatched programs
`transparently. They are aware only of the logical entities (e.g., routes, connections) in the active
`network. Creating such a virtual network is useful because it does not change the routers in the
`physical network at all and thus allows them to continue operation without being affected by
`the active network. Figure 1 depicts the relationship between an active (virtual) network and a
`physical network.
`
`To avoid kernel changes within the routers of an active network and superuser permission
`requirement 1 we use UDP instead of raw IP as the basic networking service. Tel scripts, along
`with other meta information (see the next subsection}, are encapsulated
`in UDP datagrams,
`which are in turn delivered in conventional networks.
`
`7
`
`INV0009332
`
`Page 9 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`Figure 1: A Virtual Network and Its Physical Network
`
`Figure 2 shows a simple but typical case of active network setup where an active gateway is
`placed in a network node between two networks each respectively connecting an end system. Also
`connected to the gateway via a separate network is a dispatcher, which serves as an operational
`platform for the active gateway. The dispatcher
`issues programs or scripts
`to the gateway
`over some network and receives from the gateway return messages that report
`the status of
`applications, resource usages, statistical
`information about network traffics, etc. The purpose
`of such a construction
`is to enforce the communication between two end systems to go through
`the gateway, therefore facilitating experimentation. The active gateway can perform traditional
`packet routing function in the logical sense in addition to executing programs dispatched from
`remote dispatcher softwares.
`
`In general, an active network may contain arbitrary number of dispatcher programs and/or
`active gateways in the same physical network at the same time. They can provide services
`to arbitrary number of end systems and can communicate with each other using a built-in
`routing facility. Because the dispatcher programs and the active gateways are implemented at
`application~level, both can be launched as standalone applications from any nodes and run on
`any target machines in the network, allowing easy installation and utilization by end users. In
`practice, only one dispatcher is needed because it can concurrently dispatch various programs to
`as many gateways as possible.
`
`3.3 Communication
`
`Facility
`
`The communication facility in our active network is constructed to support dispatch of programs
`as well as communications among active gateways. An active gateway is responsible for normal
`packet routing as well as handling programs passing through it. A well known port number has
`
`8
`
`INV0009333
`
`Page 10 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`Dispatcher
`
`Nelwork
`
`Sender
`
`Receiver
`
`1---------1
`
`Nel work
`
`1-------1
`
`Network
`
`1---------1
`
`Gateway
`
`Figure 2: A Simple Active Network
`
`been established for application-level packet routing. To demultiplex normal data packets and
`dispatched programs, we designate a separate port number to handle programs flowing through
`active gateways. Any active gateway listening to this particular port will receive program(cid:173)
`embedded UDP datagrams passing through it.
`
`Note that it is possible to share the same port between application data packets and program(cid:173)
`embedded UDP datagrams. However, doing so would require to define a new type field in the
`packet header. For every application
`the active gateway wants to support, its packet structure
`has to be updated to incorporate this type field. Specifying a separate port number for dispatched
`programs would provide a more general mechanism that can work with as many applications as
`possible while minimizing modifications that have to be made to the applications.
`
`into UDP datagrams and dispatched to the network. Besides
`Tel scripts are encapsulated
`the scripts themselves, also included in UDP datagrams are extra control and meta information
`such as program encoding scheme, routing and addressing information, meta information about
`the scripts (length, constants, environment variables, parameters).
`For security reasons, the
`Tel-scripts (or any other programs) need to be encrypted using some cryptographic scheme such
`as public key cipher. Meta information therefore may also contain digital signatures and public
`keys. These information are packaged as a message header of the Tel scripts and are placed at
`a layer above UDP (table 1).
`
`3.4 Components
`
`of Active Gateways
`
`runs as a
`An active gateway is currently implemented with two threads. The Tel interpreter
`thread and the router, which performs normal functions of routing, event handling, scheduling,
`
`9
`
`INV0009334
`
`Page 11 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`Table 1: Format of Script-Embedded UDP Datagrams Dispatched to Active Gateways
`
`I UDP Header I Meta Data / [Encrypted] Tel Script /
`
`Input Packet Queues
`
`Data Packets
`
`Programs/Scripts
`
`Interpreter
`
`Packet Router
`
`Packet Scheduler
`
`Resource Manager
`
`Output Packet Queues
`
`Figure 3: Components of An Active Gateway
`
`runs as the other. Figure 3 shows the components of an active gateway.
`
`3.4.1
`
`Routing Tables
`
`The most basic functionality a gateway performs is packet routing. Each active gateway has its
`own built-in routing table that is controllable by end users through program dispatching. This
`routing table specifies logical routes in the active network, not physical routes in underlying
`physical network. For example, one hop away (from A' to C) in an active network may be
`several hops apart (from A to C) in an actual physical network (figure 1). Users of the active
`network are unaware of the routing operations performed in the underlying network; instead,
`they are aware only of the routing operations performed in the active network.
`
`From implementation point of view, the routing table of an active gateway is no difference
`from that of a conventional IP gateway. For each destination IP address, it contains the IP
`
`10
`
`INV0009335
`
`Page 12 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`address of the next hop gateway (in the logical sense). The routing table at each active node
`(hosts as well as intermediate gateways) is configurable through some primitives and is consulted
`to determine the next logical route to send the UDP datagrams
`to. The content of the routing
`table can be changed at any time by the active node by executing programs dispatched to it.
`This logical facility allows end users to easily perform application-specific
`traffic flow control
`without changing physical routes for other applications. Packets of other applications are routed
`the same way as if there were not active gateways in the network.
`
`3.4.2
`
`Primitives
`
`Primitives are the smallest programmable units that can perform the most basic functionality
`for a specific application in an active network. They form a base from which all the application's
`control functions can be derived. In this paper, we are not intended to define primitives for
`the active network's control language. Rather,
`the primitives we are talking about here are
`application-oriented.
`
`Our primitives can be categorized into two classes:
`
`primitives. These are are basic operations involving communications
`• Communication
`among active network nodes. Examples include operations on routing table (setting, chang(cid:173)
`ing, or removing routes), network resources (setting bandwidth), network QoS (querying
`link latency, throughput), and application QoS (querying delay,jitter, connection informa(cid:173)
`tion).
`
`that deal only with
`primitives. These are are basic operations
`• Non-communication
`the local entities such as resources. Examples include operations on resource management,
`scheduling, priorization, policy, etc. Also provided are primitives regarding time event
`management,
`including invoking an event or a procedure at a particular
`time, delaying an
`event by a time interval, etc.
`
`3.4.3
`
`Policies
`
`Policy-based control mechanism is a must for many distributed systems and applications. QoS
`control in real-time multimedia communications
`is by definition policy-based simply because
`there does not exist a single universal control scheme that works for all cases.
`
`In terms of
`Policies used in active gateways can be classified based on different criteria.
`functionality, they can be classified as control policy and scheduling policy; in terms of the way
`they are defined and dispatched, they can be classified as static policy and dynamic policyi and
`in terms of generality, they can be classified as application-specific policy and general policy.
`
`11
`
`INV0009336
`
`Page 13 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`Control policies deal with how to perform a certain type of control. For example, a control
`policy may define which packets should be dropped or which connections ( or channels) should
`be closed when the available network bandwidth falls below a threshold. Scheduling policies
`deal with how to schedule system and network resources. For example, a scheduling policy may
`state how to allocate and schedule resources among multiple connections. Static policies are
`predefined. Dynamic policies are defined and dispatched by end users on-the-fly.
`
`Active gateways support many control policies and scheduling policies that can be either
`static or dynamic or both. During initialization, an active gateway loads predefined policies.
`During execution of a program, a newly defined policy can be taken into effect by replacing
`the current policy. This dynamic reconfigurability of policies can be programmed in Tel scripts.
`Each policy has a unique policy number and is implemented as a Tel procedure. Therefore, a
`policy can be overwritten by redefining the corresponding Tel procedure on-the-fly.
`
`3.4.4 GUI
`
`A graphical user interface (GUI) has been designed and implemented for the dispatcher software
`to make its operations easy. It serves as a software platform for launching Tel-scripts on active
`gateways. It greatly facilitates our experimentation.
`
`Our GUI consists of a control panel (a set of control buttons/scales),
`an information panel
`reporting network status or statistical
`information, a text-editable window for users to type in
`commands/scripts
`and to dispatch to the gateways for execution. Menu bars and accelerate
`keys are also provided to facilitate and speed up operations. A graphical panel that can picto(cid:173)
`rially show state/status
`information is to be added to enhance the visualizability of information
`presentation.
`
`3.4.5
`
`Events
`
`Many events are encountered in a real multimedia communication session. They include data
`loss, data corruption, and retard of data delivery. To study their effects on QoS, a mechanism is
`needed to control the generation of these events.
`
`Active gateways support many operations other than routing. These events include dropping
`a packet, delaying the delivery of a packet by a certain amount of time, recording a packet, cor(cid:173)
`rupting a packet, and transcoding a packet. The purpose of supporting
`these special operations
`at intermediate gateways is to simulate various network service models and traffic models on
`a more controllable network environment such as a campus network. Often, communications
`with UDP in LANs witness less or no data loss. Even in a lossy environment,
`the quantity of
`the loss rate is hard to control. By dropping packets flowing into an intermediate gateway with
`certain probability, we introduce a loss rate into packet delivery over a specific link. Also, many
`
`12
`
`INV0009337
`
`Page 14 of 27
`
`Implicit Exhibit 2012
`Juniper v. Implicit
`
`

`

`infrequently-occurred events can be re-produced as many times as we want. With this approach,
`coupled with active technology, data loss or other events becomes more controllable, manageable,
`and programmable.
`
`these special events systematically.
`to generate
`An event generator has been implemented
`Associated with each event is a routine that implements the semantics of that event. These
`routines will be called when corresponding events are activated. The event generator follows a
`proba

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