EP1254538A2 - Stream connection management in wireless computer networks - Google Patents
Stream connection management in wireless computer networksInfo
- Publication number
- EP1254538A2 EP1254538A2 EP01947000A EP01947000A EP1254538A2 EP 1254538 A2 EP1254538 A2 EP 1254538A2 EP 01947000 A EP01947000 A EP 01947000A EP 01947000 A EP01947000 A EP 01947000A EP 1254538 A2 EP1254538 A2 EP 1254538A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- stream
- connection
- network
- data
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1043—Gateway controllers, e.g. media gateway control protocol [MGCP] controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
Definitions
- the present invention relates generally to a scheme for communications within a computer network and, in particular, to such communications as occur between nodes in such a network across a wireless link.
- Modern computer networks allow for inter-communication between a number of nodes such as personal computers, workstations, peripheral units and the like.
- Network links transport information between these nodes, which may sometimes be separated by large distances.
- most computer networks have relied on wired links to transport this information.
- wireless links are used, they have typically been components of a very large network, such as a wide area network, which may employ satellite communication links to interconnect network nodes separated by very large distances.
- the transmission protocols used across the wireless links have generally been established by the service entities carrying the data being transmitted, for example, telephone companies and other service providers.
- analog wireless communication links Although easier to install than conventional wired communication links, analog wireless communication links suffer from a number of disadvantages. For example, degraded signals may be expected on such links because of multipath interference. Further, interference from existing appliances, such as televisions, cellular telephones, wireless telephones and the like, may be experienced. Thus, analog wireless communication links offer less than optimum performance for a home environment.
- a subnet 10 includes a server 12.
- the term "subnet” is used to describe a cluster of network components that includes a server and several clients associated therewith (e.g., coupled through the wireless communication link).
- a subnet may also refer to a network that includes a client and one or more subclients associated therewith.
- a “client” is a network node linked to the server through the wireless communication link. Examples of clients include audio/video equipment such as televisions, stereo components, personal computers, satellite television receivers, cable television distribution nodes, and other household appliances.
- Server 12 may be a separate computer that controls the communication link, however, in other cases server 12 may be embodied as an add-on card or other component attached to a host computer (e.g., a personal computer) 13.
- Server 12 has an associated radio 14, which is used to couple server 12 wirelessly to the other nodes of subnet 10.
- the wireless link generally supports both high and low bandwidth data channels and a command channel.
- a channel is defined as the combination of a transmission frequency (more properly a transmission frequency band) and a pseudorandom (PN) code used in a spread spectrum communication scheme.
- PN pseudorandom
- a shadow client 18 is defined as a client which receives the same data input as its associated client 16 (either from server 12 or another client 16), but which exchanges commands with server 12 independently of its associated client 16.
- Each client 16 has an associated radio 14, which is used to communicate with server 12, and some clients 16 may have associated subclients 20.
- Subclients 20 may include keyboards, joysticks, remote control devices, multidimensional input devices, cursor control devices, display units and/or other input and/or output devices associated with a particular client 16.
- a client 16 and its associated subclients 20 may communicate with one another via communication links 21, which may be wireless (e.g., infra-red, ultrasonic, spread spectrum, etc.) communication links.
- Each subnet 10 is arranged in a hierarchical fashion with various levels of the hierarchy corresponding to levels at which intra-network component communication occurs.
- the server 12 and/or its associated host 13
- the clients 16 communicate with their various subclients 20 using communication links 21, for example, wired communication links or wireless communication links such as infrared links.
- a communication protocol based on a slotted link structure with dynamic slot assignment is employed.
- Such a structure supports point-to-point connections within subnet 10 and slot sizes may be re-negotiated within a session.
- a data link layer that supports the wireless communication can accommodate data packet handling, time management for packet transmission and slot synchronization, error correction coding (ECC), channel parameter measurement and channel switching.
- ECC error correction coding
- a higher level transport layer provides all necessary connection related services, policing for bandwidth utilization, low bandwidth data handling, data broadcast and, optionally, data encryption.
- the transport layer also allocates bandwidth to each client
- each transmission slot (forward or reverse) is made up of one or more radio data frames 40 of variable length.
- each radio data frame 40 is comprised of server/client data packets 42, which may be of variable length.
- Each radio data frame 40 is made up of one server/client data packet 42 and its associated error correction coding (ECC) bits. Nariable length framing is preferred over constant length framing in order to allow smaller frame lengths during severe channel conditions and vice-versa. This adds to channel robustness and bandwidth savings.
- ECC error correction coding
- variable length frames may be used, however, the ECC block lengths are preferably fixed. Hence, whenever the data packet length is less than the ECC block length, the ECC block may be truncated (e.g., using conventional virtual zero techniques). Similar procedures may be adopted for the last block of ECC bits when the data packet is larger.
- each radio data frame 40 includes a preamble 44, which is used to synchronize pseudo-random (P ⁇ ) generators of the transmitter and the receiver.
- Link DD 46 is a field of fixed length (e.g., 16 bits long for one embodiment), and is unique to the link, thus identifying a particular subnet 10.
- Data from the server 12/client 16 is of variable length as indicated by a length field 48.
- Cyclic redundancy check (CRC) bits 50 may be used for error detection/correction in the conventional fashion.
- each frame 52 is divided into a forward slot F, a backward slot B, a quiet slot Q and a number of radio turn around slots T.
- Slot F is meant for server 12-to-clients 16 communication.
- Slot B is time shared among a number of mini-slots Bi, B2, etc., which are assigned by server 12 to the individual clients 16 for their respective transmissions to the server 12.
- Losy data i.e., data that may be encoded/decoded using lossy techniques or that can tolerate the loss of some packets during transmission/ reception
- lossless data i.e., data that is encoded/decoded using lossless techniques or that cannot tolerate the loss of any packets during transmission/reception
- Low bandwidth data and/or command (Cmd.) packets Slot Q is left quiet so that a new client may insert a request packet when the new client seeks to login to the subnet 10.
- Slots T appear between any change from transmit to receive and vice-versa, and are meant to accommodate individual radios' turn around time (i.e., the time when a half-duplex radio 14 switches from transmit to receive operation or vice- versa).
- the time duration of each of these slots and mini-slots may be dynamically altered through renegotiations between the server 12 and the clients 16 so as to achieve the best possible bandwidth utilization for the channel.
- each directional slot i.e., F and B
- each directional slot i.e., F and B
- Forward and backward bandwidth allocation depends on the data handled by the clients 16. If a client 16 is a video consumer, for example a television, then a large forward bandwidth is allocated for that client. Similarly if a client 16 is a video generator, for example a video camcorder, then a large reverse bandwidth is allocated to that particular client.
- the server 12 maintains a dynamic table (e.g., in memory at server 12 or host 13), which includes forward and backward bandwidth requirements of all on-line clients 16. This information may be used when determining whether a new connection may be granted to a new client. For example, if a new client 16 requires more than the available bandwidth in either direction, server 12 may reject the connection request.
- the bandwidth requirement (or allocation) information may also be used in deciding how many radio packets a particular client 16 needs to wait before starting to transmit its packets to the server 12. Additionally, whenever the channel conditions change, it is possible to increase/reduce the number of ECC bits to cope with the new channel conditions. Hence, depending on whether the information rate at the source is altered, it may require a dynamic change to the forward and backward bandwidth allocation.
- communications between two or more network components are managed at the network data link layer level to facilitate transmitting multimedia stream data between said network components.
- the network data link layer includes a medium access control (MAC) protocol defining the multimedia stream communication management.
- managing the communications includes setting up and/or tearing down a stream data connection (which may be unidirectional or bi-directional) between said network components. Such communication may occur via a wireless communication link between the network components and this link may support radio frequency, direct sequence spread spectrum or other frequency hopping communication techniques. In other cases, infra-red frequency communications may be used.
- the network components preferably include a MAC level connection manager. This connection manager may include a control layer and a channel interface layer and may be responsible for managing the stream data connections.
- a network interface includes a connection manager that manages stream data connections at a network data link layer level.
- This interface may include a wireless communication device.
- Another embodiment provides a system that includes a network interface, the network interface (which may include a wireless communication device) including a connection manager that manages stream data connections at a network data link layer level.
- the network interface (which may include a wireless communication device) including a connection manager that manages stream data connections at a network data link layer level.
- a further embodiment provides a machine-readable medium (e.g., a memory or other medium) that provides instructions, which when executed by a machine, cause said machine to manage communications at a network data link layer level between said machine and one or more other machines in a computer network such that a stream data connection is established between said machines.
- a machine-readable medium e.g., a memory or other medium
- connection manager associated with a network component establishes connections with applications associated with the same network component to provide stream data from other network components to such applications.
- the connections between connection manager and applications may be established with a set of application interface commands and messages. Examples of such application interface commands and messages include one or more of the following:
- the application registers with the connection manager such that a unique identifier is associated to said application. Then, the application may issue requests to the connection manager for a stream connection by providing its registered identifier and a data type for the data stream requested.
- the connection manager associated with a network component establishes stream data connections with one or more other connection managers associated with one or more other network components in response to such requests and the connections between connection managers are established with a set of stream commands, which may include one or more of the following commands: a stream connection request, a stream connection acceptance, a stream connection abort, a stream connection complete, a stream disconnection request, and a stream disconnection complete.
- Parameters for the transmission of multimedia stream data may be dynamically negotiated for each stream communicated between network components.
- Such transmission parameters may include one or more of the following: a rate of data traffic across the network, a maximum tolerable delay, a maximum retransmission delay, a maximum burst size, a priority of the stream, a delay variation, and an average packet length.
- Priorities of the stream may be set, including isochronous stream priority, high stream priority, medium stream priority and low stream priority. Low priority streams may be transported over the network on a best effort service.
- Figure 1 illustrates a generalized network structure that is supported by a wireless communication protocol configured in accordance with an embodiment of the present invention
- Figure 2 illustrates a hierarchical arrangement for the transmission of data and control information within a subnet according to one embodiment of the present invention
- Figure 3 illustrates a set of application interface messages which may be passed between nodes of a computer network in accordance with one embodiment of the present invention
- Figure 4 illustrates a structure of connection managers according to one embodiment of the present invention
- Figure 5 illustrates a example of a connection setup process in accordance with one embodiment of the present invention
- Figure 6 illustrates a example of a connection tear down process in accordance with one embodiment of the present invention
- Figure 7 illustrates an example of a channel interface layer header in accordance with one embodiment of the present invention
- Figure 8 illustrates an example of a format for STREAM_QOS_P ARAMS messages in accordance with one embodiment of the present invention
- Figure 9 illustrates an example of a format for CONNECT_REQUEST messages in accordance with one embodiment of the present invention.
- Figure 10 illustrates an example of a format for CONNECTJNDICATION messages according to one embodiment of the present invention
- Figure 11 illustrates an example of a format for CONNECT_RESPONSE messages in accordance with one embodiment of the present invention
- Figure 12 illustrates an example of a format for CONNECT_CONFIRM messages in accordance with one embodiment of the present invention
- Figure 13 illustrates an example of a format for DISCONNECT_REQUEST messages in accordance with one embodiment of the present invention
- Figure 14 illustrates an example of a format for DISCONNECT_INDICATION messages in accordance with one embodiment of the present invention
- Figure 15 illustrates an example of a format for LISTEN_BIND messages in accordance with one embodiment of the present invention
- Figure 16 illustrates an example of a format for LISTEN_UNBT_ND messages according to one embodiment of the present invention
- Figure 17 illustrates an example of a format for SINK_TO_SOURCE_P ARAMS messages in accordance with one embodiment of the present invention
- Figure 18 illustrates an example of a format for SOURCE_TO_SINK_P ARAMS messages in accordance with one embodiment of the present invention
- Figure 19 illustrates an example of a format for STREAM_CONNECTION_ REQUESTS messages for source streams in accordance with one embodiment of the present invention
- Figure 20 illustrates an example of a format for STREAM_CONNECTION_ REQUEST messages for sink streams in accordance with one embodiment of the present invention
- Figure 21 illustrates an example of a format for STREAM_CONNECTION_ REQUEST messages for bi-directional streams in accordance with one embodiment of the present invention
- Figure 22 illustrates an example of a format for STREAM_CONNECTION_ ACCEPT messages for source streams according to one embodiment of the present invention
- Figure 23 illustrates an example of a format for STREAM_CONNECTION_ ACCEPT messages for sink streams in accordance with one embodiment of the present invention
- Figure 24 illustrates an example of a format for STREAM_CONNECTION_
- Figure 25 illustrates an example of a format for STREAM_CONNECTION_ COMPLETE messages in accordance with one embodiment of the present invention
- Figure 26 illustrates an example of a format for STREAM_CONNECTION_ ABORT messages in accordance with one embodiment of the present invention
- Figure 27 illustrates an example of a format for STREAM_DIS CONNECT messages in accordance with one embodiment of the present invention
- Figure 28 illustrates an example of a format for node handshaking messages in accordance with one embodiment of the present invention.
- Figure 29 illustrates an example of a format for acknowledgement messages in accordance with one embodiment of the present invention.
- Described herein is scheme for stream connection management within a wireless computer network.
- a connection establishment mechanism which operates at the network/data link layers of such networks.
- the present scheme is generally applicable to a variety of wireless network environments, but finds especially useful application in a computer network which is located in a home environment.
- the present scheme may be discussed with reference to the particular aspects of a home environment.
- this discussion should in no way be seen to limit the applicability of the present invention to other network environments and the broader spirit and scope of the present invention is recited in the claims which follow this discussion.
- processing refers to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical
- each node is preferably configured with a connection manager (i.e., a set of computer readable instructions and any associated data structures and/or computer hardware that provide the functionality described herein), which is responsible for setting up and tearing down network stream connections.
- a connection manager i.e., a set of computer readable instructions and any associated data structures and/or computer hardware that provide the functionality described herein
- it is the master node (or server) that keeps track of bandwidth allocation and scheduling.
- the master node needs to be informed of the stream connection status and characteristics.
- connection-initiating node 1) Having the connection-initiating node coordinate the process with the master node, but allowing the peer node (i.e., the other client node) to setup the connection.
- the connection establishment time would be prolonged. Moreover, an additional load is imposed on the master node.
- the second approach is preferably adopted. In this approach, the master node is involved in the connection setup process between two client nodes only if the new connection is an isochronous stream or if the currently available bandwidth at the client nodes is not sufficient to accommodate the new connection.
- the present connection establishment mechanism provides a client-server model for applications/modules to connect across a wireless computer network.
- Any module wishing to accept network stream connections should register with the connection manager of its node, specifying its Endpoint Identifier (EndPtID).
- EndPtID Endpoint Identifier
- a "user” e.g., an application or module
- a stream connection should specify the destination node and the EndPtID of the module it wishes to connect to. It can also provide its Endpoint Reference information, which should be passed along to the destination node.
- EndPtld should be well known and is used to uniquely identify a registered service endpoint. This is similar to the well-known TCP server port numbers, but different in that it is not a part of a traffic header.
- a stream identifier gets allocated for the connection and the stream ID may be used for routing the packets on the connection.
- the user modules may then use the stream ID to exchange any control information and data.
- a stream is unidirectional and the two ends of the stream are referred to as the source (transmit) and sink (receive) ends hereafter.
- the present connection setup process also allows for the creation of a "bi-directional connection", which essentially results in the creation of two streams (one for transmit and another for receive).
- Any module wishing to listen for incoming connections must first bind with its respective connection manager. This may be done by sending a WC_Listen_Bind message to the connection manager. In such messages, the user module should specify the endpoint ID which it wants to listen to and the packet type of connections it will accept. Once the bind is successfully completed, any incoming connection request with the designated endpoint ID and packet type will be forwarded to the requesting user module.
- a WCJListenJQnbind message may be sent to the connection manager when a user module wants to stop listening for any more incoming connection requests. All existing connections accepted by this endpoint should remain unaffected. Refer to Section 5.2 below for discussion of a detailed format of the WC_Listen_Bind and WCJ isten Unbind messages. 2.2 Connection Setup
- a user module of node A 54 will connect with a similar module at node B 56 across wireless communication link 58.
- the user modules are audio managers 60 and 64, and the two modules interact with one another through connection managers 62 and 64 associated with their respective nodes. It should be understood that these various modules are software programs running on the node platforms.
- Connection creation process by sending a WC_Connect_Request 68 to its associated connection manager 62.
- the user module should specify the required stream characteristics, endpoint reference, etc.
- fields for the connection request include:
- EndPoint Reference - This field is used for communication between peer user modules.
- the connection manager does not examine/parse this field, but passes it to the user module • at the other end. For example, if the user module is an IP data manager trying to set up a stream for a TCP/IP connection, the user module could specify the TCP protocol ID and port number as the EndPoint Reference. Note that another way of doing this is to send this to the peer as control information on the stream, once the stream is created. However, this would extend the complete connection setup time.
- connection managers 62 and 66 for both nodes check to see if network resources are available to support the new connection. If no user module is registered with the connection manager at the destination node (connection manager 66 in the illustration), with the requested EndPtld, the connection setup is aborted.
- a WC_Connect Indication message 70 is passed to the user module 64 at destination node .56.
- This message includes all stream characteristics requested by the user module 60 at the initiating node 54 as well as any endpoint information passed by the initiating node. The format of this message is discussed in detail in Section 5.2.2 below.
- WC_Connect_Confirm message 72 If the stream parameters are acceptable to the user module 64 at destination node 56, that user module responds with a WC_Connect_Confirm message 72. If the user module at the destination node decides not to accept the connection, a WC_Disconnect_ Request message (not shown) is send instead and the connection setup process is aborted. If the connection is to be accepted, the destination user module 64 can also specify its callback routines for data handling in this message. Section 5.2.3 describes the relevant message format in detail.
- the user module 60 at initiating node 54 will receive a WC_ Connect_Confirm message 74 from its connection manager 62 (such a message having been passed from the connection manager 66 at the destination node 56 over the wireless communication link 58). This message indicates that the connection setup process is complete and traffic can be sent on the specified stream. Section 5.2.4 below describes the message format in detail.
- the disconnection procedure is similar to the connection setup procedure.
- Section 5.2 describes exemplary formats of all disconnection messages in detail.
- This message is sent by a user module to its connection manager to tear down an existing connection. It is expected that the user module will have stopped all of its data transmissions before sending this message. On receiving this message, a connection manager flushes out any queued transmit packets and deactivates the transmission stream. It then informs the peer node about the disconnection and waits for a response from the peer node before deactivating the reception stream and releasing the connection resources.
- This message is sent by a connection manager to a user module to notify the module that a connection is to be deleted.
- Many causes for a disconnection might exist, for example lack of resources or timeouts or an explicit disconnection request from a peer node.
- This message is sent by a user module to a connection manager as a response to a disconnect indication message.
- the connection manager will wait for this user module response before releasing the connection's allocated resources.
- This message is sent by a connection manager to a user module as a confirmation that a disconnect request was completed. This indicates that the connection deletion process is complete and no more packets will be transmitted or received on the streams.
- connection managers The upper layer interfaces of the connection managers and user modules have been discussed in the previous section. This section discusses how the connection managers coordinate with one another to setup/tear down a stream connection.
- each connection manager 80 consists of two layers:
- the purpose of the lower layer 84 is to provide means for a reliable delivery of all upper control layer messages.
- the complexity of this layer depends on the mechanism used to relay the connection messages. If a reliable network reserved stream is used, this layer will be very thin. If command packets are used to send the connection messages, this layer makes sure that the messages gets delivered, once and only once.
- the upper control layer 82 implements the connection establishment protocol.
- a stream by default, is unidirectional (either TX(source) or RX(sink)).
- a bi-directional connection implies two streams, a source stream and a sink stream.
- connection setup procedure is discussed with reference to Figure 5. Assume a wireless computer network where Node A is the master and Nodes B & C are client nodes. Assume Node B wants to establish a connection with Node C. The connection setup procedure remains the same, regardless of whether the setup request is for a TX stream or an RX stream or a bi-directional connection. Section 5.3 describes the various formats for the commands discussed below in detail. 3.1.1.1 STREAM_CONN_REQUEST
- a connection manager 80 at Node B upon receiving a user request 86 to create a connection, allocates the necessary local resources and forwards the request to the peer node using a STREAM_CONN_REQUEST command 88.
- This command indicates whether the request is for a transmit stream or receive stream or both.
- This command also indicates the desired stream characteristics. This may include stream quality of service (QOS) requirements specified by the user and also those parameters specified by the connection-initiating node.
- QOS stream quality of service
- connection-initiating node includes these 'source-to-sink' and 'sink-to-source' parameters in the STREAM_CONN_REQUEST command 88, in addition to the requested QOS parameters.
- the relevant STREAM_CONN_REQUEST will specify all 'sink- to-source' parameters. If Node B's request is for a stream with Node B as the source and Node C as the sink, then the STREAM_CONN_REQUEST will specify all 'source- to-sink' parameters. If the request is for a bi-directional connection, the STREAM_CONN_ REQUEST will include both 'source-to-sink' and 'sink-to-source' parameters.
- a connection manager 80 at node C upon receiving a STREAM_CONN_ REQUEST, looks up the listening endpoint specified in the command. If the endpoint exists, the corresponding user module is notified of the incoming connection request.
- the user module may either accept or reject the incoming connection request. If it decides to accept the connection, the connection manager at Node C allocates the resources required and notifies the Node B connection manager using a STREAM_CONN_ACCEPT command 90. But if the connection request is rejected by user module at node C or if local resources are not available, Node C terminates the connection setup process by sending a STREAM_CONN_ABORT command to Node B (not shown). Based on the type of connection, the STREAM_CONN_ACCEPT command will include the 'source-to-sink' and 'sink-to-source' parameters. Refer to Section 5.3.3 below for the format of this command.
- both nodes move on to the final stage of the connection establishment process. This stage involves getting the channel bandwidth for the connection from the respective DBM 92.
- the node at the source end of stream performs the negotiation with its respective DBM 92. If the DBM 92 determines that it has sufficient local allocated bandwidth to accommodate the new connection, the bandwidth is allocated locally. If not, the local DBM 92 negotiates with master DBM 94 for the needed additional bandwidth.
- a STREAM_CONN_COMPLETE command 96 is sent to the sink end of stream. Note that for a bi-directional connection, this command would be send by both the peer nodes (as shown in the illustration) as each would have a source stream. If the bandwidth allocation fails, the connection setup process is aborted and a STREAM_CONN_ABORT command is transmitted to the peer node (not shown).
- the disconnection mechanism is similar, but simpler.
- the disconnection mechanism should synchronize both ends so that the connection resources are released at both ends and any data packets in transition are not lost.
- the connection manager 80 in Node B upon receiving a disconnection request 98 from a user module, the connection manager 80 in Node B initiates the disconnection procedures. If Node B has a source stream, all the packets queued up on the stream for transmission are flushed and the stream is deactivated. The sink stream, if it exists, is not disturbed. Node B informs the peer node (Node C) about the disconnection by sending a STREAM_ DISCONN_REQUEST command 100.
- Node C When Node C receives the STREAM_DISCONNECT_REQUEST 100 it notifies its user module of the disconnection request. On receiving a response from the user module, the connection manager 80 at Node C sends a STREAM_DISCONN_
- COMPLETE message 102 to Node B and deletes the source/sink stream associated with the connection.
- the connection manager 80 at Node B On receiving the STREAM_DISCONNECT_COMPLETE message 102, the connection manager 80 at Node B deletes the source/sink streams associated with the connection and informs its associated user module that the disconnect operation is complete. Though the resources allocated for the connection are released, the EndPtld and Stream ED associated with the connection should be reused only after a specified time has elapsed.
- the channel interface layer is responsible for reliable delivery of commands given by the control layer. This layer uses command packets for transmission of connection commands to peer nodes.
- the channel interface layer adds a 1-byte header 104, shown in Figure 7, to every connection command received from the control layer.
- the header 104 consists of a 7-bit sequence number 106, which is maintained for every peer node and incremented when a new command is send to the node.
- An acknowledgement (ACK) bit 108 indicates if this is a connection command or an acknowledgement for the connection command.
- ACK bit set to 0 When the channel interface layer receives a connection command (ACK bit set to 0), it immediately sends an acknowledgement to the peer node.
- the acknowledgement command consists of just the 1-byte channel interface header 104, with the ACK bit set to 1.
- the channel interface layer makes use of a 'repeat' feature provided by the command manager to accomplish reliable delivery of connection commands.
- the channel interface layer adds its header and sets the command with the command manager, also specifying the number of network frames over which the command is to be repeated. This 'repeat count' directly relates to a timeout for the command response at the control layer and is specified by control layer.
- the channel interface layer also maintains a mapping of the sequence number and the command handle returned by command manager in response to these actions.
- the channel interface layer looks up the command handle based on the sequence number acknowledged, and instructs the command manager to delete this command from its 'repeat list'. If no acknowledgement is received, the command will be automatically deleted by the command manager after it has been transmitted for the specified number of network frames.
- the above mechanism works best when the round-trip time is less than one network frame time. If the round-trip time is two network frames or more, duplicate commands would be received.
- the channel interface layer maintains the sequencing information required to identify such duplicate commands and also delivers the commands to the control layer in sequence, regardless of the order in which they were received.
- the channel interface layer also defines two subcommands, which are used for handshake procedures with peer nodes.
- a node When a node is informed (e.g., via a login process) that a new node has joined the network, a 'HANDSHAKE_INITIATE' command is sent to the new node.
- the new node responds with a "HANDSHAKE_ACK" command. Only after this initial handshaking is complete will a connection manager will allow connections to be setup to the new node.
- the purpose of this handshake procedure is two-fold:
- the minimum requirement would be to have a sufficient number of buffers to hold all the packets sent before the transmit node realizes that a packet have been lost (i.e., in RTD slots). But if the window size is reached, further transmissions would have to be blocked and this would bring down the throughput. The larger the number of buffers available, the larger the window size and the lesser the chance of blocking transmissions.
- the structure of packet 110 defines the stream quality of service (QOS) parameters. This structure may be used in all application interface messages, as well as network commands, to specify stream QOS characteristics.
- QOS stream quality of service
- BYTES 0-3 Minimum rate - Minimum bandwidth required for stream, in bytes/sec.
- BYTES 4-7 Maximum rate - Maximum bandwidth required for stream, in bytes/sec.
- BYTES 8-11 Average rate - Average bandwidth utilized by stream, in bytes/sec.
- BYTES 12-13 Average Packet Length - Average length of packets in the stream, in bytes.
- BYTES 14-15 Maximum Tolerable Delay - The maximum delay tolerable for packets in the stream, in msecs. This value defines the scheduling frequency for the stream.
- BYTES 16-17 Maximum Burst Size - The maximum size of data burst, in bytes.
- BYTES 18-19 Delay Variation - The maximum variation in delay that can be tolerated, in msecs.
- BYTE 20 The maximum variation in delay that can be tolerated, in msecs.
- BITS 0,1 Priority - The priority of the stream(s) requested. Exemplary values are:
- BIT 2 ReTx Flag - This field is set if retransmission is to be enabled.
- BYTES 21-23 Reserved.
- BYTES 24-27 Maximum Retransmission Delay - The maximum time period (in msecs) for which retransmission are to be attempted.
- This section describes the format of all messages exchanged on a connection manager's application interface.
- BYTE 0 ConnMsg - Set to OxOC for CONNECT_REQUEST message.
- BYTE 1 NodeE) - The Node ID for the remote node to which the connection is requested.
- BYTE 2 Pkt Type - The packet type for the new connection.
- BYTE 3 Conn Type - The type of connection requested for. Exemplary values are:
- BYTES 4 - 5 Listen EndPtID - The endpoint identification of the listening entity at the remote node.
- BYTES 8 - 11 Local EndPt Information - This field is passed transparently to the listening entity at the peer node.
- BYTES 12 - 39 SOURCE STREAM QOS PARAMS - The QOS parameters for the source stream, if the connection type requested contains source stream.
- BYTES 40 - 67 SINK STREAM QOS PARAMS - The QOS parameters for the sink stream, if the connection type requested contains sink stream.
- the fields of this structure are as defined in Section 5.1.
- BYTES 72 - 75 ConnMsg Update Function Param - This value is passed as a parameter when the above function is called to deliver messages from the connection manager.
- BYTES 76 - 91 These are the functions for handling data packets on the stream, once the connection setup is complete. Only the required parameters need be set, based on whether the setup request is for a source stream, sink stream or both.
- Transmit Poll Function The function to be polled for transmit packets on the stream.
- Receive Packet Input Function The function to be called to deliver packets that are received.
- The is the message passed by a connection manager to the listening entity, to inform that entity (i.e., a user module) about a new incoming connection request.
- the packet format 114 is shown in Figure 10.
- BYTE 0 ConnMsg - Set to 0x10 for CONNECTJNDICATION message.
- BYTE 1 NodelD - The Node ID of the remote node that initiated the connection.
- BYTE 2 Pkt Type - The packet type for the new connection.
- BYTE 3 Conn Type - The type of connection requested. Exemplary values are:
- BYTE 4 TX Stream ID - The transmit stream id, if connection consists of a source stream.
- BYTE 5 RX Stream ID - The receive stream id, if connection consists of a sink stream.
- BYTES 8 - 9 Listen EndPtID - The endpoint identification of the listening entity to which the connection is assigned.
- BYTES 10 - 11 Local EndPtED - The new transient endpoint id allocated for the listening entity to accept the connection.
- BYTES 12 - 15 Remote EndPt Information - The information passed on by the remote endpoint requesting the connection.
- BYTES 16 - 43 SOURCE STREAM QOS PARAMS - The QOS parameters for the source stream, if the connection type requested contains source stream.
- BYTES 44 - 71 SINK STREAM QOS PARAMS - The QOS parameters for the sink stream, if the connection type requested contains sink stream.
- the fields of this structure are as defined in Section 5.1.
- a user module sends this message to its connection manager as a response to a WC_Connect_Indication message.
- the packet format 116 is shown in Figure 11.
- BYTES 0 - 7 Same as for a CONNECT NDICATION message; refer section 5.2.2.
- ConnMsg should be set to OxOD for a CONNECT_RESPONSE message.
- BYTES 8 - 11 Local EndPt Information - This would be passed transparently to the user module at the remote node which requested this connection.
- BYTES 12 - 27 These fields specify the callback routines for transmit and receive handling of packets in the stream. Refer to Section 5.2.1
- This message is send by a connection manager to its user module when the connection setup is completed and the streams are activated.
- the packet format 118 is shown in Figure 12.
- BYTES 0 - 5 Same as for a CONNECTJNDICATION message; refer to section 5.2.2.
- the ConnMsg should be set to 0x11 for CONNECT_CONFIRM message.
- BYTES 6 - 7 Local EndPtlD - The identification for the local endpoint, allocated when connection creation was initiated.
- BYTES 8 - 11 Remote EndPt Information - The information passed on by the remote endpoint accepting the connection.
- This message is send by a user module to a connection manager to tear down an existing connection.
- the packet format 120 is shown in Figure 13.
- BYTES 0 - 5 Same as for a CONNECTJNDICATION message; refer to section 5.2.2.
- the ConnMsg should be set to OxOE for DISCONNECTJREQUEST message.
- BYTES 6 - 7 Local EndPtlD - The identification for the local endpoint, allocated during connection creation (optional).
- This message is sent by a connection manager to a user module to inform the module of a disconnection.
- the packet format 122 is shown in Figure 14.
- BYTES 0 - 11 All the fields are the same as a DISCONNECT_REQUEST message (refer to Section 5.2.5 for a detailed description), except
- This message is sent by a user module to a connection manager as a response to the disconnection indication message.
- the format of this message is the same as for a DISCONNECTJREQUEST (refer to Section 5.2.5 for a detailed description).
- the ConnMsg field should be set to OxOF for the DISCONNECTJRESPONSE message.
- This message is sent by a connection manager to a user module as a confirmation that the disconnection request was completed.
- the format of this message is the same as for a DISCONNECT_REQUEST (refer to Section 5.2.5 for a detailed description).
- the ConnMsg field should be set to 0x13 for a DISCONNECT_CONFIRM message.
- This message is sent by a user module to bind with a connection manager to listen for any incoming connection requests.
- the packet format 124 is shown in Figure 15.
- BYTE 0 ConnMsg - Set to 0x14 for LISTEN BT D message.
- BYTE 1 PktType The connection packet type for which to listen to.
- BYTES 2 - 3 Listen EndPtlD - The well-known endpoint identification of the listening entity.
- BYTES 4 - 7 ConnMsg Update Function Pointer - This should be set to the function that handles all messages from Connection Manager. This function gets called when there are any connection events for the specified endpoint.
- This message is sent by a user module to unbind with a connection manager to stop listening for any incoming connection requests.
- the packet format 126 is shown in Figure 16.
- BYTE 0 ConnMsg - Set to 0x15 for LISTEN JNBIND message.
- BYTES 2 - 3 Listen EndPtlD - The well-known endpoint identification of the listening entity.
- the connection manager may have one main command ID registered, which defines subcommands for all connection manager messages.
- the command ID registered for the connection manager may be, for example, OxFA.
- the channel interface layer responsible for reliable delivery of all control layer commands adds sequencing information as the first byte of every command. In the command formats described below, the little endian format is assumed.
- the packet format 128 is shown in Figure 17 and includes a reserved window size.
- the packet format 130 is shown in Figure 18 and includes a Stream ID.
- the STREAM_CONN_REQUEST command structure varies depending on the connection type requested. If the request were for a source stream from a peer node (see, e.g., packet format 132 in Figure 19), this command would include the parameters specified by the sink end of stream (SNK_TO_SRC_P ARAMS) in addition to the QOS requirements. If the request is for a sink stream at the peer node (see, e.g., packet format 134 in Figure 20), this command would include the parameters specified by the source end of stream (SRC_TO_SNK_P ARAMS ) and QOS requirements. If the request to the peer node is for both source and sink streams (a bi-directional connection), then the command would include all the above (see, e.g., packet format
- BYTE 0 Seq No (7 bits) - This is the sequence number assigned by the channel interface layer.
- BYTE 2 Packet Type (4 bits) - Indicates the packet type for which stream is requested.
- BYTES 5-6 Requester EndPtlD - The transient identification assigned for the module initiating the connection request.
- BYTES 7-8 Listen EndPtlD - The known identification for the listening module to which the connection initiator wishes to connect.
- BYTES 9 - 12 Requester EndPt Info - This is the 4 byte information given by the endpoint requesting the connection and is passed transparently to the listening endpoint at the peer node.
- BYTES 13 - 44 These bytes would specify SOURCE STREAM PARAMETERS if the connection request is for a source stream alone or for a bi-directional connection. This consists of SNK_TO_SRC_PARAMS and STREAM_QOS_PARAMS (refer to section 5.1) for the source stream at peer node. These bytes would specify the SINK STREAM PARAMETERS if the connection request if for a sink stream alone at the peer node. This consists of SRC_TO_SNK_P ARAMS and STREAM_QOS_P ARAMS (refer to section 5.1) for the sink stream at peer node. BYTES 45 - 76: These bytes are present in the command only when the request is for a bidirectional connection. This would then specify the SINK STREAM PARAMETES for the sink stream at peer node.
- the structure of a STREAM_CONN_ACCEPT command also varies depending on the connection type requested.
- the various packet formats are illustrated as format 138 (for source streams) in Figure 22, format 140 (for sink streams) in Figure 23 and format 142 (for bi-directional streams) in Figure 24.
- SubCmd is set to 0x02 for the STREAM_CONNECT_ACCEPT command.
- BYTES 5 - 6 Requester EndPtlD: The connection identification for the endpoint requesting the connection.
- BYTES 7 - 8 Acceptor EndPtlD: The connection identification for the endpoint which has accepted the connection.
- BYTES 9 - 10 Listen EndPtlD: The listening endpoint to which the connection request was directed.
- BYTES 11 - 12 Reserved.
- BYTES 13 - 16 Acceptor EndPt Info: This is the 4-byte information given by the endpoint accepting the connection and is passed transparently to the endpoint which initiated the connect request at the peer node.
- BYTES 17 - 20 These bytes would specify SNK TO_SRC_PARAMS if the connection accepted is a sink stream alone or a bi-directional connection. These bytes would specify the SRC_TO_SNK_P ARAMS if the connection accepted is a source stream only.
- BYTES 21 - 24 These bytes are present in the command only when the acceptance is for a bi-directional connection. This would then specify the SRC_TO_SNK_
- This command is sent by the source end of a stream to the sink end, when channel bandwidth allocation is successful for the new stream.
- the packet format 144 is shown in Figure 25.
- SubCmd is set to 0x03 for a STREAM_CONNECT_COMPLETE command.
- BYTES 5 - 6 Destination EndPtlD - The connection identification for the sink end of the stream.
- BYTES 7 - 8 Source EndPtlD - The connection identification of the source end of the stream.
- This command is sent to abort the connect setup process.
- the reason for connection setup failure could be a resource allocation failure, timeouts etc., the exact cause for failure will be indicated in this command, the packet format 146 of which is shown in Figure 26.
- BYTE 0 Same as described in Section 3.3.2 for a STREAM_CONN_REQTJEST.
- BYTE 1 SubCmd - Set to 0x04 for a STREAM_CONNECT_ABORT command.
- BYTE 2 Cause - This field indicates the exact cause for aborting the connection setup process. Refer to section 6.2 for examples of defined values.
- BYTES 5 - 6 Destination EndPtlD - The connection identification of the peer endpoint for which the connection setup is being aborted.
- BYTES 7 - 8 Source EndPtlD - The connection identification of the endpoint aborting the connection setup. 5.3.6 STREAM_DISCONN_REQUEST / STREAM_DISCONN_COMPLETE
- the STREAM_DISCONN_REQUEST command is sent to a peer node when a user module requests disconnection. On receiving this command, the peer node notifies its user module, releases the connection resources and responds with a STREAM_DISCONN_ COMPLETE command.
- BYTE 0 - 2 Same as described in section 5.3.2 for a STREAM_CONN_REQUEST message.
- BYTE 1 SubCmd - Set to 0x05 for a STREAM_DISCONN_REQUEST command.
- BYTE 3 Tx StreamlD : Set to the stream ID of the source stream from the peer node, if one exists.
- BYTE 4 Rx StreamlD : Set to the stream ID of the sink stream at the peer node, if one exists.
- BYTES 5 - 6 Destination EndPtlD: The connection identification of the peer endpoint to which disconnection command is sent.
- BYTES 7 - 8 Source EndPtlD: The connection identification of the endpoint sending the disconnection command.
- NODE_HANDSHAK N ⁇ TATE / NODE_HANDSHAKE_ACK NODE_HANDSHAKE_INITIATE command is send by the channel interface layer, when it is informed that a new node has been added to the network.
- the new node on receiving this command, responds with NODE_HANDSHAKE_ACK and this completes the initial handshaking between the two nodes.
- the format 150 of the handshaking packets is shown in Figure 28.
- BYTE 0 channel interface layer header.
- BYTE 1 Subcommand: Set to 0x07 for a NODE_HANDSHAKE_INITIATE command.
- BYTE 0 ACK bit set to '1' and the sequence number being acknowledged.
- endpoint identifiers which may be used: DATA_MANAGER - 0x0003
- disconnection causes conveyed between the peer nodes and provided to the user modules are examples of disconnection causes conveyed between the peer nodes and provided to the user modules.
- MAX_WAIT_FOR_UI_RESPONSE 3 // slots MAX_WAIT_FOR_CONN ACCEPT 5 // slots MAX_WAIT_FOR_DBM_RESPONSE 8 // slots MAX_WAIT_FOR_CONN_COMPLETE 8 // slots MAX_WAIT_FOR_DISC_COMPLETE 8 // slots MAX_WAIT_FOR_CONN_RELEASE 3 // slots MAX_WAIT FOR DISC INDICATION 8 // slots MAX_WAITJFOR_STRMID_REALLOC 15 // slots
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
Claims
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US614309 | 1990-11-15 | ||
US17825500P | 2000-01-25 | 2000-01-25 | |
US178255P | 2000-01-25 | ||
US61430900A | 2000-07-12 | 2000-07-12 | |
PCT/US2001/001696 WO2001056228A2 (en) | 2000-01-25 | 2001-01-17 | Stream connection management in wireless computer networks |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1254538A2 true EP1254538A2 (en) | 2002-11-06 |
Family
ID=26874141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP01947000A Withdrawn EP1254538A2 (en) | 2000-01-25 | 2001-01-17 | Stream connection management in wireless computer networks |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1254538A2 (en) |
AU (1) | AU2001229612A1 (en) |
WO (1) | WO2001056228A2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1557982B1 (en) | 2004-01-26 | 2011-05-11 | STMicroelectronics Srl | Method and system for admission control in communication networks |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638371A (en) * | 1995-06-27 | 1997-06-10 | Nec Usa, Inc. | Multiservices medium access control protocol for wireless ATM system |
US6625133B1 (en) * | 1998-05-17 | 2003-09-23 | Lucent Technologies Inc. | System and method for link and media access control layer transaction initiation procedures |
JP2003518335A (en) * | 1998-09-11 | 2003-06-03 | シェアウェーブ・インコーポレーテッド | Method and apparatus for accessing a computer network communication channel |
-
2001
- 2001-01-17 WO PCT/US2001/001696 patent/WO2001056228A2/en not_active Application Discontinuation
- 2001-01-17 EP EP01947000A patent/EP1254538A2/en not_active Withdrawn
- 2001-01-17 AU AU2001229612A patent/AU2001229612A1/en not_active Abandoned
Non-Patent Citations (2)
Title |
---|
None * |
See also references of WO0156228A3 * |
Also Published As
Publication number | Publication date |
---|---|
WO2001056228A3 (en) | 2002-05-16 |
WO2001056228A2 (en) | 2001-08-02 |
AU2001229612A1 (en) | 2001-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6574668B1 (en) | Retransmission scheme in wireless computer networks | |
US6934752B1 (en) | Quality of service extensions for multimedia applications in wireless computer networks | |
US7930446B2 (en) | Methods and apparatuses for wireless network communication wherein a universal serial bus request block (URB) is generated that will vary parameters that controls wireless transmission commands between devices | |
US6865609B1 (en) | Multimedia extensions for wireless local area network | |
US7093015B2 (en) | Method and apparatus for accessing a wireless computer network communication channel by accessing quiet intervals in network frames | |
US20020133589A1 (en) | Dynamic bandwidth negotiation scheme for wireless computer networks | |
US20040022222A1 (en) | Wireless metropolitan area network system and method | |
US20030231621A1 (en) | Dynamic communication channel switching for computer networks | |
US20030219030A1 (en) | Method and apparatus for controlling communication within a computer network | |
WO2001065773A2 (en) | Scheme for managing overlapping wireless computer networks | |
KR20020028919A (en) | A method and apparatus for routing data in a communication device | |
WO2019166309A1 (en) | Techniques for policy management of multi-connectivity network protocols | |
WO2002006986A2 (en) | Quality of service extensions for multimedia applications in wireless computer networks | |
EP1601155A2 (en) | Method for processing VOD data in mobile station | |
WO2001071981A2 (en) | Multimedia extensions for wireless local area networks | |
JP3652233B2 (en) | Wireless network system | |
WO2002005492A1 (en) | Multimedia streams and quality of service in wireless home networks | |
US6243365B1 (en) | Continuation control for wireless packet data | |
EP1254538A2 (en) | Stream connection management in wireless computer networks | |
EP2051429B1 (en) | Apparatus and method for setting timer and counter in mobile communication system | |
JP3325537B2 (en) | Wireless communication system | |
KR20240078930A (en) | Method for guaranteeing 6g end-to-end application-level latency using network transport api and electronic device | |
CN114630368A (en) | Method, apparatus, device and medium for controlling data transmission on multilink | |
EP1169870A1 (en) | Method and apparatus for interoperation between wireless computer networks and internet protocol-based networks | |
EP1112643A1 (en) | Hierarchical computer network architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20020903 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
AX | Request for extension of the european patent |
Free format text: AL;LT;LV;MK;RO;SI |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: GUBBI, RAJUGOPAL, R. Inventor name: SEBASTIAN, DONIA |
|
17Q | First examination report despatched |
Effective date: 20061018 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20070301 |