WO2010136023A1 - Method for optimizing a packet-oriented data transmission and computer program product - Google Patents

Method for optimizing a packet-oriented data transmission and computer program product Download PDF

Info

Publication number
WO2010136023A1
WO2010136023A1 PCT/DE2010/000583 DE2010000583W WO2010136023A1 WO 2010136023 A1 WO2010136023 A1 WO 2010136023A1 DE 2010000583 W DE2010000583 W DE 2010000583W WO 2010136023 A1 WO2010136023 A1 WO 2010136023A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
optimizer
address
data
communication
Prior art date
Application number
PCT/DE2010/000583
Other languages
German (de)
French (fr)
Other versions
WO2010136023A8 (en
Inventor
Joerg Ott
Nils Seiffert
Carsten Bormann
Original Assignee
Lysatiq Gmbh
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lysatiq Gmbh filed Critical Lysatiq Gmbh
Publication of WO2010136023A1 publication Critical patent/WO2010136023A1/en
Publication of WO2010136023A8 publication Critical patent/WO2010136023A8/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • the invention is in the field of packet-oriented data transmission.
  • User data can only be transmitted in one (unidirectional) or several directions (bidirectional), depending on the application and / or the function performed. The same applies to tax information. While most networks generally allow two-way transmission, there are network technologies (such as DVB-S / C / T) that allow unidirectional transmission regardless of the application and / or unidirectional transmission for cost or other reasons make sense and / or where the return direction is realized separately via the same and / or other transmission methods and / or networks; these limitations and / or frameworks usually come from the system design. In some cases, both control and payload data may be transmitted in one direction only, or other transmission methods and / or networks may be used for the return, including payload data and / or control information. NEN or subsets of the user data and / or control information can be exchanged over different networks.
  • a data packet contains information (also referred to as control information) which is or may be required for processing the transmission protocol and optionally user data.
  • a data packet contains, for example, one or more packet headers or protocol headers and / or packet or protocol trailers. All these are referred to simply as "headers.” These headers contain the control information, which may be addressing information, for example, and the headers are partly followed by the actual payload (voice data, parts of text, parts of files, etc.), but also higher-level control data Protocol layers - also often including their own headers - are often referred to as payload from the perspective of the underlying protocol layers.
  • a header consists of one or often several "fields", where the tax information is contained. This arrangement of fields within a header is also referred to below as the header structure of a header. Among other things, it serves to identify and / or interpret the individual fields and thus also the control information within a header.
  • Protocol stack or a protocol hierarchy, as described, inter alia, in
  • Protocol hierarchies (“Protocol Relationships") are used inter alia in
  • IPv6 IP protocol version 6
  • IPv6 Internet Protocol, Version 6 (IPv6), Specification, S. Deering, R.
  • protocol layers can be distinguished.
  • the protocols of the individual protocol layers are often stacked on top of each other, but they can also perform independent or interconnected functions parallel to each other in individual protocol layers or partial protocol stacks.
  • several protocols can also be counted concurrently or also superimposed to form a protocol layer.
  • VoIP Voice over IP
  • IP Internet Protocol
  • layer 3 of the OSI model [I] the Internet Protocol
  • HTTP Hypertext Transfer Protocol
  • HTTPS HTTP Secure
  • HTTP HyperText Transfer Protocol
  • HTTPS themselves are often classified as application protocols.
  • HTTP is usually used above the TCP protocol (Transmission Control Protocol [RFC 793]), which is assigned to the transport layer.
  • TCP Transmission Control Protocol
  • IP IP - a network layer protocol (ISO / OSI layer 3 according to [I]).
  • IP IP - a network layer protocol
  • other protocols often follow, for example, depending on the transmission medium used (such as a local area network with "Ethernet" IEEE 802.3, which would conform to ISO / OSI protocol layers 1 and 2 according to [1]).
  • VoIP Voice over IP
  • IP Internet Protocol
  • VoIP-based data transmission is often performed using, among other things, the RTP protocol ("Realtime Transport Protocol")
  • RTP protocol Realtime Transport Protocol
  • RTP itself is a protocol of the transport layer (ISO / OSI layer 4 according to [I]).
  • RTP is used above the UDP protocol (User Datagram Protocol [RFC 768]), which is also assigned to the transport layer.
  • UDP is usually used above IP - a protocol of the network layer (ISO / OSI layer 3 according to [I]).
  • IP IP- a protocol of the network layer (ISO / OSI layer 3 according to [I]).
  • IP IP
  • other protocols often follow, for example, depending on the transmission medium used (such as a local area network with "Ethernet” IEEE 802.3, which would conform to ISO / OSI protocol layers 1 and 2 according to [1]).
  • DNS hyperText Transfer Protocol
  • URIs uniform resource identifiers
  • URIs uniform resource identifiers
  • readable names which must first be translated by a name service by a so-called name resolution in IP addresses.
  • DNS domain Names - Implementation and Specification
  • DNS naming service web browsers use so-called resolvers that use the DNS protocol to direct requests to one or more directly configured and / or associated DNS servers to the end system of the web browser.
  • these first-tier DNS servers often direct requests to other DNS servers. Server.
  • the required answer does not necessarily come about at the first such request; DNS servers of the following levels can also answer incomplete queries and thereby provide references to other DNS servers.
  • the first-level (or later-stage) DNS server makes further requests to it until it receives a response from a DNS server that knows the answer it needs.
  • Responses may be time-to-live (TTL), such as an integer indicating how long (in seconds) that response should still be valid.
  • TTL time-to-live
  • DNS resolvers and / or servers implement so-called buffer memories or caches from which a repeated request for the same translation can be answered without consulting the subsequent stages as long as the lifetime of the stored Answer allows this.
  • the DNS protocol can be set up on the transport protocol UDP or also on the transport protocol TCP, both protocols usually set up on IP and other underlying protocols as described above.
  • the individual protocols and / or their specific implementations / installations can be configured differently than DNS: they do not necessarily have to communicate via a name service server; none, one or more levels of name service servers can be configured.
  • DNS usually translates a so-called DNS name (often a computer name) into an IP address.
  • directory services and name services can also perform other name resolutions that do not necessarily include classic names or addresses.
  • a directory service could also generally answer a request for, for example, a data value / computer state, and directory services could return, for example, in addition to or instead of addresses, for example, certificates, passwords, or even telephone numbers.
  • the details of the name resolution may differ depending on the data service.
  • Examples of data services with name resolution other than DNS or with DNS supplementary name resolutions include the Session Initiation Protocol (RFC 3261 and RFC 3263), ITU-T H.323 and H.225.0.
  • the name services function can also be directly linked to the data services.
  • Some of the naming services are also used to support mobility, for example in mobile networks or to implement number portability, personal call numbers, service numbers (eg 0800, 0900) etc. in the (mobile) telephone network.
  • name service server stands for a server that realizes the tasks of name services.
  • a name service server is to be understood as a logical function. It does not necessarily require a separate hardware or software system to implement the name service server function. While it may be embodied as a separate component, it may also be embodied as part of the operating system, one or more application components, peer systems, other network elements, and so on. This applies to name service servers of any level; in particular, no name service servers that can be independently identified as separate components can be present.
  • Name services can also be specific to data services: for VoIP, in addition to or in place of a general name service such as DNS, an additional function is realized in the VoIP service, which includes user names (for example, represented as a URI) whose current contact address (typically one or more) also multiple IP addresses) and thus enables the accessibility of the user.
  • the dissolution of the username into a contact address may be done in one or more steps as described above and may require one or more stages.
  • a direct and / or indirect influence on the achieved quality of service often has the transmission delay in the network.
  • the transmission delay in the network depends on a large number of factors. These include, for example, often the actual signal propagation times, the network data rate or, in the case of individual transmission sections, the data rate of the corresponding transmission section, the size of a data packet in relation to the data rate (if, for example, the forwarding of packets only / essentially takes place only after the reception of the entire data packet) , Delays in the relaying network components, buffers / buffers in the individual components, delays in the protocol evaluating / implementing components, and so forth.
  • This transmission delay is often measured together in both directions of a communication relationship and hereinafter also referred to as RTT ("Round Trip Time").
  • RTT usually stands for the time, in total, from sending a first packet by the sender to receiving the first packet by the receiver, sending a potential second packet in response to the first packet through the receiver of the first packet goes to receive this second packet by the sender of the first packet.
  • IPv4-based networks this is often done with the help of a PING command, which sends ICMP packets ("Internet Control Message Protocol" RFC 792) and waits for corresponding ICMP response packets from the other side
  • ICMP packets Internet Control Message Protocol
  • RFC 792 Internet Control Message Protocol
  • Packet loss is one of the potential causes that can lead to a reduction in the quality of service.
  • packet losses are both completely lost data packets, as well as data packets which were falsified during the transmission or were disproportionately delayed and therefore can not be used.
  • Lost packets are usually initially synonymous with lost user data and / or control information.
  • the TCP protocol often broadcasts several packets before waiting for recipients to receive acknowledgments. Thus, it can often compensate for packet losses by resending the lost packets without preventing the sender from intermittently sending new (other) packets. So it comes with occurring packet losses at least partially not to complete pauses when sending data.
  • FEC Forward error correction
  • FEC forward error correction
  • FEC forward error correction
  • FEC-based methods are often used on individual transmission sections (for example, a radio link, satellite link, but also wired transmission sections). Often they are a direct part of the link-layer protocols and are used for all information transmitted on the corresponding transmission section.
  • the second common use case of FEC procedures is end-to-end. In this case, the actual transmitter of the data FEC information is integrated into the data flow / packet flow.
  • FEC-based methods have the advantage over retransmissions in that they usually enable the receivers to reconstruct lost information without, for example, having to first wait for an RTT to receive retransmissions. Therefore, the use of FEC based methods is well suited for scenarios where transmission delays are important. These include, inter alia, live video and VoIP, where waiting for retransmissions would otherwise often lead to "dropouts" or generally a higher delay in playback.
  • a content coding can also be chosen so that (even uncorrected) packet losses have only very limited effects on the reproduction (that is, for example, only voice data of a 20ms period affected and the loss of data or only slightly on the following Voice playback).
  • transcoding an adaptation of an original content coding by re-encoding, for example, the voice / image data in a more suitable, for example, a network / a transmission situation in the network content encoding is known.
  • the RTT often has a significant influence on the resulting quality of service.
  • protocols (as well as TCP) use partial transmission windows - for example roughly the maximum amount of data that can be sent before waiting for an acknowledgment of receipt.
  • the maximum throughput is often limited by, for example, Ix size of the send window per RTT.
  • timeouts are often used. So it could be for example that, for example, in a very rapidly varying and especially very fast rise RTT protocols assume that heavily delayed packets are lost and initiate retransmissions by itself. In this case, packets that arrive too late for their respective purpose lead in part to similar reactions and also to a similarly reduced quality of service, such as a packet loss.
  • data objects are requested which, in connection with the use of web browsers, can also be referred to as web objects.
  • a web page displayed to a user on the screen usually contains several (sometimes dozens or> 100) of these objects (such as HTML pages, HTML framesets, images, style sheets, scripts, scripts-integrated HTML text objects, XML scripts). Data, JSON objects ("Ajax"), etc.).
  • an inserted Web browser Often, by evaluating received web objects, they first learn which other web objects are needed for displaying a web page and / or the web browser queries only a limited number of web objects in parallel.
  • forwarding buffers used among other things in the network components (such as forwarding routers, traffic shapers, interface drivers, etc.). Incoming data packets are often first cached in queues. This caching often results in a sometimes not insignificant, sometimes even dramatic additional transmission delay, which increases the resulting RTT.
  • the cues are filled much more, especially when transmission peaks and general overload occur, than at lower load.
  • RTTs of the order of 8 seconds are a significant limitation on the quality of service for, for example, VoIP telephone calls, but also many other applications, such as web surfing.
  • the above-mentioned QoS / prioritization / traffic shaper-based methods can also be used in relation to queue usage, for example in forwarding network components.
  • the packets to be prioritized can not be queued at all, or they can not be queued at the back end of the queues and thus experience a much lower delay.
  • these QoS / prioritization / traffic-shaper-based methods including bandwidth reservations for recognizing the data packets to be prioritized can use many different methods. These include configured source / destination addresses, marked packets (for example "TOS" field in IP headers), specific protocols (for example, detected via the "Protocol” field in IP headers and / or port numbers in headers of transport protocols) the evaluation of signaling protocols to determine the source / destination addresses and / or methods for (heuristically) recognizing particular data / application classes (for example based on packet sizes / intervals, specific fields such as version numbers and / or timespots, sequence numbers in packet headers , etc.).
  • marked packets for example "TOS" field in IP headers
  • specific protocols for example, detected via the "Protocol” field in IP headers and / or port numbers in headers of transport protocols
  • the evaluation of signaling protocols to determine the source / destination addresses and / or methods for (heuristically) recognizing particular data / application classes (for
  • Transmission interruptions - ie periods in which no data packets can be exchanged between a transmitter and a receiver - are another potential cause for reducing the quality of service.
  • a transmission interruption may relate to one or more protocol layers and be perceived differently or not uniformly on different protocol layers. Especially For example, a (transient) slow and / or delayed and / or lossy transmission of data packets through the lower protocol layers on the higher protocol layers may be perceived as an interrupt. Also, a brief interruption on the lower protocol layers may not even be noticed by the above protocol layers.
  • the cause of transmission interruptions can be manifold.
  • the reception could be disturbed (for example, because transmitters and / or receivers have moved out of the reception area, obstacles have gotten in the way or because of weather conditions such as heavy rain and / or clouds and / or fog).
  • the network or a transmission section could fail and / or, for example due to overload or high load by other possibly higher prioritized data streams, the data exchange between a transmitter and a receiver (limited in time) would not be possible.
  • a (changed) routing in the network can lead to interruptions. This may be the case, for example, when a mobile user changes from one access point (for example, access point, radio mast, base station) of one wireless network to another (also referred to as handover).
  • a transmission interruption can interfere with a communication relationship between endpoints, which can be referred to as communication endpoints in the same way, when it occurs: after the endpoints have started a communication draw, whereby the data interruption is at least temporarily impaired by the transmission interruption is prevented or while one endpoint attempts to establish a communication relationship with another endpoint, whereby the communication interruption delays or (temporarily or completely) prevents the establishment of the communication relationship.
  • the endpoints may perceive a reduction in quality of service or an error situation.
  • data services use protocol hierarchies, for VoIP consisting for example of IP, UDP and RTP, for web surfing, for example, IP, TCP, optionally TLS / SSL and HTTP.
  • protocol hierarchies for VoIP consisting for example of IP, UDP and RTP, for web surfing, for example, IP, TCP, optionally TLS / SSL and HTTP.
  • the protocol hierarchy resulting solely from RTP, UDP, IPv4 is shown roughly and by way of example in FIG.
  • the protocol hierarchy resulting from HTTP, TCP and IPv4 is exemplified in FIG.
  • the "size" of each layer provides a rough indication of the overhead that can be created by the protocol headers of each layer.
  • Each of these protocols uses its own protocol header, which quickly adds up to a large overhead when using multiple protocols or a header hierarchy.
  • the existing options for header compression are usually only used for individual transmission sections (for example, in a simple case, between two channels directly connected via a physical transmission medium or a layer 2 network). tern) used. In this case, however, they reduce the header overhead only on the corresponding transmission section.
  • the header compression (often called CRTP) described in [9] allows, for example for use over a transmission section, the headers of the protocols RTP, UDP and IP to be compressed together, thus making it possible, in total, in the order of 40 Bytes these headers to compress on the order of 2-4 bytes.
  • the existing header compression capabilities allow only a few of the affected headers to be compressed.
  • [9] describes that as an alternative to the common compression of RTP, UDP, IP, only the RTP header can be compressed for only one transmission segment. If only the RTP header is compressed, this header compression can also be used end-to-end (for example, directly from one phone to another).
  • the uncompressed maintenance of the UDP and IPv4 headers in this case allows intermediary network components (such as routers) to route the packets despite the compressed RTP headers.
  • the efficiency of the reduction also becomes correspondingly smaller.
  • the uncompressed UDP and IP headers would still be on the order of 28 bytes in size.
  • the RTP header is reduced in the order of 12 bytes to about 2 to 4 bytes. The efficiency of the protocol decreases.
  • the object of the invention is to provide improved technologies for optimizing packet-oriented data transmission between communication end points in a network with communication end points.
  • optimization is aimed at one or more of the following: reducing the effects of transmission delays, reducing the effects of packet loss, reducing the effects of transmission interruptions, and reducing the impact and / or overhead of data transmission on all or some of the networks used ,
  • a method of optimizing data transmission between communication endpoints in a network having communication endpoints comprising the steps of:
  • a waiting message for the communication endpoint initiating waiting message and / or a pseudo-address comprises, which is selected locally by the optimizer arrangement and different from the further communication endpoint associated address, Initiate the packet-oriented data transmission between the communication endpoint and the further communication endpoint.
  • the address may be determined based on the information contained in a name resolution request. This can be done by providing the same or a modified name service request to a name service server or to an optimizer of the same or another optimizer arrangement. Also, the address may be predetermined by static rules or determined by applying dynamic rules. The address may designate or refer to the further communication endpoint named in the name service request or an optimizer of this or another optimizer arrangement.
  • a waiting message can be formed with:
  • the initiation of a wait state can be supported / realized / signaled by at least one name service and / or at least one data service protocol. This form of delaying a response is independent of whether the at least one response sent was generated by the optimizer, received by another optimizer, received by a name service and / or another component.
  • a method for optimizing data transmission between communication endpoints in a network having communication endpoints comprising the steps of: Forming a communication relationship between a communication endpoint and another communication endpoint, wherein the communication relationship is configured for a packet-oriented data transmission in which a data stream is comprehensively formed exchanged data packets,
  • Optimizing the packet-oriented data transmission between the communication endpoint and the further communication endpoint by providing information about a communication behavior of the communication endpoint and / or the further communication endpoint in a future name resolution process by means of the optimizer arrangement as part of an optimization mechanism for the packet-oriented data transmission.
  • a third aspect of the invention there is provided a method of optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
  • the optimization mechanism is executed logically separated from the communication endpoint and the further communication endpoint,
  • the optimization mechanism is executed in protocol layers above the protocol layer 2 protocol layer 2, and
  • an advantageous embodiment of the invention can provide that logically between at least two of the optimizers or between the one optimizer and the other communication endpoint is at least one not participating in the optimization on the / the considered protocol layer (s) involved system. It can be provided that the optimizers capture as much of the data transmission in the network as possible and / or detect the subarea (s) of the network that are particularly problematic for the quality of service of the data transmission.
  • a fourth aspect of the invention there is provided a method for optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
  • transmission interruptions are periods in which, for example, from the point of view of a particular protocol layer, no data packets can be exchanged between two communication end points, for example a transmitter and a receiver.
  • Transmission breaks can be at the beginning, while or outside an existing communication relationship occur. They can - as described above - have many causes.
  • the planned simulation of the continuation of a communication relationship can be applied to an existing communication relationship, but in particular also to a communication relationship to be established. In the latter case, despite transmission interruption, a state of the communication relationship is simulated.
  • a preferred embodiment of the invention provides to apply the optimizations only for the establishment of a communication relationship or to apply the optimizations only during an existing communication relationship or to apply the optimizations for establishing a communication relationship and during an existing communication relationship.
  • a fifth aspect of the invention there is provided a method of optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
  • a sixth aspect of the invention there is provided a method of optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
  • One or more arbitrary optimization mechanisms can be used in combination.
  • aspects 3-6 of the invention individually or in combination, to the information exchange in the context of data services and / or name services, to the exchange of information between two optimizers and / or two components of an optimizer for the purpose of name resolution, Identify pseudo-addresses, delay responses, and / or provide information about communication behavior.
  • a further aspect of the invention relates to a computer program product with program code which is optionally stored on a computer-readable storage medium and is suitable for executing on a computing device a method according to at least one of the preceding aspects.
  • Advantageous embodiments of the invention are the subject of dependent subclaims. The following embodiments of the invention are initially assigned to simplify the illustration of the individual aspects of the invention. However, they may find application singly or in any combination with the various aspects of the invention, thus providing advantageous embodiments of the invention.
  • Locally valid addresses selected as pseudo-addresses may preferably be restricted in scope to an end system or a part of a network and include from the ranges for IPv4 addresses according to RFC 1918 or the corresponding ranges for IPv6 addresses. Addresses are selected according to RFC 4291. Furthermore, it may be advantageous to select reserved IPv4 or IPv6 addresses, such as IPv4 class E-addresses. It may also be advantageous to select HIP, cryptographically formed, multicast, broadcast or anycast addresses as pseudo addresses.
  • - is set to one second or another value of not more than one minute.
  • An advantageous embodiment provides that a condition takes into account the address to be resolved, the assumed transport protocol and / or the suspected application protocol.
  • optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
  • optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
  • NAT Network Address Translator
  • a preferred development of the invention provides that the provision of the information about the communication behavior comprises at least one step selected from the following group of steps: - passive monitoring of the communication relationship,
  • optimizing the packet-oriented data transmission comprises steps for generating a plurality of requests by the optimizer arrangement and / or for synthesizing responses to the requests in a response to the communication endpoint and / or the further communication endpoint.
  • An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for suppressing subsequent requests.
  • optimizing the packet-oriented data transmission comprises a step for predicting a future request of the communication endpoint and / or the further communication endpoint.
  • optimizing the packet-oriented data transmission comprises a step for preprogramming an expected request of the communication end point and / or of the further communication end point.
  • optimizing the packet-oriented data transmission comprises a step for repeating lost requests or replies and / or redundantly transmitting at least one packet of the requests and / or replies.
  • optimizing the packet-oriented data transmission comprises a step for exchanging information between optimizers from the optimizer arrangement.
  • An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises at least one step from the following group of steps: data service optimization; an observation of a data service or the parsing of at least one data packet of a data service.
  • An advantageous embodiment of the invention provides that the data service optimization or observation or parsing concerns one of the protocols HTTP, SOAP, RTSP, SIP, XMPP, Flash or other application protocols.
  • Analyze an HTML page, a style sheet, an XML document, an SDP message (for example, according to RFC 2327 or 4566), a SOAP message, a MIME message, an FTP, SIP, HTTP , RTSP, Flash or XMPP message or certificates on content that can be interpreted as DNS names or names of other naming services;
  • Closing from names that designate a service or service provider which can be done from a statically configured and / or dynamically determined table, to the application protocol used;
  • optimizing the packet-oriented data transmission further comprises the following steps:
  • optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
  • Delegate the determination of an assigned response to another optimizer Transferring the determined assigned response between optimizers of the optimizer arrangement, wherein the transmission can run between two optimizers, from one to several optimizers, from several optimizers to an optimizer and / or from several optimizers to several optimizers,
  • An expedient embodiment of the invention provides that the optimization of the packet-oriented data transmission takes place by interaction of an optimizer with a regular name service server, wherein an optimizer performs at least one of the following steps:
  • the optimizer makes an expected request to a regular name service server
  • optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
  • optimizing the packet-oriented data transmission comprises a step for generating replies to name resolution requests, wherein the following steps are furthermore provided:
  • a waiting message for the communication endpoint initiating waiting message and / or a pseudo-address comprises, which is selected locally by the optimizer arrangement and different from the further communication endpoint associated address,
  • optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
  • Locally valid addresses selected as pseudo-addresses may preferably be limited in scope to an end system or part of a network, and others. be selected from the ranges for IPv4 addresses according to RFC 1918 or the corresponding ranges for IPv6 addresses according to RFC 4291. Furthermore, it may be advantageous to select reserved IPv4 or IPv6 addresses, such as IPv4 class E-addresses. It may also be advantageous to select HIP, cryptographically formed, multicast, broadcast or anycast addresses as pseudo-addresses.
  • - is set to one second or another value of not more than one minute. It may be advantageous to determine a pseudo-address only as a function of at least one static or dynamic condition. An advantageous embodiment provides that a condition takes into account the address to be resolved, the assumed transport protocol and / or the suspected application protocol.
  • a further advantageous embodiment of the invention provides for combining an optimizer or a component of an optimizer with a Network Address Translator (NAT).
  • NAT Network Address Translator
  • a preferred development of the invention provides that the optimization mechanism is executed in at least one protocol layer selected from the following group of protocol layers of the protocol layer model: network layer, transport layer and application layer.
  • optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
  • An advantageous embodiment of the invention provides that a step for dynamically adapting the optimization mechanism to the packet-oriented data transmission is provided.
  • dynamic adaptation may take into account the past, present, and / or expected future characteristics of the packet-oriented data transmission and / or the data path and / or selected parts of the data path. So optimization can only be applied to parts of the data path. Also, the extent of optimization (such as the amount and / or type of redundancy and / or the FEC and / or ARQ techniques used and / or the application and / or training of interleaving) may be adjusted. Furthermore, it may be advantageous to recognize the types of data packets and / or the communication protocols used and / or the type of communication relationship and to adapt the optimization accordingly.
  • a further development of the invention provides that the dynamic adaptation comprises a step for measuring transmission characteristics for the communication relationship and a step for adapting the optimization mechanism as a function of the measured transmission characteristics.
  • the measured packet loss rate and / or the measured transmission delay and / or the measured transmission rate can be taken into account.
  • optimizing the packet-oriented data transmission comprises a step for prioritizing the data packets of the data stream of the packet-oriented data transmission.
  • a preferred embodiment of the invention provides that the optimizer marks the packets according to their priority.
  • the optimizer manages at least one dedicated queue for the data packets and uses them to prioritize the data packets themselves, before or during transmission, or after / from receiving Data packets can happen.
  • the embodiment of the invention described here can be used not only in connection with the first but also with the other aspects of the invention.
  • a preferred embodiment of the invention provides that a step is provided for processing an optimization data stream formed in optimizing the packet-oriented data transmission without reverse conversion by a receiving communication endpoint.
  • the redundant information can be supplemented or constructed and / or transmitted in such a way that they can not be distinguished from data packets of a non-optimized data stream for the receiving communication endpoint. It can also be provided that the redundant information is supplemented or constructed and / or transmitted in such a way that at least parts of the redundant information are not or are not disturbed by the receiving communication endpoint.
  • optimizing the packet-oriented data transmission comprises a step for compressing header data of one or more data packets from the data stream of the packet-oriented data transmission.
  • the amount of transmitted redundant information is chosen so that it does not or substantially exceeds the amount of compression-saved data, the comparison being performed for a single packet, for several packets together and / or over a time interval can be.
  • a development of the invention provides that optimizing the packet-oriented data transmission comprises a step for retaining data from the data stream of the packet-oriented data transmission.
  • optimizing the packet-oriented data transmission comprises steps for locally generating data in the optimizer arrangement and for transmitting the locally generated data to the communication endpoint and / or the further communication endpoint.
  • An advantageous embodiment also provides that the retained or locally generated data are sent during a transmission interruption.
  • this transmission during the transmission interruption in terms of time delay and / or data rates and / or packet numbers and / or pauses between the packets is designed to bridge an expected duration of a transmission interruption or as long as possible and / or To be able to bridge the consequences of transmission interruptions.
  • An advantageous embodiment provides to determine the amount of data transmitted per unit of time as a function of the total retained quantity and / or the arrival of further data (amount per time interval) and / or the expected or calculated or predicted duration of the transmission interruption. It may also be advantageous to vary the transferred amount over time.
  • a preferred development of the invention provides that these retained data are user data and / or control data from the point of view of the optimized protocol layers.
  • One embodiment of the invention provides that the retained or locally generated data from the perspective of the / in the optimization involved prototype kolls / logs for user data.
  • a further embodiment of the invention provides that the retained or locally generated data is control data from the point of view of the protocol (s) included in the optimization.
  • a preferred development of the invention also provides that the amount of retained data is adapted to the length of the expected and / or to be tolerated transmission interruptions. Moreover, it is a preferred embodiment of the invention to adjust the amount of retained data to an acceptable retention delay. It is a preferred embodiment of the invention, the length of the expected transmission interruptions and / or acceptable retention delays by optimizer configuration settings, control signals, heuristics, for example, based on past and / or in other situations and / or in other networks and / or values measured by other optimizers to determine and / or influence.
  • a further preferred development provides that instead of and / or in addition to the retention of data by the optimizer additional data and / or data are requested ahead of time.
  • a preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for predicting interruption characteristics of the communication interruption's communication interruption.
  • a preferred embodiment of the invention provides that optimizing comprises a step for additional and / or premature requesting of data from the data stream of the packet-oriented data transmission.
  • optimizing the packet-oriented data transmission comprises a step for coherently compressing headers of a plurality of data packets of the data stream of the packet-oriented data transmission.
  • several headers of a single data packet are compressed contiguously or a header of several Data packets compressed contiguously.
  • contiguous compression is meant the joint - successive or simultaneous - consideration of said headers for compression, which may be independent of the temporal relationship of the data packets and / or the spatial arrangement of the header.
  • An advantageous embodiment of the invention provides that the compression of the at least one header is executed only for a part of the data packets of the data stream of the packet-oriented data transmission.
  • optimizing the packet-oriented data transmission comprises a step of exchanging additional information comprising one or more packets selected from the following group of packets: existing control packets, additional control packets and additional data packets.
  • the compression of the at least one header of the at least one data packet comprises a step of at least partially replacing the at least one header by one or more context identifiers.
  • a preferred embodiment of the invention provides that compressing the at least one header of the at least one data packet comprises a step of at least partially compressing at least one header selected from the following group of headers: IPv4 headers, IPv6 headers, Ethernet headers, UDP headers, RTP headers and TCP headers.
  • compressing the at least one header of the at least one data packet comprises a step of incorporating information in compression selected from the following group of information: source address information and destination address information.
  • An expedient development can provide that addresses of one type are converted into addresses of a different type.
  • An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for selecting an algorithm by the compressor for a unidirectional transmission path between the compressor and the compressor.
  • a further development of the invention preferably provides that optimizing the packet-oriented data transmission comprises a step for compressing user data of the at least one data packet.
  • optimizing the packet-oriented data transmission comprises a step for applying a protocol enhancement method.
  • the application of a protocol enhancement method can be provided as an advantageous development also in connection with the other aspects of the invention.
  • optimizing comprises a step for nested optimization of the packet-oriented data transmission with the aid of a plurality of optimizers of the optimizer arrangement.
  • the recognition of the optimization option furthermore comprises at least one step selected from the following group of steps:
  • An advantageous embodiment of the invention provides that the optimization possibility is detected during the application of a preceding optimization and an optimization mechanism. This includes, in particular, the recognition of another possibility for optimization than the preceding one; the recognition of the change of the optimization possibility; recognizing that optimization can still be applied; recognizing that applying optimization will produce better or worse results than the previous one; the recognition of the omission of an optimization possibility; and / or determining the parameters of an optimization option.
  • a development of the invention provides that the recognition of the optimization option furthermore comprises at least one step selected from the following group of steps:
  • the selection of the optimization comprises a step for selecting a header coprimization.
  • a preferred embodiment of the invention provides that a step for testing compressible headers is provided.
  • a preferred embodiment of the invention provides that a step for testing is repeated systematically with differently compressed headers.
  • An advantageous embodiment of the invention provides that it is concluded from the testing of compressed headers on which mechanisms for header compression can be applied.
  • optimizing comprises a step for nested optimization of the packet-oriented data transmission of a plurality of optimizers of the optimizer arrangement.
  • Such nesting may preferably have two or more nestings.
  • optimizer arrangements can also be arranged in series / in series and / or in parallel. It may also be advantageous to combine parallel, serial and / or nested optimizer arrangements.
  • An advantageous embodiment provides that at least two optimizers of these optimizer arrangements exchange information and / or use information contained in an optimized data stream jointly (for the purpose of at least one of their optimization functions). As a result, a usable in the various aspects of the invention embodiments is formed.
  • Conditional suppression of repeated packets the condition being that the repeated packet is only suppressed if it is received within a statically configured and / or dynamically determined period of time;
  • Conditionally suppressing repeated packets the condition being that the repeated packet is only suppressed if it is received outside of a statically configured and / or dynamically determined period of time;
  • Conditional suppression of repeated packets the condition being that the repeated packet is suppressed only if it is a request
  • An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for applying the optimization mechanism to selected data packets of the data stream, wherein the selected data packets are selected from at least one selection criterion from the following group of selection criteria:
  • a preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step of jointly applying the optimization mechanism to a plurality of data packets of the data stream.
  • optimizing the packet-oriented data transmission further comprises the following steps: determining whether a disruption or interruption of the packet-oriented data transmission with respect to the optimizing in a communication path associated with the communication endpoint or in a communication path associated with the further the communication endpoint is expected, and adjusting the optimization mechanism to the particular communication path.
  • optimizing the packet-oriented data transmission further comprises the following steps: determining a type of the exchanged data packets, determining the application protocol of the exchanged data packets and adapting the optimization mechanism to the particular type of data packets exchanged.
  • optimizing the packet-oriented data transmission further comprises the following steps: determining a current load for the communication relationship and adapting the optimization mechanism to the specific load.
  • An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission further comprises at least one of the following steps: unidirectional, backward-channel-free optimization and bidirectional optimization.
  • a further development of the invention provides that the optimization of the packet-oriented data transmission combined with at least one step is carried out from the following group of steps: performance enhancement method, data compression / decompression, data encryption and data transcoding.
  • the communication relationship is formed comprehensively a point-to-multipoint or multipoint-to-multipoint data communication.
  • a preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for selecting an optimizer as a representative of one, several or all optimizers of the optimizer arrangement.
  • the selection of the optimizer comprises a step for temporally and / or spatially dynamic selection of the optimizer as a representative.
  • An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step of utilizing multiple network paths of the network for transmitting redundant information.
  • a preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step of using several network paths of the network for forming a data load distribution for the packet-oriented data transmission.
  • a preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for controlling an optimization functionality of the optimization mechanism as a function of network signals.
  • An expedient embodiment of the invention provides that the communication between two optimizers takes place through a tunnel formed by means of another protocol.
  • a preferred embodiment uses IP, UDP, TCP, IPsec, SSH, SSL, SCTP, DCCP, ICMP, HTTP, HTTPS, SIP, FTP, NNTP, DTN, DNS, RTSP, SOAP, XMPP, XML, and / or a peer to-peer overlay as a tunnel.
  • the optimization is applied to networks and / or subnetworks and / or difficult communication paths, wherein the networks and / or subnetworks are formed by at least one of the following networks: Wide Area Networks (WAN), Metropolitan Area networks (MAN, DVB-C), internetworks such as IP networks or delay-tolerant networks (DTNs), local area networks (LAN) such as Ethernet and WLAN, PDH, SDH, DVB-C and / or ATM networks.
  • WAN Wide Area Networks
  • MAN Metropolitan Area networks
  • DVB-C internetworks
  • DTNs delay-tolerant networks
  • LAN local area networks
  • Ethernet and WLAN PDH, SDH, DVB-C and / or ATM networks.
  • Networks telephone networks, radio networks (such as mobile, WiMax, 3G, UMTS, HS (D) PA, DVB-T, LTE, UWB, OFDM, 802.1 Ib / a / g / n / p / s, Among Satellite networks, such as DVB-S / S2, DVB-RCS, S-band, proprietary satellite links, space radio networks), even in cable (broadcast) networks (such as cable networks, DSL, fiber-to-the-home,. ..) etc., but also overlay networks such as peer-to-peer networks) and also combinations of arbitrary networks of different types.
  • radio networks such as mobile, WiMax, 3G, UMTS, HS (D) PA, DVB-T, LTE, UWB, OFDM, 802.1 Ib / a / g / n / p / s, Among Satellite networks, such as DVB-S / S2, DVB-RCS, S-band, proprietary satellite links
  • Another expedient embodiment of the invention provides that the one or more optimized by the optimization of data services at least one of the following services: telephony, video calling and (video) conferences over the Internet (hereinafter collectively under the term "VoIP "), Audio / video streaming, access to web pages (" web surfing "), HTTP-based data transfer, HTTPS-based data transfer, WAP, web services, network management, access to a file system, collaborative editing of documents, presentations, file transfers, sending, receiving, and / or editing (including deleting, sorting, dropping) of email, chat, peer-to-peer applications, remote access to computers, remote control of systems, etc.
  • VoIP Voice IP
  • Audio / video streaming access to web pages
  • HTTP-based data transfer HTTPS-based data transfer
  • WAP web services
  • network management access to a file system, collaborative editing of documents, presentations, file transfers, sending, receiving, and / or editing (including deleting, sorting, dropping) of email, chat, peer-to-peer applications, remote access to computers, remote control of systems,
  • a packet-oriented data transmission apparatus or system may be provided between communication endpoints in a network having communication endpoints having an optimizer arrangement configured to provide a packet-oriented data transmission optimization mechanism according to a method of to carry out one of the aforementioned embodiments.
  • Fig. 5 roughly a protocol hierarchy for RTP, UDP and IP and
  • Fig. 6 roughly a protocol hierarchy for HTTP, TCP and IP.
  • optimizer may be a component which inserts an optimization into the exchanged data (where " Insert "is understood here and in the following also the general making an optimization on the exchanged data).
  • Insert is understood here and in the following also the general making an optimization on the exchanged data.
  • one or more optimizer components that evaluate the inserted optimization / use and usually restore the original data stream wholly or often in large parts and / or the desired semantic effect of the originally intended data stream in often large parts restore.
  • the communication with the / the two optimizer components is described below only in each case for a communication direction in order to make the description clearer.
  • the optimization in the reverse direction is also possible if applications and transmission networks require this, it appears advantageous and / or the arrangement and / or components are designed accordingly.
  • An optimizer may be a component of one of the endpoints known components of the communication relationships, such as a router, a server, a proxy or other intermediate system (Intermedia te system) from the perspective of communicating endpoints, or it may be "transparent" in the communication relationships intervene, that is, without its existence having to be communicated to the endpoints or even having to be known, the communicating endpoints are also referred to as communication endpoints in a synonymous manner.
  • An optimizer may be distributed among multiple logical and / or physical components. Also, an optimizer may be partially or wholly part of one or more of the end systems, or executed on one or more of the end systems. In particular, an optimizer or a part thereof as software and / or hardware can be an additional component of other system components (routers, servers, proxies, intermediate systems etc.). the.
  • optimizations and the optimizers performing them are, for example, header compression (executed by suitable compressors), transmission optimizations for dealing with delays, packet losses and / or interruptions.
  • header compression executed by suitable compressors
  • transmission optimizations for dealing with delays, packet losses and / or interruptions.
  • packet and data packet synonymous and also regardless of whether in a packet / data packet user data and / or control information is available used.
  • These data packets follow a transmission path (also referred to as a communication path, data path, or short path) that has been dynamically selected, statically configured, or otherwise determined, for example, by a routing protocol on the network layer. From one endpoint to another, such a path often passes through one or more intermediate systems (eg, routers, network nodes, proxies) through one or more transmission networks.
  • a path can be symmetric: then packets from one endpoint A to another endpoint B go through the same intermediate systems as endpoint B to endpoint A packets, but in reverse order.
  • a path may be asymmetric if the intermediate systems traversed in opposite directions are different. Such a symmetry can also be considered - on a coarser level - for transmission networks.
  • a path is in the simplest case composed of a sequence of sections / transmission sections ("hops"), wherein a section connects two adjacent intermediate systems (for example with regard to a protocol layer) to one another
  • a path can also contain several alternative paths, which are potentially or actually traced in each case by a part of the data packets following the path, in this text the term communication path also becomes synonymous or data path instead of and equivalent to the term path.
  • a difficult communication path is a component of the communication paths between A and B, the properties of which may possibly have a detrimental effect on the achievable quality of service, as described above in the examples transmission delay, packet loss and interruptions.
  • These characteristics of the communication path may be due to the characteristics of a single network component and / or a single network section and / or to the combination of the properties of several network components and / or network sections; In particular, none or none of the involved network components / network sections alone must already result in a difficult communication path.
  • optimizers that are preferably on the endpoint A-facing side of the particular difficult communication path considered may play a different role than optimizers with respect to possible or actual data flows the other end point B facing side of each considered difficult communication path.
  • the characteristics of a difficult communication path may be temporary (almost never, rarely, occasionally, frequently, etc.) while the same communication path has normal characteristics at other times.
  • the invention aims at optimizations for data and / or name services.
  • the following explanations are subdivided into three main sections, which cover complementary and arbitrarily combinable aspects of the invention: I. Optimizations for the use of name services, II. General optimizations for handling packet losses, high transmission delays (RTT), interruptions etc., as well as III. Further optimizations by compression of protocol headers.
  • Figures 1 to 3 show several system configurations with two communicating endpoints A and B, which may be source and / or sink for payload.
  • the two endpoints are interconnected via a series of transmission networks.
  • Connected means that A and B can exchange data packets. These data packets follow a path / communication path (also referred to as path for short) that has been dynamically selected, statically configured or otherwise determined, for example, by a routing protocol at the network layer.
  • FIG. 3 further shows by way of example different locations in some intermediate systems and / or the end points in which optimizations can be performed by optimizers.
  • optimizations can be performed by optimizers.
  • Fig. 1 a illustrates an arrangement with two endpoints (A and B) and two of these separate optimizers (X-I and X-2).
  • the endpoints send and receive data packets unchanged.
  • the data packets sent by an endpoint (for example, from A to B) can be picked up by X-I and optimized before being forwarded to X-2, so that the optimization Ol can be used for the transmission network N-X.
  • the optimized data packets are recognized by X-2, exploited on an as-needed basis, and the data packets are restored to their original form (as sent by A), either largely or completely, and then forwarded to B.
  • the data packets sent by X-2 are not or not significantly distinguishable from those sent by A, or need not be separately distinguished from them.
  • the optimization of the data packets on the path section by the network N-X is transparent to the endpoints.
  • the optimization may be applied to all data packets and / or all data packets exchanged between two or more endpoints and / or and / or two or more instances by a particular application and / or within the context of a communication relationship.
  • optical data packets here and in general for better readability in the text is simply referred to as "optimized data packets.” However, this does not only include an adaptation per data packet, but also in general any adaptation of the corresponding stream of data packets Modification of the individual packets, modification of selected packets, insertion of additional packets or other transmission of additional information, but also for example by a special treatment and / or prioritization and / or lower delay (for example by queuing) and / or a targeted delay and / or Oppression and / or Doubling / multiplying and / or one of the other optimizations of the packets described below takes place.
  • one of the optimizers (X-I) is integrated into the one end point (A).
  • the logical functions of endpoint A and optimizer X-I may be unchanged. In this way, no external component is required on the side of A, and from the point of view of the optimization Ol, the transmission networks N-A and N-X coincide. How the integration of X-I into A is done is up to the local implementation. It is conceivable that the two functions are also implemented independently of each other, such that an independent process and / or a driver of the operating system implements the optimization function. It is also possible that a plug-in card and / or the firmware on an on-board unit perform these tasks.
  • the optimizer may be executed for one, several and / or all applications and / or one, several and / or all communication relationships of one, several and / or all applications.
  • the counterpart (optimizer X-2) corresponds to that of Fig. 1 a).
  • Fig. 1 c illustrates an arrangement in which both optimizers X-I and X-2 are integrated into the end points, as just described for optimizer X-I.
  • the executions for Optimizer X-I apply analogously to Optimizer X-2.
  • the implementations in the two endpoints may correspond to each other or be designed in parts or quite differently.
  • Fig. 1 d shows an arrangement in which between the end points A and B two independent optimizations (Ol and 02) take place sequentially on different network sections (N-Xl and N-X2).
  • the data packets sent by end point A are first transmitted via the transmission network NA to optimizers XI-I and then optimized by optimizers XI-I.
  • the optimized data packets are sent via the transmission network N-Xl to the optimizer X 1-2 and received by the latter and partially or completely restored and then forwarded via the network M to optimizer X2-1.
  • There will be the Data packets are again optimized and sent via the network N-X2 to optimizer X2-2, which receives the data packets and partially or completely recovered to point B forwarded.
  • the two optimizations O1 and O2 can use the same, partially or completely different methods and algorithms that operate on the same and / or (partially) different (parts of) packets and / or packet headers and / or payload data or control data.
  • any number of such optimizations can be present in a specific arrangement.
  • one and the same optimizer may be involved in more than one optimization.
  • the optimizers X 1-2 and X2-1 may be implemented in the same system, in which case no transmission network M is in fact present.
  • the number of optimizations with the selected path through the transmission network or transmission networks can vary: between two end points A and B, this can happen, for example, in time if, for example, due to the routing decisions, the path changes during an existing communication relationship.
  • one or more of the optimizers can also be integrated into the end points.
  • optimizers can also be arranged in parallel. This may be the case (as just described), for example, if the routing changes through the network (s), but also if the routing splits the data packets of a communication relationship over several paths (for example, for load distribution in the context of trafflc engineering ). In such a case, different data packets take different paths and may be affected by different optimizations; Also, for example, can be done on any of these paths no optimization.
  • two or more optimizations may be nested.
  • the transmission network N-X2 is surrounded by the optimizers X2-1 and X2-2, which implement the optimization 02.
  • the network section consisting of the transmission networks N-XIa, N-X2 and N-XIb is surrounded by the optimizers Xl-I and X 1-2, which implement the optimization Ol. Since the optimization 02 occurs within Ol, the optimizers X2-1 and X2-2 work with partially optimized data packets.
  • a data packet P which is sent from an end point A, is initially un-optimized over transmit the transmission network NA and then optimized in optimizer Xl-I according to the optimization Ol.
  • the thus optimized data packet P ' (also here and following analogous to the optimized data stream) is then sent via the transmission network N-XIa to optimizer X2-1.
  • Optimizer X2-1 now carries out a further optimization O2, which results in the data packet P "For this optimization 02, the same and / or other criteria can be used as for oil
  • the data packet P " is transmitted via the transmission network N-X2 and received by the optimizer X2-2, where P 'or a data packet corresponding substantially to P' is reconstructed.
  • This reconstructed data packet is then forwarded via the transmission network N-XIb to optimizers X 1-2.
  • This data packet reconstructed by XI-2 is then forwarded to endpoint B via the network NB.
  • the optimization oil can be completely retained and / or even completely / partially uninterpreted by the components X2-1 and / or X2-2.
  • X2-1 could also wholly or partially cancel the optimization oil, for example, in order to more efficiently optimize some already optimized for oil in combination with the methods used for O2 or more efficiently for the following network sections / networks and / or or to share some or all of the optimization aspects in whole or in part for both methods.
  • FIG. 1 e Although only a simple nesting of optimizations is shown in FIG. 1 e), the number of nested optimizations is basically not limited. Also, sequential optimizations as described for FIG. 1 (d) may be present at any nesting depth.
  • optimizers of different nestings can be implemented in one system, for example Xl-I and X2-1 coincide (in which case the transmission network N-XIa is practically eliminated). Furthermore, single or multiple optimizers may be implemented directly in endpoints (analogous to FIG. 1 b) and FIG. 1 c). As described for FIG. 1 d), the composition of the optimizers may change temporally and / or spatially; also several optimizations can be operated in parallel.
  • FIG. 2 with optionally only a one-sided optimizer component (in Fig. 2 optimizer XI) can be realized.
  • the optimizer XI can be integrated into the end point (FIG. 2 g) or can be arranged detached from the end point in the data path of the packets in the network (FIG. 2 f)). Also possible in these cases, for example, multiple optimizations with multiple optimizers used only on one side and / or in combination with optimizer component pairs as described for example in Fig. 1.
  • Fig. 3 refers specifically to the following aspects of the invention described in section La).
  • the optimization is performed by an optimizer X-I, which according to FIG. 3 a) can be arranged as a separate component in the data path between the communicating end points A, B.
  • the optimizer X-1 can also be integrated into the end point A.
  • the optimizer X-I can also be divided into a plurality of logical or, as shown in FIG. 3 c), also a plurality of physically separate components.
  • a component X-Ia in the data path between A, B and in a component X-Ib which provides, for example NDS functions.
  • FIGS. 1, 2, 3 are shown by way of example only and to be understood by way of illustration. Any combinations of these arrangements and arrangements derived therefrom are possible. Although the following is spoken of, for example, arrangements according to FIG. 1, FIG. 2 and / or FIG. 3, the arrangements combined and derived therefrom are also meant.
  • FIGS. 1, 2 and 3 only two communicating entities are shown in FIGS. 1, 2 and 3 for the sake of clarity. Equally, however, more than two instances may occur as sources and / or sinks of payload data and / or as transmitters and / or receivers of control information.
  • the applications can transmit user data unidirectionally and / or bidirectionally in all arrangements.
  • individual, some and / or all networks can be physically designed for unidirectional and / or bidirectional transmission.
  • a transmission network or network can consist of several / many transmission sections with interconnected systems (bridges, switches, routers, gateways, proxies etc.), can consist only of individual ones Transmission sections exist (for example, a "through-line" or a direct physical connection by electrical cable, fiber optics, acoustic coupling, electromagnetic waves, etc.), but may well consist of several interconnected subnets (for example, use the Internet Protocol).
  • the networks shown may also consist of local connections or a local network (in particular, this will quite often be the case with network NA and NB, but may equally apply to the other networks).
  • the above-mentioned networks may be arbitrary networks (for example IP networks, delay tolerant networks (DTNs), local area networks such as Ethernet and WLAN, PDH, SDH and / or ATM networks, telephone networks, radio networks (such as mobile telephony, WiMax, 3G, UMTS, HS (D) PA, DVB-T, LTE, UWB, OFDM, 802.1 lb / a / g / n / s, Among other networks, satellite links (such as DVB-S / S2, DVB-RCS, proprietary satellite links, radio networks in space), and also in wired (broadcast) networks (such as cable networks, DSL, fiber-to-the-home, ...) etc., as well as overlay networks such as peer-to-peer networks.
  • Networks and also combinations of arbitrary networks of different types.
  • the optimization features are not limited to use by protocols of a particular layer, application, and / or type of application, but may or may not be specific to them.
  • Optimizations can work on individual layers or across layers. The optimization may depend on the characteristics of the surrounding networks or the Paths dependent on the network and / or the function and / or the presence of certain network elements: for example, an optimization function can work differently if the packets on the way certain other network elements such as routers, NATs and / or firewalls must pass. Different optimizations (and their optimizers) can coordinate with each other and / or work independently of each other.
  • two communication phases can be distinguished: a name service phase in which at least one name resolution is performed, and a data service phase during which the communication within a data service potentially takes place using at least parts of the information obtained by the name resolution.
  • the name and data service phases may be sequential, parallel or (partially) overlapping; for a data service phase, none, one or more name service phases may be performed, and a name service phase may include one or more name resolutions.
  • a name service In a name service phase, the use of a name service potentially requires the exchange of information (eg, sending a request and receiving a response) for name resolution.
  • This information exchange takes place within the framework of a communication relationship between, for example, an end point A and the name service server. From the point of view of using the name service, the end point A and the name service server are then two endpoints of the communication relationship for queries to the name service. This communication relationship is also illustrated in FIG. 1: endpoint B then represents a name service server.
  • endpoint B then represents a name service server.
  • name service server designates a component to which an endpoint (for example A or B) and / or thus also a name service server of other hierarchy levels / levels can request a name resolution request.
  • Answering a request may also be done by appropriately forwarding the request (for example, to one or more other name service servers), with a subsequent response then directly to the requesting endpoint, indirectly via the forwarding name service server, and / or indirectly via other logically or physically trained components is carried out.
  • a request may also be included implicitly in a message (for example, one or more packets) of a data service.
  • a name service server (as described above) may generate a response as part of the data service. Examples include HTTP or SIP redirect messages that use error code 301 or 302 and are generated by a web server, proxy, or SIP redirect server or user agent. But other protocols provide appropriate messages.
  • a name service server can also be consulted, for example, by an intermediate system (for example, a "proxy", "peer") of a data service, which then forwards the message of the data service to the intended endpoint B according to the address resolution by the name dispatch server, for example to another proxy and / or one or more other endpoints.
  • examples of data services including name resolutions include Session Initiation Protocol (SIP), Hypertext Transfer Protocol (HTTP), peer-to-peer, and other overlay networks.
  • Name resolution requests can be made by endpoints and / or name service servers.
  • An optimizer arrangement with at least one optimizer can realize an optimization for a name service. This can be particularly advantageous if the communication of an end point A in a name service phase with a name service server (NDS) B takes place via a difficult communication path (SKP).
  • the presence of an SKP can lead to queries to one (and possibly replies from one) NDS caused by the over- Delay delay be delayed. Also, requests and / or replies to the SKP may be lost, requiring them to be retransmitted after a timeout, which in turn results in a delay. Also, a limited bandwidth on the SKP may cause requests and / or replies to be delayed and / or lost.
  • a temporary transmission interruption for example, can result in an NDS being temporarily unavailable, so that name resolution can not be performed temporarily, which in turn can lead to a delay and / or an error situation.
  • An optimizer X of an optimizer arrangement may be configured for an endpoint A as a name service server (first level) - static or dynamic - or established as another name service server (second to nth level) for name resolution by the name service server of the first (to k-th) stage is used.
  • An optimizer X can also be arranged in the network topology or the network is configured such that the optimizer is in the path of the requests of an end point A or a name service server en route to a (further) name service server, so that the requests pass through the optimizer X. or be received by him.
  • endpoint A may also be a name service server that processes and / or forwards requests from other name service servers and / or endpoints.
  • the present invention reduces the influence of a difficult communication path SKP on the name resolution by two mechanisms, which are described below for clarity in I.a), Lb) and Lc).
  • the mechanisms described in the individual parts to I., their various forms and arrangements can be compared with each other and with those under IL and III. combined optimizations.
  • name resolution over a potentially difficult communication path may eventually result in a delay in the further execution of the data service because an endpoint A may or may not have to wait for the result of the name resolution before taking further steps (FIG. For example, building a communication relationship to another endpoint).
  • the name resolution performed by endpoint A may, as mentioned above, include any interaction with one or more name service servers and / or optimizers.
  • endpoint A may, for example, want to translate a DNS name into an IP address (for example, to reach a server), but also to implement an IP address in a DNS name ("reverse lookup") (for example, if a server attempts to determine the name of a communication partner contacting him.)
  • DNS name for example, to reach a server
  • reverse lookup for example, if a server attempts to determine the name of a communication partner contacting him.
  • an optimizer X which receives the request for name resolution from the end point A, to determine a pseudo-address and to send it promptly in response to A.
  • This pseudo-address does not need to match the address sought by the name service request, however, optimizer X stores at least portions of the request and / or at least portions of the pseudo-address and / or at least portions of the generated response and / or at least portions of the mapping between request and answer.
  • the pseudo-address is chosen in the context of the optimizer arrangement such that data packets sent to this address are received by a component of the optimizer X or of another optimizer of the optimizer arrangement (for example of XI or XI-a corresponding to FIG. 3).
  • the selection of the pseudo-address may be subject to certain rules (for example a locally valid, regionally valid, globally valid address or for a part of the communication path, in particular between XI or X-Ia and A according to FIG. must be valid), a specific address format, or they can be chosen freely.
  • the address can be selected at random and / or generated cryptographically.
  • a permanent or temporary validity period can be determined for a pseudo-address.
  • the period of validity may, in particular, be dependent on time, the expected
  • an address resolution between a request and a reply by means of a name service elapses.
  • the optimizer X in turn makes a request to another name service server to determine the address required to answer A's request.
  • This address - also referred to as "another address” - may be the one sought by endpoint A (eg the address of the further end system) or the address of optimizer X or another optimizer of one or the same optimizer arrangement
  • the optimizer X notifies a (logical or physical) component for the address translation (AU) of the pseudo-address, the "other address", and / or at least parts of the content of the request and / or the Answer to the name resolution with.
  • AU address translation
  • AU is not shown separately and integrated in the optimizer X-I.
  • the optimizer consists of several components (X-Ia and X-Ib) and AU can respectively correspond to the optimizer component X-Ia or functions of AU respectively integrated in Xl-a and / or AU, for example, the optimizer X-Ib enhus or functions of AU can be integrated into X-Ib. Functions of AU can also be included in both Xl-a and Xl-b.
  • the endpoint A now sends packets to the pseudo-address, these are received by at least one component of an optimizer X of the optimizer arrangement (for example from XI or X-Ia according to FIG. 3)).
  • an optimizer it may be advantageous to carry out further functions and optimizations.
  • the packets forwarded by X also deviate from the packets received by A in other header fields and, for example, packet boundaries and / or user data (limits) of the packet stream are modified.
  • An example would be an optimizer X operating in whole or in part according to a connection splitting method, which records the connections received by A (for example on one or more protocol layers such as TCP and / or HTTP). terminated in whole or in part and uses new / modified communication relationships for communication with B or intermediary instances from the point of view of the protocol concerned.
  • the translation of the pseudo-address into the "other address" (for packets sent from the endpoint A) and vice versa (for packets directed to the endpoint A) can be performed for each packet by the optimizer or forwarding a component of the optimizer.
  • the translation can be done for all packets from endpoint A and / or all local endpoints that have a pseudo-address given by an optimizer as the destination address.
  • the conversion for all packets to the end point A and / or all local endpoints can take place, which have as source address an address for which a pseudo-address has been assigned.
  • the conversion can be performed locally in an optimizer (such as optimizer X-I in Fig. 3a).
  • the conversion can be carried out in another optimizer-optionally in connection with a service service optimization (for example in optimizer X-2 in FIG. 1 a).
  • the implementation in one and / or both directions may depend on whether the communication relationship between the end point A and another end point has been initiated by the end point A, i. the first packet of this communication relationship was sent from endpoint A or through the other endpoint.
  • the implementation in one and / or both directions may depend on which transport protocol (for example UDP, TCP, SCTP, DCCP) is used.
  • transport protocol for example UDP, TCP, SCTP, DCCP
  • addressing addresses may be restricted to TCP, but UDPs may not be.
  • the conversion of addresses can be limited to those "other addresses" for which a name resolution by the end point A was previously requested.
  • the conversion of addresses can be limited to those "other addresses" for which a name resolution by the end point A was previously requested and this has received a pseudo-address in the response from the optimizer.
  • the conversion of addresses may be restricted to packets from / to endpoints A,... For which an address resolution was previously performed (and which has been given a pseudo-address by the optimizer).
  • the implementation of addresses may be limited to the duration of one or more specific communication relationships;
  • the duration of a communication relationship can be an optimizer, for example, by observing start and / or end packets (such as in TCP SYN and FIN packets) and / or by timeouts (such as when no more packets were transmitted for a static and / or dynamic predetermined period ) determine.
  • addresses can affect all packets, even if no name resolution was requested by the end point A before.
  • layer 3 headers for example IP addresses
  • transport layer 4 for example TCP or UDP port numbers
  • Statically configured and / or dynamically determined names and / or name ranges and / or addresses and / or address ranges and / or application protocols may be explicitly included in the implementation and / or be explicitly excluded from this.
  • two or more optimizers may be advantageous for two or more optimizers to provide information about the pseudo-addresses used and / or the images for other addresses and / or for the purposes of implementing and / or information about the current and / or recently active endpoints A and / or the current and / or recently active other endpoints (eg, name, address, other information) among each other. It can be provided that one or more optimizers perform the corresponding address translations. It can be advantageous for an optimizer, which assigns a pseudo-address, also to carry out the address translation locally or to have it executed (by a component AU). It may also be advantageous for an optimizer that has assigned a pseudo-address to have the address translation performed elsewhere in the network by another optimizer (or its locally assigned component AU). It may also be advantageous that an address is implemented several times. Two or more optimizers may advantageously vote over the usable ranges for pseudo-addresses and / or the already assigned pseudo-addresses.
  • the optimizer X buffers the packets sent to the pseudo address or data derived therefrom or even payload data from the end point A and / or simulates the conclusion or continuation of a communication relationship with the pseudo address, for example as compared to end point A. described under II, as long as no information about the belonging to a pseudo address "other address" exist.
  • step 1 exemplarily illustrates a possible network topology (corresponding to FIG. 3c) and shows a possible sequence of the optimization described here using pseudo addresses in steps 1 to 9.
  • an end point A can request a name resolution request (for the name "AE").
  • N the name of the other endpoint
  • the optimizer X-Ib which is configured, for example, as a name service server for the end point A.
  • the optimizer X-Ib in this example has no stored or configured information about" AE-N "and forwards therefore, continue the name service request (steps 2a, 2b, 2c, and 2d). Due to a transfer interruption, the first forwarded requests are lost.
  • the optimizer X-Ib delays the response as long as possible (as described in Lc), but generates in step 3 - before a time-out of the name service request occurs at end point A - a response with a pseudo-address PA, which the optimizer X -Ib selected locally (he could also tune with optimizer X-Ia).
  • Optimizer X-Ib also informs optimizer X-Ia about the newly assigned pseudo-address so that He knows that in future packets (from or to end point A) can be expected for this address (step 4); however, X-Ib can not yet refer to the other address at this time. Because name resolution has not yet completed, optimizer X-Ib continues retrying requests to the name service server.
  • step 2d a request reaches the name service server which replies it with the other address "AE-A" (step 7).
  • endpoint A has evaluated the response to its name service request and initiated a communication relationship with the other endpoint for which he uses the pseudo-address PA as the destination ("dst") and his own address "AA” as the sender ("src”) (steps 5a and 5b show the sending of two packets for this purpose).
  • the optimizer X-Ia receives the packets 5a, 5b, ... and stores them between (or accepts in the context of a endienstoptimierung the incoming communication relationship for the time being instead of the other endpoint), since he has no other address to which he forwarded the packets can (step 6).
  • the optimizer X-Ib receives the answer to its name resolution request (step 7), namely the address "AE-A" of the other end point, it informs the optimizer X-Ia about the now complete picture ("PA" ⁇ ->"AE
  • the optimizer X-Ia now knows the map and sends the packets destined for the pseudo-address "PA” after appropriate translation in the packet header (s) and / or content to the other endpoint using its correct address "AE
  • Further packets arriving from the end point A and addressed to "P-A" are forwarded immediately after the address has been translated (steps 5m and 5n or 5m 'and 5n'). Packets from the other endpoint are also forwarded by the optimizer X-Ia after the reverse address translation: here the source address of the other endpoint ("AE-A") is replaced by the pseudo-address ("PA").
  • An endpoint A will often ask more than one name resolution request to a name service server. This can happen, for example, because the endpoint establishes communication relationships (as part of data services) with several other endpoints and must determine their addresses. It may also happen that the answer to a first request for name resolution is insufficient because, for example, it only contains a reference to another name service server to be contacted, to which the original or a modified form of the original request is to be placed.
  • An optimization according to the invention in an optimizer arrangement may be advantageous here in order to reduce the delay and thereby increase the quality of service.
  • an optimizer can observe the name resolution requests made by an endpoint A, and infer future requests from past requests.
  • an optimizer may speculate from a request for name resolution of "tagesschau.de" that a request for www.tagesschau.de will be made in the future.An optimizer may also change from a request for one kind of name resolution to another For example, a request for an IPv4 address may result in a request for an IPv6 address (or vice versa), or the name resolution request for an alias may request a follow-up request for the address.
  • Name services can provide a variety of different types of name entries and corresponding name resolution requests, such as DNS, which not only knows A-records for IPv4 and AAAA records for IPv6, but also SRV, NAPTR, MX, alias, CNAME, TXT, PTR and other records that can be related to one another in name resolution
  • DNS name resolution
  • an optimizer may observe the exchange of information of the endpoint A with other endpoints in the context of communication relationships, for example a data service, optionally interpreting the protocols used (eg at the transport, session and / or application layer) and inferring therefrom conclusions on future name service - make inquiries. This can be done, for example, by analyzing messages - for example, requests and / or replies and / or notifications - of the application log by one of the at least one optimizer. The analysis may include header fields and / or payload data of one or more protocol layers. For example, an optimizer can analyze responses to requests from the HTTP protocol and, for example, search the contents of a "200 OK" response for a "GET" request.
  • the content may be, for example, an HTML page in which, for example, HTML elements (such as IMG) refer to other resources by means of a URI, such a URI potentially containing a future name to be resolved, for example, if the further resource is on another Web server is held as the retrieved and included in the HTTP response HTML page.
  • HTML elements such as IMG
  • a URI such as URI potentially containing a future name to be resolved, for example, if the further resource is on another Web server is held as the retrieved and included in the HTTP response HTML page.
  • an HTML page can be parsed for references to embedded objects, linked pages, style sheets, and / or frames; the analysis can be continued recursively to the contents of embedded, linked or referenced objects or resources.
  • Variants of such a procedure may be part of a data service optimization known as HTTP prefetching.
  • HTTP prefetching - as described for example in EP 1559038 - can be far more complex and perform more extensive functions than outlined here.
  • the above principle for combining this data service optimization with name service optimization remains the same: from the application protocol requests and / or responses and / or other messages, the name service optimizer closes on expected future name service requests and determines a response before the corresponding request is made to it.
  • a combination with HTTP prefetching allows recursively extending the analysis to future resolvable names to the embedded, linked, and / or referenced objects and / or resources.
  • the analysis is not limited to HTML pages, but may include any requested via HTTP or other protocols documents or general files, such as style sheets, frames, XML documents, SDP messages (for example, according to RFC 2327 or 4566), SOAP messages, MIME messages / objects, flash, video, audio, still images / files and / or certificates, Keys and / or other security objects can be extracted from which DNS names or names of other name services can be extracted.
  • HTTP or other protocols documents or general files such as style sheets, frames, XML documents, SDP messages (for example, according to RFC 2327 or 4566), SOAP messages, MIME messages / objects, flash, video, audio, still images / files and / or certificates, Keys and / or other security objects can be extracted from which DNS names or names of other name services can be extracted.
  • Such monitoring is not limited to HTTP;
  • Other data services such as HTTP, SOAP, RTSP, SIP, XMPP, Flash, or other application protocols, may also be used by the optimizer.
  • An optimizer can parse / interpret logs of any data service, and can collaborate with or act as a data service optimizer.
  • Such an optimizer may be provided on one or both sides of a difficult communication path. It can also be arranged completely or partially in the data path or be designed as an intermediate system or proxy of the data service in order to access the information exchanged in the context of the data service.
  • One, some, or all of the names found in the analyzed messages of the application log may potentially be expected to receive name service requests in the future. The same applies to potential future name resolution requests, which are suspected by analyzing messages from the name service protocol. Therefore, it may be advantageous for the optimizer to determine the answers to the expected inquiries in advance.
  • endpoint A can delegate the name resolution to XI and XI to X-2, for example - it can also be just one optimizer component (for example XI), multiple local optimizer components (for example X-Ia and X-Ib) and / or more than two optimizer components are involved).
  • an optimizer finding an unknown IP address delays the establishment of the communication relationship until a reverse lookup and / or other advantageous and / or necessary name resolutions - which can be derived from the address, from name resolutions (inquiries and / or answers) and / or from eg predicted names and / or addresses and / or other information - have been successfully performed ( about XI or X-2) and the result is XI, so that the following name resolution requests (reverse lookups) for this address and / or name and / or other information by the endpoint A or other endpoints or name service servers can be answered directly by XI.
  • a corresponding procedure is also reversed ("in the other direction") advantageous if an optimizer delays the establishment of the communication link until described name resolutions have been carried out and results in the Optiomiererkom- component X-2 on the other side of the transmission network N present
  • the optimizer or optimizer arrangement can optimize the establishment of communication relationships in both directions.
  • the response may be determined according to La) and / or by making a request to another optimizer and / or name service server and / or by consulting a local database and / or cache and / or in combination with at least one other name service optimizer.
  • the optimizer may pre-ping this expected request - directly or indirectly - to a name service server, and possibly the answer to the expected request received before the follow-up request.
  • an optimizer can then immediately answer the next inquiry using the previously received answer, so that the delay for the end point A between placing the request and getting the answer is reduced.
  • the optimizer can remember which expected requests he has already made. If a follow-up request coincides with an expected request already made by the optimizer but not yet answered, then the optimizer can suppress the forwarding of the follow-up request and wait for the answer to the expected request he has made, by which means he then can answer the follow request.
  • an optimizer arrangement can consist of two (or more) optimizers, for example XI and X-2. These optimizers can enclose a difficult communication path.
  • the optimizer XI can forward the requests to the optimizer X-2, who then requests them sent a name service server.
  • the optimizers XI and / or X-2 may - optionally individually and / or collectively - make predictions about A's expected requests, and optimizer X-2 may pre-submit this request to the name service server.
  • the responses received may then proactively send optimizer X-2 to the optimizer XI - or simultaneously or successively to a group of optimizers - who may store it to answer the corresponding follow-up questions of the end point A.
  • an optimizer arrangement can also consist of only one optimizer (which can be distributed over several components).
  • the optimizer as shown in Fig. 3, is preferably on the same side of a potentially difficult communication path or network N as an end point A that wishes to perform name resolution.
  • an optimizer can be advantageous even if it is on the other side of the difficult communication path or a transmission network N from A's point of view.
  • the optimizers may exchange query and / or response and / or other messages of a naming service protocol, where the transmission between two optimizers may be from one to multiple optimizers, from multiple optimizers to one optimizer, and / or from multiple optimizers to multiple optimizers. If the optimizer (for example, X-I in Figure 3a) is operating alone, it can perform the described procedures and make the necessary decisions locally without tuning to another optimizer.
  • An optimizer may also be provided only on the other side of the difficult communication path.
  • An optimizer when answering requests for name resolution, can also combine several answers into one and / or supplement answers with further (locally) generated and / or known and / or separately received replies.
  • An optimizer can cache responses to name resolution requests.
  • the storage may exceed the time necessary to answer a follow-up request.
  • the storage may also exceed the validity period (lifetime, time-to-live, TTL) displayed in the response. If a plurality of optimizers are provided in an optimizer arrangement and / or a plurality of optimizer arrangements are provided, the individual optimizers can exchange information with one another about the optimizations performed or in support of the optimizations to be performed. In particular, an optimizer may submit responses to name resolution requests and / or (modified) validity information to other optimizers.
  • an optimizer itself makes inquiries to a name service server, in order to induce him to forward the corresponding request and to save the answer if necessary.
  • the optimizer or other optimizer may be configured as a next-level name service server or, indirectly, another level for the regular name service server
  • the regular name service server can also use other regular name service servers for name resolution of the request made by the optimizer.
  • a name service optimizer may also initiate and / or support data service optimization. For example, HTTP prefetching may indirectly benefit from pre-available information about future name resolutions because potentially one or more name service phases may be shortened. Also, a name service optimizer may analyze name service requests and deduce from the name service requests the data services potentially used in the following data phase and / or the presumably used application protocols. For example, an optimizer can parse and / or interpret alias, SRV, NAPTR, A, AAAA, TXT, or MX requests for clues.
  • SRV or NAPTR records can provide direct indications of the data service, application and / or transport protocol, and other information.
  • names that designate a service or service provider may refer to the potentially used application be closed.
  • a statically configured and / or dynamically created or updated table and / or one or more rules and / or a database and / or a network management can be used to perform mapping of name resolution requests to suspected application protocols.
  • the name service optimizer may check, for example, whether a data service optimizer supporting the expected transport and / or application protocol is available.
  • the name service optimizer may initiate data service optimization for the expected transport and / or application protocol to the endpoint specified by the name (for example, server).
  • the name for example, server.
  • a data service optimizer that supports connection splitting can proactively establish a communication relationship (eg, a TCP connection) to the specified endpoint, such that the later setup time for the Communication relationship is reduced.
  • a data service optimizer that supports HTTP and HTTP prefetching may already pre-initiate HTTP prefetching to a suspected web server (the specified endpoint) and proactively request requests for the sites / objects / resources suspected and likely to be queried there For example, / index.htm, / index.html, /, / favicon.ico, / style.css, and / or other suspected objects then buffered by the data service optimizer and are ready according to the idea of HTTP prefetching, if the WebBrowser makes the corresponding requests, so that they can be answered immediately.
  • the optimizer can use the determined URIs and names to infer further potential name resolutions and potentially requested resources / objects / pages and optimize them Continue ng recursively.
  • optimization can be limited to particular transport and / or application protocols, specific namespaces (eg, domains, subdomains) may be explicitly included and / or exempted, the extent of optimization may depend on the system load and / or other parameters.
  • an optimizer X receives a name resolution request from an endpoint A, it may happen that - for example due to the difficult communication path and / or due to a transfer interruption and / or because another optimizer and / or a name service server is currently unreachable and / or timely can answer - a prompt answer to the request is not possible. As described in La), it may be useful to then assign pseudo-addresses. It may also be advantageous that the optimizer X does not immediately respond to the request of the end point A with an address, for example to avoid assigning a pseudo-address as long as possible.
  • endpoint A is waiting for an answer, and depending on the specific implementation, for example, the resolver or name service server at endpoint A often repeats its requests at certain time intervals if they do not receive a response. They often return an error message if they have not received an answer after one / several timeouts / repetitions of the request. Such a timeout / number of repetitions of the request can be very different (for example, between a few seconds and a minute). Therefore, an optimizer X can not simply delay the answer arbitrarily.
  • an optimizer takes into account the peculiarities of the respective name service and / or its various implementations (for example under MS Windows, Linux, MacOS) in order to design the delay of the name resolution in such a way that no error message is generated.
  • the design of the delay also includes accepted and / or measured RTTs for name service servers and / or other service providers. consider and / or accept endpoints A and / or accepted and / or include measured response times from name service servers.
  • a delay - or wait state of the endpoint - can be achieved in several ways.
  • an optimizer may simply delay sending one or more responses, even if one or more answers already exist.
  • the problem described above persists that a timeout of the name resolution on end point A can lead to an error message.
  • an optimizer may therefore be advantageous for an optimizer to choose a way to delay the response (s) to name service requests of the endpoint A such that no timeout and / or error situation occurs.
  • the optimizer can initially delay answers that he sends as long as possible, for example, according to the above statements. It may be advantageous for an optimizer to provide incomplete answers rather than complete answers, assuming that end point A then has to make any further modified requests (to get the missing information), so that the total time from the first Request extended until answer. For example, CNAME records can be used with DNS to achieve such indirection if necessary.
  • an optimizer may advantageously provide the endpoint A with a reference to another name service server to contact the endpoint for further processing of the request, rather than fully performing the resolution itself.
  • This additional name service server can be the same optimizer (possibly another optimizer component or another optimizer address) or another optimizer. It can also be provided that the end point A uses several name service servers. These can be, for example, the name service servers configured for the end point A and / or communicated to the end point A, for example as part of the autoconfiguration. It may be advantageous to simulate the existence of multiple name service servers to endpoint A, thereby allowing, for example, a longer delay of the responses. One, several or all of these fake multiple name service servers may be implemented by the same optimizer (e.g., it may have different addresses and / or be network topology in the path from endpoint A to the specified name service servers) and / or various optimizers.
  • the use of multiple name service servers by the endpoint A can lead to an extension of the timeout (for example, roughly nx timeout at n-name). service servers). It may be useful, for example, to provide several different name services (with different name service protocols, such as DNS and NetBIOS Name Service) for the endpoint to try, perhaps successively, the various name services.
  • One or more optimizers can advantageously take over the function of the name service servers of these various name services and - within the context of the respective name service protocols - for example by cross-references, incomplete and / or delayed sending responses, by references to other name services, etc.
  • an optimizer may also be useful for an optimizer to generate a response in one (or more) naming services (s) that requests endpoint A to wait for the response and / or later (approximately within or outside a specified time interval) ) again. For example, if there are messages available in the name service protocol that signal overloading of the server, they can be used by the optimizer. Also, repetitions of requests by endpoint A can be avoided by, for example, acknowledging receipt of the request (indicating that a final response follows), if the name service protocol provides such messages.
  • the Session Initiation Protocol supports responses such as "503" in combination with the "Retry-After” header (used for congestion) and "100" to acknowledge receipt of a request in that the endpoint A dynamically adjusts the timing of the repetitions of its requests and also the timeouts for its name service request, for example due to the RTT observed in the past
  • an optimizer may delay answering all name resolutions to the endpoint A, to simulate a high RTT and thus have a large timeout / many retransmissions and thus have more leeway for delaying responses, for example, it may be advantageous if the optimizer responds to the name resolution request so that the endpoint A is the Request again - for example, via another protocol - must provide example
  • a DNS request received via UDP can be answered with the TC TrunCated set in the response so that endpoint A repeats the same request over TCP.
  • Endpoint A can also communicate with the optimizer (for example, in the context of data service optimization) via a protocol, so that name resolution can potentially including the establishment of a communication relationship of the data service is explicitly delegated to the optimizer (for example, if SOCKS is used according to RFC 1928, for example, if a proxy is statically or dynamically configured in the endpoint, for example in the case of HTTP).
  • the name service and data service optimizer may act together as an optimizer.
  • endpoint A may result in an endpoint A not only performing name resolution for the other endpoint and then establishing a communication relationship (directly) to the other endpoint, but endpoint A instead establishing an (indirect) communication relationship with the other endpoint via at least one optimizer .
  • the end point A can first establish a communication relationship with the (known to him) optimizer and this example, communicate via this communication relationship, which would like to reach the other end point of the end point A.
  • this message may contain the name of the other endpoint so that prior name resolution by the endpoint A may not be required.
  • the endpoint can use the communication relationship already established for the optimizer for the later communication with the other endpoint (for example in the case of HTTP) and / or establish a further communication relationship with the optimizer which is then to be used for the communication with the other endpoint (for example in Case of SOCKS).
  • the optimizer may already accept / accept the further communication relationship (say, accept a TCP connection) before completing the name resolution for the other endpoint's name and / or reaching the other endpoint. Or, however, the optimizer may delay accepting / accepting the further communication connection until the name resolution has occurred and / or he has the further endpoint.
  • the optimizer can try the name resolution until an answer is given, and then continue to build up the communication relationship as part of the data service.
  • the optimizer - for example XI in Fig. Ia) - can delegate the name resolution to another optimizer - for example X-2 in Fig. A).
  • an intended communication relationship of the end point A can already be established from XI to X-2 and then continued to the target system as soon as the name resolution (in this example by X-2) is completed. Endpoint A remains hidden from the name resolution time; he only learns from the successfully completed connection setup as part of the data service optimization.
  • the optimizer can proactively refresh (expiration-expired) mappings at the next opportunity (such as when there is no transfer interruption), even if no request is currently in progress.
  • the optimizer can update the validity of the buffered map and / or the validity information of the propagated response by static Configuration, by dynamically determined values, by measuring the expected round-trip time (RTT) to a name service server and / or by the application protocol and / or choose freely.
  • the optimizer can also choose the validity period so that the answer only This can be done by explicitly specifying the one time use if the naming service provides such a function, but can also be done by specifying a short validity period (about 1 second or less than a minute)
  • the optimizer he can also observe the exchange of information in the context of the data service (see also Ib) and proactively perform the corresponding name resolutions on the names found by the analysis of the data packets.
  • the optimizer can also observe the packets exchanged in the context of a data service and proactively perform reverse
  • the optimizer X may consist of a component as shown in Fig. 3a) and 3b).
  • the optimizer X can also consist of several components which are arranged "locally" to one another, that is, for example, are not separated by a transmission network with a difficult communication path, but are located on a "side" of such a network, as shown by way of example in FIG. 3c). , 3d) and 3e).
  • the optimizer X may also consist of several components, as shown in FIG. 1, and these may be on different sides of a transmission network (potentially with a difficult communication path). be localized. In an arrangement as exemplified in FIG. 1, the optimization can be distributed.
  • the functions described here can be provided in one, two, or even several optimizer components (for example XI and X-2).
  • an optimizer consists of several components, in particular different components can cooperate in such a way that they pro-actively share received information with the other components. For example, if optimizer X-2 detects a name or an address (for example, due to a request and / or prediction, presumably future request as described in Lb) and performs a corresponding address resolution, then optimizer X-2 may combine the received response with the Request and / or additional information about the response (such as what name resolution was performed, why, and / or the validity of the response) to optimizer XI (and possibly other optimizers) before optimizer XI made a request. The same applies vice versa. Also, for example, optimizer X-I may delegate name resolution to optimizer X-2. The same applies to "locally" arranged components of an optimizer (such as X-Ia and X-Ib in Fig. 3c-e).
  • Optimizer arrangements can perform optimizations for name and data services, especially in combination.
  • the establishment of a communication relationship from one endpoint A to another endpoint can occur as part of a data service optimization by X-I and X-2;
  • Such optimization may also be provided only by an optimizer X-I (such as in Fig. 3a) or by optimizers X-Ia and X-Ib (such as in Fig. 3c) and in any combination thereof.
  • more than two optimizers and / or optimizer components and / or optimizer arrangements may be involved.
  • An endpoint A and / or another optimizer and / or a name service server may repeat name service requests (for example, because a timeout has occurred). It may be advantageous for an optimizer to be able to recognize and suppress and / or delay and / or answer and / or modify and / or replace repetitions of the same follow-up requests. Optionally, the optimizer may differentiate between different reasons for repeated requests, using the procedures described below. can also be combined as desired and whose combination can be statically specified and / or dynamically adapted:
  • an optimizer transmits information using one, several or all of the optimizations described under II, for example redundantly over the difficult communication path.
  • an optimizer may use communication over the difficult communication path - for example with another optimizer and / or with a name service server - to use their own rules for timeouts and / or retransmissions that are: - statically configured and / or dynamically learned / modified - better matched to the communication over the transmission network and / or a difficult communication path.
  • An optimizer identifies name service packets and detects repeated name service packets. Depending on the static and / or dynamic configuration, an optimizer may then need these repeated data packets or suppress, depending on a condition, wherein the conditions may be, for example, that the repeated packet is only suppressed if it is received within a statically configured and / or dynamically determined period of time, if it is outside of a statically configured and / or dynamically determined one Time period is received if the packet is a request, if the packet is an answer and / or if it is neither a request nor an answer.
  • the replacement and / or delaying of packages may follow appropriate or other rules and may also be conditional or unconditional.
  • the optimizer may perform the replacement of the packet with a semantically similar, equivalent, and / or equivalent packet, with or without a time delay.
  • quality of service packet loss has, among other things, the disadvantage that it requires either a specific changed or re-encoded content coding (which may be computationally intensive and requires the deployed optimizers to implement appropriate content coding techniques and / or or even assuming that the optimizers have implemented the specific content encodings used by an application) and / or optimizations specific to and using a link layer protocol (e.g., a mobile link, a satellite link, etc.).
  • a link layer protocol e.g., a mobile link, a satellite link, etc.
  • optimizers that can also be used largely independently of individual transmission sections / link-layer protocols and also largely independently of a selected content coding and / or the applications and / or terminals used. It is also advantageous for the implemented optimizers to be able to carry out their optimization, at least optionally, also largely detached from extensive administrative support measures of the network, such as end-to-end bandwidth reservations.
  • an optimization according to the invention can therefore be implemented, for example, by optimizers X-I and X-2, which can be arranged largely freely in the data path between the end points A and B.
  • the aim can be to include as much of the network as possible with the optimization oil.
  • the optimizations O1 and O2 can be designed completely, partly identically and / or specifically for the network areas N-X1 and N-X2 comprised by them.
  • the optimization according to the invention realized by optimizers can therefore for example insert redundancy as forward error correction into the transmitted data. This can be done independently of the concrete applications used, regardless of the specific content coding and regardless of possibly existing FEC method on the link layer protocols of individual transmission sections - of course, could optionally also the inserted optimization with one and / or more in this cooperate and / or benefit from the knowledge / recognition of these methods.
  • the VoIP call could be performed with an improved quality of service, even though a network L-X subject to packet loss lies in the data path between the end points A and B.
  • the optimizers X-I and X-2 are used.
  • X-I would receive data packets from Endpoint A VoIP, add redundancy to FEC (either in the packets or as additional packets / control information) and forward the resulting data packets over the N-X network.
  • Optimizer X-2 receives the optimized data stream, can compensate for all or at least some of the packet losses that occur by evaluating the FEC redundancies, and forwards the complete, almost complete, partially or fully recovered data stream to endpoint B.
  • the network NX could be the Internet. And the optimizers XI and X-2 could each insert / evaluate the optimization Ol in forwarding / receiving the data from corporate networks or home networks NA and NB to the Internet NX.
  • the network NX could also be an Internet access shared by multiple users and / or applications, for example at a public Internet hotspot (or special Internet hotspots such as those offered on trains, planes, etc.). In this case, increased packet losses may occur on this shared Internet access. While in principle all the arrangements shown in FIG. 1 can also be used here, this application scenario can be well described by means of the arrangement of FIG. 1 b).
  • Terminal A could then be a laptop, for example, which uses Internet access via WLAN and a hotspot together with other users and / or own applications. If this Internet access is overloaded and this leads to packet loss, the user of terminal A, for example, for his VoIP data (and / or all his application data to the end point B) FEC redundancies using an optimizer XI (for example, is implemented locally on his laptop) insert into its data streams.
  • Optimizer X-2 is either already in the data path to endpoint B or else, for example Optimizer XI ensures, for example, by suitable target addressing of the generated packets, that the generated packets should be forwarded to X-2 via NX.
  • X-2 could be on the Endpoint A user's home network, or on the endpoint A's corporate network, or Optimizer X-2 would be operated by a service provider serving service users (endpoint A user, as in this example). allows to transfer its data to X-2 with the optimization Ol.
  • X-2 is then connected, for example, to a transmission network NB, via which the end point B can be reached.
  • the network NB could also be (again) the Internet into which the data partially and completely recovered using oil can be (back) given and then reach endpoint B.
  • the inserted FEC redundancy information may also be designed in such a way that it can also be used and "evaluated" directly by one of the endpoints (for example endpoint B) or the application involved
  • the applications used directly implement the FEC redundancy information in, for example, their application transfer protocols end-to-end, rather than inserting FEC redundancy information through an optimizer XI largely detached from the application, such as in FIGs g).
  • the optimizer XI can, in the simplest case, double the incoming data packets (or, more generally, always and / or, for example, in the case of dynamically detected occurring packet losses, send them twice or more generally multiple times). Because many transmission protocols (including the widely used IP protocol) do not assure that packets will not be duplicated or duplicated during transmission, many receive protocols and applications tolerate (or ignore) duplicate packets. Thus, in addition to the arrangements of FIG. 1, arrangements according to FIG. 2 also become possible in which optionally only one optimizer component XI is used.
  • RTP is typically used above UDP and IP - therefore RTP packets have very high RTP, UDP, IP, etc. header overhead compared to the often relatively small volume of voice data contained in an RTP.
  • RTP packets contain timestamps and a voice data part (payload part) of variable size.
  • An implementation according to the invention could therefore insert redundancy into RTP in an application scenario with, for example, VoIP and RTP, in which optimizer XI also inserts the user data of the previously received RTP data packet into each of the RTP data packets received by endpoint A before the newly received user data (thus, for example, the double User data volume per RTP sent) and the timestamps (which in the example of RTP indicate, for example, the timestamp of the first user data contained in a packet) accordingly adapts.
  • a corresponding implementation would generate significantly less overhead than a complete duplication of the RTP packets.
  • VoIP RTP protocol and / or application implementations would often be able to easily understand these modified RTP packets even without the use of an optimizer X-2, and be able to independently (largely transparently) use the incoming redundancy information to compensate for packet losses.
  • optimizer X-2 a proxy for packets that are used by the optimizer X-2.
  • FIG. 2 arrangements in accordance with FIG. 2 are also possible in this example.
  • the optimizer XI can also design the optimized data stream such that the information necessary for the optimization is only for the optimizer X-2 are "visible", but are not perceived by the endpoint B (in the example above), for example, the information needed for the optimization can be transmitted in separate packages and addressed, for example, differently (for example to the optimizer X-2). Also, the information necessary for optimization may be "hidden" in the packets destined for endpoint B.
  • a "larger" packet of a layer may include a "smaller” packet of a higher layer (e.g., the transport layer), such that There is still room for further information at the "end" of the transport layer packet
  • the switching layer can be, in particular, IP (for example IPv4 or IPv6), at the higher layer IP, UDP, TCP, ICMP, DCCP , SCTP, and other IP-based tunneling or transport protocols.
  • a static configuration for example, the amount of inserted redundancy information and / or a dynamic adjustment, for example, based on a dynamically estimated and / or measured packet loss rate.
  • the FEC method itself can also be optionally modified and / or changed, for example.
  • an optimizer receiving an optimized data stream could first evaluate the FEC information and request a corresponding retransmission in case all packets / information were not yet received or restored.
  • the retransmission / ARQ method is used as part of the optimization, to only request retransmissions, for example, if the resulting and / or expected delay does not become "unacceptable" Transmission delay would be unacceptably large depends, inter alia, on the specific application scenario and / or the protocols used and / or the applications.For example, corresponding limit values could be configured, measured, derived from the protocols used and / or applications and / or their parameters. Also, they could be stated absolutely and / or relatively (eg relative to an RTT).
  • these other transmission paths have a relatively short RTT and / or low packet loss rates, for example because the optimizers receiving the optimized data streams obtain this information more quickly, for example in the event of packet losses, and thus forward the (recovered) packets and / or Delay information less. It may also be advantageous for similar reasons, depending on the application scenario, to transmit certain data packets / specific information (such as FEC and / or retransmissions) with a higher priority and thus for example to reduce the transmission delay and / or loss rates for these data packets / information.
  • specific information such as FEC and / or retransmissions
  • An optimizer that is on a path ahead of a bottleneck can often help prevent or limit such congestion by, for example, applying the optimization methods described above, such as suppressing, rearranging, retaining or compressing packets, or otherwise influences the data stream so that, for example, the behavior of the participating end systems contributes to a regulation of the queues.
  • a difficulty is the lack of information of the optimizer about the current state of the bottleneck, such as the achievable bitrate, the current size and structure of the queue, the used prioritization algorithms and the proportion of current through the optimizer data flow to the total data flow through the bottleneck and the behavior (and expected behavior) of not running through the optimizer Share. It may be advantageous that the optimizer, through observations of the packet streams, determines knowledge, albeit often incomplete, trailing knowledge, about these state parameters.
  • the optimizer could measure and / or track transmission rates and / or from the occurrence of retransmissions (or, when using ECN to RPC 3168, related signals such as "congestion experienced” or ECN echo and CWR at the transport level) Using other feedback signals, such as RTCP or ROHC feedback, we can conclude from these that, for example, congestion-induced losses occur at certain bitrates, and it may be advantageous for the optimizer to use statements about the course of the RTT to compare them to the observed and It can also be advantageous if the optimizer includes the expected behavior of the end systems in his forecasts - for example, an expected retransmission can be avoided by timely prioritizing a data packet - and / or influence it in a targeted way t, for example, by suppressing unnecessary retransmissions and / or by suppression and / or delay of ACK or data packets and thereby achieved a deceleration of a transmitter, for example, threatens to overload the bottleneck.
  • the optimizer actively probes the bottleneck by communicating with a remote station even without direct utilization of the triggered data transmission, for example with the above-mentioned ICMP techniques (echo request / echo reply, "ping") and / or also by implementing piggyback information on the user data and / or by using one / more management, diagnostic and / or measurement interfaces to one and / or more / all network elements, the queues implement and / or cause and / or pass on appropriate information Many of these measures can be unidirectionally observed / influenced as well as in bidirectional observation / influencing at least a part of the data flowing through the bottleneck realize.
  • ICMP techniques echo request / echo reply, "ping”
  • suitable specifications can be used (for example, a maximum desired RTT or another target from suitable characteristic values such as a combination of loss rate, RTT and RTT variance / variability, for example according to the Padhye-Firoiu equation for specific throughput values of TCP connections).
  • the goal can also be to provide not only the sum of the data streams and / or groups of data streams but also only / preferred data streams (such as interactively spoken VoIP) the required quality of service with a higher reliability than this would be possible without these measures.
  • an optimization can therefore be realized, for example, by optimizers X-I and X-2, which can be arranged largely freely in the data path between the end points A and B.
  • the two optimizers jointly optimize the use of a bottleneck in the network N-X.
  • X-I and / or X-2 could use a potentially distributed algorithm for obtaining relevant characteristic parameters of the bottleneck (s) in network N-X.
  • X-I and X-2 can send mutually active sounding packets and / or put on anyway sent packets piggyback information and about it, for example, the RTT and possibly estimate their course.
  • XI can include the inflow and X-2 the flow of data packets into the calculations and thus a more refined statement about the current size of the queue (s).
  • the outflow of data packets becoming visible in X-2 can statements about the achievable bit rate and the current packet loss rate.
  • XI can influence the parameters determined jointly with X-2 by influencing them (for example, delay, suppression, duplication, reordering, rewriting the packet fields, for example changing the window offered) to those in the forward direction (in the example described, from end point A to B) Data packets react. X-2 can do this too; however, the influence is then mediated indirectly via the returns from B to A; these influences can affect both B and A directly.
  • an optimizer in an alternative embodiment or in combination with one or more of the aforementioned methods to also provide feedback / feedback and / or information (for example via queue information of subsequent components and / or bandwidths for individual / types /
  • This information could, for example, indicate how many bytes for certain types of data and / or, in general, for example, can send to subsequent components without causing queuing or, for example, causing relatively low queuing and / or associated with Further information on current and, for example, depending on the data type and / or priority resulting or existing cue levels and / or levels.
  • Advantageous transmission types and interfaces for this information exchange / this feedback could be local / transferred tax information and / or other interfaces such as the Linux operating system often used by drivers / proc file system interface.
  • transmission interruptions often result in the loss and / or delay of data packets, which can interfere with the establishment and / or operation and / or termination of a communication relationship.
  • a delay may occur, for example, if the packets sent during the transmission interruption have been temporarily stored in a router (ie its queue) until the transmission interruption is over.
  • caching generally only relates to (relatively) few packets and to a (relatively) short interruption period.
  • packet loss can affect the transmission delay, for example, if a reliable and / or order-preserving transport protocol (for example, TCP, SCTP).
  • the interruption may happen that the communication relationship is terminated by the corresponding protocol.
  • the communication protocol is often removed from the application protocol, and the communication relationship between the applications does not materialize or can not continue or must be later (after elimination of the Interruption).
  • a new address of a communication partner can lead to the (temporary) interruption or abort of a communication relationship.
  • connection splitting or split connection when applied at the transport or application layer;
  • the invention described herein is not limited to connections, connections do not even have to be recognized as such, but it may - as partially explained below - including packets, link-layer and other frames or other transmitted information units as a basis be used.
  • Individual communication relationships or even groups of communication relationships can be considered together.
  • the methods described below which are advantageous for the invention depending on the application scenario apply to all arrangements of FIGS. 1 and 2 and any combinations of these (that is to say inter alia also for the case in which an optimizer is present).
  • the division into multiple sections can be done on any layer of the OSI reference model. Often, such a subdivision occurs at the IP, HIP, transport or application layer.
  • a solution according to the invention can be used on one and / or more layers.
  • the solutions just mentioned provide that the at least one optimizer X shields the section from one optimizer to an endpoint of any transmission interruptions from the optimizer X to another optimizer and / or to another endpoint.
  • a transport connection for example TCP
  • TCP transport connection
  • the communication relationship can be maintained in principle on one or more layers - for example by maintaining the IP addresses as in the case of Mobile IP, as in the case of HIP (Host Identity Protocol), the contact addresses are updated or, as with TCP connection.
  • IP addresses as in the case of Mobile IP
  • HIP Home Identity Protocol
  • the contact addresses are updated or, as with TCP connection.
  • Splitting the transport links on the sections to an endpoint (s) will persist, but this method is often inadequate for applications.
  • applications and / or application protocols and / or name services used by name resolution applications have their own timeouts. If an operation initiated by an instance of an application (for example, an endpoint A) (eg, a request) is not completed within that time window (for example, by a corresponding response), that operation may - after one or more repeated attempts, if to execute them - to be declared failed.
  • an error message may be presented to the user.
  • the message can be delivered, the name of the server is not known and / or the server is currently not reachable and / or a page could not be found or loaded.
  • the requested web page may be displayed incompletely (for example, missing text, missing images).
  • the responsibility for reloading a principally available web page is delegated to the user: he may decide to initiate the corresponding operation again (if necessary repeatedly), and he can decide when and how often he wants to try this.
  • an optimizer receives information (eg payload or control information) from one section (eg X1-X2 in the transmission network NX) within one or more communication relationships - for example from another optimizer or another Endpoint - and passes this information on to another section (for example, A-Xl) to an endpoint (for example, A).
  • information eg payload or control information
  • the optimizer does not forward all information as it becomes available. Instead, the optimizer passes the information only delayed, so that (for example, before an operation is completed) some of the information remains in the optimizer. If a transmission interruption occurs, the optimizer can store this remaining information in arbitrarily small units (bits and / or bytes and / or sequences of bits and / or sequences of bytes and / or packets and / or sequences of packets and / or packet fragments and / or sequences of packet fragments and / or frames and / or sequences of frames) to the endpoints.
  • bits and / or bytes and / or sequences of bits and / or sequences of bytes and / or packets and / or packet fragments and / or sequences of packet fragments and / or frames and / or sequences of frames to the endpoints.
  • This mechanism may be on any one or more protocol layer (s) (particularly, but not limited to, layers 2 and / or 3 and / or 3.5 and / or 4 and / or 5 and / or 6 and / or 7) ,
  • forwarding information it may be advantageous if the forwarding does not occur in individual bits or bytes or other arbitrary units mentioned above, but follows the structure of the higher protocol layers.
  • These may be the data structures (eg packet formats, data formats, operators, parameters, queries, responses, HTML, XML and / or other documents, etc.) and / or headers and / or payloads.
  • an application uses its own data records or if the communication takes place in whole units of this data, then in some cases it may be useful or even necessary to forward these data records as a whole. In other cases, it may be necessary to pass on these records only piecemeal. Combinations may also be necessary or advantageous. In which cases, which procedure is suitable depends on the applications and / or application protocols.
  • NOP no-operation
  • a protocol provides for an adjustable and / or negotiable timeout
  • a higher timeout may be set when a transmission interrupt occurs.
  • a new timeout can be chosen so that it corresponds to the expected duration of the interruption delay or higher. It can be set to a fixed or otherwise dynamically determined value. It can also be adapted according to the information to be forwarded which is still available in the at least one optimizer. The choice may also be determined by any combination of one, some or all of the above and / or other parameters.
  • the optimizer may be advantageous for the optimizer to generate protocol elements (for example, in response to a request and / or as a message and / or own request) informing the endpoint that it should not make further requests for a particular time slot (eg a retry-after header).
  • protocol elements for example, in response to a request and / or as a message and / or own request
  • a particular time slot eg a retry-after header
  • the optimizer may be advantageous for the optimizer to generate and supplement protocol elements and / or content and / or modify and / or supplement routed information that notifies the application and / or the user that a particular operation is in progress.
  • the mechanisms described above may also be used if there is an interruption at the time an application wishes to establish a communication relationship.
  • the optimizer can simulate the establishment of a communication relationship and thereby shield the application from an existing interrupt.
  • optimizers implementing Connection Splitting could, for example, accept an incoming connection (for example, TCP connection) according to the connection splitting, but delay the connection, and eventually a complete communication relationship between A and B, for example, delaying or possibly repeating until the interruption no longer available.
  • optimizers not operating according to the connection splitting method could for example simulate the establishment of a connection or the time span before the involved protocols emanate from the connection not being established extend
  • Case b) may be advantageous, for example, to not always delay information. but only to collect information for delayed forwarding in at least one optimizer, if there is also a need for such buffered information, since otherwise the performance of the communication relationship may possibly decrease.
  • a decreasing data rate or, if available, other indicia such as falling signal levels (e.g., signal strength and / or signal-to-noise ratio, SNR) could indicate an impending pause and / or an increasing level thereof The End.
  • SNR signal-to-noise ratio
  • GPS and / or motion indicators could be used.
  • Heuristics such as movement values and / or time values and / or network changes of the past could also be used.
  • external systems could indicate an imminent or potential impending transmission interruption or give indications of their likelihood.
  • past experience stored, for example, in one of the optimizers) could provide important clues.
  • the participating transmission networks themselves or (digital) maps with information about the network coverage) could give hints. The same could be done by a user in at least some cases. Individuals, some and / or all of these and / or other information may be combined to make such predictions.
  • the invention can be used unidirectionally and / or bidirectionally.
  • the two transmission directions can be operated independently or dependent on each other.
  • the independent and / or dependent operation may relate to individual data packets, individual communication relationships, and / or groups of communication relationships, and that reference or independent and / or dependent operation may change over time once and / or repeatedly.
  • the optimizers can ensure that received optimizers will be able to obtain the optimized data stream and / or the opti - miert to interpret incoming data packets and / or forward accordingly.
  • the use of pure (often anyway) unidirectional FEC method the determination of available bandwidth without bidirectional example PING protocols presuppose and / or the use of alternative transmission paths in return, only for less data and / or only for control information be used.
  • Optimizers can be integrated into the data path to a large extent transparently in many application scenarios, i. the applications do not need to know about them and therefore do not necessarily have to address the data packets directly to the optimizers.
  • the optimizers could also work as a proxy.
  • a proxy setting is often supported by many applications, such as browsers, without changing the application itself and without very complex configuration.
  • an automatic proxy detection is provided, so that the actual proxy (or its addresses) does not always have to be configured directly in the applications.
  • the protocols used for automatic proxy detection also allow optimizers and / or external components to automatically specify the optimizers as proxies directly to the applications, so that, for example, at least one manual proxy configuration may not be necessary per application.
  • these methods often also allow for reconfiguring the proxies, for example in the event of a failure, as load sharing and / or for directing the data streams to other proxies and / or through other networks.
  • the data exchange between the components may be advantageous to tunnel the data exchange between the components (in particular also between participating optimizers such as XI and X-2 in FIG. 1) by additional protocols.
  • additional protocols a variety of known and optionally also specially designed for this purpose protocols or combinations of both.
  • the communication over a TCP tunnel could be made from one or more parallel TCP connections, also the employment of for example the protocol IPsec and / or IPsec Nat Traversal could be advantageous, since at the same time they can implement additional procedures like encryption.
  • tunneling packets in different network-level protocols may be advantageous (for example, if the optimizers also support IPv6, however, potentially (parts of) the network between optimizers only support IPv4; the same applies to similar or in reverse scenarios). It is also possible to tunnel known packets as well as specially designed protocols for tunneling of packets of different network level protocols.
  • a corresponding "tunneling" can also take place very indirectly, for example by exchanging address information only at the beginning of recognized communication relationships If, for example, a new IPv6 communication relationship begins, the optimizers allocate an identification number for example, and for example only initially assign this identification number to another optimizer
  • the tunneling protocol between the optimizers could be based on IPv4, while for the detected communication relationships internally IPv6 address information is exchanged internally (and / or similarly) in the tunneling protocol or in reverse scenarios).
  • optimizers can, for example, autonomously detect packets and / or data streams of different protocols and / or be instructed and / or supported by external components via control information / control signals and / or marking of the packets themselves. Possible for this purpose many procedures.
  • Measurements such as the packet loss rate and / or RTT and / or transmission interruptions are at least often also possible if, as in the arrangements of FIG. 2, no optimizer X-2 is used.
  • the optimizer X-I for example, adapted to the deployment scenario, exploit other functionalities implemented in the endpoint B and / or in its environment or in the transmission path to endpoint B in order to access the required information.
  • the command PING ICMP protocol, with standard PING packet sizes or with typical packet sizes as they appear in the data stream to be optimized
  • the command PING could be used to reach a corresponding remote site without specific X-2 optimizer components and without special optimization Functions to estimate packet losses and / or RTTs and / or detect transmission interruptions.
  • similar information can also be obtained via the RTCP protocol, via which VoIP implementations provide feedback to the opposite party about the received data.
  • a combination with a compression of the transmitted user data and / or transcoding / change of the content coding can take place.
  • both lossless and lossy compression methods are available (such as reducing image resolution, image quality, or filtering out optional additional information). NEN, etc.). This applies generally to the use of arrangements according to FIG. 1.
  • it is also possible to use these techniques in arrangements according to FIG. For example, when reducing image resolution, image quality, filtering out additional information, changing content encoding / transcoding (but often depending on the functionality / supported content coding of the applications used).
  • the HTTP protocol allows the transmitted Web objects to be compressed directly by the Web server or even by intermediate components such as an optimizer. Because common web browsers often support several of these compression methods, an optimizer can optionally also compress web objects with one of these compression methods, and could even persist compression to the receiving end system / application (in this case the web browser).
  • Protocol enhancement techniques exist for a variety of protocols and objectives and / or networks. Very often used are, for example, protocol enhancement methods for TCP and / or HTTP and / or file-sharing protocols (such as SMB, CIFS, NFS, NetBios). These protocols are either replaced for example for certain transmission sections by other protocols and / or modified protocol parameters in the terminals and / or the exchanged data packets. There are many potential targets for such protocol enhancement methods.
  • TCP protocol enhancement may be the task of TCP protocol enhancement to allow high transmission bandwidth even with high transmission delays (and / or transmission delays remaining despite optimization) and / or high packet loss rates (and / or packet loss rates remaining despite optimization) / or keep the protocol overhead, for example caused by control packets, low.
  • HTTP protocol enhancements For example, these should also be Nes usual Internet browser resulting page load times are also reduced for networks with high transmission delays and / or high packet loss rates. Ways to do this include, for example, intermediary proxies and / or proactively sending objects contained on web pages or even behind links.
  • HTTP is also an example of how it may be beneficial to combine the various methods mentioned here (but HTTP is representative of many protocols that apply to this, such as, but not limited to, many text-based protocols such as SIP, RTSP, SOAP, SDP, etc.).
  • HTTP uses TCP and IP, so a relatively large protocol hierarchy is used, with higher-layer protocol layers often directly benefiting from optimizations for lower-level protocol layers. In this example, optimization could, for example, reduce packet loss rates and / or RTTs.
  • HTTP often benefits directly from this optimization. But HTTP often benefits from the optimizations already by relying on TCP, and TCP in turn often benefits significantly from low packet loss rates and / or shortened RTTs.
  • HTTP is also a good example that in a corresponding deployment scenario, additional methods such as HTTP-specific protocol enhancements, compression, encryption and / or header compression methods can often be advantageous in addition to the optimizations.
  • the individual potentially to be combined with the optimization method / process types could be realized independently of each other and / or independently of the optimization, which among other things Increased flexibility and / or interchangeability.
  • implementation in combined system components and / or devices potentially reduces the overall complexity and / or configuration effort.
  • the individual types of methods could be implemented and used in a simplified manner in the case of a completely / partially integrated realization and / or in a realization in which at least individual control information is exchanged between the components of the method types.
  • the optimizer / optimization in many application scenarios it is advantageous to use the optimizer / optimization to be performed in combination with other methods (such as compression of Payload, header compression, encryption, protocol enhancement, etc.).
  • these other methods can be implemented, for example, directly within the optimizers or, for example, as external, independent components. Also, these other methods may be applied to the packets depending on the deployment scenario and arrangement chosen before or after optimizing the packets / data streams.
  • packet headers (or parts of them) and / or payloads (or higher headers) Protocol layers) may be unrecognizable by encryption and / or content / payload compression and / or header compression for subsequent components (or more generally for other components), as long as they are not decrypted and / or decompressed again, for example
  • Examples can also be here of marking packets (for example via the TOS field of the IP headers), signaling / classifying packets / data streams based on address information (which, for example, are made known to other components via configurations and / or signaling protocols) of tunneling protocols and / or special protocols that contain, for example, in additional information header and / or control information otherwise unrecognizable information of the packets / data streams.
  • address information which, for example, are made known to other components via configurations and / or signaling protocols
  • tunneling protocols and / or special protocols that contain, for example, in additional information header and / or control information otherwise unrecognizable information of the packets / data streams.
  • address information which, for example, are made known to other components via configurations and / or signaling protocols
  • tunneling protocols and / or special protocols that contain, for example, in additional information header and / or control information otherwise unrecognizable information of the packets / data streams.
  • a component could completely transfer these additional information headers to subsequent components. For example, it could
  • the data packets may be transmitted not only on a path through the network / subnetworks and / or in parallel over several transmission sections.
  • the resulting advantages can be, for example, load sharing and potentially lower transmission delays and / or packet loss rates, an increase in the total available transmission capacity and / or, in particular in the case of redundant transmission of all and / or some of the information, also higher reliability / or robustness to, for example, leaving reception areas and / or switching between networks.
  • different methods may be advantageous for the division of the data packets to be transmitted over several paths through the network / subnetworks and / or in parallel over several transmission sections.
  • a division taking into account the transmission delay / RTT of the individual paths can be advantageous.
  • a corresponding method could, for example, regulate the data volumes routed via the individual paths in such a way that the individual paths have, for example, a similar RTT and / or an RTT which, for example, does not exceed a configured and / or determined maximum and / or as little as possible.
  • control signals of the user or external systems can also influence and / or directly control, for example, nature, extent, amount, optimization method / its parameters and / or the selection of the data streams included in the optimization.
  • control signals of the user or external systems can also influence and / or directly control, for example, nature, extent, amount, optimization method / its parameters and / or the selection of the data streams included in the optimization.
  • there may be an optional or always-present / used functionality of the optimizers including, for example, various optimizations, optimization scopes, parameters, and / or the inclusion of data streams in the optimization, also dynamically and / or controlled by inputs from the user and / or external systems such as a network management system controls.
  • Such a mechanism may be implemented distributed between two or more optimizers and / or one-way into a compressor and / or even external to the optimizers.
  • the detection mechanism may be passive (eg, only observe packet flows) or active (eg sending out packets to identify optimization possibilities).
  • the mechanism (whether implemented in one or more optimizers or externally) can provide the necessary information from the network (such as through routing, middlebox signaling protocols such as RSVP, NSIS, SOCKS, MIDCOM, etc. and / or other control protocols) and / or one Maintain network management and / or determine it by interaction of two or more optimizers. Hints can be given by initial and / or continuous configuration.
  • Such a mechanism recognizes dynamically, partially or completely independently, which methods can be included in the optimization and / or which additional (possibly combined with the optimization realized) methods should be used. This determination of the compression possibilities can take place in advance of the commissioning of the optimization, before / during the establishment of one or more communication relationships and / or continuously during the active optimization.
  • the mechanism automatically detects errors during operation (for example, from the transmission or non-transmission of optimized data packets themselves, their loss rates and / or their other transmission characteristics and conclusions on changes in the transmission path (new routing, adding a or multiple other nodes, load sharing on multiple routes, etc.) Based on this information, the mechanism can then adjust the header optimization accordingly.
  • Such a mechanism can be active simultaneously in various forms and can also be operated in parallel in addition and / or offset in time to a static configuration.
  • Different forms different dynamic determinations and / or static configurations and / or negotiations
  • the identification of which mechanisms are to be applied to which (parts of) a communication relationship (s) and / or groups of communication relationships and / or the entire data stream can again be done statically or dynamically and / or by the properties of the data packets and / or the protocols used and / or dependent on the network load (present, past, expected in the future) and / or on the observed transmission characteristics (error rate, round trip time, etc.).
  • the technical feasibility for example, encrypted packets can be compressed less well than unencrypted packets
  • the efficiency of the optimization and / or the effort for example, computing power, memory, etc.
  • An optimizer may identify packet types, and in particular name service and data service packets, and prioritize, for example, name service packets over some or all of the data service packets; also selected data service packages can be compared. Naming service packages and other data service packages. An optimizer can also recognize repeated name service and data service packets.
  • an optimizer may then unconditionally or at variance suppress conditions, such conditions may be, for example, that the repeated packet is suppressed only if it is received within a statically configured and / or dynamically determined period of time, if it is received outside of a statically configured and / or dynamically determined period of time if the package is a request, if the package is an answer and / or if it is neither a request nor an answer.
  • the replacement and / or delaying of packages may follow appropriate or other rules and may also be conditional or unconditional.
  • the optimizer may perform the replacement of the packet with a semantically similar, equivalent, and / or equivalent packet, with or without a time delay.
  • the optimization may be made contingent on certain involved endpoints and / or applications and / or the load in the transmission networks and / or on individual / groups of transmission sections and / or available memory and / or the CPU / processor load the components involved. Depending on individual or combinations of such criteria, the optimization can be fully / partially activated, limited and / or completely / partially deactivated or corresponding decisions can be made for methods combined with the optimization.
  • this decision can be made unilaterally by individual components or components of a transmission side or jointly by several involved components or also by "neighboring" system components such as a network management system, whereby it is also possible in many application scenarios Optimizing connections first and stopping the optimization (and vice versa) while the connections / parts of the connections continue.
  • the invention is also suitable for use in point-to-multipoint communication (as is often the case, for example, in a satellite or terrestrial broadcast network) in many application scenarios. The same optimization methods can be used.
  • the (multiple) optimizers and / or (multiple) end systems / applications may have different capabilities and that the transmission paths to these may have different characteristics.
  • An optimizer should then allow the most important, the majority, and / or all optimizers to interpret the optimized data packets. This can be done by selecting optimization methods which are suitable for all intended recipients. And / or an optimizer may send differently optimized data packets / data streams to individual receivers and / or groups of receivers that are specific to the particular transmission path and / or optimization.
  • And / or an optimizer may send additional information (in existing and / or other data and / or control packets) to individual and / or groups of receivers (and / or nodes of the transmission networks) to ensure successful routing and / or reception and / or or to enable evaluation of the received optimized data stream.
  • additional information in existing and / or other data and / or control packets
  • receivers and / or nodes of the transmission networks
  • the same is true in many cases for multipoint-to-multipoint grain communication. This can often also be mapped to multiple point-to-multipoint communication relationships.
  • an optional combination with header compression techniques is also available in order to reduce the transmission volume.
  • this often implicitly reduces, for example in the case of congested networks / transmission sections, the packet loss rates and, in particular in the case of narrowband networks / transmission sections, the RTT.
  • the use of header compression can often (such as in VoIP and RTP) make a significant contribution to reducing the redundancy information increasing bandwidth requirement again, in whole or in part, or even below the original bandwidth requirement.
  • the invention also makes it possible to use the optimization (for example, oil) via virtually arbitrary and / or even changing networks / network paths / transmission sections. Therefore, and among other things, in spite of at least relatively efficient header compression To provide techniques relatively low or only largely determinable requirements for the type of networks / network paths / transmission section used, it is also advantageous to use the invention optionally in combinations with partial header compression method - as described in Section II below - use.
  • This section describes a specific form of optimization. This aspect is in the field of packet-oriented data transmission and the reduction of overhead generated by packet headers. The invention makes it possible to save packet headers both completely and partially in the transmission. The prior art has already been described at the beginning.
  • a header compression as described below is a specific expression of an optimization function, a compressor a possible embodiment of an optimizer.
  • the system arrangements of FIGS. 1 and 2 can be used, wherein the optimizers of FIGS. 1 and 2 are designed as compressors and / or decompressors and the optimization of FIGS. 1 and 2 are the specific characteristics of compression.
  • the system arrangements for the specific expression of the compression reference is made to the above descriptions of FIGS. 1 and 2. The explanations apply analogously for optimization and compression, for optimizers and (de) compressor.
  • header compression and other optimizations may be arbitrarily integrated and / or linked to the same and / or other components.
  • the remarks in Section I on networks and specific network technologies also apply analogously.
  • some data of the parallel or nested optimizations or compressions can be used in whole or in part jointly by both optimizations or compressions , Examples include connection IDs, length fields or (sub) length information, but also many other field types.
  • the compression functions are not limited to information in packet headers of a particular layer. However, individual compressions may specialize in particular packet headers, particular layers, particular protocols, and / or particular applications. Individual compressions can work on individual layers or across layers. The compression may depend on the nature of the surrounding networks or paths through the network and / or on the function and / or presence of particular network elements: for example, a compression function may work differently if the packets on the way are certain other network elements such as routers , NATs and / or firewalls have to happen. Different compressions (and their compressors) can co-ordinate with each other and / or work independently of each other.
  • compressors can also modify the contents in order to make the communication more efficient and / or performant and / or robust, or to enable communication in the first place.
  • a compression function (or compression) may not always lead to a reduction in the volume of data. If, for example, a transmission network is unable to transmit data packets of a specific type (for example, a specific application, a particular transport protocol), then a compression function can rewrite data packets in such a way that a transmission over the network in question nevertheless occurs.
  • Header compression reduces and / or removes header information on a leg between two systems in the network.
  • These two systems may be both the endpoints and other nodes in the network ("in the middle, ie between the endpoints") .
  • You may be neighbors, ie directly through a transmission section of a physical network (e.g.
  • One or more further nodes for example, routers
  • the route between both systems may change over time, the latter case being often (but need not exist or may be in other situations and / or constellations) when the compression executing systems are two endpoints.
  • two IP routers are neighbors if there is no other router between them and they are performing compression on the IP layer.
  • two endpoints with any number of IP routers between them are neighbors on the application layer, as long as no application proxies are used and the compression takes place only on the application layer.
  • two application proxies are neighbors when there are no more proxies between them and the application layer compression occurs.
  • header compression parts or all information of the header (s) to be compressed in one system (the sending one) is removed and / or replaced and reconstructed in the other system (the receiving one).
  • the two systems involved in the compression have common knowledge (context) and / or local knowledge (state information) and / or a common understanding of the compression algorithms to be used.
  • This knowledge and the algorithms can for example, predefined and / or dynamically exchanged and / or dynamically constructed ("learned") and / or adapted in the course of one or more exchanged data packets (one or more communication relationships) and / or independently of one another.
  • the data packets generated by the compressing system must be essentially unaltered in the decompressing system (and, depending on the method used, in some, but often not all, in the correct order). For this purpose, it is necessary that any existing nodes between the two systems are able to forward the compressed data packets and thereby distort any information required for the decompression. This is easiest if the two systems are directly neighbors (i.e., only one "hop" apart) because there are no "interfering" network nodes in between. In this case we are talking about hop-by-hop header compression.
  • end-to-end compression refers to header compression between two endpoints. Mid-to-mid compression is used in all cases where the two systems involved in the compression are neither adjacent nor the two endpoints.
  • the compression method is generally more efficient the more headers from the header hierarchy can be included in the compression. This often allows hop-by-hop techniques (which do the compression for one section of transmission) to achieve much higher compression rates than end-to-end techniques (the latter can not eventually compress the headers used for forwarding through the additional nodes are required). However, a packet often takes paths that do not realize hop-by-hop compression on each section can be, for example, for reasons of performance of the components used or because components for the particular task are not available with installed header compression, if necessary, because perhaps for profit / billing reasons, a compression is not desired.
  • a center-to-center header compression that provides some of the efficiency advantages of hop-by-hop header compression with the less integration overhead of end-to-end header compression, at least on a particularly relevant one Part of the path connects with each other.
  • Such center-to-center header compression will be most efficient in maximizing the area covered in the header hierarchy.
  • One limit to this maximization is that the systems on the path between the compressor and the decompressor will require part of the header hierarchy for their respective functions and, as mentioned above, this "bottom part" can not simply be compressed away.
  • a compressor X-I of a compression C receives a data packet and selectively compresses the headers that are not needed for forwarding the data packets by other systems. It makes sense to include as many of the compressors 'visible' (i.e., present in unencrypted form) headers as possible.
  • header compression need not be limited to including or excluding entire headers. If a system on the path between the compressor and the decompressor requires only certain fields of a header, the other fields of this header are available for integration into the compression method if at least the structure of the header can be retained and / or reconstructed during this compression.
  • the compression of header fields can be done individually for each or for some of the data packets related.
  • data packets may refer to other (previously or later sent) data packets, thereby increasing, for example, the compression efficiency.
  • the selection of the data packets to be compressed and / or the data packets for a contiguous compression may be based on fixed predefined and / or dynamically generated rules and / or on the basis of the packet properties and / or the time sequences of the packets etc.
  • the (sequences of) data packets (n) of different communication relationships can be considered end-to-end independently of each other and / or some (or all) communication relationships can be considered together. Independent and / or collective consideration of compression may involve individual (arbitrary or by their properties) and / or all data packets. Finally, between individual and joint viewing of the data packets of different communication relationships can be switched back and forth over time.
  • the compression can also increase the data volume (per packet) transmitted between the compressor and (decompressor) (possibly only in the short term), for example by additional headers, larger headers, additional packets and / or other supplementary and / or redundant transmission of information. It can also be provided not to use the compression for individual data packets and / or not to reduce the data volume of individual data packets despite compression. The same applies generally / for a limited time to entire communication relationships and / or groups of data packets and / or all data packets. It can be advantageous to transmit additional control packets in one or both directions between the compressor and the decompressor in addition to the (compressed or uncompressed) forwarded data packets.
  • control information including implicit or explicit acknowledgments about received and / or non-received data and / or additional control packets, between compressor and decompressor. It may be advantageous to retransmit some data packets or additional control packets and / or transmit further information as separate packets and / or additional information in other packets from which to recover portions of the information and / or entire packets.
  • Such a compressed data packet (and / or a sequence of data packets) is forwarded by the compressor XI to the (de) compressor X-2 and the compression C in this completely or largely reversed, so that the original data packet wholly or substantially Parts is reconstructed.
  • header compression may also begin, for example, already in the one or more of the involved endpoints.
  • FIGS. 1 and 2 Some exemplary embodiments will be described. It should be noted that the examples described illustrate the aspects of the invention in a particular context as an example. However, the actual aspects of the invention can also be used differently or more generally.
  • IPv4 In the case of an implementation with IPv4, if the systems on the path between compressor and decompressor evaluate the IPv4 destination address, in many cases the IPv4 source address could still participate in the compression. In one of the possible implementations, this could mean that repetitive source addresses can be replaced by a shorter context identifier and, to increase the structure of the header, at least in substantial parts, the remaining bits of the source address field are padded with compressed data from the higher layer compression, for example UDP and RTP.
  • a corresponding context identifier could also be used more generally, be common to multiple fields of one / more protocol headers, not specifically serve to compress the IPv4 source address, etc.
  • the context identifier (or equivalent) would not need to be translated within the bits of the source address field but would often (implicitly) be replaced anywhere within the resulting packets and / or even partially or completely by header information of, for example, underlying protocol layers can be.
  • the IPv4 source address information can also be omitted without substitution. This also makes it possible to fill the bits of the source address field with other data and still obtain the actual structure of the header, at least in its essential parts.
  • n-bit available space in which k bits to reconstruct the data packet to the decompressor, generally k ⁇ n applies.
  • the remaining n-k bits are available for recording (possibly also compressed) control information from other headers or for recording user data.
  • a special case occurs when one or more headers and / or parts of one or more headers can be completely saved by the compression.
  • headers can not or should not simply be replaced by a more or less static context identifier.
  • this could be due to the nature of the header fields to be compressed, but also objectives such as reducing complexity and / or increasing robustness and / or shortening transmission delays, etc. may make sense to omit individual / some header fields (just ) by a context identifier but by additional information bits (more generally: additional information) in the compressed header.
  • header fields could be, for example, sequence numbers contained in headers, which are included in the compressed header in all or some of the packets, for example as a difference value or, for example, to the last bits / bytes.
  • k bits are also always used in the following. Whereby k may just contain a context identifier and / or further information and k may well be different depending on the transmitted packet, for example.
  • IPv4 header checksum In the case of the IPv4 header checksum, this is done by simple recalculation; in the case of other header fields which must meet such consistency requirements, it may also be necessary to include them in compression in the compressor and to restore them from context and compressed fields during decompression. (If none of the systems on the path between compressor and decompressor evaluates the IPv4 header checksum, this, as well as the other fields of all packet headers, is a candidate for participating in header compression.)
  • This description took advantage of IPv4 and the IPv4 source address as an an example; however, the described aspect can be applied to any headers (or portions thereof) such as Ethernet headers and other layers 1 and 2 headers, IPv6 headers and other layer 3 headers, as well as the headers of the layers above them.
  • compression need not be limited to a single header, but may be protocol-spanning.
  • one or more fields of UDP such as the checksum
  • TCP such as the Urgent pointer
  • UDP and TCP port numbers are often used to identify communication relationships for other nodes in the network, so it may be necessary to keep them unchanged.
  • IP source address If this is not required, the entire tuple can be compressed consisting of IP source and / or transport source and / or destination port number and / or transport protocol identifier.
  • IPv4 headers and more or less simple IP routers as the nodes that are passed by the compressed packets, there are a variety of other header fields that would be potential candidates for inclusion in the partial header compression.
  • the fields Protocol, Identification, Fragment Offset and / or the MF bit (for example, if there is no (further) fragmentation between XI and X-2) / TOS, TTL (or a part of it, if, for example, intermediate routers check and reduce only to> 0 - in this case, for example, one could set the lower 4 bits to 1 and, for example, the upper 4 bits into the compression Include), Total Length (for example, if this results from the underlying protocol headers and the intermediary components only evaluate these) and IP Header Length (for example, if ignored or simply implicit of the intermediary components, for example, depending on the IP version number Is accepted).
  • the fields can really be included in the compression results, as described above, among others through the deployment scenarios and the intermediary components.
  • IPv4 destination addresses might be included in the compression in whole or in part. This could be advantageous, for example, if the data is transmitted via a broadcast (or broadcast-like) network in which the data regardless of the destination address anyway (always or usually or for certain packets) all the receiver or the / Achieve decompressors.
  • the use of partial header compression is advantageous, inter alia, if components are used on the transmitting side or receiving side (or in the network itself) which have an IP header (or something entirely / partially in the structure and / or size of a IP headers).
  • an unmodified network card and / or an unmodified network card driver could be used to send packets that require it to receive data packets with an IP header.
  • a similar example could be packets sent to an IP multicast address. For example, if it is known which addresses are being used, or perhaps even known, that only one IP multicast address is being used in a network and / or the receivers or decompressors are recovering the IP multicast addresses using context identifiers , for IP multicast packets, much of the IP (v4) destination address could be included in the compression.
  • IP destination address is to be included in a compression independently of IP multicast, it may be useful and / or necessary to support components used so that they can handle these IP destination addresses filled with other content.
  • IP packets with an IP destination address included in the compression are to be transmitted, for example, via an "Ethernet" (for example according to IEEE 802.3)
  • the Address Resolution Protocol can be supported, for example by using a local ARP cache or an ARP proxy / responding ARP requestor responds to ARP requests with a pseudo-IP destination address created by compression with appropriate ARP responses / values.
  • IPv4 IP-to-Network Interface
  • IPv6 IP-to-Network Interface
  • Protocol headers provide appropriate space for IEEE 802 LAN protocols.
  • transport protocol headers and / or application protocol headers can be compressed.
  • the bits "extracted" on individual layers by compression of the corresponding header fields can be combined and shared across layers, for example saving space for context identifiers, for example because they no longer need to be assigned, managed and / or transmitted on each layer and / or These can even be derived in whole / in part from fields underneath protocol headers.
  • this method can be used unidirectionally and / or bidirectionally.
  • the two directions of transmission can be operated independently or independently of each other.
  • the independent and / or dependent operation may relate to individual data packets, individual communication relationships, and / or groups of communication relationships, and that reference or independent and / or dependent operation may change over time once and / or repeatedly.
  • the compressor can ensure that the decompressor is capable of doing so by appropriate selection of algorithms (such as the use of DEFLATE) and / or additionally transmitted control information is to reconstruct one or more Compressor compressed (s) and forwarded (s) data packets in whole or in substantial part.
  • An alternative usage arises when, instead of partial header compression, maintaining sub-headers or (sub-) header structures (for example, to support intermediate network components that evaluate these headers) headers of another (for example, those network components supported) protocol.
  • sub-headers or (sub-) header structures for example, to support intermediate network components that evaluate these headers
  • the significantly larger IPv6 headers could be compressed and the compressed information provided with inserted IPv4 headers could be transmitted.
  • parts of the contents of the IPv4 header can then optionally be compressed and / or replaced for transmission of other information and / or user data.
  • a combination with a compression of the transmitted user data can also be carried out.
  • both lossless and lossy compression methods are available (such as reducing image resolution, image quality, or filtering out optional additional information, etc.).
  • Protocol enhancement techniques exist for a variety of protocols and objectives and / or networks. Very often used are, for example, protocol enhancement methods for TCP and / or HTTP. These protocols are either replaced for example for certain transmission sections by other protocols and / or modified protocol parameters in the terminals and / or the exchanged data packets. There are many potential targets for such protocol enhancement methods. For example, it may be the task of a TCP protocol enhancement to enable a high transmission bandwidth even with high transmission delays and / or high packet loss rates and / or to keep the protocol overhead, for example caused by control packets, low. Similar goals often have HTTP protocol enhancements.
  • the page load times that arise when using a standard Internet browser should also be reduced for networks with high transmission delays and / or high packet loss rates.
  • Ways to do this include, for example, intermediary proxies and / or proactively sending objects contained on web pages or even behind links.
  • HTTP is also an example of how it can be very useful to combine the various methods mentioned here (but HTTP is only representative of many protocols that apply to this).
  • HTTP uses TCP and IP, so it uses a relatively large protocol hierarchy, with typical header compression and partial header compression techniques; the HTTP headers themselves are often largely text-based / -coded.
  • typical (even partial) header compression methods could be used.
  • User data with a conventional compression method such as DE-FLATE
  • HTTP is a protocol for which enhancement procedures are recommended in many networks and for which encryption is often useful.
  • Each of these mentioned types of methods can be inserted, for example, for HTTP in all the arrangements mentioned in FIGS. 1 and 2.
  • the individual types of process could be implemented independently, which among other things increases the flexibility and / or interchangeability.
  • implementation in combined system components and / or devices potentially reduces the overall complexity and / or configuration effort.
  • the individual types of methods could be implemented and used in a simplified manner in a completely / partially integrated realization and / or in a realization in which at least individual control information is exchanged between the components of the method types.
  • the sharing of status information and / or context identifiers across methods can, in some cases, reduce and / or more efficiently use the amount of control information to be exchanged over the network.
  • the time span for establishing new connections and / or exchanging data can also be reduced.
  • Such a mechanism can be distributed between two or more com- be realized pressors and / or one-sided in a compressor.
  • the detection mechanism may be passive (for example, only observe packet flows) or active (for example sending out packets for determining compression possibilities).
  • the mechanism (whether implemented in one or more compressors) can provide the necessary information from the network (such as routing, middle-box signaling protocols such as RSVP, NSIS, SOCKS, MIDCOM, etc. and / or other control protocols) and / or one Maintain network management and / or determine them by interaction of two or more compressors. Hints can be given by initial and / or continuous configuration.
  • Such a mechanism dynamically recognizes partially or completely independently which headers or header fields can be included in a particular compression. This determination of the compression possibilities can take place in advance of the startup of the compression, before / during the establishment of one or more communication relationships and / or continuously during the active compression.
  • the mechanism automatically detects errors during operation (for example, from the transmission or non-transmission of compressed data packets themselves, their loss rates and / or their other transmission characteristics and conclusions about changes in the transmission path (new routing, Add one or more other nodes, load sharing on multiple routes, etc.) Based on this information, the mechanism may then adjust the header compression accordingly.
  • Such a mechanism can be active simultaneously in various forms and can also be operated in parallel in addition and / or offset in time to a static configuration.
  • Different forms different dynamic determinations and / or static configurations and / or negotiations
  • the identification of which mechanisms should be applied to which (parts of) a communication relationship (s) can in turn be done statically or dynamically and / or by the properties the data packets and / or the protocols used and / or the network load (currently, past, future expected) and / or dependent on the observed transmission characteristics (error rate, orbital period, etc.).
  • provision may be made for actively exchanging, for example, test packages according to a previously (statically or dynamically) agreed scheme in addition to and / or instead of the configuration as to which fields / subfields may be included in the compression.
  • a previously (statically or dynamically) agreed scheme in addition to and / or instead of the configuration as to which fields / subfields may be included in the compression.
  • the basis for decision making can be the technical feasibility (for example, encrypted packets can be compressed less well than unencrypted packets) and / or the efficiency of the compression and / or the effort (for example, computing power, memory, etc.).
  • the compression may be made contingent on certain involved endpoints and / or applications and / or the load in the transmission networks and / or on individual / groups of transmission sections and / or available memory and / or the CPU / processor load of the components involved. Depending on individual or combinations of such criteria, the compression may be fully / partially activated, limited and / or totally / partially disabled. In both static and dynamic compression decisions, this decision can be made unidirectionally by individual components or components of a transmission side, or shared by multiple involved components or even "adjacent" system components such as a network management system to compress and terminate the compression (and vice versa) during the continuity of the connections / parts of the connections.
  • an application or endpoint could already generate (header) compressed data packets.
  • these could be compressed RTP headers, whereas the underlying UDP and IP headers could have remained uncompressed according to [9].
  • internal compression can be done as supplemental and / or replacement compression.
  • the internal compression may be complementary by compressing further headers and / or header fields, which may perhaps be saved on the relevant transmission network (N-X2 in the case of Fig. Ie) in the transmission, in a nested compression step.
  • Compression may be a replacement if decompression is performed before recompression, for example, because multiple header or header fields can then be compressed more efficiently together.
  • Supplementary and substitute compression may be active simultaneously and / or at different times.
  • Data packets not recognized by the external compression and / or uncompressed data packets can be detected by the internal compression and vice versa.
  • the detection of compressed data packets and the recognition of the header information to be compressed can in turn be statically configured and / or dynamically determined and / or obtained through interactions with the components involved in the compression or external.
  • the individual compressions can-as described above-relate to individual packets and / or packet sequences and / or all packets of one and / or a group of communication relationships. They can also be applied differently in chronological order.
  • "inner" compression may use the context specifiers of "outer” compression, for example, to further reduce the volume of data and / or reduce the complexity and / or control of internal compression.
  • internal compression can detect CRTP headers in the incoming data packets, and then most or all partially or completely compress the UDP and IP headers retained in the outer compression (eg, by using internal compression) Uses context identifier / outer compression flow ID and includes all or part of the information to be compressed in the UDP, IP header in the context referenced by the context identifiers). Such nesting may continue recursively or may continue sequentially similar to FIG. Id).
  • internal compression may also compress fewer headers and / or header fields (for example, if intermediate components are used in an internal transmission network that allow for compression of particular headers and / or header fields).
  • the compression of protocol headers need not be limited to a distance between two compressors, but may include more than two compressors.
  • two types of communication are possible, which can be (but do not have to) be defined by the underlying network: a) unidirectionally from exactly one node S to many nodes Rl, ..., Rn (n> 1) without the nodes Rl, ..., Rn have the possibility to also send packets to the node S; b) bidirectional, so that the transmission of packets from the nodes Rl, ..., Rn to the node S is possible.
  • the packets from the nodes Rl, ..., Rn to the node S can only be control packets and / or also compressed data packets.
  • each node Ri which also sends (compressed) data packets, then acts equally as a sending node S.
  • the present invention is also suitable for the use of header compression in point-to-multipoint communication (such as exists in a satellite or terrestrial broadcast network).
  • the same compression techniques can be used.
  • the decompressors may have different capabilities in (or "behind") the nodes R1, ..., Rn, and that the transmission paths to the different decompressors may have different characteristics , the majority and / or all decompressors allow a decompression of the compressed data packets. This can be done by the compressor selecting methods and header / header fields for compression that are appropriate for all intended decompressors. And / or the compressor may send differently compressed data packets to individual decompressors and / or groups of decompressors that are specific to the particular transmission path and / or decompressor.
  • And / or the compressor may send additional information (in existing and / or other data and / or control packets) to individual and / or groups of decompressors (and / or nodes to the transmission networks) to allow successful forwarding and decompression of the data packets ,
  • decompressors Since data packets can be lost in IP networks (eg due to bit errors or overload), it is possible that one, several or all decompressors lack information for the correct decompression of a data packet. In such a case, it is envisaged that a decompressor will notify the compressor (so bidirectional communication is possible directly through the same or indirectly via partially or completely different transmission networks) that information is missing. The compressor may decide if and when to transmit further information in existing and / or additional data and / or control packets to reconstruct the missing information (context).
  • This decision may depend on the communication relationship (type of data, duration, etc.) and / or on the decompressor (s) in question and / or the number of decompressors that need this information and / or other configuration information and / or specifications and / or the general and / or current transmission characteristics of the network.
  • a compressor may also transmit at regular or irregular intervals redundant information for the eventual reconstruction of the context, for example by using FEC, the bit rate for the redundant information depending on the network, assumed or real network load, assumed or observed bit and or packet error rate or by configuration or by signaling a network management system over time.
  • One or more or all of the decompressors may be able to provide feedback on missing information and / or context and / or local knowledge. stand) to the compressor to send. In such a case, it may be advantageous that not all possible decompressors do so, for example, to avoid overloading the compressor or the rearward transmission path with too much information.
  • one or more decompressors may be selected as designated decompressors of a group or of all decompressors; only these designated decompressors provide feedback on behalf of the respective group or all recipients. Not all decompressors must be represented by designated decompressors.
  • the selection of the designated decompressors may be static and / or dynamically negotiated (for example, the compressor may determine the decompressors) and / or determined based on the transfer characteristics to the decompressors and / or by the functional characteristics (characteristics) of the decompressors and / or or the characteristics relating to the compressible headers and / or header fields on the respective transmission path; in all these cases, a random component (true random numbers, pseudo-random numbers, cryptographically-calculated functions) can also be used to further constrain the actual selection.
  • Various decompressors can also send specific parts of the feedback information useful for the compressor based on one or more of these criteria.
  • the selection can be made permanently and / or up to an explicit reconfiguration and / or vary in time.
  • the selection may apply to all packets transmitted by the compressor and / or to the packets of individual communication relationships and / or groups of communication relationships and / or to packets determined by their type and / or other characteristics.
  • Such a method can be used, for example, via a terrestrial radio network (such as DVB-T, DVB-H, WLAN, WiMAX, mobile radio such as GSM, UMTS, HS (D) PA, LTE, UWB, OFDM, etc.). It can also be used over any satellite networks, radio networks in space, etc. It can also be used in wired broadcast networks (such as cable networks, DSL, fiber-to-the-home, Ethernet, etc.). These networks can be used individually or in any combination for broadcasting. As previously described, all compression may be accompanied by complete and / or partial encryption of the information.
  • the context identifiers and context information used for identifying (individual) communication relationships can also be produced cryptographically, so that, for example, an intermediary unauthorized recipient does not even discover which packets are to be assigned, for example, to a communication relationship.
  • Cryptographic information can also be used to authenticate / authorize or prioritize feedback information.

Abstract

The invention relates to a technology for optimizing a data transmission between communication terminals in a network having communication terminals.

Description

Verfahren zum Optimieren einer paketorientierten Datenübertragung und Computerprogramm-Produkt Method for optimizing a packet-oriented data transmission and computer program product
Die Erfindung liegt auf dem Gebiet der paketorientierten Datenübertragung.The invention is in the field of packet-oriented data transmission.
Hintergrund der ErfindungBackground of the invention
Betrachtet wird eine Kommunikationsbeziehung zwischen zwei oder mehr Instanzen, die als Quelle und / oder Senke von Nutzdaten im Rahmen dieser Kommunikationsbeziehung fungieren. Jeweils eine Quelle überträgt zu einer oder mehreren Senken Nutzdaten. Nutzdaten sind beliebige Informationseinheiten. Quelle und / oder Senke können darüber hinaus Steuerinformationen beliebig untereinander übertragen. Die übertragenen Nutzdaten stellen - analog zur Nutzlast eines Fahrzeugs - die Informationen dar, zu deren Übermittlung die Instanzen überhaupt miteinander kommunizieren. Die Steuerinformationen stellen je nach verwendetem Protokoll unterschiedlich ausgeprägte Informationen dar, die zur korrekten und / oder erfolgreichen und / oder effizienten und / oder anderen Anforderungen genügenden Abwicklung des Protokolls (und damit der Übertragung der Nutzdaten) erforderlich sind. Das Verhältnis von notwendigen Steuerinformationen zur eigentlichen Nutzlast bezeichnet man als Overhead. Overhead entsteht auch, wenn die Nutzdaten oder Steuerinformationen - direkt oder indirekt - mehrfach übertragen werden, wie es bei Sendewiederholungen (ARQ), Vor- wärtsfehlerkorrektur (FEC), Network Coding oder ähnlichen Verfahren geschehen kann.Consider a communication relationship between two or more instances that act as the source and / or sink of payload in this communication relationship. One source each transmits useful data to one or more sinks. User data is any information unit. In addition, source and / or sink can arbitrarily transmit control information with each other. The transmitted user data represent - analogous to the payload of a vehicle - the information that the instances communicate with each other at all. Depending on the protocol used, the control information represents differently pronounced information which is necessary for the protocol to be processed correctly (and / or successfully and / or efficiently and / or for other requirements) and thus for the transmission of the user data. The ratio of necessary control information to the actual payload is called overhead. Overhead also occurs when the payload or control information is transmitted multiple times, directly or indirectly, such as retransmissions (ARQ), forward error correction (FEC), network coding, or similar methods.
Nutzdaten können je nach Anwendung und / oder ausgeführter Funktion nur in eine (unidirek- tional) oder mehrere Richtungen (bidirektional) übertragen werden. Gleiches gilt für Steuerinformationen. Während die meisten Netze grundsätzlich die Übertragung in beide Richtungen zulassen, gibt es Netztechnologien (etwa DVB-S/C/T), die - unabhängig von den Anwendungen - nur eine unidirektionale Übertragung gestatten und / oder aus Kosten- oder anderen Gründen eine unidirektionale Übertragung sinnvoll machen und / oder bei denen die Rückrichtung separat über die gleichen und / oder andere Übertragungsverfahren und / oder Netze realisiert wird; diese Einschränkungen und / oder Rahmenbedingungen stammen in der Regel aus dem Systemdesign. In einigen Fällen können sowohl Steuer- als auch Nutzdaten nur in eine Richtung übermittelt werden bzw. es werden für die Rückrichtung andere Übertragungsverfahren und / oder Netze genutzt, wobei auch Nutzdaten und / oder Steuerinformatio- nen bzw. Teilmengen der Nutzdaten und / oder Steuerinformationen über unterschiedliche Netze ausgetauscht werden können.User data can only be transmitted in one (unidirectional) or several directions (bidirectional), depending on the application and / or the function performed. The same applies to tax information. While most networks generally allow two-way transmission, there are network technologies (such as DVB-S / C / T) that allow unidirectional transmission regardless of the application and / or unidirectional transmission for cost or other reasons make sense and / or where the return direction is realized separately via the same and / or other transmission methods and / or networks; these limitations and / or frameworks usually come from the system design. In some cases, both control and payload data may be transmitted in one direction only, or other transmission methods and / or networks may be used for the return, including payload data and / or control information. NEN or subsets of the user data and / or control information can be exchanged over different networks.
Daten werden heute meist nicht mehr analog und auch nicht nur als Bit-Folge oder Byte- Folge über Datenleitungen übertragen, sondern für die Übertragung und Bearbeitung in einzelne Datenpakete aufgeteilt - dies wird oftmals auch als Paket-orientierte Datenübertragung bezeichnet. Ein Datenpaket enthält Informationen (auch als Steuerinformationen bezeichnet), die zur Abwicklung des Übertragungsprotokolls erforderlich sind oder sein können und optional Nutzdaten.Today, data is usually no longer transmitted analogously and not only as a bit sequence or byte sequence via data lines, but also divided into individual data packets for transmission and processing - this is often referred to as packet-oriented data transmission. A data packet contains information (also referred to as control information) which is or may be required for processing the transmission protocol and optionally user data.
Ein Datenpaket enthält dabei beispielsweise einen oder mehreren Paket-Header bzw. Protokoll-Header und / oder Paket- bzw. Protokoll-Trailer. Alle diese werden im Folgenden einfach nur als „Header" bezeichnet. Diese Header enthalten die Steuerinformationen, was zum Beispiel Adressierungsinformationen sein können. Den Headern folgen teilweise die eigentlichen Nutzdaten (Sprachdaten, Textteilen, Teilen von Dateien, usw.). Aber auch Steuerdaten höherer Protokoll-Schichten - ebenfalls oftmals inklusive eigener Header - werden aus Sicht der darunterliegenden Protokoll-Schichten oft als Nutzdaten bezeichnet. Um innerhalb eines Headers die Steuerinformationen identifizieren und/der interpretieren zu können, besteht ein Header aus einem bzw. oftmals mehreren „Feldern", in denen die Steuerinformationen enthalten sind. Diese Anordnung von Feldern innerhalb eines Headers wird im folgenden auch als Header-Struktur eines Headers bezeichnet. Sie dient unter anderem zum Identifizieren und / oder Interpretieren der einzelnen Felder und somit auch der Steuerinformationen innerhalb eines Headers.A data packet contains, for example, one or more packet headers or protocol headers and / or packet or protocol trailers. All these are referred to simply as "headers." These headers contain the control information, which may be addressing information, for example, and the headers are partly followed by the actual payload (voice data, parts of text, parts of files, etc.), but also higher-level control data Protocol layers - also often including their own headers - are often referred to as payload from the perspective of the underlying protocol layers.To identify and / or interpret the control information within a header, a header consists of one or often several "fields", where the tax information is contained. This arrangement of fields within a header is also referred to below as the header structure of a header. Among other things, it serves to identify and / or interpret the individual fields and thus also the control information within a header.
Es ergibt sich so oft ein Modell mehrerer Protokoll-Schichten, die aufeinander aufsetzen: EinThis often results in a model of several protocol layers that build on each other: a
Protokoll-Stack bzw. eine Protokoll-Hierarchie, wie sie unter anderem inProtocol stack or a protocol hierarchy, as described, inter alia, in
[1] International Standard ISO/IEC 7498-1, „Information technology - Open Systems[1] International Standard ISO / IEC 7498-1, "Information technology - Open Systems
Interconnection - Basic Reference Model: The Basic Model, (Second edition 1994-11-Interconnection - Basic Reference Model: The Basic Model, (Second edition 1994-11-
15 Corrected and reprinted 1996-06-15) beschrieben wird. Das heutige Internet basiert auf einer Paket-orientierten Datenübertragung. Auch hier werden Protokolle eingesetzt und es entsteht in der Regel eine Hierarchie von Protokollen (ähnlich aber nicht identisch zu der in [1] beschriebenen).15 Corrected and reprinted 1996-06-15). Today's Internet is based on packet-oriented data transmission. Again, protocols are used and a hierarchy of protocols is usually created (similar but not identical to that described in [1]).
Die Grundlagen einer ursprünglichen Form des Internet Protokolls IP sowie einige möglicheThe basics of an original form of Internet Protocol IP as well as some possible ones
Protokoll-Hierarchien („Protocol Relationships") werden unter anderem inProtocol hierarchies ("Protocol Relationships") are used inter alia in
[2] IETF RFC 0791, Internet Protocol DARPA Internet Program, Protocol Specification[2] IETF RFC 0791, Internet Protocol DARPA Internet Program, Protocol Specification
September 1981 beschrieben. Wobei zu diesem IP Protokoll (Version 4 / IPv4) eine Vielzahl an weiteren / verwandten Standards und verwandter Literatur existiert. Inzwischen ist auch die Standardisierung und Einführung neuer Versionen des IP Protokolls recht weit fortgeschritten. Grundlagen der Version 6 des IP Protokolls (IPv6) werden unter anderem in [3] IETF RFC 2460, Internet Protocol, Version 6 (IPv6), Specification, S. Deering, R.September 1981 described. Whereby there are a lot of other / related standards and related literature for this IP protocol (version 4 / IPv4). Meanwhile, the standardization and introduction of new versions of the IP protocol is quite advanced. The fundamentals of version 6 of the IP protocol (IPv6) are described, inter alia, in [3] IETF RFC 2460, Internet Protocol, Version 6 (IPv6), Specification, S. Deering, R.
Hinden - Dezember 1998 beschrieben.Hinden - December 1998 described.
Innerhalb eines Protokoll-Stacks können verschiedene Protokoll-Schichten unterschieden werden. Die Protokolle der einzelnen Protokoll-Schichten setzen dabei oftmals aufeinander auf, sie können aber auch nebeneinander parallel in einzelnen Protokoll-Schichten oder Teil- Protokoll-Stacks eigenständige oder auch miteinander verbundene Funktionen ausführen. Je nach konkretem Einsatzfall bzw. dem gewählten Modell von Protokoll-Hierarchien können auch mehrere Protokolle nebenläufig oder auch aufeinander aufsetzend zu einer Protokoll- Schicht gezählt werden.Within a protocol stack different protocol layers can be distinguished. The protocols of the individual protocol layers are often stacked on top of each other, but they can also perform independent or interconnected functions parallel to each other in individual protocol layers or partial protocol stacks. Depending on the specific application or the selected model of protocol hierarchies, several protocols can also be counted concurrently or also superimposed to form a protocol layer.
Eine mögliche Nutzersicht der Datenübertragung ist die Realisierung von Datendiensten. Hierzu zählen unter anderem Telefonie, Videotelefonie und (Video )konferenzen über das Internet (im folgenden zusammengefasst unter dem Begriff „VoIP"), Audio-/Video-Streaming, der Zugriff auf Webseiten („Websurfen"), Dateitransfers, Email, Chat, Peer-to-Peer-Anwen- dungen usw. Im Folgenden werden - ohne Beschränkung der Allgemeinheit - oftmals VoIP und Websurfen als Beispiele für Datendienste verwendet. - A -One possible user view of data transmission is the realization of data services. These include, but are not limited to, telephony, video calling and (video) conferencing over the Internet (collectively referred to as "VoIP"), audio / video streaming, web site access ("web surfing"), file transfers, email, chat, Peer-to-peer applications, etc. In the following, VoIP and Web surfing are often used as examples of data services without loss of generality. - A -
1. Beispiel: WebsurfenExample 1: Websurfing
Im Folgenden wird oftmals das Websurfen (mit den Protokollen HTTP und HTTPS) im heutigen Internet als Beispielszenario bzw. Beispielanwendung genutzt. Zugleich dient es als Beispiel für Protokoll-Hierarchien. Die Auswahl dieser Beispiele geschieht unter anderen, da sich bestehende Literatur dieses Themenbereiches oftmals direkt auf den Einsatzfall Websurfen bezieht - zugleich eignen sich diese Beispielszenarien auch gut zur Erläuterung sowohl der Problemstellungen als auch der Erfindung; dennoch stehen diese Beispielszenarien jedoch nur stellvertretend für eine Vielzahl an möglichen anderen Einsatzfeldern. Ebenso wird im Folgenden oft das Internet-Protokoll (IP) - ein Protokoll der Vermittlungsschicht (Schicht 3 des OSI-Modells [I]) - als Beispiel genutzt. Die vorliegende Erfindung ist jedoch auch unabhängig von der Nutzung des Internet-Protokolls.In the following, web surfing (with the HTTP and HTTPS protocols) is often used in today's Internet as an example scenario or example application. At the same time it serves as an example for protocol hierarchies. The selection of these examples occurs among others, since existing literature of this subject area often directly refers to the case of application Websurfing - at the same time, these example scenarios are also well suited to explaining both the problems and the invention; Nevertheless, these example scenarios are only representative of a multitude of possible other fields of application. Likewise, the Internet Protocol (IP) - a protocol of the network layer (layer 3 of the OSI model [I]) - is often used in the following. However, the present invention is also independent of the use of the Internet Protocol.
Websurfen (bzw. auch der Webzugriff allgemein) erfolgt im heutigen Internet zu einem großen Teil mit Hilfe der Protokolle HTTP („Hypertext Transfer Protocol") und HTTPS („HTTP Secure"). Grundlagen von HTTP und HTTPS werden unter anderem in [4] IETF RFC 2616, Hypertext Transfer Protocol - HTTP/1.1 , R. Fielding, J. Gettys,Web surfing (or web access in general) takes place in today's Internet to a large extent using the protocols HTTP ("Hypertext Transfer Protocol") and HTTPS ("HTTP Secure"). The basics of HTTP and HTTPS are described, inter alia, in [4] IETF RFC 2616, Hypertext Transfer Protocol - HTTP / 1.1, R. Fielding, J. Gettys,
Juni 1999June 1999
[5] IETF RFC 2818, HTTP Over TLS, E. Rescorla - May 2000 beschrieben.[5] IETF RFC 2818, HTTP Over TLS, E. Rescorla - May 2000.
Beim Einsatz von HTTP, HTTPS im heutigen Internet ergibt sich ebenfalls oft eine bereits recht umfangreiche Protokoll-Hierarchie:When using HTTP, HTTPS in today's Internet, there is often an already quite extensive protocol hierarchy:
HTTP, HTTPS selbst werden oft als Anwendungsprotokolle klassifiziert. Eingesetzt wird beispielsweise HTTP dabei in der Regel oberhalb des Protokolls TCP (Transmission Control Protocol [RFC 793]), das der Transport-Schicht zugeordnet wird. TCP wiederum wird in der Regel oberhalb von IP - einem Protokoll der Netzwerkschicht (ISO/OSI Schicht 3 gemäß [I]) - eingesetzt. Unterhalb von IP folgen ebenfalls oft weitere Protokolle beispielsweise in Abhängigkeit des genutzten Übertragungsmediums (wie zum Beispiel ein lokales Netz mit „Ethernet" IEEE 802.3, das den ISO/OSI Protokoll-Schichten 1 und 2 gemäß [1] entsprechen würde). 2. Beispiel: VoIPHTTP, HTTPS themselves are often classified as application protocols. For example, HTTP is usually used above the TCP protocol (Transmission Control Protocol [RFC 793]), which is assigned to the transport layer. TCP, in turn, is typically used above IP - a network layer protocol (ISO / OSI layer 3 according to [I]). Below IP, other protocols often follow, for example, depending on the transmission medium used (such as a local area network with "Ethernet" IEEE 802.3, which would conform to ISO / OSI protocol layers 1 and 2 according to [1]). 2nd example: VoIP
Im Folgenden wird ebenfalls die Übertragung von Sprachdaten („Voice over IP", „VoIP") im heutigen Internet als Beispiel für eine Protokoll-Hierarchie genutzt. Dies geschieht unter anderen, da sich bestehende Literatur zur Header-Komprimierung oftmals direkt auf den Einsatzfall VoIP bezieht. Ebenso wird im Folgenden oft das Internet-Protokoll (IP) - ein Protokoll der Vermittlungsschicht (Schicht 3 des OSI-Modells [I]) - als Beispiel genutzt. Die vorliegende Erfindung ist jedoch auch unabhängig von dem Anwendungsfall VoIP, auch unabhängig von der Nutzung des Internet-Protokolls und auch für Protokolle anderer Schichten als der Vermittlungsschicht einsetzbar.In the following, the transmission of voice data ("Voice over IP", "VoIP") is also used in today's Internet as an example of a protocol hierarchy. This happens, among other things, since existing literature on header compression often refers directly to the use of VoIP. Likewise, the Internet Protocol (IP) - a protocol of the network layer (layer 3 of the OSI model [I]) - is often used in the following. However, the present invention is also independent of the application VoIP, also independent of the use of the Internet Protocol and also for protocols other layers than the network layer can be used.
Im heutigen Internet wird VoIP basierte Datenübertragung oftmals unter anderem unter Einsatz des Protokolls RTP („Realtime Transport Protocol") durchgeführt. RTP wird unter anderem inIn today's Internet, VoIP-based data transmission is often performed using, among other things, the RTP protocol ("Realtime Transport Protocol")
[6] IETF RFC 3550, RTP: A Transport Protocol for Real-Time Applications, H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson - Juli 2003 beschrieben.[6] IETF RFC 3550, RTP: A Transport Protocol for Real-Time Applications, H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson - July 2003.
Beim Einsatz von RTP im heutigen Internet ergibt sich oft eine bereits recht umfangreiche Protokoll-Hierarchie:The use of RTP in today's Internet often results in an already quite extensive protocol hierarchy:
RTP selbst ist ein Protokoll der Transport-Schicht (ISO/OSI Schicht 4 gemäß [I]). Eingesetzt wird RTP dabei in der Regel oberhalb des Protokolls UDP (User Datagram Protocol [RFC 768]), das ebenfalls der Transport-Schicht zugeordnet wird. UDP wiederum wird in der Regel oberhalb von IP - einem Protokoll der Netzwerkschicht (ISO/OSI Schicht 3 gemäß [I]) - eingesetzt. Unterhalb von IP folgen oft weitere Protokolle beispielsweise in Abhängigkeit des genutzten Übertragungsmediums (wie zum Beispiel ein lokales Netz mit „Ethernet" IEEE 802.3, das den ISO/OSI Protokoll-Schichten 1 und 2 gemäß [1] entsprechen würde).RTP itself is a protocol of the transport layer (ISO / OSI layer 4 according to [I]). As a rule, RTP is used above the UDP protocol (User Datagram Protocol [RFC 768]), which is also assigned to the transport layer. UDP, on the other hand, is usually used above IP - a protocol of the network layer (ISO / OSI layer 3 according to [I]). Below IP, other protocols often follow, for example, depending on the transmission medium used (such as a local area network with "Ethernet" IEEE 802.3, which would conform to ISO / OSI protocol layers 1 and 2 according to [1]).
Datendienste bedürfen zu ihrer Realisierung oft zusätzlicher Verzeichnisdienste oder Namensdienste. Ein Protokoll, das in diesem Zusammenhang eingesetzt werden kann, ist das DNS-Protokoll. Benutzer können sich IP -Adressen schlecht merken, deswegen benutzen Protokolle wie HTTP in ihren URIs (Uniform Resource Identifier - Bezeichner, gegen deren Nennung Web- Server Datenobjekte liefern und die bei VoIP zur einfachen Identifikation von Nutzern dienen, vergleichbar zu E-Mail-Adressen oder Telefonnummern) im Allgemeinen so genannte Domain-Namen, lesbare Namen, die erst noch durch einen Namensdienst durch eine sogenannte Namensauflösung in IP -Adressen übersetzt werden müssen. Im folgenden werden derartige Namensdienste detaillierter am Beispiel von DNS erklärt, einem allgemein bekannten und im Internet verbreiteten Namensdienst. Da die Funktionsweise und der hierarchische Aufbau von DNS bekannt sind (siehe Referenz [7]), wird hier nur abstrahierend von einem (DNS-)Server bzw. Namensdienstserver der n-ten Stufe (in der Hierarchie) gesprochen. Dem Fachmann sind weitere Verzeichnisdienste und auch weitere Namensdienste sowie jeweils deren Ausgestaltung und Funktionsweise bekannt, von denen unten einige genannt werden, deren Arbeitsweise aber nicht im Detail erläutert werden muss. Zum Zwecke dieser Namensauflösung wird oft das DNS-Protokoll eingesetzt, das unter anderem in [7] IETF RFC 1035, Domain Names - Implementation and Specification, P. MockapetrisData services often require additional directory services or name services for their implementation. One protocol that can be used in this context is the DNS protocol. Users can not remember IP addresses, which is why protocols such as HTTP use URIs (uniform resource identifiers), against which Web servers provide data objects and which, in the case of VoIP, make it easy to identify users, comparable to e-mail addresses or telephone numbers) generally so-called domain names, readable names, which must first be translated by a name service by a so-called name resolution in IP addresses. In the following, such naming services will be explained in greater detail by the example of DNS, a well-known name service widely used on the Internet. Since the functioning and the hierarchical structure of DNS are known (see reference [7]), only an abstract (DNS) server or name service server of the nth level (in the hierarchy) is spoken here. The person skilled in the art is aware of further directory services and also of other name services, as well as their design and mode of operation, some of which are mentioned below, but whose mode of operation need not be explained in detail. For the purpose of this name resolution, the DNS protocol is often used, which is described in [7] IETF RFC 1035, Domain Names - Implementation and Specification, P. Mockapetris
- November 1987 beschrieben ist.- November 1987 is described.
Für den als Beispiel hier beschriebenen DNS Namensdienst nutzen beispielsweise Webbrow- ser sogenannte Resolver, die das DNS-Protokoll benutzen, um Anfragen an einen oder mehrere direkt konfigurierte und/der dem Endsystem des Webbrowsers zugeordnete DNS-Server zu richten. Diese DNS-Server der ersten Stufe richten wiederum oft Anfragen an weitere DNS- . Server. Die benötigte Antwort kommt nicht notwendigerweise bei der ersten solchen Anfrage zustande; DNS-Server der Folgestufen können Anfragen auch unvollständig beantworten und dabei Verweise auf weitere DNS-Server liefern. Der DNS-Server der ersten Stufe (oder auch der Folgestufen) stellt weitere Anfragen an diese, bis eine Antwort von einem DNS-Server vorliegt, der die benötigte Antwort kennt. Antworten können, wie im Fall des DNS- Protokolls, mit einer Lebensdauer (Time To Live, TTL) versehen sein, beispielsweise eine Ganzzahl, die angibt, wie lange (in Sekunden) diese Antwort noch als gültig gelten soll. Auf dieser Grundlage implementieren DNS-Resolver und / oder Server sogenannte Pufferspeicher oder Caches, aus denen eine wiederholte Anfrage nach derselben Übersetzung ohne Konsultation der Folgestufen beantwortet werden kann, solange die Lebensdauer der gespeicherten Antwort dies zulässt. Das DNS-Protokoll kann auf das Transport-Protokoll UDP aufgesetzt werden oder auch auf das Transport-Protokoll TCP, beide Protokolle setzen wiederum in der Regel wie oben beschrieben auf IP und weitere darunterliegende Protokolle auf.For example, for the DNS naming service described here, web browsers use so-called resolvers that use the DNS protocol to direct requests to one or more directly configured and / or associated DNS servers to the end system of the web browser. In turn, these first-tier DNS servers often direct requests to other DNS servers. Server. The required answer does not necessarily come about at the first such request; DNS servers of the following levels can also answer incomplete queries and thereby provide references to other DNS servers. The first-level (or later-stage) DNS server makes further requests to it until it receives a response from a DNS server that knows the answer it needs. Responses, as in the case of the DNS protocol, may be time-to-live (TTL), such as an integer indicating how long (in seconds) that response should still be valid. On this basis, DNS resolvers and / or servers implement so-called buffer memories or caches from which a repeated request for the same translation can be answered without consulting the subsequent stages as long as the lifetime of the stored Answer allows this. The DNS protocol can be set up on the transport protocol UDP or also on the transport protocol TCP, both protocols usually set up on IP and other underlying protocols as described above.
Weitere Protokolle aus dem Bereich der Verzeichnisdienste und zum Teil auch der spezielleren Namensdienste sind z. B. Microsoft WINS, Sun NIS, ARP, und der Standard LDAP. Auch diese weiteren Protokolle fuhren Namensauflösungen durch (zum Beispiel von einem Namen in einen anderen und / oder von einer Adresse in eine andere und / oder von einem Namen in eine Adresse und / oder von einer Adresse in einen Namen).Further protocols from the range of the directory services and partly also the more specialized name services are eg. Microsoft WINS, Sun NIS, ARP, and standard LDAP. These other protocols also carry out name resolutions (for example, from one name to another and / or from one address to another and / or from a name to an address and / or from an address to a name).
Die einzelnen Protokolle und / oder deren spezifische Implementierungen/Installationen können dabei unterschiedlich ausgestaltet sein als DNS: sie müssen nicht zwingend über einen Namensdienstserver kommunizieren, es können keine, eine oder mehrere Stufen von Namensdienstservern ausgebildet sein.The individual protocols and / or their specific implementations / installations can be configured differently than DNS: they do not necessarily have to communicate via a name service server; none, one or more levels of name service servers can be configured.
Als Namensauflösung übersetzt DNS in der Regel einen sogenannten DNS-Namen (oft ein Rechnername) in eine IP-Adresse. Verzeichnisdienste und Namensdienste können jedoch auch andere Namensauflösungen vornehmen, die nicht zwingend klassische Namen oder Adressen beinhalten. So könnte ein Verzeichnisdienst auch allgemein eine Anfrage nach beispielsweise einem Datenwert/Rechnerzustand beantworten und Verzeichnisdienste könnten beispielsweise zusätzlich oder anstelle von Adressen beispielsweise Zertifikate, Passwörter, oder auch Telefonnummern zurückliefern. Im Folgenden werden allgemein auch diese Verzeichnisdienste, sowie Infrastrukturdienste allgemein, die entsprechende Funktionen erbringen, als Namensdienste bezeichnet und die vorgenommenen Anfragen/Übersetzungen einheitlich als Namensauflösung bezeichnet.As a name resolution, DNS usually translates a so-called DNS name (often a computer name) into an IP address. However, directory services and name services can also perform other name resolutions that do not necessarily include classic names or addresses. Thus, a directory service could also generally answer a request for, for example, a data value / computer state, and directory services could return, for example, in addition to or instead of addresses, for example, certificates, passwords, or even telephone numbers. In the following, these directory services, as well as infrastructure services in general, which provide the corresponding functions, referred to as naming services and the requests / translations made uniformly called name resolution.
Die Details der Namensauflösung können sich je nach Datendienst unterscheiden. Beispiele für Datendienste mit anderen Namensauflösungen als DNS oder mit DNS ergänzende Namensauflösungen sind unter anderem das Session Initiation Protocol (RFC 3261 und RFC 3263), ITU-T H.323 und H.225.0. Die Funktion der Namensdienste kann zudem direkt mit den Datendiensten gekoppelt sein. Namensdienste werden teilweise auch zur Unterstützung von Mobilität, etwa in Mobilfunk- netzen oder zur Realisierung von Number Portability, persönlichen Rufhummern, Dienstrufnummern (etwa 0800, 0900) usw. im (mobilen) Telefonnetz, eingesetzt.The details of the name resolution may differ depending on the data service. Examples of data services with name resolution other than DNS or with DNS supplementary name resolutions include the Session Initiation Protocol (RFC 3261 and RFC 3263), ITU-T H.323 and H.225.0. The name services function can also be directly linked to the data services. Some of the naming services are also used to support mobility, for example in mobile networks or to implement number portability, personal call numbers, service numbers (eg 0800, 0900) etc. in the (mobile) telephone network.
Im Folgenden steht der Begriff Namensdienstserver (NDS) für einen Server, der die Aufgaben von Namensdiensten realisiert. Ein solcher Namensdienstserver ist dabei als eine logische Funktion zu verstehen. Es bedarf nicht zwingend eines separaten Hardware- oder Softwaresystems zur Realisierung der Namensdienstserver-Funktion. Zwar kann sie als separate Komponente ausgebildet sein, sie kann aber ebenso als Bestandteil des Betriebssystems, einer oder mehrerer Anwendungskomponenten, Peer-Systeme, anderer Netzelemente usw. ausgeprägt sein. Das gilt für Namensdienstserver einer beliebigen Stufe; insbesondere können gar keine eigenständig als separate Komponente identifizierbaren Namensdienstserver vorhanden sein.In the following, the term name service server (NDS) stands for a server that realizes the tasks of name services. Such a name service server is to be understood as a logical function. It does not necessarily require a separate hardware or software system to implement the name service server function. While it may be embodied as a separate component, it may also be embodied as part of the operating system, one or more application components, peer systems, other network elements, and so on. This applies to name service servers of any level; in particular, no name service servers that can be independently identified as separate components can be present.
Namensdienste können auch datendienstspezifϊsch ausgeprägt sein: so wird für VoIP teilweise zusätzlich oder an Stelle eines allgemeinen Namensdienstes wie DNS eine zusätzliche Funktion im VoIP -Dienst realisiert, der zu Nutzernamen (zum Beispiel repräsentiert als ein URI) deren aktuelle Kontakt-Adresse (typischerweise eine oder auch mehrere IP-Adressen) liefert und damit die Erreichbarkeit des Nutzers ermöglicht. Die Auflösung des Nutzernamens in eine Kontaktadresse kann wie oben beschrieben in einem oder mehreren Schritten erfolgen und eine oder mehrere Stufen benötigen.Name services can also be specific to data services: for VoIP, in addition to or in place of a general name service such as DNS, an additional function is realized in the VoIP service, which includes user names (for example, represented as a URI) whose current contact address (typically one or more) also multiple IP addresses) and thus enables the accessibility of the user. The dissolution of the username into a contact address may be done in one or more steps as described above and may require one or more stages.
Einsatzszenarien wie Websurfen und VoIP gehören heute zum Stand der Technik und werden breit eingesetzt. Oftmals - insbesondere in lokalen Netzen bzw. im Verhältnis zu ihrer Bandbreite nur wenig belasteten Netzen - ist eine performante und für die Nutzer sehr zufriedenstellende Realisierung von Websurfen und VoIP mit Standardkomponenten (Anwendungen, Netzkomponenten wie Switches und Routern, ...) realisierbar. Im Folgenden sprechen wir anstelle von der Realisierung von zum Beispiel Websurfen bzw. anderen Einsatzfeldern auch von Diensten und einer entsprechend guten/hohen bzw. schlechten/niedrigen erzielten Dienstgüte.Application scenarios such as web surfing and VoIP are state of the art today and widely used. Often - especially in local networks or in relation to their bandwidth only lightly loaded networks - is a high-performance and very satisfactory for the users realization of Websurfing and VoIP with standard components (applications, network components such as switches and routers, ...) feasible. In the following we speak instead of the realization of, for example, web surfing or other fields of use of services and a correspondingly good / high or poor / low achieved quality of service.
Performance und / oder Nutzerzufriedenheit können aber in anderen Einsatzszenarien deutlich weniger gut sein und stellen Probleme dar. Dabei können die Probleme je nach Einsatzszenario von zum Teil nur kleinen störenden Einflüssen (wie kurzen Aussetzern, etwas geringerer Performance und / oder ab und an selten mal eine abbrechende Verbindung) bis hin zu einer weitgehenden Unbrauchbarkeit des Dienstes führen. Die erzielte Dienstgüte ist dementsprechend suboptimal - ggf. sogar unzureichend.However, performance and / or user satisfaction can be significantly less good in other scenarios and present problems. Depending on the application scenario, the problems can sometimes be caused only by small interfering influences (such as short dropouts, somewhat less Performance and / or now and then rarely a break-off connection) up to an extensive uselessness of the service lead. The achieved quality of service is accordingly suboptimal - possibly even insufficient.
Einen direkten und / oder indirekten Einfluss auf die erzielte Dienstgüte hat dabei oft die Übertragungsverzögerung im Netz. Die Übertragungsverzögerung im Netz hängt dabei von einer Vielzahl an Faktoren ab. Dazu gehören beispielsweise oft die eigentlichen Signallaufzeiten, die Netzdatenrate bzw. bei einzelnen Übertragungsabschnitten die Datenrate des entsprechenden Übertragungsabschnitts, die Größe eines Datenpaketes im Verhältnis zur Datenrate (sofern zum Beispiel das Weiterleiten von Paketen nur/im wesentlichen erst nach dem Empfang des gesamten Datenpaketes erfolgt), Verzögerungen in den weiterleitenden Netzkomponenten, Zwischenspeichern/Puffern in den einzelnen Komponenten, Verzögerungen in den ein Protokoll auswertenden/implementierenden Komponenten und so weiter. Diese Übertragungsverzögerung wird oftmals in beide Richtungen einer Kommunikationsbeziehung gemeinsam gemessen und im Folgenden auch als RTT („Round Trip Time") bezeichnet.A direct and / or indirect influence on the achieved quality of service often has the transmission delay in the network. The transmission delay in the network depends on a large number of factors. These include, for example, often the actual signal propagation times, the network data rate or, in the case of individual transmission sections, the data rate of the corresponding transmission section, the size of a data packet in relation to the data rate (if, for example, the forwarding of packets only / essentially takes place only after the reception of the entire data packet) , Delays in the relaying network components, buffers / buffers in the individual components, delays in the protocol evaluating / implementing components, and so forth. This transmission delay is often measured together in both directions of a communication relationship and hereinafter also referred to as RTT ("Round Trip Time").
RTT steht für in der Regel für die Zeit, die insgesamt vom Absenden eines ersten Paketes durch den Sender über das Empfangen des ersten Paketes durch den Empfänger, über das Senden eines potentiellen zweiten Paketes als Reaktion auf das erste Paket durch den Empfänger des ersten Paketes bis hin zum Empfangen dieses zweiten Paketes durch den Sender des ersten Paketes vergeht. In einigen Netzen gibt es die Möglichkeit, mit speziellen Protokollen eine aktuelle RTT zu messen. In IPv4 basierenden Netzen geht das oft mit Hilfe eines PING-Kommandos, das ICMP Pakete („Internet Control Message Protocol" - RFC 792) aussendet und auf entsprechende ICMP Antwortpakete der Gegenseite wartet. Die Optimierungen dieser Erfindung können dabei oft auf den Datenfluß in einer oder auch in beiden Datenrichtungen angewandt werden. Auch können die Optimierungen dieser Erfindung oft auch angewandt werden, wenn Daten nur in einer Richtung gesendet werden. Zur Vereinfachung der Beschreibungen, wird aber im Folgenden in all diesen Fällen dennoch einheitlich von RTT gesprochen.RTT usually stands for the time, in total, from sending a first packet by the sender to receiving the first packet by the receiver, sending a potential second packet in response to the first packet through the receiver of the first packet goes to receive this second packet by the sender of the first packet. In some networks it is possible to measure a current RTT with special protocols. In IPv4-based networks, this is often done with the help of a PING command, which sends ICMP packets ("Internet Control Message Protocol" RFC 792) and waits for corresponding ICMP response packets from the other side Also, the optimizations of this invention can often be applied even if data is sent in one direction only, but for the sake of simplicity of description, the following will be used to refer to RTT uniformly in all these cases.
a) Paketverluste Paketverluste sind eine der potentiellen Ursachen, die zu einer Verringerung der Dienstgüte fuhren können. Als Paketverluste werden im folgenden sowohl vollständig verlorene Datenpakete bezeichnet, als auch Datenpakete, die während der Übertragung verfälscht oder unverhältnismäßig verspätet wurden und daher nicht verwendet werden können. Verlorene Pakete sind in der Regel zunächst gleichbedeutend mit verlorenen Nutzdaten und / oder Steuerinformationen.a) loss of parcels Packet loss is one of the potential causes that can lead to a reduction in the quality of service. In the following, packet losses are both completely lost data packets, as well as data packets which were falsified during the transmission or were disproportionately delayed and therefore can not be used. Lost packets are usually initially synonymous with lost user data and / or control information.
Sendewiederholungen (ARQ):Retransmissions (ARQ):
Es gibt viele Protokolle (wie beispielsweise das beim Websurfen oft für die Datendienste und gelegentlich für die Namensdienste eingesetzte Protokoll TCP), die die auftretenden Paketverluste durch geeignete Maßnahmen wie positive und / oder negative Empfangsbestätigungen bzw. Aufforderungen zu Übertragungswiederholung bzw. Timeouts und anschließende erneute Übertragung der verlorenen Informationen ausgleichen. Oftmals merken Protokolle höherliegender Schichten und / oder die eigentlichen Nutzer daher nicht einmal direkt, dass Paketverluste aufgetreten sind. Besonders bei Namensdiensten wird ein Paketverlust aber auch durch das Nichteintreffen einer Antwort innerhalb einer erwarteten Zeitspanne durch höherliegende Schichten bemerkt; dann ist es Aufgabe der höherliegende Schichten, Übertragungswiederholungen (unter bestimmten Umständen auch unter Nutzung alternativer Diensterbringer) vorzunehmen.There are many protocols (such as the Web service often used for data services and occasionally for the name services TCP protocol), the occurring packet losses by appropriate measures such as positive and / or negative acknowledgments or retests and subsequent retransmission to compensate for the lost information. Often logs of higher layers and / or the actual users therefore do not even notice directly that packet losses have occurred. However, especially with name services, packet loss is also noticed by the non-arrival of a response within an expected time span by higher layers; then it is up to the higher layers to perform retransmissions (under certain circumstances also using alternative service providers).
Eine derartige erneute Übertragung von Paketen ist jedoch in der Regel nicht in Null-Zeit möglich. Bei vielen Protokollen muss der Empfänger hierzu zunächst Informationen an den Sender zurück senden bzw. der Sender wartet auf das Ausbleiben solcher Informationen. Anschließend muss der Sender in der Regel ein ganzes Datenpaket (oder auch direkt und / oder indirekt einen Teil davon) erneut senden. Beides kostet Zeit, die von der RTT des Netzes und / oder des/der Übertragungsprotokolls/e und / oder dessen/deren Parameter abhängig ist.However, such retransmission of packets is usually not possible in zero time. For many protocols, the receiver must first send information back to the transmitter or the transmitter is waiting for the absence of such information. Subsequently, the sender usually has to resend an entire data packet (or directly and / or indirectly some of it). Both cost time, which depends on the RTT of the network and / or the transmission protocol / s and / or its / their parameters.
Es gibt viele Verfahren, um den negativen Einfluss von Paketverlusten auf die Dienstgüte zu verringern. Das TCP Protokoll beispielsweise sendet (sehr grob ausgedrückt) oftmals mehrere Pakete, ehe es auf Empfangsbestätigungen der Empfänger wartet. So kann es oftmals Paketverluste durch das erneute Senden der verlorenen Pakete ausgleichen ohne, dass der Sender daran gehindert wird, zwischenzeitlich neue (andere) Pakete zu senden. Es kommt also bei auftretenden Paketverlusten zumindest teilweise nicht zu vollständigen Pausen beim Senden von Daten.There are many ways to reduce the negative impact of packet loss on quality of service. For example, the TCP protocol often broadcasts several packets before waiting for recipients to receive acknowledgments. Thus, it can often compensate for packet losses by resending the lost packets without preventing the sender from intermittently sending new (other) packets. So it comes with occurring packet losses at least partially not to complete pauses when sending data.
Vorwärtsfehlerkorrektur (FEC) für Übertragungsabschnitt / Ende-zu-Ende:Forward error correction (FEC) for transmission section / end-to-end:
Ein anderer bekannter Ansatz ist es, die Wahrscheinlichkeit von Paketverlusten auf Uber- tragungsabschnitten zu reduzieren oder Paketverluste auszugleichen. Hierzu werden oftmals Verfahren zur Vorwärtsfehlerkorrektur (FEC) eingesetzt. Bei diesen Verfahren werden oftmals (sehr grob ausgedrückt) Redundanzinformationen in die gesendeten Daten eingefügt. Aus diesen Redundanzinformationen kann sich ein Empfänger dann durch Paketverluste entstandene Datenverluste versuchen zu rekonstruieren. Dabei gibt es viele bekannte Möglichkeiten wie beispielsweise diese FEC Zusatzinformationen/Redundanzinformationen aussehen können, wie sie erstellt/errechnet werden, wie ein Empfänger diese Informationen nutzen kann/soll, um fehlende Daten zu rekonstruieren und so weiter. Ebenso kann FEC sowohl für Datenblöcke wie Pakete oder Paketgruppen errechnet werden und / oder auch für Bit-/Byteströme. Zu den bekannten FEC Verfahren gehören unter anderem Vandermonde-Matrix-basierte und andere Galoiskörper benutzende Verfahren, Reed-Solomon, Golay, BCH, Hamming, Turbo Coding, einfache und komplexe/verschachtelte auf exklusiv-oder XOR basierende Verfahren, um nur ein paar Beispiele zu nennen. Auch sehr einfache Redundanzverfahren wie das gezielte Doppelt- bzw. Mehrfachsenden von Informationen können als Vorwärtsfehlerkorrektur (FEC) Verfahren bezeichnet werden.Another known approach is to reduce the likelihood of packet losses on transmission links or to compensate for packet losses. For this purpose, methods for forward error correction (FEC) are often used. These methods often (very roughly) include redundancy information in the data being sent. From this redundancy information, a receiver can then attempt to reconstruct data loss due to packet loss. There are many known ways in which this FEC ancillary information / redundancy information may look like how it is generated / calculated, how a receiver can / should use this information to reconstruct missing data, and so on. Likewise, FEC can be calculated both for data blocks such as packets or packet groups and / or also for bit / byte streams. Among the known FEC methods are Vandermonde matrix-based and other Galois-using methods, Reed-Solomon, Golay, BCH, Hamming, Turbo Coding, simple and complex / nested exclusive or XOR based methods, to name just a few examples to call. Even very simple redundancy methods such as the targeted double or multiple transmission of information can be referred to as forward error correction (FEC) method.
FEC basierte Verfahren werden oftmals auf einzelnen Übertragungsabschnitten (beispielsweise einer Funkstrecke, Satellitenstrecke, aber auch kabelgebundenen Übertragungsabschnitten) eingesetzt. Oftmals sind sie dabei direkter Bestandteil der Link-Layer Protokolle und werden für sämtliche auf dem entsprechenden Übertragungsabschnitt übertragenen Informationen eingesetzt. Der zweite übliche Einsatzfall von FEC Verfahren ist Ende-zu-Ende. Dabei werden vom eigentlichen Sender der Daten FEC Informationen in den Datenfluss / Paketfluss eingebunden.FEC-based methods are often used on individual transmission sections (for example, a radio link, satellite link, but also wired transmission sections). Often they are a direct part of the link-layer protocols and are used for all information transmitted on the corresponding transmission section. The second common use case of FEC procedures is end-to-end. In this case, the actual transmitter of the data FEC information is integrated into the data flow / packet flow.
FEC basierte Verfahren haben gegenüber Sendewiederholungen den Vorteil, dass sie den Empfängern in der Regel das Rekonstruieren von verlorenen Informationen ermöglichen, ohne dass beispielsweise erst eine RTT auf das Eintreffen von Sendewiederholungen gewartet werden muss. Daher eignet sich der Einsatz von FEC basierten Verfahren gut für Einsatzszenarien, bei denen die Übertragungsverzögerungen wichtig sind. Hierzu gehören unter anderem auch Live Videoübertragungen und VoIP, bei denen das Warten auf Sendewiederholungen ansonsten oftmals zu „Aussetzern" oder generell einer höheren Verzögerung der Wiedergabe führen würde.FEC-based methods have the advantage over retransmissions in that they usually enable the receivers to reconstruct lost information without, for example, having to first wait for an RTT to receive retransmissions. Therefore, the use of FEC based methods is well suited for scenarios where transmission delays are important. These include, inter alia, live video and VoIP, where waiting for retransmissions would otherwise often lead to "dropouts" or generally a higher delay in playback.
Ein anderer Ansatz, der auch gerne bei Sprach- und Bilddatenübertragung eingesetzt wird, ist es eine geeignete Content-Kodierung (Codec / Kodierung, Komprimierung beispielsweise der eigentlichen Sprach-/Bilddaten an sich = die aus Sicht der darunterliegenden Schichten zu übertragenen Nutzdaten) zu wählen. Diese könnte beispielweise FEC- Verfahren oder FEC-Verfahrensansätze beinhalten. Vor allem kann eine Content- Kodierung aber auch so gewählt werden, dass (auch nicht korrigierte) Paketverluste nur sehr begrenzte Auswirkungen auf die Wiedergabe haben (also beispielsweise nur Sprachdaten einer 20ms Periode betroffen sind und sich der Datenverlust nicht oder nur gering auf die darauf folgende Sprachwiedergabe auswirkt).Another approach, which is also often used for voice and video data transmission, is to select a suitable content coding (codec / coding, compression of, for example, the actual voice / image data per se = the payload data to be transmitted from the perspective of the underlying layers) , This could include, for example, FEC or FEC method approaches. Above all, a content coding can also be chosen so that (even uncorrected) packet losses have only very limited effects on the reproduction (that is, for example, only voice data of a 20ms period affected and the loss of data or only slightly on the following Voice playback).
Neben dem (Vor-) Konfigurieren der Nutzung einer geeigneten Content-Kodierung ist es dabei auch möglich die Content-Kodierung dynamisch an eine ermittelte Paketverlust- Situation und / oder an ermittelte Übertragungsverzögerungen (siehe hierzu auch die unter b) folgenden Ausführungen) anzupassen. Auch ein sogenanntes Transcoding (also eine Anpassung einer ursprünglichen Content-Kodierung durch Um-Kodierung beispielsweise der Sprach-/Bildnutzdaten in eine für beispielsweise ein Netz / eine Übertragungssituation im Netz geeignetere Content-Kodierung ist bekannt.In addition to (pre-) configuring the use of a suitable content coding, it is also possible to adapt the content coding dynamically to a determined packet loss situation and / or to determined transmission delays (see also the comments below under b)). A so-called transcoding (ie an adaptation of an original content coding by re-encoding, for example, the voice / image data in a more suitable, for example, a network / a transmission situation in the network content encoding is known.
Oftmals ist die Ursache für auftretende Paketverluste auch - oder gar vor allem - begründet in einer gemeinsamen Nutzung von Übertragungsabschnitten und / oder Netzen für die quasi zeitgleiche/parallele Übertragung von potentiell sehr unterschiedlichen Daten von potentiell mehreren/vielen Anwendungen und / oder Nutzern. Hierbei könnte es beispielsweise vorkommen, dass eine andere Anwendung eines anderen Nutzers plötzlich deutlich mehr Daten generiert und daher die Paketverlustrate plötzlich deutlich steigt, da die Übertragungskapazitäten des Netzes und / oder eines Übertragungsabschnittes überschritten sind.Often the cause of occurring packet losses is also - or even more important - due to a common use of transmission sections and / or networks for the quasi-simultaneous / parallel transmission of potentially very different data from potentially multiple / many applications and / or users. In this case, it could happen, for example, that another application of another user suddenly generates significantly more data and therefore the packet loss rate suddenly increases significantly, since the transmission capacities of the network and / or a transmission section are exceeded.
QoS / Priorisierung / Traffic-Shaping:QoS / prioritization / traffic shaping:
Zum Vermeiden solcher Paketverluste, beziehungsweise um wenigstens wichtige Daten ganz oder teilweise von solchen durch Überlast erzeugten Paketverlusten auszunehmen, gibt es bekannte Verfahren zur Bandbreitenreservierung in Netzen, zur Markierung von wichtigen Daten (beispielsweise durch Nutzung des TOS Feldes in IP Headern) und / oder QoS Mechanismen, die beispielsweise die zur Verfügung stehende Bandbreite auf einzelne Nutzer und / oder Anwendungen aufteilen. Die Umsetzung dieser Verfahren erfolgt in der Regel durch Router und / oder spezifische „Traffic-Shaper", die beim/vor dem Weiterleiten von Datenpaketen diese Informationen auswerten und dadurch bestimmte Datenpakete quasi priorisiert weiterleiten können, während andere Datenpakete beispielsweise eher bei Überlast verworfen und / oder zunächst zwischengespeichert werden. Eine entsprechende Priorisierung wird dabei für den jeweiligen Übertragungsabschnitt vorgenommen. Bandbreitenreservierungen können teilweise auch Ende-zu-Ende für alle zwischenliegenden Übertragungsabschnitte vorgenommen werden, wobei dann beispielsweise Router/Trafflc-Shaper für jeden dieser Übertragungsabschnitte die daraus resultierende Priorisierung vornehmen.In order to avoid such packet losses, or to exclude at least some important data wholly or partly from such overloaded packet losses, there are known techniques for bandwidth reservation in networks, for marking important data (eg by using the TOS field in IP headers) and / or QoS Mechanisms that divide, for example, the available bandwidth to individual users and / or applications. The implementation of these methods is usually done by routers and / or specific "traffic shapers", which evaluate this information during / before the forwarding of data packets and thereby forward certain data packets quasi prioritized, while other data packets, for example, rather in case of overload discarded and / / Bandwidth reservations can sometimes also be made end-to-end for all intermediate transmission sections, in which case, for example, router / Trafflc shapers make the resulting prioritization for each of these transmission sections.
Übertragungsverzögerung / RTTTransmission delay / RTT
Die RTT hat, wie bereits erwähnt, oftmals einen wesentlichen Einfluss auf die resultierende Dienstgüte.As already mentioned, the RTT often has a significant influence on the resulting quality of service.
Hierzu gehören offensichtlich auch Einsatzszenarien wie beispielsweise VoIP Telefonate, bei denen es für die Nutzer mit zunehmender Übertragungsverzögerung schwieriger wird, zu interagieren, ohne sich ungewollt gegenseitig ins Wort zu fallen. Die RTT hat jedoch oftmals im erstaunlichen Umfang auch einen großen Einfluss auf andere Einsatzszenarien.This obviously also includes usage scenarios such as VoIP telephone calls, where it becomes more difficult for users with increasing transmission delay to interact without interrupting each other unintentionally. However, the RTT often has a great influence on other scenarios.
Beispielsweise nutzen Protokolle (wie auch TCP) teilweise Sendefenster - also beispielsweise grob ausgedrückt eine maximale Datenmenge, die gesendet werden kann, bevor auf eine Empfangsbestätigung gewartet werden muss. Bei einer großen RTT wird so leider oftmals auch der maximale Durchsatz durch beispielsweise Ix Größe des Sendefensters pro RTT begrenzt.For example, protocols (as well as TCP) use partial transmission windows - for example roughly the maximum amount of data that can be sent before waiting for an acknowledgment of receipt. Unfortunately, with a large RTT, the maximum throughput is often limited by, for example, Ix size of the send window per RTT.
In Protokollen werden oft sogenannte Timeouts benutzt. So könnte es beispielsweise sein, dass beispielsweise bei einer sehr schnell variierenden und insbesondere sehr schnell steigen RTT Protokolle davon ausgehen, dass stark verzögerte Pakete verloren sind und von sich aus Übertragungswiederholungen anstoßen. Hier führen also Pakete, die für ihren jeweiligen Zweck zu spät kommen teilweise zu ähnlichen Reaktionen und auch einer ähnlich reduzierten Dienstgüte wie ein Paketverlust.In protocols, so-called timeouts are often used. So it could be for example that, for example, in a very rapidly varying and especially very fast rise RTT protocols assume that heavily delayed packets are lost and initiate retransmissions by itself. In this case, packets that arrive too late for their respective purpose lead in part to similar reactions and also to a similarly reduced quality of service, such as a packet loss.
Auf höheren Protokollschichten betrifft dies zum Beispiel auch Datenbankanwendungen. Bei denen oftmals zum Aufbau/zur Anzeige einer einzigen Nutzerseite auf dem Bildschirm im Hintergrund sehr viele (oft verschachtelte) Datenbankanfragen ausgeführt werden müssen, bei denen oft zumindest zum Teil eine Datenbankanfrage vom Ergebnis der vorangehenden Datenbankanfrage abhängt und / oder nur begrenzt viele Datenbankanfragen parallel ausgeführt werden können. Als Resultat kann dann zum Aufbau/zur Anzeige einer einzigen Nutzerseite auf dem Bildschirm in der Praxis oft nicht nur eine RTT, sondern eine Vielzahl von RTTs notwendig sein.For example, at higher protocol layers, this also applies to database applications. Often, to build / display a single user page on the screen in the background very many (often nested) database requests must be executed, which often depends at least in part on a database request from the result of the previous database request and / or running only a limited number of database requests in parallel can be. As a result, often not only one RTT, but a plurality of RTTs may be necessary to build / display a single user page on the screen in practice.
Ein ganz ähnliches Resultat ergibt sich oft beim Websurfen beispielsweise bei Einsatz von HTTP. Über HTTP werden Datenobjekte angefordert, die im Zusammenhang mit der Nutzung durch Webbrowser auch als Webobjekte bezeichnet werden können. Eine für einen Nutzer auf dem Bildschirm angezeigte Webseite enthält jedoch in der Regel mehrere (teilweise auch Dutzende oder >100) dieser Objekte (wie HTML-Seiten, HTML- Framesets; Bilder, Stylesheets, Skripte; von Skripten integrierte HTML-Textobjekte, XML-Daten, JSON-Objekte („Ajax"), usw.). Auch hier muss ein eingesetzter Webbrow- ser oftmals zunächst durch Auswertung erhaltener Webobjekte lernen, welche anderen Webobjekte für das Anzeigen einer Webseite benötigt werden und / oder der Webbrowser fragt nur eine begrenzte Anzahl an Webobjekten parallel ab. Dabei müssen oftmals DNS- Anfragen abgesetzt werden, deren Antwort abgewartet werden muss, bevor die TCP- Verbindungen aufgebaut werden können. Als Resultat kann dann auch zum Websurfen zum Aufbau/zur Anzeige einer einzigen Webseite auf dem Bildschirm in der Praxis oft nicht nur eine RTT, sondern eine Vielzahl von RTTs notwendig sein, oftmals auch mehrere/unterschiedliche RTTs zu unterschiedlichen Servern.A very similar result often results in web surfing, for example when using HTTP. Via HTTP, data objects are requested which, in connection with the use of web browsers, can also be referred to as web objects. However, a web page displayed to a user on the screen usually contains several (sometimes dozens or> 100) of these objects (such as HTML pages, HTML framesets, images, style sheets, scripts, scripts-integrated HTML text objects, XML scripts). Data, JSON objects ("Ajax"), etc.). Again, an inserted Web browser Often, by evaluating received web objects, they first learn which other web objects are needed for displaying a web page and / or the web browser queries only a limited number of web objects in parallel. Often DNS requests have to be issued, the response of which has to be awaited before the TCP connections can be established. As a result, not only one RTT but also a plurality of RTTs may be necessary for surfing to build / display a single web page on the screen in practice, often multiple / different RTTs to different servers.
Wie bereits zuvor beschrieben gibt es eine Vielzahl von Einflussgrößen, die Auswirkungen auf die resultierende RTT haben.As previously described, there are a variety of factors that affect the resulting RTT.
Eine oftmals nicht unwesentliche Einflussgröße sind die unter anderem in den Netzkomponenten (wie weiterleitenden Routern, Traffic-Shapern, Schnittstellentreibern, usw.) genutzten Weiterleitungspuffer (Queues). Eingehende Datenpakete werden oftmals zunächst in Queues zwischengespeichert. Durch diese Zwischenspeicherung entsteht dabei oftmals eine teilweise nicht unwesentliche, teilweise sogar dramatische zusätzlich Übertragungsverzögerung, wodurch die resultierende RTT steigt.An often not unimportant influencing variable are the forwarding buffers (queues) used among other things in the network components (such as forwarding routers, traffic shapers, interface drivers, etc.). Incoming data packets are often first cached in queues. This caching often results in a sometimes not insignificant, sometimes even dramatic additional transmission delay, which increases the resulting RTT.
Oftmals werden die Queues dabei vor allem bei Auftreten von Übertragungsspitzen und generellem Überlastfall deutlich mehr gefüllt, als bei geringerer Last. Nutzt beispielsweise ein Router für einen angeschlossenen 1 Mbit/s Übertragungsabschnitt eine Queue, die bis zu 1 MByte groß sein kann, so könnte beispielsweise bei Überlast durch diese Queue (bei entsprechender Nutzung / Konfiguration des Routers) eine zusätzliche Übertragungsverzögerung in der Größenordnung von 1.000.000 Byte x 8 Bit/Byte / 1.000.000 Bit/s = 8 Sekunden entstehen. RTTs in der Größenordnung von 8 Sekunden sind jedoch für beispielsweise VoIP Telefonate, aber auch viele andere Anwendungen, wie eben auch Websurfen, eine erhebliche Einschränkung der Dienstgüte.Often, the cues are filled much more, especially when transmission peaks and general overload occur, than at lower load. If, for example, a router for a connected 1 Mbit / s transmission section uses a queue that can be up to 1 MB in size, then, for example, in the event of overloading by this queue (with appropriate use / configuration of the router), an additional transmission delay of the order of 1,000. 000 bytes x 8 bits / byte / 1,000,000 bits / s = 8 seconds. RTTs of the order of 8 seconds, however, are a significant limitation on the quality of service for, for example, VoIP telephone calls, but also many other applications, such as web surfing.
Konfiguration / Queuegrößen:Configuration / Queue sizes:
Sofern sie entsprechend angewendet und zumindest weitgehend durchgehend eingesetzt werden, können Queue- Verfahren und -Konfigurationen hilfreich sein. So könnte eine Queuegröße nicht nur als eine feste Menge von Bytes konfiguriert werden, sondern beispielsweise abhängig von der Datenrate des betreffenden Übertragungsabschnittes, oder direkt als eine maximale Queuezeit anstelle von einer Queuegröße in Bytes. Zu beachten ist aber, dass sich die resultierende Verzögerung dennoch mit den Anzahl der „Hops" = durchlaufenen Netzkomponenten erhöht.If used appropriately and at least extensively implemented, queue procedures and configurations can be helpful. So could one Queue size not only be configured as a fixed amount of bytes, but, for example, depending on the data rate of the relevant transmission section, or directly as a maximum queue time instead of a queue size in bytes. It should be noted, however, that the resulting delay nevertheless increases with the number of "hops" = network components passed through.
QoS / Priorisierung / Traffic-Shaping:QoS / prioritization / traffic shaping:
Die bereits vorstehend erwähnten QoS- / Priorisierungs- / Traffic-Shaper-basierten Verfahren einschließlich Bandbreitenreservierungen können auch in Bezug auf die Queuenutzung beispielsweise in weiterleitenden Netzkomponenten eingesetzt werden. So könnten beispielsweise die zu priorisierenden Pakete gar nicht bzw. nicht an das hintere Ende der Queues eingereiht werden und so eine deutlich geringere Verzögerung erfahren.The above-mentioned QoS / prioritization / traffic shaper-based methods, including bandwidth reservations, can also be used in relation to queue usage, for example in forwarding network components. For example, the packets to be prioritized can not be queued at all, or they can not be queued at the back end of the queues and thus experience a much lower delay.
Generell gilt hier, vorstehend und auch nachfolgend im Zusammenspiel mit der beschriebenen Erfindung, dass diese QoS- / Priorisierungs- / Traffic-Shaper-basierten Verfahren einschließlich Bandbreitenreservierungen zum Erkennen der zu priorisierenden Datenpakete viele verschiedene Verfahren nutzen können. Dazu zählen konfigurierte Quell- /Zieladressen, markierte Pakete (zum Beispiel „TOS" Feld in IP Headern), bestimmte Protokolle (zum Beispiel erkannt über das „Protocol" Feld in IP Headern und / oder Port- Nummern in Headern von Transport-Protokollen), das Auswerten von Signalisierungspro- tokollen zum Ermitteln der QuelWZieladressen und / oder auch Verfahren zum (heuristischen) Erkennen von bestimmten Daten-/ Anwendungsklassen (beispielsweise anhand von Paketgrößen/-Intervallen, bestimmten Feldern wie Versionsnummern und / oder Times- tamps, Sequenznummern in Paketheadern, usw.).In general, above and below, in conjunction with the described invention, these QoS / prioritization / traffic-shaper-based methods including bandwidth reservations for recognizing the data packets to be prioritized can use many different methods. These include configured source / destination addresses, marked packets (for example "TOS" field in IP headers), specific protocols (for example, detected via the "Protocol" field in IP headers and / or port numbers in headers of transport protocols) the evaluation of signaling protocols to determine the source / destination addresses and / or methods for (heuristically) recognizing particular data / application classes (for example based on packet sizes / intervals, specific fields such as version numbers and / or timespots, sequence numbers in packet headers , etc.).
Übertragungs-UnterbrechungenTransmission interruptions
Übertragungs-Unterbrechungen - also Zeiträume in denen keine Datenpakete zwischen einem Sender und einem Empfänger ausgetauscht werden können - sind eine weitere potentielle Ursache zur Verringerung der Dienstgüte. Eine Übertragungs-Unterbrechung kann eine oder mehrere Protokoll-Schichten betreffen und auf verschiedenen Protokoll- Schichten unterschiedlich bzw. nicht einheitlich wahrgenommen werden. Insbesondere kann eine (vorübergehend) langsame und / oder verzögerte und / oder verlustbehaftete Übertragung von Datenpaketen durch die unteren Protokoll-Schichten auf den höheren Protokoll-Schichten als Unterbrechung wahrgenommen werden. Auch kann unter Umständen eine kurzzeitige Unterbrechung auf den unteren Protokoll-Schichten durch die oben Protokoll-Schichten gar nicht bemerkt werden.Transmission interruptions - ie periods in which no data packets can be exchanged between a transmitter and a receiver - are another potential cause for reducing the quality of service. A transmission interruption may relate to one or more protocol layers and be perceived differently or not uniformly on different protocol layers. Especially For example, a (transient) slow and / or delayed and / or lossy transmission of data packets through the lower protocol layers on the higher protocol layers may be perceived as an interrupt. Also, a brief interruption on the lower protocol layers may not even be noticed by the above protocol layers.
Die Ursache für Übertragungs-Unterbrechungen kann vielfaltig sein. Bei kabelloser Datenübertragung könnte beispielsweise der Empfang gestört sein (beispielsweise, da sich Sender und / oder Empfänger aus dem Empfangsbereich entfernt haben, Hindernisse in den Weg geraten sind oder auch wegen Wettersituationen wie starkem Regen und / oder Bewölkung und / oder Nebel). Aber auch generell könnte das Netz bzw. ein Übertragungsabschnitt ausfallen und / oder beispielsweise wegen Überlast oder hoher Last durch andere ggf. höher priorisierte Datenströme der Datenaustausch zwischen einem Sender und einem Empfänger (zeitlich begrenzt) nicht möglich sein. Auch kann beispielsweise eine (geänderte) Wegewahl im Netz zu Unterbrechungen führen. Dies kann beispielsweise der Fall sein, wenn ein mobiler Nutzer von einem Zugangspunkt (zum Beispiel Access- Point, Funkmast, Basisstation) eines drahtlosen Netzes zu einem anderen wechselt (was auch als Handover bezeichnet wird).The cause of transmission interruptions can be manifold. For wireless data transmission, for example, the reception could be disturbed (for example, because transmitters and / or receivers have moved out of the reception area, obstacles have gotten in the way or because of weather conditions such as heavy rain and / or clouds and / or fog). But also generally, the network or a transmission section could fail and / or, for example due to overload or high load by other possibly higher prioritized data streams, the data exchange between a transmitter and a receiver (limited in time) would not be possible. Also, for example, a (changed) routing in the network can lead to interruptions. This may be the case, for example, when a mobile user changes from one access point (for example, access point, radio mast, base station) of one wireless network to another (also referred to as handover).
In einigen Fällen (wie beispielsweise bei dem Wechsel eines Endgerätes von einem Funknetz in ein anderes) kommt es nicht nur zu einer (ggf. kurzzeitigen, ggf. bei überlappenden Netzbereichen auch zeitlich quasi nicht vorhandenen) Übertragungs-Unterbrechung, sondern zu einem Wechsel des Endgerätes von einem Netz in ein anderes Netz und damit oftmals zu einem Wechsel der von diesem Endgerät genutzten Netzadresse. Um durch solch einen Netzwechsel Anwendungen und / oder Protokolle möglichst weniger zu stören, gibt es bekannte Verfahren wie Mobile IP, die diese Netzwechsel zumindest teilweise für die eingesetzten Anwendungen und / oder Protokolle transparent machen. Mobile IPv4 ist unter anderen inIn some cases (such as when changing a terminal from one wireless network to another), it comes not only to a (possibly short-term, possibly temporally quasi non-existent in overlapping network areas) transmission interruption, but to a change of the terminal from one network to another network and thus often to a change of the network address used by this terminal. In order to disturb applications and / or protocols as less as possible by such a network change, there are known methods such as Mobile IP, which make these network changes at least partially transparent to the applications and / or protocols used. Mobile IPv4 is among others in
[8] IETF RFC 3344, Mobility Support in IPv4, C. Perkins, Ed. - August 2002, beschrieben. (IETF RFC 3775 beschreibt Mobility Support in IPv6.) Viele Protokolle und Anwendungen können kurzzeitige Ubertragungs-Unterbrechungen überbrücken, ohne dass ein Eingreifen durch den Nutzer und / oder umfangreiche Übertragungswiederholungen notwendig werden.[8] IETF RFC 3344, Mobility Support in IPv4, C. Perkins, Ed. - August 2002, described. (IETF RFC 3775 describes mobility support in IPv6.) Many protocols and applications can bridge transient disruptions without the need for user intervention and / or extensive retransmissions.
Dies ist aber meist von bestimmten Protokollparametern und Einstellungen (u.a. Time- outs) abhängig.However, this usually depends on certain protocol parameters and settings (including timeouts).
Eine Übertragungs-Unterbrechung kann sich störend auf eine Kommunikationsbeziehung zwischen Endpunkten, die in gleicher Weise dann als Kommunikationsendpunkte bezeichnet werden können, auswirken, wenn sie auftritt: nachdem die Endpunkte eine Kommunikationsziehung begonnen haben, wobei durch die Übertragungs-Unterbrechung der Datenaustausch zumindest kurzzeitig beeinträchtigt oder verhindert wird oder während ein Endpunkt versucht, eine Kommunikationsbeziehung zu einem anderen Endpunkt herzustellen, wobei durch die Übertragungs-Unterbrechung der Aufbau der Kommunikationsbeziehung verzögert oder (vorübergehend oder vollständig) verhindert wird.A transmission interruption can interfere with a communication relationship between endpoints, which can be referred to as communication endpoints in the same way, when it occurs: after the endpoints have started a communication draw, whereby the data interruption is at least temporarily impaired by the transmission interruption is prevented or while one endpoint attempts to establish a communication relationship with another endpoint, whereby the communication interruption delays or (temporarily or completely) prevents the establishment of the communication relationship.
In beiden Fällen können die Endpunkte eine Verminderung der Dienstgüte oder einen Fehlersituation wahrnehmen.In both cases, the endpoints may perceive a reduction in quality of service or an error situation.
Header-OverheadHeader overhead
Wie oben beschrieben nutzen Datendienste Protokollhierarchien, für VoIP beispielsweise bestehend aus IP, UDP und RTP, für Websurfen beispielsweise aus IP, TCP, optional TLS/SSL und HTTP.As described above, data services use protocol hierarchies, for VoIP consisting for example of IP, UDP and RTP, for web surfing, for example, IP, TCP, optionally TLS / SSL and HTTP.
Die allein aus RTP, UDP, IPv4 resultierende Protokoll-Hierarchie wird grob und beispielhaft in Fig. 5 dargestellt. Die sich aus HTTP, TCP und IPv4 ergebende Protokoll- Hierarchie wird beispielhaft in Fig. 6 dargestellt. Die „Größe" der einzelnen Schichten liefert ein grobes Indiz für den Overhead, der durch die Protokoll-Header der einzelnen Schichten entstehen kann. Jedes dieser Protokolle nutzt dabei einen eigenen Protokoll-Header, die sich bei Nutzung von mehreren Protokollen beziehungsweise einer Header-Hierarchie sehr schnell zu einem großen Overhead addieren.The protocol hierarchy resulting solely from RTP, UDP, IPv4 is shown roughly and by way of example in FIG. The protocol hierarchy resulting from HTTP, TCP and IPv4 is exemplified in FIG. The "size" of each layer provides a rough indication of the overhead that can be created by the protocol headers of each layer. Each of these protocols uses its own protocol header, which quickly adds up to a large overhead when using multiple protocols or a header hierarchy.
Auch wenn die Header-Größen oftmals variabel sind, kann bei einem VoIP-Paket unter Nutzung von RTP, UDP und IPv4 allein für diese drei Protokolle beispielsweise insgesamt eine Header-Größe von 12 Byte RTP + 8 Byte UDP + 20 Byte IPv4 = 40 Bytes in Summe entstehen. Zusätzlich könnte man in Betracht ziehen, dass in der Regel unterhalb von IP weitere Protokolle zum Einsatz kommen und zum Beispiel bei Einsatz von IPv6 anstelle von IPv4 sich allein der IP-Header nochmals um weitere 20 Bytes auf 40 Bytes vergrößert. Abhängig von der Menge an Nutzdaten pro Paket, entsteht auch prozentual ein beachtlicher Overhead durch die zusätzlich zu den Nutzdaten zu übertragenen Header- Informationen. Da VoIP-Pakete oftmals nur relativ wenig Nutzdaten (Sprachdaten) enthalten (beispielsweise nur 40 oder 80 Bytes), wurden unter anderem für diesen Anwendungsbereich Möglichkeiten zur Header-Komprimierung erarbeitet und teilweise auch standardisiert. Beispiele hierfür sind unter anderem in den folgenden Dokumenten beschrieben:Even if the header sizes are often variable, for a VoIP packet using RTP, UDP and IPv4 alone for these three protocols, for example, a total header size of 12 bytes RTP + 8 bytes UDP + 20 bytes IPv4 = 40 bytes in total emerge. In addition, one could consider that usually below IP further protocols are used and, for example, when using IPv6 instead of IPv4, only the IP header again increased by another 20 bytes to 40 bytes. Depending on the amount of user data per packet, a considerable amount of overhead is also produced by the header information to be transmitted in addition to the user data. Since VoIP packets often contain relatively little user data (voice data) (for example, only 40 or 80 bytes), options for header compression have also been developed for this area of application and some have also been standardized. Examples of this are described, inter alia, in the following documents:
[9] IETF RFC 2508, Compressing IP/UDP/RTP Headers for Low-Speed Serial Links, Casner et al. - Februar 1999[9] IETF RFC 2508, Compressing IP / UDP / RTP Headers for Low Speed Serial Links, Casner et al. - February 1999
[10] IETF RFC 3545, Enhanced Compressed RTP (CRTP) for Links with High Delay, Packet Loss and Reordering, Koren et al. - Juli 2003[10] IETF RFC 3545, Enhanced Compressed RTP (CRTP) for Links with High Delay, Packet Loss and Reordering, Koren et al. - July 2003
[11] IETF RFC 3095, Robust Header Compression (ROHC): Framework for four pro- files: RTP, UDP, ESP, and uncompressed., Bormann et al. - Juli 2001[11] IETF RFC 3095, Robust Header Compression (ROHC): Framework for four pro- files: RTP, UDP, ESP, and uncompressed., Bormann et al. - July 2001
[ 12] IETF RFC 3544, IP Header Compression over PPP, Koren et al. - Juli 2003[12] IETF RFC 3544, IP Header Compression over PPP, Koren et al. - July 2003
Header-Komprimierung für einzelne Übertragungsabschnitte:Header compression for individual transmission sections:
Die bestehenden Möglichkeiten zur Header-Komprimierung werden dabei in der Regel nur für einzelne Übertragungsabschnitte (beispielsweise in einem einfachen Fall zwischen zwei direkt über ein physisches Übertragungsmedium oder ein Schicht-2-Netz verbundenen Rou- tern) eingesetzt. In diesem Fall reduzieren sie den Header-Overhead jedoch nur auf dem entsprechenden Übertragungsabschnitt.The existing options for header compression are usually only used for individual transmission sections (for example, in a simple case, between two channels directly connected via a physical transmission medium or a layer 2 network). tern) used. In this case, however, they reduce the header overhead only on the corresponding transmission section.
Die in [9] beschriebene Header-Komprimierung (oftmals CRTP genannt), erlaubt es so beispielsweise für den Einsatz über einen Übertragungsabschnitt die Header der Protokolle RTP, UDP und IP gemeinsam zu komprimieren und ermöglicht es so, die in Summe in einer Größenordnung von 40 Bytes liegenden Header dieser Protokolle auf größenordnungsmäßig 2-4 Bytes zu komprimieren.The header compression (often called CRTP) described in [9] allows, for example for use over a transmission section, the headers of the protocols RTP, UDP and IP to be compressed together, thus making it possible, in total, in the order of 40 Bytes these headers to compress on the order of 2-4 bytes.
Ende-zu-Ende Header-Komprimierung nur ausgewählter Protokoll-Header:End-to-end header compression of selected protocol headers only:
Alternativ erlauben es die bestehenden Möglichkeiten zur Header-Komprimierung nur einzelne der betroffenen Header zu komprimieren. So beschreibt [9], dass alternativ zur gemeinsamen Komprimierung von RTP, UDP, IP für nur einen Übertragungsabschnitt auch nur der RTP-Header komprimiert werden kann. Sofern nur der RTP-Header komprimiert wird, kann diese Header-Komprimierung auch Ende-zu-Ende eingesetzt werden (also beispielsweise direkt von einem Telefon bis zu einem anderen Telefon).Alternatively, the existing header compression capabilities allow only a few of the affected headers to be compressed. For example, [9] describes that as an alternative to the common compression of RTP, UDP, IP, only the RTP header can be compressed for only one transmission segment. If only the RTP header is compressed, this header compression can also be used end-to-end (for example, directly from one phone to another).
Das unkomprimierte Beibehalten der UDP- und IPv4-Header ermöglicht in diesem Fall, dass zwischengeschaltete Netzkomponenten (wie beispielsweise Router) die Pakete trotz der komprimierten RTP-Header weiterleiten können.The uncompressed maintenance of the UDP and IPv4 headers in this case allows intermediary network components (such as routers) to route the packets despite the compressed RTP headers.
Durch das unkomprimierte Beibehalten der UDP- und IPv4-Header wird aber, beispielsweise entsprechend [9], die Effizienz der Reduzierung auch entsprechend kleiner. In diesem Beispiel hätten die unkomprimierten UDP- und IP-Header weiterhin eine Größe in der Größenordnung von 28 Bytes. Während der RTP-Header in der Größenordnung von 12 Bytes auf rund 2 bis 4 Bytes reduziert wird. Die Effizienz des Protokolls sinkt.However, by keeping the UDP and IPv4 headers uncompressed, for example, according to [9], the efficiency of the reduction also becomes correspondingly smaller. In this example, the uncompressed UDP and IP headers would still be on the order of 28 bytes in size. While the RTP header is reduced in the order of 12 bytes to about 2 to 4 bytes. The efficiency of the protocol decreases.
Zusammenfassung der ErfindungSummary of the invention
Aufgabe der Erfindung ist es, verbesserte Technologien zum Optimieren einer paketorientierten Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten anzugeben. Das Optimieren zielt insbesondere auf einen oder mehrere der folgenden Aspekte ab: Reduzieren der Auswirkungen von Übertragungsverzögerungen, Reduzieren der Auswirkungen von Paketverlusten, Reduzieren der Auswirkungen von Übertragungs-Unterbrechungen und Reduzieren der Auswirkungen und / oder des Overheads der Datenübertragung auf alle oder einige der genutzten Netze.The object of the invention is to provide improved technologies for optimizing packet-oriented data transmission between communication end points in a network with communication end points. In particular, optimization is aimed at one or more of the following: reducing the effects of transmission delays, reducing the effects of packet loss, reducing the effects of transmission interruptions, and reducing the impact and / or overhead of data transmission on all or some of the networks used ,
Nach einem ersten Aspekt der Erfindung ist ein Verfahren zum Optimieren einer Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten geschaffen, wobei das Verfahren die folgenden Schritte umfasst:According to a first aspect of the invention, there is provided a method of optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
- Bereitstellen einer Kommunikationsbeziehung zwischen einem Kommunikationsendpunkt und einem weiteren Kommunikationsendpunkt, wobei für die Kommunikationsbeziehung eine paketorientierte Datenübertragung vorgesehen ist, bei der ein Datenstrom ausgetauschte Datenpakete umfassend gebildet wird,Provision of a communication relationship between a communication end point and a further communication end point, a packet-oriented data transmission being provided for the communication relationship in which a data stream is comprehensively formed by exchanged data packets,
- Bereitstellen einer Optimiereranordnung, die mit mindestens einem Optimierer gebildet wird, undProviding an optimizer arrangement formed with at least one optimizer, and
- Ausführen eines Optimierungsmechanismus, welcher die folgenden Schritte umfasst:Execute an optimization mechanism comprising the following steps:
- Absenden einer Namensauflösungsanfrage betreffend eine dem weiteren Kommunikationsendpunkt in dem Netz zugeordnete Adresse durch den Kommunikationsendpunkt,Sending a name resolution request concerning an address assigned to the further communication end point in the network by the communication endpoint,
- Empfangen und Auswerten der Namensauflösungsanfrage durch die Optimiereranordnung,Receiving and evaluating the name resolution request by the optimizer arrangement,
- Erzeugen einer oder mehrerer Antwortnachrichten auf die Namensauflösungsanfrage durch die Optimiereranordnung undGenerating one or more response messages to the name resolution request by the optimizer arrangement and
- Übersenden der einen oder der mehreren Antwortnachrichten an den Kommunikationsendpunkt, wobei die eine oder die mehreren Antwortnachricht(en)Transmitting the one or more response messages to the communication endpoint, the one or more response messages being sent
- frei von der Adresse ist und- is free from the address and
- eine einen Wartezustand für den Kommunikationsendpunkt initiierende Wartenachricht und / oder eine Pseudo-Adresse umfasst, welche von der Optimiereranordnung lokal ausgewählt und von der dem weiteren Kommunikationsendpunkt zugeordneten Adresse verschieden ist, - Initiieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt.a waiting message for the communication endpoint initiating waiting message and / or a pseudo-address comprises, which is selected locally by the optimizer arrangement and different from the further communication endpoint associated address, Initiate the packet-oriented data transmission between the communication endpoint and the further communication endpoint.
Für das Ermitteln der Adresse steht eine Vielzahl von Möglichkeiten zur Verfugung, wie sie auch in den Ausfuhrungsbeispielen beschrieben sind. Insbesondere kann die Adresse auf Basis der in einer Namensauflösungsanfrage enthaltenen Informationen ermittelt werden. Dies kann durch Stellen der gleichen oder einer abgewandelten Namendienstanfrage an einen Namensdienstserver oder an einen Optimierer derselben oder eine anderen Optimiereranordnung geschehen. Auch kann die Adresse durch statische Regeln vorgegeben sein oder durch Anwendung dynamischer Regeln ermittelt werden. Die Adresse kann den in der Namensdienstanfrage benannten weiteren Kommunikationsendpunkt oder einen Optimierer dieser oder einer weiteren Optimiereranordnung bezeichnen bzw. auf ihn verweisen.For the determination of the address a variety of options are available, as they are described in the exemplary embodiments. In particular, the address may be determined based on the information contained in a name resolution request. This can be done by providing the same or a modified name service request to a name service server or to an optimizer of the same or another optimizer arrangement. Also, the address may be predetermined by static rules or determined by applying dynamic rules. The address may designate or refer to the further communication endpoint named in the name service request or an optimizer of this or another optimizer arrangement.
Um in einem Kommunikationsendpunkt einen Wartezustand zu initiieren, was durch das effektive Verzögern einer Antwort erreicht werden kann, stehen verschiedene Möglichkeiten zur Verfügung. So kann mit dem Senden einer Antwort für eine feste, eine variable oder eine dynamisch bestimmte Zeitspanne gewartet werden. Das Verzögern kann durch das Zurückliefern einer Wartenachricht erreicht werden. Eine Wartenachricht kann gebildet sein mit:In order to initiate a wait state in a communication endpoint, which can be achieved by effectively delaying a response, there are various possibilities. So you can wait to send a response for a fixed, a variable or a dynamically determined period of time. The delay can be achieved by returning a waiting message. A waiting message can be formed with:
- einer vorläufigen und / oder unvollständigen Antwort und / oder einem Verweis auf mindestens einen anderen Optimierer und / oder Namensdienstserver- und / odera preliminary and / or incomplete response and / or a reference to at least one other optimizer and / or name service server and / or
- einer explizit im Protokoll vorgesehenen Aufforderung zum Warten und / oder erneuten Anfragen nach Ablauf eines Zeitintervalls.an explicit request in the protocol for waiting and / or renewed inquiries after expiration of a time interval.
Das Initiieren eines Wartezustands kann durch mindestens ein Namensdienst- und / oder mindestens ein Datendienstprotokoll unterstützt / realisiert / signalisiert werden. Dieser Form des Verzögerns einer Antwort ist unabhängig davon, ob die mindestens eine gesendete Antwort durch den Optimierer generiert, von einem anderen Optimierer empfangen, von einem Namensdienst und / oder einer anderen Komponente empfangen wurde.The initiation of a wait state can be supported / realized / signaled by at least one name service and / or at least one data service protocol. This form of delaying a response is independent of whether the at least one response sent was generated by the optimizer, received by another optimizer, received by a name service and / or another component.
Nach einem zweiten Aspekt der Erfindung ist ein Verfahren zum Optimieren einer Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten geschaffen, wobei das Verfahren die folgenden Schritte umfasst: - Ausbilden einer Kommunikationsbeziehung zwischen einem Kommunikationsendpunkt und einem weiteren Kommunikationsendpunkt, wobei die Kommunikationsbeziehung für eine paketorientierte Datenübertragung konfiguriert wird, bei der ein Datenstrom ausgetauschte Datenpakete umfassend gebildet wird,According to a second aspect of the invention, there is provided a method for optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of: Forming a communication relationship between a communication endpoint and another communication endpoint, wherein the communication relationship is configured for a packet-oriented data transmission in which a data stream is comprehensively formed exchanged data packets,
- Bereitstellen einer der Kommunikationsbeziehung zugeordneten Optimiereranordnung, die mit wenigstens einem Optimierer gebildet wird, undProviding an optimizer arrangement associated with the communication relationship, which is formed with at least one optimizer, and
- Optimieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt, indem mittels der Optimiereranordnung im Rahmen eines Optimierungsmechanismus für die paketorientierte Datenübertragung Informationen über ein Kommunikationsverhalten des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes bei einem zukünftigen Namensauflö- sungsprozess bereitgestellt werden.Optimizing the packet-oriented data transmission between the communication endpoint and the further communication endpoint by providing information about a communication behavior of the communication endpoint and / or the further communication endpoint in a future name resolution process by means of the optimizer arrangement as part of an optimization mechanism for the packet-oriented data transmission.
Nach einem dritten Aspekt der Erfindung ist ein Verfahren zum Optimieren einer Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten geschaffen, wobei das Verfahren die folgenden Schritte umfasst:According to a third aspect of the invention, there is provided a method of optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
- Ausbilden einer Kommunikationsbeziehung zwischen einem Kommunikationsendpunkt und einem weiteren Kommunikationsendpunkt einem Protokoll-Schichten-Modell entsprechend, wobei für die Kommunikationsbeziehung eine paketorientierte Datenübertragung vorgesehen ist, bei der ein Datenstrom ausgetauschte Datenpakete umfassend gebildet wird,Forming a communication relationship between a communication endpoint and another communication endpoint in accordance with a protocol-layer model, wherein a packet-oriented data transmission is provided for the communication relationship, in which a data flow is comprehensively formed by exchanged data packets,
- Bereitstellen einer der Kommunikationsbeziehung zugeordneten Optimiereranordnung, die mit wenigstens einem Optimierer gebildet wird, undProviding an optimizer arrangement associated with the communication relationship, which is formed with at least one optimizer, and
- Optimieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt, indem mittels der Optimiereranordnung ein Optimierungsmechanismus für die paketorientierte Datenübertragung über die Kommunikationsbeziehung ausgeführt wird, wobei:Optimizing the packet-oriented data transmission between the communication endpoint and the further communication endpoint, by means of the optimizer arrangement by carrying out an optimization mechanism for the packet-oriented data transmission via the communication relationship, wherein:
- der Optimierungsmechanismus logisch getrennt von dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt ausgeführt wird,the optimization mechanism is executed logically separated from the communication endpoint and the further communication endpoint,
- der Optimierungsmechanismus in Protokoll-Schichten oberhalb der Protokoll-Schicht 2 des Protokoll-Schichten-Modells ausgeführt wird undthe optimization mechanism is executed in protocol layers above the protocol layer 2 protocol layer 2, and
- für wenigstens ein Datenpaket aus dem Datenstrom der paketorientierten Datenübertragung Informationen redundant übertragen werden. Die redundante Übertragung erfolgt wahlweise als Reaktion auf eine vorangehende Anfrage. Insbesondere kann eine vorteilhafte Ausgestaltung der Erfindung vorsehen, dass logisch zwischen mindestens zwei der Optimierer bzw. zwischen dem einen Optimierer und dem weiteren Kommunikationsendpunkt mindestens ein nicht an der Optimierung auf der/den betrachteten Protokoll-Schicht(en) beteiligtes System liegt. Es kann vorgesehen sein, dass die Optimierer einen möglichst großen Teil des Datenübertragung im Netz erfassen und / oder den/die Teilbereich(e) des Netzes erfassen, die für die Dienstgüte der Datenübertragung besonders problematisch sind.- For at least one data packet from the data stream of the packet-oriented data transmission information is transmitted redundantly. The redundant transmission is optionally in response to a previous request. In particular, an advantageous embodiment of the invention can provide that logically between at least two of the optimizers or between the one optimizer and the other communication endpoint is at least one not participating in the optimization on the / the considered protocol layer (s) involved system. It can be provided that the optimizers capture as much of the data transmission in the network as possible and / or detect the subarea (s) of the network that are particularly problematic for the quality of service of the data transmission.
Nach einem vierten Aspekt der Erfindung ist ein Verfahren zum Optimieren einer Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten geschaffen, wobei das Verfahren die folgenden Schritte umfasst:According to a fourth aspect of the invention, there is provided a method for optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
- Ausbilden einer Kommunikationsbeziehung bzw. Versuch des Ausbildens einer Kommunikationsbeziehung zwischen einem Kommunikationsendpunkt und einem weiteren Kommunikationsendpunkt, wobei für die Kommunikationsbeziehung eine paketorientierte Datenübertragung vorgesehen ist, bei der ein Datenstrom ausgetauschte Datenpakete umfassend gebildet wird bzw. werden soll,Forming a communication relationship or attempting to establish a communication relationship between a communication endpoint and a further communication endpoint, wherein a packet-oriented data transmission is provided for the communication relationship, in which a data stream is or will be comprehensively formed by exchanged data packets,
- Bereitstellen einer der Kommunikationsbeziehung zugeordneten Optimiereranordnung, die mit wenigstens einem Optimierer gebildet wird, undProviding an optimizer arrangement associated with the communication relationship, which is formed with at least one optimizer, and
- Optimieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt, indem mittels der Optimiereranordnung für den Kommunikationsendpunkt und / oder den weiteren Kommunikationsendpunkt ein Fortbestehen bzw. ein Zustandekommen der Kommunikationsbeziehung während einer Übertragungs-Unterbrechung für die Kommunikationsbeziehung simuliert wird, wobei bei der Simulation eine Übermittlung von Datenpaketen von der Optimiereranordnung an den Kommunikationsendpunkt und / oder den weiteren Kommunikationsendpunkt fortgesetzt bzw. begonnen wird.Optimizing the packet-oriented data transmission between the communication endpoint and the further communication endpoint, by means of the optimizer arrangement for the communication endpoint and / or the further communication endpoint, a continuation of the communication relationship is simulated during a communication interruption for the communication relationship, wherein in the simulation Transmission of data packets from the optimizer arrangement to the communication end point and / or the further communication end point is continued or started.
Wie oben beschrieben, sind Übertragungs-Unterbrechungen Zeiträume, in denen beispielsweise aus Sicht einer bestimmten Protokoll-Schicht keine Datenpakete zwischen zwei Kommunikationsendpunkten, zum Beispiel einem Sender und einem Empfänger, ausgetauscht werden können. Übertragungs-Unterbrechungen können zu Beginn, während oder außerhalb einer bestehenden Kommunikationsbeziehung auftreten. Sie können - wie oben beschrieben - vielfaltige Ursachen haben. Die vorgesehene Simulation des Fortbestehens einer Kommunikationsbeziehung kann auf eine bereits bestehende Kommunikationsbeziehung angewendet werden, insbesondere aber auch auf eine zu etablierende Kommunikationsbeziehung. In letzterem Fall wird trotz Übertragungs-Unterbrechung ein Zustandekommen der Kommunikationsbeziehung simuliert.As described above, transmission interruptions are periods in which, for example, from the point of view of a particular protocol layer, no data packets can be exchanged between two communication end points, for example a transmitter and a receiver. Transmission breaks can be at the beginning, while or outside an existing communication relationship occur. They can - as described above - have many causes. The planned simulation of the continuation of a communication relationship can be applied to an existing communication relationship, but in particular also to a communication relationship to be established. In the latter case, despite transmission interruption, a state of the communication relationship is simulated.
Eine bevorzugte Ausbildung der Erfindung sieht vor, die Optimierungen nur für den Aufbau einer Kommunikationsbeziehung anzuwenden oder die Optimierungen nur während einer bestehenden Kommunikationsbeziehung anzuwenden oder die Optimierungen für den Aufbau einer Kommunikationsbeziehung und während einer bestehenden Kommunikationsbeziehung anzuwenden.A preferred embodiment of the invention provides to apply the optimizations only for the establishment of a communication relationship or to apply the optimizations only during an existing communication relationship or to apply the optimizations for establishing a communication relationship and during an existing communication relationship.
Nach einem fünften Aspekt der Erfindung ist ein Verfahren zum Optimieren einer Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten geschaffen, wobei das Verfahren die folgenden Schritte umfasst:According to a fifth aspect of the invention, there is provided a method of optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
- Ausbilden einer Kommunikationsbeziehung zwischen einem Kommunikationsendpunkt und einem weiteren Kommunikationsendpunkt, wobei für die Kommunikationsbeziehung eine paketorientierte Datenübertragung vorgesehen ist, bei der ein Datenstrom ausgetauschte Datenpakete umfassend gebildet wird,- Forming a communication relationship between a communication endpoint and another communication endpoint, wherein for the communication relationship a packet-oriented data transmission is provided, in which a data stream is formed exchanged data packets,
- Bereitstellen einer der Kommunikationsbeziehung zugeordneten Optimiereranordnung, die mit einem Kompressor und einem Dekompressor gebildet wird, undProviding an optimizer arrangement associated with the communication relationship, which is formed with a compressor and a decompressor, and
- Optimieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt, indem mittels der Optimiereranordnung die folgenden Schritte ausgeführt werden:Optimizing the packet-oriented data transmission between the communication endpoint and the further communication endpoint by carrying out the following steps by means of the optimizer arrangement:
- Komprimieren zumindest eines Headers wenigstens eines Datenpaketes des Datenstroms der paketorientierten Datenübertragung mittels des Kompressors unter zumindest teilweiser Aufrechterhaltung der Header-Struktur zumindest eines komprimierten Headers,Compressing at least one header of at least one data packet of the data stream of the packet-oriented data transmission by means of the compressor while at least partially maintaining the header structure of at least one compressed header,
- vollständiges oder teilweises Auffüllen von in dem zumindest einen Header des wenigstens einen Datenpaketes aufgrund des Komprimierens freiwerdenden Platzes mit Nutz- und / oder Steuerdaten,complete or partial filling of space with user and / or control data released in the at least one header of the at least one data packet as a result of the compression;
- Übertragen des zumindest einen komprimierten Headers an den Dekompressor und - Dekomprimieren des zumindest einen komprimierten Headers mittels des Dekompres- sors.- Transferring the at least one compressed header to the decompressor and - Decompressing the at least one compressed header by means of the decompressor.
Nach einem sechsten Aspekt der Erfindung ist ein Verfahren zum Optimieren einer Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten geschaffen, wobei das Verfahren die folgenden Schritte umfasst:According to a sixth aspect of the invention, there is provided a method of optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
- Ausbilden einer Kommunikationsbeziehung zwischen einem Kommunikationsendpunkt und einem weiteren Kommunikationsendpunkt, wobei für die Kommunikationsbeziehung eine paketorientierte Datenübertragung vorgesehen ist, bei der ein Datenstrom ausgetauschte Datenpakete umfassend gebildet wird,- Forming a communication relationship between a communication endpoint and another communication endpoint, wherein for the communication relationship a packet-oriented data transmission is provided, in which a data stream is formed exchanged data packets,
- Bereitstellen einer der Kommunikationsbeziehung zugeordneten Optimiereranordnung, die mit mindestens einem Optimierer gebildet wird, undProviding an optimizer arrangement associated with the communication relationship, which is formed with at least one optimizer, and
- Optimieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt, indem mittels der Optimiereranordnung die folgenden Schritte ausgeführt werden:Optimizing the packet-oriented data transmission between the communication endpoint and the further communication endpoint by carrying out the following steps by means of the optimizer arrangement:
- Erkennen einer Optimierungsmöglichkeit für die paketorientierte Datenübertragung,Recognition of an optimization possibility for the packet-oriented data transmission,
- Auswählen einer von einem Optimierungsmechanismus umfassten Optimierung für die paketorientierte Datenübertragung undSelecting an optimization for packet-oriented data transmission, which is included in an optimization mechanism, and
- Anwenden der ausgewählten Optimierung für die paketorientierte Datenübertragung.- Apply the selected optimization for the packet-oriented data transmission.
Es können ein oder mehrere beliebige Optimierungsmechanismen kombiniert genutzt werden. Insbesondere ist vorgesehen, die Aspekte 3 - 6 der Erfindung einzeln oder in Kombination auf den Informationsaustausch im Rahmen von Datendiensten und / oder Namensdiensten anzuwenden, etwas auf den Austausch von Informationen zwischen zwei Optimierern und / oder zwei Komponenten eines Optimierers zum Zwecke der Namensauflösung, zur Ermittlung Pseudo-Adressen, bei der Verzögerung von Antworten und / oder beim Bereitstellen von Informationen über ein Kommunikationsverhalten.One or more arbitrary optimization mechanisms can be used in combination. In particular, it is envisaged to apply aspects 3-6 of the invention, individually or in combination, to the information exchange in the context of data services and / or name services, to the exchange of information between two optimizers and / or two components of an optimizer for the purpose of name resolution, Identify pseudo-addresses, delay responses, and / or provide information about communication behavior.
Ein weiterer Aspekt der Erfindung betrifft ein Computerprogramm-Produkt mit Programmcode, welcher wahlweise auf einem computerlesbaren Speichermedium gespeichert ist und geeignet ist, beim Ablauf auf einer Rechenvorrichtung ein Verfahren nach mindestens einem der vorangehenden Aspekte auszuführen. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von abhängigen Unteransprüchen. Die nachfolgenden Ausgestaltungen der Erfindung werden zur Vereinfachung der Darstellung zunächst den einzelnen Aspekten der Erfindung zugeordnet. Sie können jedoch einzeln oder in beliebiger Kombination mit den verschiedenen Aspekten der Erfindung Anwendung finden und so vorteilhafte Ausführungen der Erfindung liefern.A further aspect of the invention relates to a computer program product with program code which is optionally stored on a computer-readable storage medium and is suitable for executing on a computing device a method according to at least one of the preceding aspects. Advantageous embodiments of the invention are the subject of dependent subclaims. The following embodiments of the invention are initially assigned to simplify the illustration of the individual aspects of the invention. However, they may find application singly or in any combination with the various aspects of the invention, thus providing advantageous embodiments of the invention.
Nachfolgend werden vorteilhafte Ausgestaltungen zum ersten Aspekt der Erfindung näher erläutert.In the following, advantageous embodiments of the first aspect of the invention will be explained in more detail.
Eine vorteilhafte Ausgestaltung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung die folgenden weiteren Schritte umfasst:An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises the following further steps:
- Ermitteln der dem weiteren Kommunikationsendpunkt zugeordneten Adresse durch die Optimiereranordnung,Determining the address assigned to the further communication end point by the optimizer arrangement,
- Erzeugen eines im Rahmen der paketorientierten Datenübertragung von dem Kommunikationsendpunkt zu dem weiteren Kommunikationsendpunkt zu übertragenden Datenpaketes durch den Kommunikationsendpunkt unter Einbeziehung der Pseudo-Adresse,Generating a data packet to be transmitted as part of the packet-oriented data transmission from the communication end point to the further communication end point by the communication endpoint, including the pseudo-address,
- Empfangen des Datenpaketes durch die Optimiereranordnung,Receiving the data packet by the optimizer arrangement,
- Ersetzen der Pseudo-Adresse in dem Datenpaket durch die dem weiteren Kommunikationsendpunkt zugeordneten Adresse und- Replacing the pseudo-address in the data packet by the further communication endpoint associated address and
- Senden des Datenpaketes mit der dem weiteren Kommunikationsendpunkt zugeordneten Adresse von der Optimiereranordnung an den weiteren Kommunikationsendpunkt.- Sending the data packet with the further communication endpoint associated address from the optimizer arrangement to the other communication endpoint.
Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Auswählen einer lokalen, regionalen, und / oder globalen Adresse als Pseudo-Adresse,Selecting a local, regional, and / or global address as a pseudo-address,
- Auswählen einer anderen Adresse als Pseudo-Adresse,Selecting a non-pseudo address,
- Auswählen einer zufällig gewählten Adresse als Pseudo-Adresse,Selecting a randomly chosen address as a pseudo-address,
- Auswählen einer Adresse aus einem reservierten Adressbereich als Pseudo-Adresse,Selecting an address from a reserved address range as a pseudo-address,
- Auswählen einer vorübergehend oder dauerhaft gültigen Adresse als Pseudo-Adresse,Selecting a temporary or permanent valid address as a pseudo-address,
- Bestimmen einer Gültigkeitsdauer der Pseudo-Adresse.Determining a validity period of the pseudo-address.
Als Pseudo-Adressen ausgewählte lokal gültige Adressen können vorzugsweise im Geltungsbereich auf ein Endsystem oder einen Teil eines Netzes beschränkt sein und u.a. aus den Bereichen für IPv4- Adressen nach RFC 1918 oder den entsprechenden Bereichen für IPv6- Adressen nach RFC 4291 gewählt sein. Weiterhin kann es vorteilhaft sein, reservierte IPv4- oder IPv6-Adressen auszuwählen, etwa IPv4-Class-E-Adressen. Auch kann es vorteilhaft sein, HIP-, kryptographisch gebildete, Multicast-, Broadcast- oder Anycastadressen als Pseu- do-Adressen auszuwählen.Locally valid addresses selected as pseudo-addresses may preferably be restricted in scope to an end system or a part of a network and include from the ranges for IPv4 addresses according to RFC 1918 or the corresponding ranges for IPv6 addresses. Addresses are selected according to RFC 4291. Furthermore, it may be advantageous to select reserved IPv4 or IPv6 addresses, such as IPv4 class E-addresses. It may also be advantageous to select HIP, cryptographically formed, multicast, broadcast or anycast addresses as pseudo addresses.
Es kann vorteilhaft sein, die Gültigkeitsdauer der Pseudo-Adresse so zu wählen, dass unter Berücksichtigung der Anzahl von pro Zeitintervall erhaltenen Namensauflösungsanfragen und der daraufhin ausgewählten voneinander verschiedenen Pseudo-Adressen, auch für zukünftige Anfragen ausreichend voneinander verschiedene Pseudo-Adressen zur Verfügung stehen.It may be advantageous to choose the validity period of the pseudo-address such that, taking into account the number of name resolution requests received per time interval and the then selected mutually different pseudo-addresses, sufficiently different pseudo-addresses are available for future requests.
Weiterhin kann es vorteilhaft sein, die Gültigkeitsdauer der Pseudo-AdresseFurthermore, it may be advantageous to the period of validity of the pseudo-address
- so zu bestimmen, dass die Pseudo-Adresse nur für die gegenwärtige Anfrage verwendet wird;- to be determined so that the pseudo-address is used only for the current request;
- so zu bestimmen, dass die Pseudo-Adresse nur solange zwischengespeichert wird (etwa im Kommunikationsendpunkt oder einem Namensdienstserver), bis das Ermitteln der Adressen durch den mindestens einen Optimierer abgeschlossen ist;- to be determined so that the pseudo-address is only temporarily stored (for example in the communication endpoint or a name service server) until the determination of the addresses by the at least one optimizer is completed;
- auf eine Sekunde oder einen anderen Wert von nicht mehr als einer Minute gesetzt wird.- is set to one second or another value of not more than one minute.
Es kann vorteilhaft sein, eine Pseudo-Adresse nur in Abhängigkeit von mindestens einer statischen oder dynamischen Bedingung zu ermitteln. Eine vorteilhafte Ausgestaltung sieht vor, dass eine Bedingung die aufzulösende Adresse, das vermutete Transportprotokoll und / oder das vermutete Anwendungsprotokoll berücksichtigt.It may be advantageous to determine a pseudo-address only as a function of at least one static or dynamic condition. An advantageous embodiment provides that a condition takes into account the address to be resolved, the assumed transport protocol and / or the suspected application protocol.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:Preferably, a further development of the invention provides that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Konfigurieren eines Optimierers der Optimiereranordnung als zugeordneter Namensdienstserver, wobei das Konfigurieren wahlweise manuell und / oder mittels Selbstkonfiguration ausgeführt wird,Configuring an optimizer of the optimizer arrangement as an associated name service server, the configuration optionally being carried out manually and / or by means of self-configuration,
- logisches Anordnen des Optimierers im Kommunikationspfad des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes zu dem zugeordneten Namensdienstserver,logical arrangement of the optimizer in the communication path of the communication endpoint and / or the further communication endpoint to the associated name service server,
- Stellen von Anfragen durch den Optimierer beim zugeordneten Namensdienstserver undProviding requests by the optimizer to the associated name service server and
- Ausbilden des Optimierers als Forwarder für den zugeordneten Namensdienstserver. Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:Form the optimizer as a forwarder for the associated name service server. In an advantageous embodiment of the invention, it may be provided that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Ermitteln einer zugeordneten Antwort auf eine Anfrage des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes,Determining an assigned response to a request of the communication endpoint and / or the further communication endpoint,
- Delegieren des Ermitteins einer zugeordneten Antwort an einen anderen Optimierer,Delegate the determination of an assigned response to another optimizer,
- Übertragen der ermittelten zugeordneten Antwort zwischen Optimierern der Optimiereranordnung, wobei die Übermittlung zwischen zwei Optimierern, von einem an mehrere Optimierer, von mehreren Optimierern an einen Optimierer und / oder von mehreren Optimierern an mehrere Optimierer verlaufen kann,Transferring the determined assigned response between optimizers of the optimizer arrangement, wherein the transmission can run between two optimizers, from one to several optimizers, from several optimizers to an optimizer and / or from several optimizers to several optimizers,
- Weiterleiten der ermittelten Antwort an Namensdienstserver und / oder Kommunikationsendpunkte,Forwarding the determined response to name service servers and / or communication endpoints,
- Puffern zumindest eines Teils der Anfrage in der Optimiereranordnung,Buffering at least part of the request in the optimizer arrangement,
- Puffern zumindest eines Teils der ermittelten zugeordneten Antwort in der Optimiereranordnung,Buffering at least part of the determined assigned response in the optimizer arrangement,
- Puffern der Abbildung von zumindest einem Teil der Anfrage auf zumindest einen Teil der zugeordneten Antwort,Buffering the mapping of at least a portion of the request to at least a portion of the associated response,
- Verwenden einer gepufferten zugeordneten Antwort zur Beantwortung einer Anfrage,Use a buffered associated answer to answer a request
- Zusammenfassen mindestens zweier Antworten auf mindestens eine Namensdienstanfrage in einer Antwort und / oder mindestens zweier Namensdienstanfragen in einer Anfrage,Summarizing at least two responses to at least one name service request in a response and / or at least two name service requests in a request,
- Pro-aktives Auffrischen der gepufferten zugeordneten Antwort,Proactively refreshing the buffered associated response,
- Bereitstellen von Gültigkeitsinformationen betreffend eine Gültigkeitsdauer der gepufferten Antwort,Providing validity information regarding a validity period of the buffered response,
- Bestimmen der Gültigkeitsinformationen betreffend eine Gültigkeitsdauer der gepufferten Antwort durch statische Konfiguration, durch dynamisch ermittelte Werte, durch Messen der zu erwartenden Umlaufzeit (Round-trip Time, RTT) zu einem Namensdienstserver und / oder durch das Anwendungsprotokoll bestimmte Werte,Determination of the validity information concerning a validity period of the buffered response by static configuration, by dynamically determined values, by measuring the expected round-trip time (RTT) to a name service server and / or values determined by the application protocol,
- Verändern - verlängern oder verkürzen - der Gültigkeitsdauer einer Antwort,- change - extend or shorten - the validity period of an answer,
- Bestimmen der Gültigkeitsdauer, so dass die Antwort nur für die vorliegende Anfrage verwendet wird,Determining the validity period so that the answer is used only for the present request,
- Austauschen der Gültigkeitsinformationen zwischen Optimierern der Optimiereranordnung, - Verwenden der gepufferten zugeordneten Antwort über einen zugeordneten Gültigkeitszeitpunkt hinaus,Exchanging the validity information between optimizers of the optimizer arrangement, Using the buffered associated response beyond an associated validity time,
- Verzögern des Ermitteins einer Pseudo-Adresse,Delaying the establishment of a pseudo-address,
- Verzögern des Erzeugens einer Antwort,Delaying the generation of a response,
- Verzögern des Sendens einer Antwort, auch wenn diese bereits vorliegt,Delaying the sending of a reply, even if it already exists,
- Initiieren eines Wartezustands beim Kommunikationsendpunkt,Initiate a wait state at the communication endpoint,
- Senden einer unvollständigen Antwort,- sending an incomplete answer,
- Senden einer Antwort, von der erwartet wird, dass sie zu einer Folgeanfrage führt,- sending a response that is expected to lead to a follow-up request,
- Senden einer Antwort, die eine Indirektion enthält, die auf einen anderen Optimierer, eine andere Optimiererkomponente oder denselben Optimierer und / oder einen anderen Namensdienst verweist und / oder ein anderes Namensdienstprotokoll verweist,Sending a response containing an indirection referencing another optimizer, optimizer, optimizer and / or name service and / or referencing another naming service protocol,
- Senden einer Antwort, die zur erneuten Stellen einer Anfrage (optional nach Verstreichen eines Zeitintervalls) auffordert, wobei eine solche Antwort im Datendienst und / oder im Namensdienst formuliert werden kann,Sending a response requesting the resubmit of a request (optionally after elapse of a time interval), such response being formulated in the data service and / or the name service,
- Verzögern des Aufbaus einer Kommunikationsverbindung und / oder der Weiterleitung eines Datenpakets.Delaying the establishment of a communication connection and / or the forwarding of a data packet.
Eine bevorzugte Ausgestaltung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Erkennen ob ein Pakete mindestens eine Pseudo-Adresse enthält,Detecting whether a packet contains at least one pseudo-address,
- Erkennen ob ein Pakete keine Pseudo-Adressen enthält,Detecting if a packet does not contain pseudo-addresses
- Erkennen ob ein Paket die Adresse nicht mindestens einmal enthält,- recognize if a package does not contain the address at least once,
- Erkennen ob ein Paket die Adresse nicht enthält,- recognize if a package does not contain the address,
- Erkennen ob ein Paket mindestens eine weitere Adresse enthält, wobei eine weitere Adresse eine Adresse ist, die keine Pseudo-Adresse und auch nicht die Adresse ist,Detecting whether a packet contains at least one further address, where another address is an address which is not a pseudo-address and also not the address,
- Erkennen ob ein Paket keine weiteren Adressen enthält,- recognize if a package contains no further addresses,
- Erkennen ob ein Paket für einen bestimmten Kommunikationsendpunkt bestimmt ist und / oder von diesem stammt,Detecting whether a packet is destined for and / or originating from a particular communication endpoint,
- Erkennen ob ein Paket für ein gegebenes Subnetz bzw. einen Adreßbereich bestimmt ist und / oder aus diesem stammt,Detecting whether a packet is destined for and / or originating from a given subnet or address range,
- Ermitteln einer (passenden) Pseudo-Adresse zu der Adresse,Determining a (suitable) pseudo-address to the address,
- Ermitteln einer (passenden) weiteren Adresse zu der Adresse, - Ermitteln einer (passenden) weiteren Adresse zu einer Pseudo-Adresse,Determining a (suitable) further address to the address, Determining a (suitable) further address to a pseudo-address,
- Ermitteln der Adresse zu einer Pseudo-Adresse,Determining the address to a pseudo-address,
- Ersetzen mindestens einer Pseudo-Adresse durch die Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Protokollheader(n) einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one pseudo-address by the address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of one or more protocol layers and / or the application data of the data service and / or a name service;
- Ersetzen mindestens einer Pseudo-Adresse durch eine weitere Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Proto- kollheader(n) einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one pseudo-address with another address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of one or more protocol layers and / or the application data of the data service and / or a name service;
- Ersetzen mindestens einer weiteren Adresse durch die Adresse in mindestens einem Paket durch den mindestens einen der ein oder mehreren Optimierer in dem/den Protokollhea- der(n) von Paketen einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one further address by the address in at least one packet by the at least one of the one or more optimizers in the protocol header (s) of packets of one or more protocol layers and / or the application data of the data service and / or a name service ;
- Ersetzen mindestens eines Vorkommens der Adresse durch eine passende Pseudo-Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Protokollheader(n) einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one occurrence of the address with a matching pseudo-address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of one or more protocol layers and / or the application data of the data service and / or a name service;
- Ersetzen mindestens eines Vorkommens der Adresse durch eine passende weitere Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Protokollheader(n) von Paketen einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one occurrence of the address with a matching further address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of packets of one or more protocol layers and / or the application data of the data service and / or a name service ;
- Ersetzen mindestens einer weiteren Adresse durch eine passende Pseudo-Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Protokollheader(n) einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one further address by a matching pseudo-address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of one or more protocol layers and / or the application data of the data service and / or a name service;
- Weiterleiten von mindestens einem Paket, das eine Pseudo-Adresse enthält, ohne die Pseudo-Adresse zu ersetzen,Forwarding at least one packet containing a pseudo-address without replacing the pseudo-address,
- Weiterleiten von mindestens einem Paket, das die Adresse enthält, ohne die Adresse zu ersetzen,Forwarding at least one packet containing the address without replacing the address,
- Weiterleiten von mindestens einem Paket, das eine weitere Adresse enthält, ohne die weitere Adresse zu ersetzen, - Weiterleiten von mindestens einem Paket, das keine Pseudo-Adresse enthält, ohne diese Adresse(n) zu ersetzen,Forwarding at least one packet containing another address without replacing the further address, Forwarding at least one packet that does not contain a pseudo-address without replacing that address (es),
- Weiterleiten von mindestens einem Paket, das nicht die Adresse enthält, ohne diese Adres- se(n) zu ersetzen,Forwarding at least one packet that does not contain the address without replacing this address (es),
- Weiterleiten von mindestens einem Paket, das keine weitere Adresse enthält, ohne diese Adresse(n) zu ersetzen,Forwarding at least one packet which contains no further address without replacing this address (es),
- Entscheiden über das Ersetzen oder Nicht-Ersetzen einer Adresse aufgrund der in einem oder mehreren Paketen vorgefundenen Kombination von Adressen (Pseudo-, weitere Adressen, die Adresse), aufgrund der Adreßfamilie mindestens einer der vorgefundenen Adressen, aufgrund des Adreßbereichs mindestens einer der vorgefundenen Adressen, aufgrund des verwendeten Netz-, Transport-, Anwendungs- und / oder VPN-Protokolls und / oder aufgrund von statisch konfigurierten und / oder dynamisch ermittelten Regeln,Decide on the replacement or non-replacement of an address due to the combination of addresses found in one or more packets (pseudo, other addresses, the address), due to the address family of at least one of the found addresses, due to the address range of at least one of the found addresses , due to the used network, transport, application and / or VPN protocol and / or due to statically configured and / or dynamically determined rules,
- Entscheiden über das Ersetzen oder Nicht-Ersetzen einer Adresse in Abhängigkeit davon, welcher der beteiligten Kommunikationsendpunkte die Kommunikationsbeziehung initiiert hat, zu der ein Paket gehört,Deciding on the replacement or non-replacement of an address depending on which of the involved communication endpoints initiated the communication relationship to which a packet belongs,
- Entscheiden über das Ersetzen oder Nicht-Ersetzen einer Adresse in Abhängigkeit von der Kommunikationsrichtung eines Datenpakets,Deciding on the replacement or non-replacement of an address depending on the communication direction of a data packet,
- Entscheiden über das Ersetzen oder Nicht-Ersetzen eines Adresse in Abhängigkeit davon, ob ein Optimierer zurvor eine Adreßauflösung für die zu ersetzende Adresse durchgeführt und / oder eine Pseudo-Adresse und / oder eine weitere Adresse ermittelt hat,Deciding on the replacement or non-replacement of an address depending on whether an optimizer has previously performed an address resolution for the address to be replaced and / or has determined a pseudo-address and / or a further address,
- Entscheiden über das Ersetzen oder Nicht-Ersetzen einer Adresse in Abhängigkeit davon, ob das Paket zu einer bestehenden oder eine Gruppe von Kommunikationsbeziehung gehört.Decide on the replacement or non-replacement of an address depending on whether the packet belongs to an existing or a group of communication relationship.
Weiterhin kann es vorteilhalt sein, einen Optimierer oder eine Komponente eines Optimierers mit einem Network Address Translator (NAT) zu kombinieren.Furthermore, it may be advantageous to combine an optimizer or a component of an optimizer with a Network Address Translator (NAT).
Nachfolgend werden vorteilhafte Ausgestaltungen zum zweiten Aspekt der Erfindung näher erläutert.In the following, advantageous embodiments of the second aspect of the invention will be explained in more detail.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Bereitstellen der Informationen über das Kommunikationsverhalten wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst: - passives Überwachen der Kommunikationsbeziehung,A preferred development of the invention provides that the provision of the information about the communication behavior comprises at least one step selected from the following group of steps: - passive monitoring of the communication relationship,
- Interpretieren des Inhalts eines ausgewählten Datenaustausches des Datenstromes,Interpreting the content of a selected data exchange of the data stream,
- Bestimmen eines von dem Kommunikationsendpunkt und / oder dem weiteren Kommunikationsendpunkt genutzten Anwendungsprotokolls aus einer Namensdienstanfrage und Verwenden des bestimmten Anwendungsprotokolls durch die Optimiereranordnung undDetermining an application protocol used by the communication endpoint and / or the further communication endpoint from a name service request and using the particular application protocol by the optimizer arrangement and
- Ausbilden eines Datendienst-Zwischensystems, welches konfiguriert ist, in der Optimiereranordnung lokale Datensätze zur Vorhersage von Anfragen des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes zu erzeugen.- Forming a data service subsystem, which is configured to generate in the optimizer arrangement local data records for the prediction of requests of the communication endpoint and / or the further communication endpoint.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung Schritte zum Erzeugen von mehreren Anfragen durch die Optimiereranordnung und / oder zum Synthetisieren von Antworten zu den Anfragen in einer Antwort an den Kommunikationsendpunkt und / oder den weiteren Kommunikationsendpunkt umfasst.In an expedient embodiment of the invention, it can be provided that optimizing the packet-oriented data transmission comprises steps for generating a plurality of requests by the optimizer arrangement and / or for synthesizing responses to the requests in a response to the communication endpoint and / or the further communication endpoint.
Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Unterdrücken von Folgeanfragen umfasst.An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for suppressing subsequent requests.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Vorhersagen einer zukünftigen Anfrage des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes umfasst.Preferably, a further development of the invention provides that optimizing the packet-oriented data transmission comprises a step for predicting a future request of the communication endpoint and / or the further communication endpoint.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Vorabstellen einer zu erwartenden Anfrage des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes umfasst.In an advantageous embodiment of the invention, it can be provided that optimizing the packet-oriented data transmission comprises a step for preprogramming an expected request of the communication end point and / or of the further communication end point.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Wiederholen von verloren gegangenen Anfragen oder Antworten und / oder des redundanten Übertragens von zumindest einem Paket der Anfragen und / oder Antworten umfasst. Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Austauschen von Informationen zwischen Optimierern aus der Optimiereranordnung umfasst. Dabei kann es vorteilhaft sein, dass ein Optimierer Namensauflösungsinformationen oder -antworten pro-aktiv an einen anderen Optimierer und / oder einen Namensdienstserver und / oder einen Kommunikationsendpunkt übermittelt, bevor dieser eine entsprechende Anfrage gestellt hat.A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for repeating lost requests or replies and / or redundantly transmitting at least one packet of the requests and / or replies. In an expedient embodiment of the invention, it can be provided that optimizing the packet-oriented data transmission comprises a step for exchanging information between optimizers from the optimizer arrangement. In this case, it may be advantageous for an optimizer to pro-actively transmit name resolution information or responses to another optimizer and / or a name service server and / or a communication endpoint before it has made a corresponding request.
Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung wenigstens einen Schritt aus folgender Gruppe von Schritten umfasst: eine Datendienstoptimierung; einer Beobachtung eines Datendienstes oder das Parsieren zumindest eines Datenpakets eines Datendienstes.An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises at least one step from the following group of steps: data service optimization; an observation of a data service or the parsing of at least one data packet of a data service.
Eine vorteilhafte Ausbildung der Erfindung sieht vor, dass die Datendienstoptimierung oder - beobachtung oder -parsierung eines der Protokolle HTTP, SOAP, RTSP, SIP, XMPP, Flash oder andere Anwendungsprotokolle betrifft.An advantageous embodiment of the invention provides that the data service optimization or observation or parsing concerns one of the protocols HTTP, SOAP, RTSP, SIP, XMPP, Flash or other application protocols.
Eine bevorzugte Ausgestaltung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises at least one step selected from the following group of steps:
- Analysieren von Nachrichten - beispielsweise Anfragen und / oder Antworten und / oder Benachrichtigungen - des Anwendungsprotokolls durch einen der mindestens einen Optimierer;Analyzing messages - for example requests and / or replies and / or notifications - of the application protocol by one of the at least one optimizer;
- Ermitteln von Namen aus den Inhalten der analysierten Nachrichten des Anwendungsprotokolls, für die potentiell zukünftig Namensdienstanfragen durch zu erwarten sind;Determining names from the contents of the analyzed messages of the application log for which name service requests are likely to be expected in the future;
- Analysieren einer HTML-Seite, eines Style-Sheets, eines XML-Dokuments, einer SDP- Nachricht (zum Beispiel nach RFC 2327 bzw. 4566), einer SOAP-Nachricht, einer MIME- Nachricht, einer FTP-, SIP-, HTTP-, RTSP-, Flash- oder XMPP-Nachricht oder von Zertifikaten auf Inhalte, die als DNS-Namen oder Namen anderer Namensdienste interpretiert werden können;Analyze an HTML page, a style sheet, an XML document, an SDP message (for example, according to RFC 2327 or 4566), a SOAP message, a MIME message, an FTP, SIP, HTTP , RTSP, Flash or XMPP message or certificates on content that can be interpreted as DNS names or names of other naming services;
- Analysieren einer HTML-Seite auf Verweise auf eingebettete Objekte, auf verlinkte Seiten, auf Style-Sheets und / oder auf Frames;- Analyze an HTML page for references to embedded objects, linked pages, style sheets and / or frames;
- Rekursives Analysieren eingebetteter, verlinkter oder referenzierter Objekte; - Pro-aktives Stellen von Namensdienstanfragen für mindestens einen der ermittelten Namen;- recursively analyze embedded, linked or referenced objects; - Pro-actively providing name service requests for at least one of the identified names;
- Analysieren von Namensdienstanfragen und -antworten auf Hinweise auf die zu erwartenden Anwendungsprotokolle;- analyzing name service requests and responses for indications of the expected application protocols;
- Analysieren von Alias-, SRV-, NAPTR-, A-, AAAA-, TXT- oder MX- Anfragen auf Hinweise auf zu erwartende Anwendungsprotokolle;- Analyze alias, SRV, NAPTR, A, AAAA, TXT, or MX requests for indications of expected application logs;
- Schließen aus Namen, die mit „www" beginnen auf die Nutzung des Protokolls HTTP oder HTTPS;- closing from names that start with "www" on the use of the protocol HTTP or HTTPS;
- Schließen aus Namen, die mit „ftp" beginnen auf die Nutzung des Protokolls FTP;- closing out names that begin with "ftp" on the use of the FTP protocol;
- Schließen aus Namen, die einen Dienst oder Dienstanbieter bezeichnen, was aus einer statisch konfigurierten und / oder dynamisch ermittelten Tabelle geschehen kann, auf das verwendete Anwendungsprotokoll;Closing from names that designate a service or service provider, which can be done from a statically configured and / or dynamically determined table, to the application protocol used;
- Initiieren einer Datendienstoptimierung für das erwartete Anwendungsprotokoll zu dem durch den Namen angegebenen Endpunkt (zum Beispiel Server);Initiate data service optimization for the expected application log to the endpoint specified by the name (for example, server);
- Initiieren von HTTP-Prefetching zu einem vermuteten Webserver und pro-aktives Anfragen dort vermuteten und vermutlich zukünftig angefragter Seiten ,,/index.htm", ,,/index.html", „/", ,,/favicon.ico", ,,/style.css" und / oder anderer vermuteter Objekte,- initiate HTTP prefetching to a suspected web server and proactively request there suspected and presumably future requested pages "/ index.htm", "/ index.html", "/", "/ favicon.ico", ,, / style.css "and / or other suspected objects,
- Initiieren von Anfragen eines Anwendungsprotokolls zu einem vermuteten Kommunikationsendpunkt pro-aktives Anfragen dort vermuteten und vermutlich zukünftig angefragter Objekte und / oder durchgeführter Operationen,Initiating requests of an application protocol to a presumed communication endpoint pro-active querying there suspected and presumably future requested objects and / or performed operations,
- Parsieren und / oder Interpretieren und / oder Beobachten und / oder Analyseren der Antworten und / oder Nachrichten auf die durch den Optimierer gestellten Anfragen,- Parsing and / or interpreting and / or observing and / or analyzing the responses and / or messages to requests made by the optimizer,
- Wiederholtes (iteratives und / oder rekursives) Durchführen eines oder mehrere der hier genannten Schritte.- Repeated (iterative and / or recursive) performing one or more of the steps mentioned here.
Eine zweckmäßige Ausgestaltung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:An expedient embodiment of the invention provides that optimizing the packet-oriented data transmission comprises at least one step selected from the following group of steps:
- Analysieren von Namensdienstanfragen und -antworten auf Hinweise auf zukünftige Namensdienstanfragen, etwa auf DNS-Namen oder Namen anderer Namensdienste;- analyzing name service requests and responses for indications of future name service requests, such as DNS names or names of other name services;
- Schließen aus einer Anfrage nach einer IPv4- Adresse auf eine bevorstehende Anfrage nach einer IPv6-Adresse; - Schließen aus einer Anfrage nach einer IPv6- Adresse auf eine bevorstehende Anfrage nach einer IPv4- Adresse;- closing from a request for an IPv4 address for an upcoming request for an IPv6 address; - closing from a request for an IPv6 address to an upcoming request for an IPv4 address;
- Schließen aus einer Anfrage nach einem Eintrag eines Namensdienstes auf einen anderen Eintrag und / oder einer Antwort auf diese Anfrage auf mindestens eine weitere Anfrage;Closing from a request for an entry of a name service to another entry and / or an answer to this request for at least one further request;
- Schließen aus einer Anfrage nach einem Eintrag eines Namensdienstes und / oder einer Antwort auf diese Anfrage auf mindestens eine weitere Anfrage an einen anderen Namensdienst;Closing from a request for an entry of a name service and / or a response to this request to at least one further request to another name service;
- Schließen aus einer Anfrage nach einem ALIAS-, TXT-, MX-, SRV-, NAPTR- oder weiteren DNS-Eintrag und / oder einer Antwort auf diese Anfrage auf mindestens eine weitere Anfrage;Closing from a request for an ALIAS, TXT, MX, SRV, NAPTR or other DNS entry and / or response to this request for at least one further request;
- Pro-aktives Ermitteln der Antworten auf mindestens einen der zukünftig erwarteten Namensdienstanfragen.Proactively determine the responses to at least one of the expected future name service requests.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung weiterhin die folgenden Schritte umfasst:Preferably, a further development of the invention provides that optimizing the packet-oriented data transmission further comprises the following steps:
- Ermitteln der dem weiteren Kommunikationsendpunkt zugeordneten Adresse durch die Optimiereranordnung,Determining the address assigned to the further communication end point by the optimizer arrangement,
- Erzeugen eines im Rahmen der paketorientierten Datenübertragung von dem Kommunikationsendpunkt zu dem weiteren Kommunikationsendpunkt zu übertragenden Datenpaketes durch den Kommunikationsendpunkt unter Einbeziehung der Pseudo-Adresse,Generating a data packet to be transmitted as part of the packet-oriented data transmission from the communication end point to the further communication end point by the communication endpoint, including the pseudo-address,
- Empfangen des Datenpaketes durch die Optimiereranordnung,Receiving the data packet by the optimizer arrangement,
- Ersetzen der Pseudo-Adresse in dem Datenpaket durch die dem weiteren Kommunikationsendpunkt zugeordneten Adresse und- Replacing the pseudo-address in the data packet by the further communication endpoint associated address and
- Senden des Datenpaketes mit der dem weiteren Kommunikationsendpunkt zugeordneten Adresse von der Optimiereranordnung an den weiteren Kommunikationsendpunkt.- Sending the data packet with the further communication endpoint associated address from the optimizer arrangement to the other communication endpoint.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:Preferably, a further development of the invention provides that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Ermitteln einer zugeordneten künftigen Antwort auf eine Anfrage des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes,Determining an assigned future response to a request of the communication endpoint and / or the further communication endpoint,
- Delegieren des Ermitteins einer zugeordneten Antwort an einen anderen Optimierer, - Übertragen der ermittelten zugeordneten Antwort zwischen Optimierern der Optimiereranordnung, wobei die Übermittlung zwischen zwei Optimierern, von einem an mehrere Optimierer, von mehreren Optimierern an einen Optimierer und / oder von mehreren Optimierern an mehrere Optimierer verlaufen kann,Delegate the determination of an assigned response to another optimizer, Transferring the determined assigned response between optimizers of the optimizer arrangement, wherein the transmission can run between two optimizers, from one to several optimizers, from several optimizers to an optimizer and / or from several optimizers to several optimizers,
- Weiterleiten der ermittelten Antwort an Namensdienstserver und / oder Kommunikationsendpunkte,Forwarding the determined response to name service servers and / or communication endpoints,
- Puffern zumindest eines Teils der Anfrage in der Optimiereranordnung,Buffering at least part of the request in the optimizer arrangement,
- Puffern zumindest eines Teils der ermittelten zugeordneten Antwort in der Optimiereranordnung,Buffering at least part of the determined assigned response in the optimizer arrangement,
- Puffern der Abbildung von zumindest einem Teil der Anfrage auf zumindest einen Teil der zugeordneten Antwort,Buffering the mapping of at least a portion of the request to at least a portion of the associated response,
- pro-aktives Auffrischen der gepufferten zugeordneten Antwort,proactively refreshing the buffered associated response,
- Verwenden einer gepufferten zugeordneten Antwort zur Beantwortung einer Anfrage,Use a buffered associated answer to answer a request
- Zusammenfassen mindestens zweier Antworten auf mindestens eine Namensdienstanfrage in einer Antwort und / oder mindestens zweier Namensdienstanfragen in einer Anfrage,Summarizing at least two responses to at least one name service request in a response and / or at least two name service requests in a request,
- Bereitstellen von Gültigkeitsinformationen betreffend eine Gültigkeitsdauer der gepufferten zugeordneten Antwort,Providing validity information regarding a validity period of the buffered assigned response,
- Bestimmen der Gültigkeitsinformationen betreffend eine Gültigkeitsdauer der gepufferten Antwort durch statische Konfiguration, durch dynamisch ermittelte Werte, durch Messen der zu erwartenden Umlaufzeit (Round-trip Time, RTT) zu einem Namensdienstserver und / oder durch das Anwendungsprotokoll bestimmte Werte;Determining the validity information concerning a validity period of the buffered response by static configuration, by dynamically determined values, by measuring the expected round-trip time (RTT) to a name service server and / or values determined by the application protocol;
- Verändern - verlängern oder verkürzen - der Gültigkeitsdauer einer Antwort- change - extend or shorten - the validity of a response
- Bestimmen der Gültigkeitsdauer, so dass die Antwort nur für die vorliegende Anfrage verwendet wird,Determining the validity period so that the answer is used only for the present request,
- Austauschen der Gültigkeitsinformationen zwischen Optimierern der Optimiereranordnung,Exchanging the validity information between optimizers of the optimizer arrangement,
- Verwenden der gepufferten zugeordneten Antwort über einen zugeordneten Gültigkeitszeitpunkt hinaus,Using the buffered associated response beyond an associated validity time,
- Verzögern des Ermitteins einer Pseudo- Adresse,Delaying the establishment of a pseudo-address,
- Verzögern des Erzeugens einer Antwort,Delaying the generation of a response,
- Verzögern des Sendens einer Antwort, auch wenn diese bereits vorliegt,Delaying the sending of a reply, even if it already exists,
- Initiieren eines Wartezustands beim Kommunikationsendpunkt,Initiate a wait state at the communication endpoint,
- Senden einer unvollständigen Antwort, - Senden einer Antwort, von der erwartet wird, dass sie zu einer Folgeanfrage führt,- sending an incomplete answer, - sending a response that is expected to lead to a follow-up request,
- Senden einer Antwort, die eine Indirektion enthält, die auf einen anderen Optimierer, eine andere Optimiererkomponente oder denselben Optimierer und / oder einen anderen Namensdienst verweist und / oder ein anderes Namensdienstprotokoll verweist,Sending a response containing an indirection referencing another optimizer, optimizer, optimizer and / or name service and / or referencing another naming service protocol,
- Senden einer Antwort, die zur erneuten Stellen einer Anfrage (optional nach Verstreichen eines Zeitintervalls) auffordert, wobei eine solche Antwort im Datendienst und / oder im Namensdienst formuliert werden kann,Sending a response requesting the resubmit of a request (optionally after elapse of a time interval), such response being formulated in the data service and / or the name service,
- Verzögern des Aufbaus einer Kommunikationsverbindung und / oder der Weiterleitung eines Datenpakets.Delaying the establishment of a communication connection and / or the forwarding of a data packet.
Eine zweckmäßige Ausgestaltung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung durch Interaktion eines Optimierers mit einem regulären Namensdienstserver geschieht, wobei ein Optimierer mindestens einen der folgenden Schritte ausführt:An expedient embodiment of the invention provides that the optimization of the packet-oriented data transmission takes place by interaction of an optimizer with a regular name service server, wherein an optimizer performs at least one of the following steps:
- Pro-aktives Ermitteln einer Antwort auf eine zukünftig erwartete Namensdienstanfrage;Proactively determining a response to a future expected name service request;
- Stellen einer ewarteten Anfrage bei einem regulären Namensdienstserver durch den Optimierer,The optimizer makes an expected request to a regular name service server,
- Beantworten der durch regulären Namensdienstserver gestellten bzw. weitergeleiteten erwarteten Anfrage durch den oder einen anderen Optimierer,Responding to the expected request made by regular name service servers by the or another optimizer,
- Mitteilung einer geeigneten Gültigkeitsdauer für die Antwort durch den beantwortenden Optimierer an den regulären Namensdienstserver.Notification of a suitable validity period for the response by the answering optimizer to the regular name service server.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:In an advantageous embodiment of the invention, it may be provided that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Konfigurieren eines Optimierers der Optimiereranordnung als zugeordneter Namensdienstserver, wobei das Konfigurieren wahlweise manuell und / oder mittels Selbstkonfiguration ausgeführt wird,Configuring an optimizer of the optimizer arrangement as an associated name service server, the configuration optionally being carried out manually and / or by means of self-configuration,
- logisches Anordnen des Optimierers im Kommunikationspfad des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes zu dem zugeordneten Namensdienstserver,logical arrangement of the optimizer in the communication path of the communication endpoint and / or the further communication endpoint to the associated name service server,
- Stellen von Anfragen durch den Optimierer beim zugeordneten Namensdienstserver undProviding requests by the optimizer to the associated name service server and
- Ausbilden des Optimierers als Forwarder für den zugeordneten Namensdienstserver. Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Erzeugen von Antworten auf Namensauflösungsanfragen umfasst, wobei weiterhin die folgenden Schritte vorgesehen sind:Form the optimizer as a forwarder for the associated name service server. A preferred development of the invention provides that optimizing the packet-oriented data transmission comprises a step for generating replies to name resolution requests, wherein the following steps are furthermore provided:
- Ausführen eines Optimierungsmechanismus, welcher die folgenden Schritte umfasst:Execute an optimization mechanism comprising the following steps:
- Absenden einer Namensauflösungsanfrage betreffend eine dem weiteren Kommunikationsendpunkt in dem Netz zugeordnete Adresse durch den Kommunikationsendpunkt,Sending a name resolution request concerning an address assigned to the further communication end point in the network by the communication endpoint,
- Empfangen und Auswerten der Namensauflösungsanfrage durch die Optimiereranordnung,Receiving and evaluating the name resolution request by the optimizer arrangement,
- Erzeugen einer oder mehrerer Antwortnachrichten auf die Namensauflösungsanfrage durch die Optimiereranordnung undGenerating one or more response messages to the name resolution request by the optimizer arrangement and
- Übersenden der einen oder der mehreren Antwortnachrichten an den Kommunikationsendpunkt, wobei die eine oder die mehreren Antwortnachricht(en)Transmitting the one or more response messages to the communication endpoint, the one or more response messages being sent
- frei von der Adresse ist und- is free from the address and
- eine einen Wartezustand für den Kommunikationsendpunkt initiierende Wartenachricht und / oder eine Pseudo-Adresse umfasst, welche von der Optimiereranordnung lokal ausgewählt und von der dem weiteren Kommunikationsendpunkt zugeordneten Adresse verschieden ist,a waiting message for the communication endpoint initiating waiting message and / or a pseudo-address comprises, which is selected locally by the optimizer arrangement and different from the further communication endpoint associated address,
- Initiieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt.Initiate the packet-oriented data transmission between the communication endpoint and the further communication endpoint.
Eine vorteilhafte Ausgestaltung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung die folgenden weiteren Schritte umfasst:An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises the following further steps:
- Ermitteln der dem weiteren Kommunikationsendpunkt zugeordneten Adresse durch die Optimiereranordnung,Determining the address assigned to the further communication end point by the optimizer arrangement,
- Erzeugen eines im Rahmen der paketorientierten Datenübertragung von dem Kommunikationsendpunkt zu dem weiteren Kommunikationsendpunkt zu übertragenden Datenpaketes durch den Kommunikationsendpunkt unter Einbeziehung der Pseudo-Adresse,Generating a data packet to be transmitted as part of the packet-oriented data transmission from the communication end point to the further communication end point by the communication endpoint, including the pseudo-address,
- Empfangen des Datenpaketes durch die Optimiereranordnung,Receiving the data packet by the optimizer arrangement,
- Ersetzen der Pseudo-Adresse in dem Datenpaket durch die dem weiteren Kommunikationsendpunkt zugeordneten Adresse und - Senden des Datenpaketes mit der dem weiteren Kommunikationsendpunkt zugeordneten Adresse von der Optimiereranordnung an den weiteren Kommunikationsendpunkt.- Replacing the pseudo-address in the data packet by the further communication endpoint associated address and - Sending the data packet with the further communication endpoint associated address from the optimizer arrangement to the other communication endpoint.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:In an expedient embodiment of the invention, it may be provided that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Auswählen einer lokalen, regionalen, und / oder globalen Adresse als Pseudo- Adresse,Selecting a local, regional, and / or global address as a dummy address,
- Auswählen einer anderen Adresse als Pseudo- Adresse,Selecting an address other than a dummy address,
- Auswählen einer zufällig gewählten Adresse als Pseudo-Adresse,Selecting a randomly chosen address as a pseudo-address,
- Auswählen einer Adresse aus einem reservierten Adressbereich als Pseudo-Adresse,Selecting an address from a reserved address range as a pseudo-address,
- Auswählen einer vorübergehend oder dauerhaft gültigen Adresse als Pseudo-Adresse,Selecting a temporary or permanent valid address as a pseudo-address,
- Bestimmen einer Gültigkeitsdauer der Pseudo-Adresse.Determining a validity period of the pseudo-address.
Als Pseudo-Adressen ausgewählte lokal gültige Adressen können vorzugsweise im Geltungsbereich auf ein Endsystem oder einen Teil eines Netzes beschränkt sein und u.a. aus den Bereichen für IPv4- Adressen nach RFC 1918 oder den entsprechenden Bereichen für IPv6- Adressen nach RFC 4291 gewählt sein. Weiterhin kann es vorteilhaft sein, reservierte IPv4- oder IPv6-Adressen auszuwählen, etwa IPv4-Class-E-Adressen. Auch kann es vorteilhaft sein, HIP-, kryptographisch gebildete, Multicast-, Broadcast- oder Anycastadressen als Pseudo-Adressen auszuwählen.Locally valid addresses selected as pseudo-addresses may preferably be limited in scope to an end system or part of a network, and others. be selected from the ranges for IPv4 addresses according to RFC 1918 or the corresponding ranges for IPv6 addresses according to RFC 4291. Furthermore, it may be advantageous to select reserved IPv4 or IPv6 addresses, such as IPv4 class E-addresses. It may also be advantageous to select HIP, cryptographically formed, multicast, broadcast or anycast addresses as pseudo-addresses.
Es kann vorteilhaft sein, die Gültigkeitsdauer der Pseudo-Adresse so zu wählen, dass unter Berücksichtigung der Anzahl von pro Zeitintervall erhaltenen Namensauflösungsanfragen und der daraufhin ausgewählten voneinander verschiedenen Pseudo-Adressen, auch für zukünftige Anfragen ausreichend voneinander verschiedene Pseudo-Adressen zur Verfügung stehen.It may be advantageous to choose the validity period of the pseudo-address such that, taking into account the number of name resolution requests received per time interval and the then selected mutually different pseudo-addresses, sufficiently different pseudo-addresses are available for future requests.
Weiterhin kann es vorteilhaft sein, die Gültigkeitsdauer der Pseudo-AdresseFurthermore, it may be advantageous to the period of validity of the pseudo-address
- so zu bestimmen, dass die Pseudo-Adresse nur für die gegenwärtige Anfrage verwendet wird,to be determined so that the pseudo-address is used only for the current request,
- so zu bestimmen, dass die Pseudo-Adresse nur solange zwischengespeichert wird (etwa im Kommunikationsendpunkt oder einem Namensdienstserver), bis das Ermitteln der Adressen durch den mindestens einen Optimierer abgeschlossen ist,to be determined so that the pseudo-address is buffered only as long as (for example in the communication endpoint or a name service server) until the determination of the addresses by the at least one optimizer is completed,
- auf eine Sekunde oder einen anderen Wert von nicht mehr als einer Minute gesetzt wird. Es kann vorteilhaft sein, eine Pseudo-Adresse nur in Abhängigkeit von mindestens einer statischen oder dynamischen Bedingung zu ermitteln. Eine vorteilhafte Ausgestaltung sieht vor, dass eine Bedingung die aufzulösende Adresse, das vermutete Transportprotokoll und / oder das vermutete Anwendungsprotokoll berücksichtigt.- is set to one second or another value of not more than one minute. It may be advantageous to determine a pseudo-address only as a function of at least one static or dynamic condition. An advantageous embodiment provides that a condition takes into account the address to be resolved, the assumed transport protocol and / or the suspected application protocol.
Eine bevorzugte Ausgestaltung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Erkennen ob ein Paket mindestens eine Pseudo-Adresse enthält,- recognize if a package contains at least one pseudo-address,
- Erkennen ob ein Paket keine Pseudo-Adressen enthält,- recognize if a package contains no pseudo-addresses,
- Erkennen ob ein Paket mindestens einmal die Adresse enthält,- recognize if a package contains the address at least once,
- Erkennen ob ein Paket die Adressen nicht enthält,- recognize if a package does not contain the addresses,
- Erkennen ob ein Paket mindestens eine weitere Adresse enthält, wobei eine weitere Adresse eine Adresse ist, die keine Pseudo-Adresse und auch nicht die Adresse ist,Detecting whether a packet contains at least one further address, where another address is an address which is not a pseudo-address and also not the address,
- Erkennen ob ein Paket keine weiteren Adressen enthält,- recognize if a package contains no further addresses,
- Erkennen ob ein Paket für einen bestimmten Kommunikationsendpunkt bestimmt ist und / oder von diesem stammt,Detecting whether a packet is destined for and / or originating from a particular communication endpoint,
- Erkennen ob ein Paket für ein gegebenes Subnetz bzw. einen Adreßbereich bestimmt ist und / oder aus diesem stammt,Detecting whether a packet is destined for and / or originating from a given subnet or address range,
- Ermitteln einer (passenden) Pseudo-Adresse zu der Adresse,Determining a (suitable) pseudo-address to the address,
- Ermitteln einer (passenden) weiteren Adresse zu der Adresse,Determining a (suitable) further address to the address,
- Ermitteln einer (passenden) weiteren Adresse zu einer Pseudo-Adresse,Determining a (suitable) further address to a pseudo-address,
- Ermitteln der Adresse zu einer Pseudo-Adresse,Determining the address to a pseudo-address,
- Ersetzen mindestens einer Pseudo-Adresse durch die Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem / den Protokollheader(n) einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one pseudo-address by the address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of one or more protocol layers and / or the application data of the data service and / or a name service;
- Ersetzen mindestens einer Pseudo-Adresse durch eine weitere Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Proto- kollheader(n) einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes; - Ersetzen mindestens einer weiteren Adresse durch die Adresse in mindestens einem Paket durch den mindestens einen der ein oder mehreren Optimierer in dem/den Protokollhea- der(n) von Paketen einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one pseudo-address with another address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of one or more protocol layers and / or the application data of the data service and / or a name service; Replacing at least one further address by the address in at least one packet by the at least one of the one or more optimizers in the protocol header (s) of packets of one or more protocol layers and / or the application data of the data service and / or a name service ;
- Ersetzen mindestens eines Vorkommens der Adresse durch eine passende Pseudo-Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Protokollheader(n) einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one occurrence of the address with a matching pseudo-address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of one or more protocol layers and / or the application data of the data service and / or a name service;
- Ersetzen mindestens eines Vorkommens der Adresse durch eine passende weitere Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Protokollheader(n) von Paketen einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one occurrence of the address with a matching further address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of packets of one or more protocol layers and / or the application data of the data service and / or a name service ;
- Ersetzen mindestens einer weiteren Adresse durch eine passende Pseudo-Adresse in mindestens einem Paket durch mindestens einen der ein oder mehreren Optimierer in dem/den Protokollheader(n) einer oder mehrerer Protokollschichten und / oder den Anwendungsdaten des Datendienstes und / oder eines Namensdienstes;Replacing at least one further address by a matching pseudo-address in at least one packet by at least one of the one or more optimizers in the protocol header (s) of one or more protocol layers and / or the application data of the data service and / or a name service;
- Weiterleiten von mindestens einem Paket, das eine Pseudo-Adresse enthält, ohne die Pseudo-Adresse zu ersetzen,Forwarding at least one packet containing a pseudo-address without replacing the pseudo-address,
- Weiterleiten von mindestens einem Paket, das die Adresse enthält, ohne die Adresse zu ersetzen,Forwarding at least one packet containing the address without replacing the address,
- Weiterleiten von mindestens einem Paket, das eine weitere Adresse enthält, ohne die weitere Adresse zu ersetzen,Forwarding at least one packet containing another address without replacing the further address,
- Weiterleiten von mindestens einem Paket, das keine Pseudo-Adresse enthält, ohne eine Adresse(n) zu ersetzen,Forwarding at least one packet that does not contain a pseudo-address without replacing an address (es),
- Weiterleiten von mindestens einem Paket, das die Adresse nicht enthält, ohne eine Adres- se(n) zu ersetzen,Forwarding at least one packet which does not contain the address without replacing an address (es),
- Weiterleiten von mindestens einem Paket, das keine weitere Adresse enthält, ohne eine Adresse(n) zu ersetzen,Forwarding at least one packet which contains no further address without replacing an address (es),
- Entscheiden über das Ersetzen oder Nicht-Ersetzen einer Adresse aufgrund der in einem oder mehreren Paketen vorgefundenen Kombination von Adressen (Pseudo-, weitere Adressen, die Adresse), aufgrund der Adreßfamilie mindestens einer der vorgefundenen Adressen, aufgrund des Adreßbereichs mindestens einer der vorgefundenen Adressen, auf- grund des verwendeten Netz-, Transport-, Anwendungs- und / oder VPN-Protokolls und / oder aufgrund von statisch konfigurierten und / oder dynamisch ermittelten Regeln,Decide on the replacement or non-replacement of an address due to the combination of addresses found in one or more packets (pseudo, other addresses, the address), due to the address family of at least one of the found addresses, due to the address range of at least one of the found addresses , on- due to the network, transport, application and / or VPN protocol used and / or due to statically configured and / or dynamically determined rules,
- Entscheiden über das Ersetzen oder Nicht-Ersetzen einer Adresse in Abhängigkeit davon, welcher der beteiligten Kommunikationsendpunkte die Kommunikationsbeziehung initiiert hat, zu der ein Paket gehört,Deciding on the replacement or non-replacement of an address depending on which of the involved communication endpoints initiated the communication relationship to which a packet belongs,
- Entscheiden über das Ersetzen oder Nicht-Ersetzen einer Adresse in Abhängigkeit von der Kommunikationsrichtung eines Datenpakets,Deciding on the replacement or non-replacement of an address depending on the communication direction of a data packet,
- Entscheiden über das Ersetzen oder Nicht-Ersetzen eines Adresse in Abhängigkeit davon, ob ein Optimierer zurvor eine Adreßauflösung für die zu ersetzende Adresse durchgeführt und / oder eine Pseudo- Adresse und / oder eine weitere Adresse ermittelt hat,Deciding on the replacement or non-replacement of an address depending on whether an optimizer has previously performed an address resolution for the address to be replaced and / or has determined a pseudo-address and / or a further address,
- Entscheiden über das Ersetzen oder Nicht-Ersetzen einer Adresse in Abhängigkeit davon, ob das Paket zu einer bestehenden oder eine Gruppe von Kommunikationsbeziehung gehört.Decide on the replacement or non-replacement of an address depending on whether the packet belongs to an existing or a group of communication relationship.
Eine weitere vorteilhafte Ausgestaltung der Erfindung sieht vor, einen Optimierer oder eine Komponente eines Optimierers mit einem Network Address Translator (NAT) zu kombinieren.A further advantageous embodiment of the invention provides for combining an optimizer or a component of an optimizer with a Network Address Translator (NAT).
Nachfolgend werden vorteilhafte Ausgestaltungen zum dritten Aspekt der Erfindung näher erläutert.In the following, advantageous embodiments of the third aspect of the invention will be explained in more detail.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass der Optimierungsmechanismus in wenigstens einer Protokoll-Schicht ausgewählt aus der folgenden Gruppe von Protokoll- Schichten des Protokoll-Schichten-Modells ausgeführt wird: Vermittlungsschicht, Transportschicht und Anwendungsschicht.A preferred development of the invention provides that the optimization mechanism is executed in at least one protocol layer selected from the following group of protocol layers of the protocol layer model: network layer, transport layer and application layer.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:In an expedient embodiment of the invention, it may be provided that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Einfügen einer Vorwärtsfehlerkorrektur-Information mittels eines zusätzlichen Datenpakets in den Datenstrom der paketorientierten Datenübertragung, was wahlweise auf eine Anfrage ausgeführt wird, - Anhängen einer Vorwärtsfehlerkorrektur-Information an ein Datenpaket aus dem Datenstrom der paketorientierten Datenübertragung, was wahlweise auf eine Anfrage ausgeführt wird,Inserting forward error correction information by means of an additional data packet into the data stream of the packet-oriented data transmission, which is optionally carried out on a request, Attaching forward error correction information to a data packet from the data stream of the packet-oriented data transmission, which is optionally carried out on a request,
- Interleaving für wenigstens einen Teil der Datenpakete des Datenstroms der paketorientierten Datenübertragung undInterleaving for at least part of the data packets of the data stream of the packet-oriented data transmission and
- wenigstens teilweises Wiederherstellen einer Datenpaketreihenfolge für die Datenpakete des Datenstroms der paketorientierten Datenübertragung.at least partially restoring a data packet sequence for the data packets of the data stream of the packet-oriented data transmission.
Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass ein Schritt zum dynamischen Anpassen des Optimierungsmechanismus an die paketorientierte Datenübertragung vorgesehen ist. Insbesondere kann eine dynamische Anpassung die vergangenen, gegenwärtigen und / oder zu erwartende zukünftigen Eigenschaften der paketorientierten Datenübertragung und / oder des Datenpfads und / oder ausgewählter Teile des Datenpfads berücksichtigen. So kann die Optimierung nur auf Teilen des Datenpfads angewendet werden. Auch kann die der Umfang der Optimierung (etwa die Menge und / oder die Art von Redundanz und / oder das genutzte bzw. die genutzten FEC- und / oder ARQ- Verfahren und / oder die Anwendung und / oder Ausbildung von Interleaving) angepasst werden. Weiterhin kann es vorteilhaft sein, die Arten von Datenpaketen und / oder die genutzten Kommunikationsprotokolle und / oder die Art der Kommunikationsbeziehung zu erkennen und die Optimierung entsprechend dieser anzupassen. So kann es vorgesehen sein, „zuverlässige" Transportprotokolle (zum Beispiel TCP, SCTP) anders zu optimieren als „unzuverlässige" (zum Beispiel UDP, DCCP, RTP). Multimedia-Datenströme/-pakete oder RTP-, RTCP-, Flash-, skype- und / oder VoIP- und / oder Video-Datenströme-/pakete zu erkennen und eine Optimierung auf diese anzuwenden bzw. die Optimierung an diese anzupassen. Insbesondere kann für diese Datenströme eine Optimierung durch FEC- Verfahren vorgesehen sein.An advantageous embodiment of the invention provides that a step for dynamically adapting the optimization mechanism to the packet-oriented data transmission is provided. In particular, dynamic adaptation may take into account the past, present, and / or expected future characteristics of the packet-oriented data transmission and / or the data path and / or selected parts of the data path. So optimization can only be applied to parts of the data path. Also, the extent of optimization (such as the amount and / or type of redundancy and / or the FEC and / or ARQ techniques used and / or the application and / or training of interleaving) may be adjusted. Furthermore, it may be advantageous to recognize the types of data packets and / or the communication protocols used and / or the type of communication relationship and to adapt the optimization accordingly. Thus, it may be provided to optimize "reliable" transport protocols (for example, TCP, SCTP) differently than "unreliable" (for example, UDP, DCCP, RTP). To recognize multimedia data streams / packets or RTP, RTCP, flash, skype and / or VoIP and / or video data packets / packets and to apply an optimization to them or to adapt the optimization to them. In particular, an optimization by FEC methods can be provided for these data streams.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das dynamische Anpassen einen Schritt zum Messen von Übertragungseigenschaften für die Kommunikationsbeziehung sowie einen Schritt zum Anpassen des Optimierungsmechanismus in Abhängigkeit von den gemessenen Übertragungseigenschaften umfasst. Insbesondere können die gemessene Paketverlustrate und / oder die gemessene Übertragungsverzögerung und / oder die gemessene Übertragungsrate berücksichtigt werden. Die hier beschriebene Weiterbildung der Erfindung kann nicht nur im Zusammenhang mit dem ersten sondern auch mit den anderen Aspekten der Erfindung Anwendung finden.Preferably, a further development of the invention provides that the dynamic adaptation comprises a step for measuring transmission characteristics for the communication relationship and a step for adapting the optimization mechanism as a function of the measured transmission characteristics. In particular, the measured packet loss rate and / or the measured transmission delay and / or the measured transmission rate can be taken into account. The development of the invention described here can not only in connection with the first but also with the other aspects of the invention find application.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Priorisieren für die Datenpakete des Datenstroms der paketorientierten Datenübertragung umfasst. Eine bevorzugte Ausgestaltung der Erfindung sieht vor, dass der Optimierer die Pakete entsprechend ihrer Priorität markiert. In einer anderen bevorzugten Ausgestaltung verwaltet der Optimierer statt oder zusätzlich zum Markieren von Paketen entsprechend ihrer Priorität mindestens eine eigene Warteschlange für die Datenpakete und nutzt diese, um die Priorisierung der Datenpakete selbst durchzuführen, was vor dem bzw. beim Senden oder beim / nachdem Emfangen von Datenpaketen geschehen kann. Die hier beschriebene Ausgestaltung der Erfindung kann nicht nur im Zusammenhang mit dem ersten sondern auch mit den anderen Aspekten der Erfindung Anwendung finden.In an advantageous embodiment of the invention, it can be provided that optimizing the packet-oriented data transmission comprises a step for prioritizing the data packets of the data stream of the packet-oriented data transmission. A preferred embodiment of the invention provides that the optimizer marks the packets according to their priority. In another preferred embodiment, instead of or in addition to tagging packets according to their priority, the optimizer manages at least one dedicated queue for the data packets and uses them to prioritize the data packets themselves, before or during transmission, or after / from receiving Data packets can happen. The embodiment of the invention described here can be used not only in connection with the first but also with the other aspects of the invention.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass ein Schritt zum rückwandlungs- freien Verarbeiten eines beim Optimieren der paketorientierten Datenübertragung gebildeten, optimierten Datenstroms durch einen empfangenden Kommunikationsendpunkt vorgesehen ist. Insbesondere können die redundanten Informationen so ergänzt werden bzw. aufgebaut sein und / oder so übertragen werden, dass sie für den empfangenden Kommunikationsendpunkt nicht von Datenpaketen einen nicht optimierten Datentroms zu unterscheiden sind. Auch kann vorgesehen sein, dass die redundanten Informationen so ergänzt werden bzw. aufgebaut sein und / oder so übertragen werden, dass zumindest Teile der redundanten Informationen durch den empfangenden Kommunikationsendpunkt nicht oder nicht störend wahrgenommen werden.A preferred embodiment of the invention provides that a step is provided for processing an optimization data stream formed in optimizing the packet-oriented data transmission without reverse conversion by a receiving communication endpoint. In particular, the redundant information can be supplemented or constructed and / or transmitted in such a way that they can not be distinguished from data packets of a non-optimized data stream for the receiving communication endpoint. It can also be provided that the redundant information is supplemented or constructed and / or transmitted in such a way that at least parts of the redundant information are not or are not disturbed by the receiving communication endpoint.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Komprimieren von Headerdaten eines oder mehrerer Datenpakete aus dem Datenstrom der paketorientierten Datenübertragung umfasst. Insbesondere kann vorgesehen sein, dass die Menge an übertragenen redundanten Informationen so gewählt wird, dass sie die Menge der durch Kompression eingesparten Daten nicht oder nicht wesentlich übersteigt, wobei der Vergleich für ein einzelnes Paket, für mehrere Pakete zusammen und / oder über ein Zeitintervall durchgeführt werden kann. Nachfolgend werden vorteilhafte Ausgestaltungen zum vierten Aspekt der Erfindung näher erläutert.In an expedient embodiment of the invention, it can be provided that optimizing the packet-oriented data transmission comprises a step for compressing header data of one or more data packets from the data stream of the packet-oriented data transmission. In particular, it can be provided that the amount of transmitted redundant information is chosen so that it does not or substantially exceeds the amount of compression-saved data, the comparison being performed for a single packet, for several packets together and / or over a time interval can be. In the following, advantageous embodiments of the fourth aspect of the invention will be explained in more detail.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Zurückhalten von Daten aus dem Datenstrom der paketorientierten Datenübertragung umfasst.Preferably, a development of the invention provides that optimizing the packet-oriented data transmission comprises a step for retaining data from the data stream of the packet-oriented data transmission.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung Schritte zum lokalen Erzeugen von Daten in der Optimiereranordnung und zum Senden der lokal erzeugten Daten an den Kommunikationsendpunkt und / oder den weiteren Kommunikationsendpunkt umfasst.In an advantageous embodiment of the invention, it may be provided that optimizing the packet-oriented data transmission comprises steps for locally generating data in the optimizer arrangement and for transmitting the locally generated data to the communication endpoint and / or the further communication endpoint.
Eine vorteilhafte Ausgestaltung sieht zudem vor, dass die zurückgehaltenen oder lokal erzeugten Daten während einer Übertragungs-Unterbrechung gesendet werden. In einer vorteilhaften Ausgestaltung kann dieses Senden während der Übertragungsunterbrechung in Bezug auf zeitliche Verzögerung und / oder Datenraten und / oder Paketanzahlen und / oder Pausen zwischen den Paketen so gestaltet ist, um eine zu erwartende Dauer einer Übertragungsunterbrechung zu überbrücken oder auch möglichst lange und / oder Folgen von Übertragungsunterbrechungen überbrücken zu können. Weiterhin kann es vorteilhaft sein, die zurückgehaltenen Daten gleichmäßig oder ungleichmäßig während einer Übertragungs-Unterbrechung weiterzugeben, wobei sich die Gleichmäßigkeit und / oder Ungleichmäßigkeit auf das weitergegebene Datenvolumen und / oder die Anzahl von Paketen und / oder die Zeitintervalle beziehen kann. Eine vorteilhafte Ausgestaltung sieht vor, die Menge der pro Zeiteinheit weitergegeben Daten in Abhängigkeit von dem insgesamt zurückgehaltenen Menge und / oder dem Eintreffen weiterer Daten (Menge pro Zeitintervall) und / oder der erwarteten oder errechneten oder vorhergesagten Dauer der Übertragungsunterbrechung zu bestimmen. Auch kann es vorteilhaft sein, die weitergegebene Menge über die Zeit zu variieren.An advantageous embodiment also provides that the retained or locally generated data are sent during a transmission interruption. In an advantageous embodiment of this transmission during the transmission interruption in terms of time delay and / or data rates and / or packet numbers and / or pauses between the packets is designed to bridge an expected duration of a transmission interruption or as long as possible and / or To be able to bridge the consequences of transmission interruptions. Furthermore, it may be advantageous to pass the retained data evenly or nonuniformly during a transmission interruption, wherein the uniformity and / or nonuniformity may relate to the passed-on data volume and / or the number of packets and / or the time intervals. An advantageous embodiment provides to determine the amount of data transmitted per unit of time as a function of the total retained quantity and / or the arrival of further data (amount per time interval) and / or the expected or calculated or predicted duration of the transmission interruption. It may also be advantageous to vary the transferred amount over time.
Eine bevorzugte Fortbildung der Erfindung vor, dass es sich bei diesen zurückgehaltenen Daten aus Sicht der optimierten Protokollschichten um Nutzdaten und / oder Steuerdaten handelt. Eine Ausprägung der Erfindung sieht vor, dass es sich bei den zurückgehaltenen oder lokal erzeugten Daten aus Sicht des/der in die Optimierung einbezogenen Proto- kolls/Protokolle um Nutzdaten handelt. Eine weitere Ausprägung der Erfindung sieht vor, dass es sich bei den zurückgehaltenen oder lokal erzeugten Daten aus Sicht des / der in die Optimierung einbezogenen Protokolls/Protokolle um Steuerdaten handelt.A preferred development of the invention provides that these retained data are user data and / or control data from the point of view of the optimized protocol layers. One embodiment of the invention provides that the retained or locally generated data from the perspective of the / in the optimization involved prototype kolls / logs for user data. A further embodiment of the invention provides that the retained or locally generated data is control data from the point of view of the protocol (s) included in the optimization.
Eine bevorzugte Weiterbildung der Erfindung sieht auch vor, dass die Menge von zurückgehaltenen Daten an die Länge der erwarteten und / oder zu tolerierenden Übertragungs- Unterbrechungen angepasst ist. Zudem ist es eine bevorzugte Weiterbildung der Erfindung, die Menge von zurückgehaltenen Daten an eine akzeptable Zurückhaltungs- Verzögerung angepasst wird. Dabei ist es eine bevorzugte Weiterbildung der Erfindung die Länge der erwarteten Übertragungs-Unterbrechungen und / oder akzeptablen Zurückhaltungs- Verzögerungen durch konfigurationseinstellungen der Optimierer, Steuersignale bzw. Steuerwerte, Heuristiken, beispielsweise basierend auf vergangenen und / oder in anderen Situationen und / oder in anderen Netzen und / oder von anderen Optimierern gemessener Werte, zu ermitteln und / oder zu beeinflussen. Eine weitere bevorzugte Weiterbildung sieht vor, dass anstelle und / oder zusätzlich zum Zurückhalten von Daten durch den Optimierer zusätzliche Daten und / oder Daten vorzeitig angefordert werden.A preferred development of the invention also provides that the amount of retained data is adapted to the length of the expected and / or to be tolerated transmission interruptions. Moreover, it is a preferred embodiment of the invention to adjust the amount of retained data to an acceptable retention delay. It is a preferred embodiment of the invention, the length of the expected transmission interruptions and / or acceptable retention delays by optimizer configuration settings, control signals, heuristics, for example, based on past and / or in other situations and / or in other networks and / or values measured by other optimizers to determine and / or influence. A further preferred development provides that instead of and / or in addition to the retention of data by the optimizer additional data and / or data are requested ahead of time.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Vorhersagen von Unterbrechungseigenschaften der Übertragungs-Unterbrechung der Kommunikationsbeziehung umfasst.A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for predicting interruption characteristics of the communication interruption's communication interruption.
Eine bevorzugte Ausgestaltung der Erfindung sieht vor, dass das Optimieren einen Schritt zum zusätzlichen und / oder vorzeitigen Anfordern von Daten aus dem Datenstrom der paketorientierten Datenübertragung umfasst.A preferred embodiment of the invention provides that optimizing comprises a step for additional and / or premature requesting of data from the data stream of the packet-oriented data transmission.
Nachfolgend werden vorteilhafte Ausgestaltungen zum fünften Aspekt der Erfindung näher erläutert.In the following, advantageous embodiments of the fifth aspect of the invention will be explained in more detail.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum zusammenhängenden Komprimieren von Headern mehrerer Datenpakete des Datenstroms der paketorientierten Datenübertragung umfasst. In weiteren vorteilhaften Ausgestaltungen werden mehrere Header eines einzelnen Datenpakets zusammenhängend komprimiert oder ein Header mehrerer Datenpakete zusammenhängend komprimiert. Unter „zusammenhängendem Komprimieren" wird die gemeinsame - sukzessive oder gleichzeitige - Berücksichtigung der genannten Header zur Komprimierung verstanden. Dies kann unabhängig vom zeitlichen Zusammenhang der Datenpakete und / oder der räumlichen Anordnung des Header geschehen.In an expedient embodiment of the invention, it can be provided that optimizing the packet-oriented data transmission comprises a step for coherently compressing headers of a plurality of data packets of the data stream of the packet-oriented data transmission. In further advantageous embodiments, several headers of a single data packet are compressed contiguously or a header of several Data packets compressed contiguously. By "contiguous compression" is meant the joint - successive or simultaneous - consideration of said headers for compression, which may be independent of the temporal relationship of the data packets and / or the spatial arrangement of the header.
Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass das Komprimieren des zumindest einen Headers nur für einen Teil der Datenpakete des Datenstroms der paketorientierten Datenübertragung ausgeführt wird.An advantageous embodiment of the invention provides that the compression of the at least one header is executed only for a part of the data packets of the data stream of the packet-oriented data transmission.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Austauschen von zusätzlichen Informationen umfasst, die eine oder mehrere Pakete ausgewählt aus der folgenden Gruppe von Paketen umfassen: bestehende Steuerpakete, zusätzliche Steuerpakete und zusätzliche Datenpakete.Preferably, a further development of the invention provides that optimizing the packet-oriented data transmission comprises a step of exchanging additional information comprising one or more packets selected from the following group of packets: existing control packets, additional control packets and additional data packets.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Komprimieren des zumindest einen Headers des wenigstens einen Datenpaketes einen Schritt zum wenigstens teilweisen Ersetzen des zumindest einen Headers durch einen oder mehrere Kon- textbezeichner umfasst.In an advantageous embodiment of the invention, it may be provided that the compression of the at least one header of the at least one data packet comprises a step of at least partially replacing the at least one header by one or more context identifiers.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Komprimieren des zumindest einen Headers des wenigstens einen Datenpaketes einen Schritt zum wenigstens teilweisen Komprimieren eines zumindest einen Headers ausgewählt aus der folgenden Gruppe von Headern umfasst: IPv4-Header, IPv6-Header, Ethernet-Header, UDP-Header, RTP -Header und TCP-Header.A preferred embodiment of the invention provides that compressing the at least one header of the at least one data packet comprises a step of at least partially compressing at least one header selected from the following group of headers: IPv4 headers, IPv6 headers, Ethernet headers, UDP headers, RTP headers and TCP headers.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Komprimieren des zumindest einen Headers des wenigstens einen Datenpaketes einen Schritt zum Einbeziehen von Informationen beim Komprimieren umfasst, die aus der folgenden Gruppe von Informationen ausgewählt werden: Quelladressinformation und Zieladressinformation. Ein zweckmäßige Weiterbildung kann vorsehen, dass Adressen einen Typs in Adressen eines anderen Typs umgesetzt werden. Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Auswählen eines Algorithmus durch den Kompressor für einen unidirektionalen Übertragungsweg zwischen dem Kompressor und dem De- kompressor umfasst.In an expedient embodiment of the invention, it may be provided that compressing the at least one header of the at least one data packet comprises a step of incorporating information in compression selected from the following group of information: source address information and destination address information. An expedient development can provide that addresses of one type are converted into addresses of a different type. An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for selecting an algorithm by the compressor for a unidirectional transmission path between the compressor and the compressor.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Komprimieren von Nutzdaten des wenigstens einen Datenpaketes umfasst.A further development of the invention preferably provides that optimizing the packet-oriented data transmission comprises a step for compressing user data of the at least one data packet.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Anwenden eines Protokoll- Enhancement- Verfahrens umfasst. Das Anwenden eines Protokoll-Enhancement-Verfahrens kann als vorteilhafte Weiterbildung auch im Zusammenhang mit den anderen Aspekten der Erfindung vorgesehen sein.In an advantageous embodiment of the invention, it can be provided that optimizing the packet-oriented data transmission comprises a step for applying a protocol enhancement method. The application of a protocol enhancement method can be provided as an advantageous development also in connection with the other aspects of the invention.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Optimieren ein Schritt zum geschachtelten Optimieren der paketorientierten Datenübertragung mit Hilfe mehrerer Optimierer der Optimiereranordnung umfasst.A preferred development of the invention provides that optimizing comprises a step for nested optimization of the packet-oriented data transmission with the aid of a plurality of optimizers of the optimizer arrangement.
Nachfolgend werden vorteilhafte Ausgestaltungen zum sechsten Aspekt der Erfindung näher erläutert.In the following, advantageous embodiments of the sixth aspect of the invention will be explained in more detail.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Erkennen der Optimierungsmöglichkeit weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:In an expedient embodiment of the invention, it can be provided that the recognition of the optimization option furthermore comprises at least one step selected from the following group of steps:
- passives Beobachten des Datenstroms der paketorientierte Datenübertragung,passive observation of the data stream of the packet-oriented data transmission,
- aktives Senden von Probedatenpaketen,- actively sending sample data packets,
- Nutzen eines expliziten Signalisierungsprotokolls zu Netzelementen im Netz mit Kommunikationsendpunkten undUse of an explicit signaling protocol for network elements in the network with communication endpoints and
- Auswerten von Hinweisinformation eines Netzmanagements im Netz mit Kommunikationsendpunkten. Eine vorteilhafte Ausfiihrungsform der Erfindung sieht vor, dass die Optimierungsmöglichkeit während des Anwendens einer vorangehenden und von einem Optimierungsmechanismus umfassten Optimierung erkannt wird. Hierzu zählen insbesondere das Erkennen einer anderen Optimierungsmöglichkeit als der vorangehenden; das Erkennen der Veränderung der Optimierungsmöglichkeit; das Erkennen, dass die Optimierung weiterhin angewendet werden kann; das Erkennen, dass das Anwenden einer Optimierung bessere oder schlechtere Ergebnisse erzielt als die vorangehende; das Erkennen des Wegfalls einer Optimierungsmöglichkeit; und / oder das Bestimmen der Parameter einer Optimierungsmöglichkeit.- Evaluation of note information of a network management in the network with communication end points. An advantageous embodiment of the invention provides that the optimization possibility is detected during the application of a preceding optimization and an optimization mechanism. This includes, in particular, the recognition of another possibility for optimization than the preceding one; the recognition of the change of the optimization possibility; recognizing that optimization can still be applied; recognizing that applying optimization will produce better or worse results than the previous one; the recognition of the omission of an optimization possibility; and / or determining the parameters of an optimization option.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Erkennen der Optimierungsmöglichkeit weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:Preferably, a development of the invention provides that the recognition of the optimization option furthermore comprises at least one step selected from the following group of steps:
- Auswerten einer Fehlerrate für optimierte Datenpakete der paketorientierte Datenübertragung,Evaluating an error rate for optimized data packets of the packet-oriented data transmission,
- Auswerten einer Time-to-Live Information für Datenpakete der paketorientierte Datenübertragung undEvaluating a time-to-live information for packet-oriented data transmission data packets and
- Auswerten von Tests mit Probedatenpaketen.- Evaluation of tests with sample data packages.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Auswählen der Optimierung einen Schritt zum Auswählen einer Header-Koprimierung umfasst.In an advantageous embodiment of the invention, it may be provided that the selection of the optimization comprises a step for selecting a header coprimization.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass ein Schritt zum Testen komprimierbarer Header vorgesehen ist. Eine bevorzugte Ausgestaltung der Erfindung sieht vor, dass ein Schritt zum Testen systematisch mit verschieden komprimierten Headern wiederholt wird. Ein vorteilhafte Ausbildung der Erfindung sieht vor, dass aus dem Testen komprimierter Header darauf geschlossen wird, welche Mechanismen zur Headerkompression Anwendung finden können.A preferred embodiment of the invention provides that a step for testing compressible headers is provided. A preferred embodiment of the invention provides that a step for testing is repeated systematically with differently compressed headers. An advantageous embodiment of the invention provides that it is concluded from the testing of compressed headers on which mechanisms for header compression can be applied.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren ein Schritt zum geschachtelten Optimieren der paketorientierten Datenübertragung mehrerer Optimierer der Optimiereranordnung umfasst. Eine solche Schachtelung kann bevorzugt zwei oder mehr Schachtelungen aufweisen. In einer vorteilhaften Ausgestaltung können Optimiereranordnungen auch in Reihe/in Serie und / oder parallel angeordnet sein. Auch kann es vorteilhaft sein, parallele, serielle und / oder geschachtelte Optimiereranordnungen zu kombinieren. Eine vorteilhafte Ausgestaltung sieht vor, dass mindestens zwei Optimierer dieser Optimiereranordnungen Informationen austauschen und / oder in einem optimierten Datenstrom enthaltene Informationen gemeinsam (zum Zwecke mindestens einer ihrer Optimierungsfunktionen) nutzen. Hierdurch ist eine bei den verschiedenen Aspekten der Erfindung nutzbare Ausgestaltungen gebildet.In an expedient embodiment of the invention, it can be provided that optimizing comprises a step for nested optimization of the packet-oriented data transmission of a plurality of optimizers of the optimizer arrangement. Such nesting may preferably have two or more nestings. In an advantageous embodiment, optimizer arrangements can also be arranged in series / in series and / or in parallel. It may also be advantageous to combine parallel, serial and / or nested optimizer arrangements. An advantageous embodiment provides that at least two optimizers of these optimizer arrangements exchange information and / or use information contained in an optimized data stream jointly (for the purpose of at least one of their optimization functions). As a result, a usable in the various aspects of the invention embodiments is formed.
Nachfolgend werden weitere vorteilhafte, bei allen Aspekten der Erfindung nutzbare Ausgestaltungen näher erläutert.Below further advantageous, usable in all aspects of the invention embodiments are explained in detail.
Ein zweckmäßige Ausbildung der Erfindung sieht vor, dass das Optimieren der paketorientieren Datenübertragung mindestens einen Schritt aus der folgenden Gruppe von Schritten um- fasst:An expedient embodiment of the invention provides that optimizing the packet-oriented data transmission comprises at least one step from the following group of steps:
- Erkennen von Namensdienstanfragen und / oder -antworten und Priorisieren dieser gegenüber ausgewählten oder allen Datendienstpaketen;- identifying name service requests and / or responses and prioritizing them against selected or all data service packets;
- Erkennen von wiederholten Namensdienst- und / oder Datendienstpaketen;- detecting repeated name service and / or data service packets;
- Unbedingtes Unterdrücken von wiederholten Paketen;- Unconditional suppression of repeated packets;
- Bedingtes Unterdrücken von wiederholten Paketen, wobei die Bedingung ist, dass das wiederholte Paket nur dann unterdrückt wird, wenn es innerhalb einer statisch konfigurierten und / oder dynamisch ermittelten Zeitspanne empfangen wird;Conditional suppression of repeated packets, the condition being that the repeated packet is only suppressed if it is received within a statically configured and / or dynamically determined period of time;
- Bedingtes Unterdrücken von wiederholten Paketen, wobei die Bedingung ist, dass das wiederholte Paket nur dann unterdrückt wird, wenn es außerhalb einer statisch konfigurierten und / oder dynamisch ermittelten Zeitspanne empfangen wird;Conditionally suppressing repeated packets, the condition being that the repeated packet is only suppressed if it is received outside of a statically configured and / or dynamically determined period of time;
- Bedingtes Unterdrücken von wiederholten Paketen, wobei die Bedingung ist, dass das wiederholte Paket nur dann unterdrückt wird, wenn es sich um eine Anfrage handelt;Conditional suppression of repeated packets, the condition being that the repeated packet is suppressed only if it is a request;
- Bedingtes Unterdrücken von wiederholten Paketen, wobei die Bedingung ist, dass das wiederholte Paket nur dann unterdrückt wird, wenn es sich um eine Antwort handelt;Conditionally suppressing repeated packets, the condition being that the repeated packet is only suppressed if it is an answer;
- Bedingtes Unterdrücken von wiederholten Paketen, wobei die Bedingung ist, dass das wiederholte Paket nur dann unterdrückt wird, wenn es sich weder um eine Anfrage noch um eine Antwort handelt;Conditional suppression of repeated packets, the condition being that the repeated packet is only suppressed if it is neither a request nor an answer;
- Unbedingtes oder bedingtes Verzögern von wiederholten Paketen; - Unbedingtes oder bedingtes Ersetzen von wiederholten Paketen durch ein semantisch ähnliches, gleichbedeutendes und / oder äquivalentes Paket mit oder ohne zeitlicher Verzögerung.- unconditional or conditional delay of repeated packages; Unconditional or conditional replacement of repeated packets by a semantically similar, equivalent and / or equivalent packet with or without time delay.
Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Anwenden des Optimierungsmechanismus auf ausgewählte Datenpakete des Datenstromes umfasst, wobei die ausgewählten Datenpakete unter Einbeziehung wenigstens eines Auswahlkriteriums aus der folgenden Gruppe von Auswahlkriterien ausgewählt werden:An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for applying the optimization mechanism to selected data packets of the data stream, wherein the selected data packets are selected from at least one selection criterion from the following group of selection criteria:
- Konfiguration der Kommunikationsendpunkte,- configuration of communication endpoints,
- statische Auswahlregel,- static selection rule,
- dynamische Auswahlregel,- dynamic selection rule,
- Datenpaketeigenschaft,- data packet property,
- Datenpaketsequenz und- Data packet sequence and
- Zeitinformation betreffend den Datenstrom.Time information concerning the data stream.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum gemeinsamen Anwenden des Optimierungsmechanismus auf mehrere Datenpakete des Datenstromes umfasst.A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step of jointly applying the optimization mechanism to a plurality of data packets of the data stream.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung weiterhin die folgenden Schritte umfasst: Bestimmen, ob eine Störung oder Unterbrechung der paketorientierten Datenübertragung bezüglich der Optimieranordnung in einem dem Kommunikationsendpunkt zugeordneten Kommunikationspfad oder in einem dem weiteren dem Kommunikationsendpunkt zugeordneten Kommunikationspfad zu erwarten ist, und Anpassen des Optimierungsmechanismus an den bestimmten Kommunikationspfad.In an advantageous embodiment of the invention, it may be provided that optimizing the packet-oriented data transmission further comprises the following steps: determining whether a disruption or interruption of the packet-oriented data transmission with respect to the optimizing in a communication path associated with the communication endpoint or in a communication path associated with the further the communication endpoint is expected, and adjusting the optimization mechanism to the particular communication path.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung weiterhin die folgenden Schritte umfasst: Bestimmen eines Typs der ausgetauschten Datenpakte, Bestimmen des Anwendungsprotokolls der ausgetauschten Datenpakete und Anpassen des Optimierungsmechanismus an den bestimmten Typ der ausgetauschten Datenpakete. Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Optimieren der paketorientierten Datenübertragung weiterhin die folgenden Schritte umfasst: Bestimmen einer aktuellen Last für die Kommunikationsbeziehung und Anpassen des Optimierungsmechanismus an die bestimmte Last.A preferred development of the invention provides that optimizing the packet-oriented data transmission further comprises the following steps: determining a type of the exchanged data packets, determining the application protocol of the exchanged data packets and adapting the optimization mechanism to the particular type of data packets exchanged. In an expedient embodiment of the invention, it may be provided that optimizing the packet-oriented data transmission further comprises the following steps: determining a current load for the communication relationship and adapting the optimization mechanism to the specific load.
Eine vorteilhafte Ausfuhrungsform der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen der folgenden Schritte umfasst: unidi- rektionales, rückkanalfreies Optimieren und bidirektionales Optimieren.An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission further comprises at least one of the following steps: unidirectional, backward-channel-free optimization and bidirectional optimization.
Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung kombiniert mit wenigstens einem Schritt aus der folgenden Gruppe von Schritten ausgeführt wird: Performance-Enhancement-Verfahren, Datenkomprimieren / - dekomprimieren, Datenverschlüsseln und Datentranskodieren.Preferably, a further development of the invention provides that the optimization of the packet-oriented data transmission combined with at least one step is carried out from the following group of steps: performance enhancement method, data compression / decompression, data encryption and data transcoding.
Bei einer vorteilhaften Ausgestaltung der Erfindung kann vorgesehen sein, dass die Kommunikationsbeziehung eine Punkt-zu-Mehrpunkt- oder Mehrpunkt-zu-Mehrpunkt-Datenkommu- nikation umfassend ausgebildet wird.In an advantageous embodiment of the invention it can be provided that the communication relationship is formed comprehensively a point-to-multipoint or multipoint-to-multipoint data communication.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Auswählen eines Optimierers als Repräsentant für einen, mehrere oder alle Optimierer der Optimiereranordnung umfasst.A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for selecting an optimizer as a representative of one, several or all optimizers of the optimizer arrangement.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass das Auswählen des Optimierers einen Schritt zum zeitlich und / oder räumlich dynamischen Auswählen des Optimierers als Repräsentant umfasst.In an expedient embodiment of the invention, it may be provided that the selection of the optimizer comprises a step for temporally and / or spatially dynamic selection of the optimizer as a representative.
Eine vorteilhafte Ausführungsform der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Nutzen von mehreren Netzpfaden des Netzes zum Übertragen redundanter Informationen umfasst. Bevorzugt sieht eine Fortbildung der Erfindung vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Nutzen von mehreren Netzpfaden des Netzes zum Ausbilden einer Datenlastverteilung für die paketorientierte Datenübertragung umfasst.An advantageous embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step of utilizing multiple network paths of the network for transmitting redundant information. A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step of using several network paths of the network for forming a data load distribution for the packet-oriented data transmission.
Eine bevorzugte Weiterbildung der Erfindung sieht vor, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Steuern einer Optimierungsfunktionalität des Optimierungsmechanismus in Abhängigkeit von Netzsignalen umfasst.A preferred embodiment of the invention provides that optimizing the packet-oriented data transmission comprises a step for controlling an optimization functionality of the optimization mechanism as a function of network signals.
Eine zweckmäßige Ausgestaltung der Erfindung sieht vor, dass die Kommunikation zwischen zwei Optimierern durch einen mittels eines anderen Protokolls gebildeten Tunnel stattfindet. Eine bevorzugte Ausfuhrungsform nutzt IP, UDP, TCP, IPsec, SSH, SSL, SCTP, DCCP, ICMP, HTTP, HTTPS, SIP, FTP, NNTP, DTN, DNS, RTSP, SOAP, XMPP, XML, und / oder ein Peer-to-Peer-Overlay als Tunnel.An expedient embodiment of the invention provides that the communication between two optimizers takes place through a tunnel formed by means of another protocol. A preferred embodiment uses IP, UDP, TCP, IPsec, SSH, SSL, SCTP, DCCP, ICMP, HTTP, HTTPS, SIP, FTP, NNTP, DTN, DNS, RTSP, SOAP, XMPP, XML, and / or a peer to-peer overlay as a tunnel.
Bei einer zweckmäßigen Ausgestaltung der Erfindung kann vorgesehen sein, dass die Optimierung auf Netze und / oder Teilnetze und / oder schwierige Kommunikationspfade angewendet wird, wobei die Netze und / oder Teilnetze durch mindestens eines der folgenden Netze umfassen gebildet werden: Weitverkehrsnetze (WAN), Metropolitan- Area-Netze (MAN, DVB-C), „Internetworks" wie IP -Netze oder verzögerungstolerante Netze (DTNs), lokale Netze (LAN) wie Ethernet und WLAN, PDH-, SDH-, DVB-C und / oder ATM-Netze, Telefonnetze, Funknetze (wie beispielsweise Mobilfunk, WiMax, 3G, UMTS, HS(D)PA, DVB-T, LTE, UWB, OFDM, 802.1 Ib / a / g / n / p / s, ...), Satellitennetze (wie beispielsweise DVB-S / S2, DVB-RCS, S-Band, proprietäre Satellitenverbindungen, Funknetze im Weltraum), auch in kabel gebundenen (Broadcast-)Netzen (wie Kabelnetze, DSL, Fibre-to-the-Home, ...) usw., aber auch Overlay-Netze wie etwa Peer-to-Peer-Netze) und auch Kombinationen aus beliebigen Netzen verschiedener Typen.In an expedient embodiment of the invention, it can be provided that the optimization is applied to networks and / or subnetworks and / or difficult communication paths, wherein the networks and / or subnetworks are formed by at least one of the following networks: Wide Area Networks (WAN), Metropolitan Area networks (MAN, DVB-C), internetworks such as IP networks or delay-tolerant networks (DTNs), local area networks (LAN) such as Ethernet and WLAN, PDH, SDH, DVB-C and / or ATM networks. Networks, telephone networks, radio networks (such as mobile, WiMax, 3G, UMTS, HS (D) PA, DVB-T, LTE, UWB, OFDM, 802.1 Ib / a / g / n / p / s, ...), Satellite networks (such as DVB-S / S2, DVB-RCS, S-band, proprietary satellite links, space radio networks), even in cable (broadcast) networks (such as cable networks, DSL, fiber-to-the-home,. ..) etc., but also overlay networks such as peer-to-peer networks) and also combinations of arbitrary networks of different types.
Eine weitere einer zweckmäßige Ausgestaltung der Erfindung sieht vor, dass es sich bei dem oder den durch die Optimierung optimierten Datendiensten um mindestens einen der folgenden Dienste handelt: Telefonie, Videotelefonie und (Video)konferenzen über das Internet (im folgenden zusammengefasst unter dem Begriff „VoIP"), Audio- / Video-Streaming, der Zugriff auf Webseiten („Websurfen"), HTTP-basierte Datenübertragung, HTTPS-basierte Datenübertragung, WAP, Web-Services, Netzmanagement, Zugriffe auf ein Dateisystem, gemeinsames Bearbeiten von Dokumenten, Präsentationen, Dateitransfers, Versenden, Empfangen, und / oder Bearbeiten (inkl. Löschen, Sortieren, Ablegen) von Email, Chat, Peer-to- Peer- Anwendungen, Fernzugriff auf Rechner, Fernsteuerung von Systemen usw.Another expedient embodiment of the invention provides that the one or more optimized by the optimization of data services at least one of the following services: telephony, video calling and (video) conferences over the Internet (hereinafter collectively under the term "VoIP "), Audio / video streaming, access to web pages (" web surfing "), HTTP-based data transfer, HTTPS-based data transfer, WAP, web services, network management, access to a file system, collaborative editing of documents, presentations, file transfers, sending, receiving, and / or editing (including deleting, sorting, dropping) of email, chat, peer-to-peer applications, remote access to computers, remote control of systems, etc.
Nach den verschiedenen Ausgestaltungen der Erfindung in ihren unterschiedlichen Aspekten kann eine Vorrichtung oder ein System für eine paketorientierte Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten vorgesehen sein, die über eine Optimiereranordnung verfügt, welche konfiguriert ist, einen Optimierungsmechanismus für die paketorientierte Datenübertragung nach einem Verfahren in einer der vorgenannten Ausgestaltungen auszuführen.According to the various aspects of the invention in its various aspects, a packet-oriented data transmission apparatus or system may be provided between communication endpoints in a network having communication endpoints having an optimizer arrangement configured to provide a packet-oriented data transmission optimization mechanism according to a method of to carry out one of the aforementioned embodiments.
Beschreibung bevorzugter Ausfiihrungsbeispiele der ErfindungDESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION
Im Folgenden werden die Aspekte der Erfindung anhand von Ausführungsbeispielen unterIn the following, the aspects of the invention with reference to embodiments
Bezugnahme auf Figuren einer Zeichnung näher erläutert. Hierbei zeigen:Reference to figures of a drawing explained in more detail. Hereby show:
Fig. 1 in Bezug auf die nachfolgend beschriebenen Optimierungen eine schematische Darstellung von mehreren Systemen zur Datenübertragung zwischen zwei Endpunkten A und B sowie Anordnungen von Optimierern,1 with respect to the optimizations described below, a schematic representation of several systems for data transmission between two endpoints A and B and arrangements of optimizers,
Fig. 2 in Bezug auf die nachfolgend beschriebenen Optimierungen eine schematische Darstellung von mehreren Systemen zur Datenübertragung zwischen zwei Endpunkten A und B,2 with reference to the optimizations described below a schematic representation of several systems for data transmission between two end points A and B,
Fig. 3 mit speziellem Bezug zu den im nachfolgenden Abschnitt La) beschriebenen Aspekten der Erfindung, eine weitere schematische Darstellung von mehreren Systemen zur Datenübertragung zwischen zwei Endpunkten A und B und verschiedene Beispiele weiterer Anordnungen von Optimierern.3 with specific reference to the aspects of the invention described in the following section La), a further schematic representation of several systems for data transmission between two end points A and B and various examples of further arrangements of optimizers.
Fig. 4 ein Beispiel für eine Namensauflösung unter Verwendung einer Pseudo-Adresse,4 shows an example of a name resolution using a pseudo-address,
Fig. 5 grob eine Protokoll-Hierarchie für RTP, UDP und IP undFig. 5 roughly a protocol hierarchy for RTP, UDP and IP and
Fig. 6 grob eine Protokoll-Hierarchie für HTTP, TCP und IP.Fig. 6 roughly a protocol hierarchy for HTTP, TCP and IP.
Nachfolgend werden Aspekte der Erfindung im Detail dargestellt, wobei die Merkmale der verschiedenen Aspekte sowohl einzeln als auch in beliebiger Kombination bei der Verwirklichung der Erfindung in ihren verschiedenen Ausführungsformen von Bedeutung sein können. Insbesondere ergeben die verschiedenen Aspekte jeweils für sich eine wesentliche Verbesserung des Standes der Technik.Aspects of the invention will now be described in detail, the features of the various aspects, both individually and in any combination, being relevant to the practice of the invention in its various embodiments. In particular, the various aspects individually provide a substantial improvement in the state of the art.
Zur Vereinfachung der Darstellung wird im Folgenden von „Optimierung(en)" als Funktion und / oder Verfahren gesprochen, die von den jeweils genannten Systemkomponenten durchgeführt wird. Ein Optimierer kann eine Komponente sein, die eine Optimierung in die ausgetauschten Daten einfügt (wobei unter „Einfügen" hier und im Folgenden auch das allgemeine Vornehmen einer Optimierung an den ausgetauschten Daten verstanden wird). Analog gibt es in den genannten Anordnungen und Ausführungsbeispielen eine oder mehrere Optimierer- Komponenten, die die eingefügten Optimierung auswerten / nutzen und zumeist den ursprünglichen Datenstrom ganz oder in oft großen Teilen wiederherstellen und / oder den gewünschten semantischen Effekt des ursprünglich intendierten Datenstroms in oft großen Teilen wiederherstellen. Die Kommunikation mit der / den beiden Optimierer Komponenten wird im Folgenden nur jeweils für eine Kommunikationsrichtung beschrieben, um die Beschreibung übersichtlicher zu gestalten. Selbstverständlich ist die Optimierung in die umgekehrte Richtung ebenso möglich, sofern Anwendungen und Übertragungsnetze dies benötigen, es vorteilhaft erscheint und / oder die Anordnung und / oder Komponenten entsprechend ausgestaltet sind.To simplify the presentation, the term "optimization (s)" will be referred to as a function and / or method performed by the respective system components mentioned above An optimizer may be a component which inserts an optimization into the exchanged data (where " Insert "is understood here and in the following also the general making an optimization on the exchanged data). Analogously, there are in the said arrangements and embodiments, one or more optimizer components that evaluate the inserted optimization / use and usually restore the original data stream wholly or often in large parts and / or the desired semantic effect of the originally intended data stream in often large parts restore. The communication with the / the two optimizer components is described below only in each case for a communication direction in order to make the description clearer. Of course, the optimization in the reverse direction is also possible if applications and transmission networks require this, it appears advantageous and / or the arrangement and / or components are designed accordingly.
Ein Optimierer kann aus Sicht kommunizierender Endpunkte eine Komponente eines einem der Endpunkte bekannten Bestandteils der Kommunikationsbeziehungen sein, beispielsweise eines Routers, eines Servers, eines Proxys oder eines anderen Zwischensystems (Intermedia- te-Systems) sein, oder er kann „transparent" in die Kommunikationsbeziehungen eingreifen, also ohne dass seine Existenz den Endpunkten mitgeteilt werden oder auch nur bekannt sein muss. Die kommunizierenden Endpunkte werden in synonymer Art und Weise auch als Kommunikationsendpunkte bezeichnet. Im Folgenden wird zur Vereinfachung die Bezeichnung Endpunkt verwendet.An optimizer may be a component of one of the endpoints known components of the communication relationships, such as a router, a server, a proxy or other intermediate system (Intermedia te system) from the perspective of communicating endpoints, or it may be "transparent" in the communication relationships intervene, that is, without its existence having to be communicated to the endpoints or even having to be known, the communicating endpoints are also referred to as communication endpoints in a synonymous manner.
Ein Optimierer kann auf mehrere logische und / oder physische Komponenten verteilt sein. Auch kann ein Optimierer teilweise oder ganz Bestandteil eines oder mehrerer der Endsysteme sein bzw. auf einem oder mehreren der Endsysteme ausgeführt werden. Insbesondere kann ein Optimierer oder ein Teil davon als Software und / oder Hardware zusätzlicher Bestandteil anderer Systemkomponenten (Router, Server, Proxys, Zwischensysteme usw.) wer- den.An optimizer may be distributed among multiple logical and / or physical components. Also, an optimizer may be partially or wholly part of one or more of the end systems, or executed on one or more of the end systems. In particular, an optimizer or a part thereof as software and / or hardware can be an additional component of other system components (routers, servers, proxies, intermediate systems etc.). the.
Spezifische Ausprägungen von Optimierungen (und den sie durchführenden Optimierern) sind beispielsweise Header-Kompression (ausgeführt durch geeignete Kompressoren), Übertragungsoptimierungen zum Umgang mit Verzögerungen, Paketverlusten und / oder Unterbrechungen. Diese erfindungsgemäßen Formen dieser Optimierungen werden unten beschrieben. Sie können einzeln oder in beliebigen Kombinationen realisiert werden.Specific characteristics of optimizations (and the optimizers performing them) are, for example, header compression (executed by suitable compressors), transmission optimizations for dealing with delays, packet losses and / or interruptions. These inventive forms of these optimizations will be described below. They can be realized individually or in any combination.
In diesem Text werden die Begriffe Paket und Datenpaket synonym und auch unabhängig davon, ob in einem Paket / Datenpaket Nutzdaten und / oder Steuerinformationen vorhanden sind, verwendet. Diese Datenpakete folgen einem Übertragungsweg / -pfad (auch als Kommunikationspfad, Datenpfad oder kurz als Pfad bezeichnet), der zum Beispiel von einem Routingprotokoll auf der Vermittlungsschicht dynamisch ausgewählt, statisch konfiguriert oder anderweitig ermittelt worden ist. Von einem Endpunkt zum anderen führt ein solcher Pfad oft durch ein oder mehrere Zwischensysteme (zum Beispiel Router, Netzknoten, Proxies) und dabei durch ein oder mehrere Übertragungsnetze. Ein Pfad kann symmetrisch sein: dann durchlaufen Pakete von einem Endpunkt A zu einem anderen Endpunkt B dieselben Zwischensysteme wie Pakete von Endpunkt B zu Endpunkt A, jedoch in umgekehrter Reihenfolge. Oder der Pfad kann asymmetrisch sein, wenn sich die in entgegengesetzte Richtungen durchlaufenen Zwischensysteme unterscheiden. Eine solche Symmetrie kann auch - auf gröberer Ebene - für Übertragungsnetze betrachtet werden. Ein Pfad ist im einfachsten Fall aus einer Folge von Abschnitten / Übertragungsabschnitten (englisch: „Hops") zusammengesetzt, wobei ein Abschnitt zwei auf der jeweils betrachteten Abstraktionsstufe (zum Beispiel bezüglich einer Protokoll-Schicht) benachbarte Zwischensysteme miteinander verbindet. Ein Teilbereich oder die Gesamtheit mehrerer Teilbereiche, auch nicht zusammenhängend, einer solchen Folge wird ebenfalls als Pfad bezeichnet. Ein Pfad kann auch mehrere alternative Pfade enthalten, die potentiell oder tatsächlich jeweils von einem Teil der den Pfad verfolgenden Datenpakete verfolgt werden. In diesem Text wird synonym auch der Begriff Kommunikationspfad bzw. Datenpfad anstelle von und gleichwertig zu dem Begriff Pfad verwendet.In this text, the terms packet and data packet synonymous and also regardless of whether in a packet / data packet user data and / or control information is available used. These data packets follow a transmission path (also referred to as a communication path, data path, or short path) that has been dynamically selected, statically configured, or otherwise determined, for example, by a routing protocol on the network layer. From one endpoint to another, such a path often passes through one or more intermediate systems (eg, routers, network nodes, proxies) through one or more transmission networks. A path can be symmetric: then packets from one endpoint A to another endpoint B go through the same intermediate systems as endpoint B to endpoint A packets, but in reverse order. Or the path may be asymmetric if the intermediate systems traversed in opposite directions are different. Such a symmetry can also be considered - on a coarser level - for transmission networks. A path is in the simplest case composed of a sequence of sections / transmission sections ("hops"), wherein a section connects two adjacent intermediate systems (for example with regard to a protocol layer) to one another A path can also contain several alternative paths, which are potentially or actually traced in each case by a part of the data packets following the path, in this text the term communication path also becomes synonymous or data path instead of and equivalent to the term path.
Es besteht die Möglichkeit, dass auf dem Wege der Kommunikationsbeziehung zwischen zwei Endpunkten A und B ein oder mehrere schwierige Kommunikationspfade (SKP) vorliegen. Ein schwieriger Kommunikationspfad ist ein Bestandteil der Kommunikationspfade zwi- schen A und B, dessen Eigenschaften sich unter Umständen verschlechternd auf die erzielbare Dienstgüte auswirken können, wie vorstehend an den Beispielen Übertragungsverzögerung, Paketverlusten und Unterbrechungen beschrieben. Diese Eigenschaften des Kommunikationspfades können auf die Eigenschaften einer einzelnen Netzkomponente und / oder eines einzelnen Netzabschnitts zurückzuführen sein und / oder auf die Kombination der Eigenschaften mehrerer Netzkomponenten und / oder Netzabschnitte; insbesondere muss keines oder keiner der beteiligten Netzkomponenten / Netzabschnitte für sich betrachtet bereits einen schwierigen Kommunikationspfad ergeben. Auf dem Wege von A nach B können sich kein, einer, oder mehrere schwierige Kommunikationspfade befinden. Bezüglich jedes dieser schwierigen Kommunikationspfade können Optimierer, die in Bezug auf mögliche oder tatsächliche Datenflüsse sich bevorzugt auf der einem Endpunkt A zugewandten Seite des jeweils betrachteten schwierigen Kommunikationspfades befinden, eine andere Rolle spielen als Optimierer, die in Bezug auf mögliche oder tatsächliche Datenflüsse sich bevorzugt auf der dem anderen Endpunkt B zugewandten Seite des jeweils betrachteten schwierigen Kommunikationspfades befinden. Die Eigenschaften eines schwierigen Kommunikationspfades können vorübergehend (fast nie, selten, gelegentlich, häufig usw.) hervortreten, während derselbe Kommunikationspfad zu anderen Zeiten normale Eigenschaften aufweist.There is a possibility that one or more difficult communication paths (SKP) may be present through the communication relationship between two endpoints A and B. A difficult communication path is a component of the communication paths between A and B, the properties of which may possibly have a detrimental effect on the achievable quality of service, as described above in the examples transmission delay, packet loss and interruptions. These characteristics of the communication path may be due to the characteristics of a single network component and / or a single network section and / or to the combination of the properties of several network components and / or network sections; In particular, none or none of the involved network components / network sections alone must already result in a difficult communication path. On the way from A to B, there can be no, one or more difficult communication paths. With respect to each of these difficult communication paths, optimizers that are preferably on the endpoint A-facing side of the particular difficult communication path considered may play a different role than optimizers with respect to possible or actual data flows the other end point B facing side of each considered difficult communication path. The characteristics of a difficult communication path may be temporary (almost never, rarely, occasionally, frequently, etc.) while the same communication path has normal characteristics at other times.
Die Erfindung zielt auf Optimierungen für Daten- und / oder Namensdienste ab. Zur besseren Lesbarkeit des Dokumentes sind die folgenden Ausführungen in drei Hauptabschnitte untergliedert, die komplementäre und beliebig miteinander kombinierbare Aspekte der Erfindung erfassen: I. Optimierungen für die Nutzung von Namensdiensten, II. Allgemeine Optimierungen zum Umgang mit Paketverlusten, hohen Übertragungsverzögerungen (RTT), Unterbrechungen usw., sowie III. Weitere Optimierungen durch Kompression von Protokoll- Headern.The invention aims at optimizations for data and / or name services. For better readability of the document, the following explanations are subdivided into three main sections, which cover complementary and arbitrarily combinable aspects of the invention: I. Optimizations for the use of name services, II. General optimizations for handling packet losses, high transmission delays (RTT), interruptions etc., as well as III. Further optimizations by compression of protocol headers.
Einige mögliche Anordnungen zur Anwendung der Technologien sind in Fig. 1 und Fig. 2 sowie (mit speziellem Bezug zu Abschnitt I.a) ) in Fig. 3 dargestellt und werden im Folgenden erläutert.Some possible arrangements for using the technologies are shown in FIG. 1 and FIG. 2 and (with special reference to Section I.a)) in FIG. 3 and are explained below.
Fig. 1 bis 3 zeigen mehrere Systemkonfigurationen mit zwei kommunizierenden Endpunkten A und B, die Quelle und / oder Senke für Nutzdaten sein können. Die beiden Endpunkte sind über eine Folge von Übertragungsnetzen miteinander verbunden. „Verbunden" bedeutet, dass A und B Datenpakete austauschen können. Diese Datenpakete folgen einem Pfad / Kommu- nikationspfad (auch kurz als Pfad bezeichnet), der zum Beispiel von einem Routingprotokoll auf der Vermittlungsschicht dynamisch ausgewählt, statisch konfiguriert oder anderweitig ermittelt worden ist.Figures 1 to 3 show several system configurations with two communicating endpoints A and B, which may be source and / or sink for payload. The two endpoints are interconnected via a series of transmission networks. "Connected" means that A and B can exchange data packets. These data packets follow a path / communication path (also referred to as path for short) that has been dynamically selected, statically configured or otherwise determined, for example, by a routing protocol at the network layer.
Fig. Ibis 3 zeigen weiterhin beispielhaft verschiedene Stellen in einigen Zwischensystemen und / oder den Endpunkten, in denen von Optimierern Optimierungen durchgeführt werden können. Im Einzelnen:FIG. 3 further shows by way of example different locations in some intermediate systems and / or the end points in which optimizations can be performed by optimizers. In detail:
Fig. 1 a) stellt eine Anordnung mit zwei Endpunkten (A und B) und zwei von diesen getrennten Optimierern (X-I und X-2) dar. Die Endpunkte senden und empfangen Datenpakete unverändert. Die von einem Endpunkt gesendeten (zum Beispiel von A an B) Datenpakete können von X-I aufgenommen und vor der Weiterleitung an X-2 optimiert werden, so dass für das Übertragungsnetz N-X die Optimierung Ol genutzt werden kann. Die optimierten Datenpakete werden von X-2 erkannt, die Optimierung bei Bedarf ausgenutzt und die Datenpakete in ihrer ursprüngliche Form (wie von A gesendet) weitgehend oder ganz wiederhergestellt und dann an B weitergeleitet. Hinsichtlich der insgesamt zu erbringenden Funktion sind für B die durch X-2 gesendeten Datenpakete nicht oder nicht wesentlich von den von A gesendeten unterscheidbar bzw. müssen von diesen nicht gesondert unterschieden werden. Die Optimierung der Datenpakete auf dem Pfadabschnitt durch das Netz N-X ist für die Endpunkte transparent. Die Optimierung kann auf alle Datenpakete und / oder alle Datenpakete, die zwischen zwei oder mehr Endpunkten und / oder und oder zwei oder mehr Instanzen durch ein bestimmte Anwendung und / oder im Rahmen einer Kommunikationsbeziehung ausgetauscht werden, angewendet werden.Fig. 1 a) illustrates an arrangement with two endpoints (A and B) and two of these separate optimizers (X-I and X-2). The endpoints send and receive data packets unchanged. The data packets sent by an endpoint (for example, from A to B) can be picked up by X-I and optimized before being forwarded to X-2, so that the optimization Ol can be used for the transmission network N-X. The optimized data packets are recognized by X-2, exploited on an as-needed basis, and the data packets are restored to their original form (as sent by A), either largely or completely, and then forwarded to B. With respect to the overall function to be performed, for B the data packets sent by X-2 are not or not significantly distinguishable from those sent by A, or need not be separately distinguished from them. The optimization of the data packets on the path section by the network N-X is transparent to the endpoints. The optimization may be applied to all data packets and / or all data packets exchanged between two or more endpoints and / or and / or two or more instances by a particular application and / or within the context of a communication relationship.
Es sei angemerkt, dass hier und generell zur besseren Lesbarkeit im Text vereinfacht von „optimierten Datenpaketen" gesprochen wird. Hierunter fallt jedoch nicht nur eine Anpassung pro Datenpaket, sondern auch generell jede Anpassung des entsprechenden Stromes an Datenpaketen. Dies kann in vielfältiger Weise beispielsweise durch Modifikation der einzelnen Pakete, Modifikation ausgewählter Pakete, Einfügen von zusätzlichen Paketen oder anderweitiges Übertragen von Zusatzinformationen, aber auch beispielsweise durch eine besondere Behandlung und / oder Priorisierung und / oder geringere Verzögerung (beispielsweise durch Queueing) und / oder auch einer gezielten Verzögerung und / oder Unterdrückung und / oder Verdoppelung / Vervielfachung und / oder eine der anderen im folgenden beschriebenen Optimierungen der Pakete erfolgen. Von einer für die Endpunkte (oder beispielsweise den entsprechenden Anwendungen) transparenten Übertragung beziehungsweise weitgehend wiederhergestellten Datenpaketen oder ähnlichem wird auch dann gesprochen, wenn sich dies im entsprechenden Optimierungs-Zusammenhang nur auf die übertragenen Nutzdaten bezieht (also unter anderem nicht unbedingt auf Steuerinformationen der beteiligten Protokolle und / oder Paketgrenzen).It should be noted that here and in general for better readability in the text is simply referred to as "optimized data packets." However, this does not only include an adaptation per data packet, but also in general any adaptation of the corresponding stream of data packets Modification of the individual packets, modification of selected packets, insertion of additional packets or other transmission of additional information, but also for example by a special treatment and / or prioritization and / or lower delay (for example by queuing) and / or a targeted delay and / or Oppression and / or Doubling / multiplying and / or one of the other optimizations of the packets described below takes place. From a for the endpoints (or for example the corresponding applications) transparent transmission or largely recovered data packets or the like is also spoken, if this relates in the corresponding optimization context only on the transmitted payload (ie, among other things not necessarily on control information of the protocols involved and / or package limits).
In Fig. 1 b) ist einer der Optimierer (X-I) in den einen Endpunkt (A) integriert. Die logischen Funktionen von Endpunkt A und Optimierer X-I können unverändert sein. Auf diese Weise ist keine externe Komponente auf der Seite von A erforderlich, und aus Sicht der Optimierung Ol fallen die Übertragungsnetze N-A und N-X zusammen. Wie die Integration von X-I in A erfolgt, ist der lokalen Implementierung überlassen. Denkbar ist, daß die beiden Funktionen auch unabhängig voneinander realisiert sind, etwa daß ein eigenständiger Prozeß und / oder ein Treiber des Betriebssystems die Optimierungsfunktion implementiert. Möglich ist auch, dass eine Einsteckkarte und / oder die Firmware auf einer Onboard-Einheit diese Aufgaben wahrnehmen. Wie oben kann der Optimierer für eine, mehrere und / oder alle Anwendungen und / oder eine, mehrere und / oder alle Kommunikationsbeziehungen einer, mehrerer und / oder aller Anwendungen ausgeführt werden. Das Gegenstück (Optimierer X-2) entspricht dem aus Fig. 1 a).In FIG. 1 b) one of the optimizers (X-I) is integrated into the one end point (A). The logical functions of endpoint A and optimizer X-I may be unchanged. In this way, no external component is required on the side of A, and from the point of view of the optimization Ol, the transmission networks N-A and N-X coincide. How the integration of X-I into A is done is up to the local implementation. It is conceivable that the two functions are also implemented independently of each other, such that an independent process and / or a driver of the operating system implements the optimization function. It is also possible that a plug-in card and / or the firmware on an on-board unit perform these tasks. As above, the optimizer may be executed for one, several and / or all applications and / or one, several and / or all communication relationships of one, several and / or all applications. The counterpart (optimizer X-2) corresponds to that of Fig. 1 a).
Fig. 1 c) stellt eine Anordnung dar, in der beide Optimierer X-I und X-2 in die Endpunkte integriert sind, wie eben für Optimierer X-I beschrieben wurde. Die Ausführungen für Optimierer X-I gelten analog für Optimierer X-2. Die Realisierungen in den beiden Endpunkten können einander entsprechen oder in Teilen oder ganz unterschiedlich ausgestaltet sein.Fig. 1 c) illustrates an arrangement in which both optimizers X-I and X-2 are integrated into the end points, as just described for optimizer X-I. The executions for Optimizer X-I apply analogously to Optimizer X-2. The implementations in the two endpoints may correspond to each other or be designed in parts or quite differently.
Fig. 1 d) zeigt eine Anordnung, in der zwischen den Endpunkten A und B zwei voneinander unabhängige Optimierungen (Ol und 02) sequentiell auf unterschiedlichen Netzabschnitten (N-Xl und N-X2) stattfinden. Die vom Endpunkt A gesendeten Datenpakete werden zunächst über das Übertragungsnetz N-A zu Optimierer Xl-I übertragen und dann von Optimierer Xl-I optimiert. Die optimierten Datenpakete werden über das Übertragungsnetz N-Xl zum Optimierer X 1-2 gesendet und von diesem empfangen und teilweise oder ganz wiederhergestellt und dann über das Netz M an Optimierer X2-1 weitergeleitet. Dort werden die Datenpakete erneut optimiert und über das Netz N-X2 an Optimierer X2-2 gesendet, welcher die Datenpakete empfangt und teilweise oder ganz wiederhergestellt an Endpunkt B weiterleitet. Die beiden Optimierungen Ol und O2 können die gleichen, teilweise oder ganz unterschiedliche Verfahren und Algorithmen einsetzen, die auf den gleichen und / oder (teilweise) unterschiedlichen (Teilen von) Paketen und / oder Paket-Headern und / oder Nutzdaten bzw. Steuerdaten operieren.Fig. 1 d) shows an arrangement in which between the end points A and B two independent optimizations (Ol and 02) take place sequentially on different network sections (N-Xl and N-X2). The data packets sent by end point A are first transmitted via the transmission network NA to optimizers XI-I and then optimized by optimizers XI-I. The optimized data packets are sent via the transmission network N-Xl to the optimizer X 1-2 and received by the latter and partially or completely restored and then forwarded via the network M to optimizer X2-1. There will be the Data packets are again optimized and sent via the network N-X2 to optimizer X2-2, which receives the data packets and partially or completely recovered to point B forwarded. The two optimizations O1 and O2 can use the same, partially or completely different methods and algorithms that operate on the same and / or (partially) different (parts of) packets and / or packet headers and / or payload data or control data.
Während in Fig. 1 d) nur zwei von einander unabhängige Optimierungen dargestellt sind, können in einer konkreten Anordnung beliebig viele solcher Optimierungen vorhanden sein. Auch kann ein und derselbe Optimierer an mehr als einer Optimierung beteiligt sein. ZUM BEISPIEL können die Optimierer X 1-2 und X2-1 in demselben System implementiert sein, wobei dann faktisch kein Übertragungsnetz M vorhanden ist. Weiterhin kann die Anzahl der Optimierungen mit dem gewählten Pfad durch das Übertragungsnetz bzw. die Übertragungsnetze variieren: zwischen zwei Endpunkten A und B kann dies beispielsweise zeitlich geschehen, wenn sich beispielsweise aufgrund der Routing-Entscheidungen der Pfad während einer bestehenden Kommunikationsbeziehung ändert. Entsprechend der Fig. 1 b) und Fig. 1 c) können auch einer oder mehrere der Optimierer in die Endpunkte integriert sein.While only two independent optimizations are shown in FIG. 1 d), any number of such optimizations can be present in a specific arrangement. Also, one and the same optimizer may be involved in more than one optimization. For example, the optimizers X 1-2 and X2-1 may be implemented in the same system, in which case no transmission network M is in fact present. Furthermore, the number of optimizations with the selected path through the transmission network or transmission networks can vary: between two end points A and B, this can happen, for example, in time if, for example, due to the routing decisions, the path changes during an existing communication relationship. According to FIGS. 1 b) and 1 c), one or more of the optimizers can also be integrated into the end points.
Statt einer sequentiellen Anordnung können Optimierer auch parallel angeordnet sein. Dies kann (wie eben beschrieben) beispielsweise dann der Fall sein, falls sich die Wegewahl durch das Netz / die Netze ändert, aber auch dann, wenn das Routing die Datenpakete einer Kommunikationsbeziehung auf mehrere Pfade aufteilt (zum Beispiel zur Lastverteilung im Rahmen von Trafflc Engineering). In einem solchen Fall nehmen unterschiedliche Datenpakete verschiedene Wege und können von unterschiedlichen Optimierungen betroffen sein; auch kann auf beispielsweise einem dieser Pfade gar keine Optimierung erfolgen.Instead of a sequential arrangement, optimizers can also be arranged in parallel. This may be the case (as just described), for example, if the routing changes through the network (s), but also if the routing splits the data packets of a communication relationship over several paths (for example, for load distribution in the context of trafflc engineering ). In such a case, different data packets take different paths and may be affected by different optimizations; Also, for example, can be done on any of these paths no optimization.
Wie in Fig. 1 e) gezeigt, können zwei oder mehrere Optimierungen geschachtelt sein. In der dargestellten Anordnung wird das Übertragungsnetz N-X2 von den Optimierern X2-1 und X2-2 umschlossen, die die Optimierung 02 realisieren. Der Netzabschnitt bestehend aus den Übertragungsnetzen N-XIa, N-X2 und N-XIb wird von den Optimierern Xl-I und X 1-2 umschlossen, die die Optimierung Ol implementieren. Da die Optimierung 02 innerhalb von Ol erfolgt, arbeiten die Optimierer X2-1 und X2-2 mit teilweise optimierten Datenpaketen. Ein Datenpaket P, das von einem Endpunkt A gesendet wird, wird zunächst un-optimiert über das Übertragungsnetz N-A übertragen und dann in Optimierer Xl-I gemäß der Optimierung Ol optimiert. Das so optimierte Datenpaket P' (auch hier und folgende analog der optimierte Datenstrom) wird dann über das Übertragungsnetz N-XIa an Optimierer X2-1 gesendet. Optimierer X2-1 fuhrt nun eine weitere Optimierung O2 durch, woraus das Datenpaket P" hervorgeht. Für diese Optimierung 02 können die gleichen und / oder andere Kriterien wie bei Ol herangezogen werden. Bei O2 können die gleichen und / oder andere Algorithmen wie bei Ol eingesetzt werden. Das Datenpaket P" wird über das Übertragungsnetz N-X2 übertragen und von Optimierer X2-2 empfangen, wobei P' oder ein P' in wesentlichen Teilen entsprechendes Datenpaket rekonstruiert wird. Dieses rekonstruierte Datenpaket wird dann über das Übertragungsnetz N-XIb an Optimierer X 1-2 weitergeleitet. Dieser empfängt das Datenpaket und rekonstruiert so ein Datenpaket, welches P ganz oder in wesentlichen Teilen entspricht. Dieser von Xl -2 rekonstruierte Datenpaket wird dann an Endpunkt B über das Netz N-B weitergeleitet.As shown in FIG. 1 e), two or more optimizations may be nested. In the illustrated arrangement, the transmission network N-X2 is surrounded by the optimizers X2-1 and X2-2, which implement the optimization 02. The network section consisting of the transmission networks N-XIa, N-X2 and N-XIb is surrounded by the optimizers Xl-I and X 1-2, which implement the optimization Ol. Since the optimization 02 occurs within Ol, the optimizers X2-1 and X2-2 work with partially optimized data packets. A data packet P, which is sent from an end point A, is initially un-optimized over transmit the transmission network NA and then optimized in optimizer Xl-I according to the optimization Ol. The thus optimized data packet P '(also here and following analogous to the optimized data stream) is then sent via the transmission network N-XIa to optimizer X2-1. Optimizer X2-1 now carries out a further optimization O2, which results in the data packet P "For this optimization 02, the same and / or other criteria can be used as for oil The data packet P "is transmitted via the transmission network N-X2 and received by the optimizer X2-2, where P 'or a data packet corresponding substantially to P' is reconstructed. This reconstructed data packet is then forwarded via the transmission network N-XIb to optimizers X 1-2. This receives the data packet and thus reconstructs a data packet which corresponds to P in whole or in substantial parts. This data packet reconstructed by XI-2 is then forwarded to endpoint B via the network NB.
Bezugnehmend auf Fig. 1 e) kann für O2 die Optimierung Ol vollständig beibehalten werden und / oder sogar von den Komponenten X2-1 und / oder X2-2 ganz / teilweise uninterpretiert bleiben. Alternativ könnte zum Beispiel X2-1 auch die Optimierung Ol ganz oder teilweise aufheben bzw. zumindest interpretieren, beispielsweise um in Kombination mit den für O2 angewandten Verfahren einige bereits bei Ol optimierte Aspekte beispielweise effizienter oder für die folgenden Netzabschnitte / Netze effizienter zu optimieren und / oder für beide Verfahren einige der Optimierungsaspekte ganz oder teilweise gemeinsam zu nutzen. Auch wenn in Fig. 1 e) nur eine einfache Schachtelung von Optimierungen dargestellt ist, ist die Anzahl der geschachtelten Optimierungen grundsätzlich nicht begrenzt. Auch können sequentielle Optimierungen, wie zu Fig. 1 d) beschrieben, auf jeder Schachtelungstiefe vorliegen. Und es können Optimierer verschiedener Schachtelungen in einem System implementiert sein, also beispielsweise Xl-I und X2-1 zusammenfallen (wobei dann das Übertragungsnetz N-XIa praktisch wegfällt). Weiterhin können einzelne oder mehrere Optimierer direkt in Endpunkten implementiert sein (analog zu Fig. 1 b) und Fig. 1 c). Wie zu Fig. 1 d) beschrieben, kann sich die Zusammensetzung der Optimierer zeitlich und / oder räumlich ändern; auch können mehrere Optimierungen parallel betrieben werden.Referring to Figure 1e), for O2, the optimization oil can be completely retained and / or even completely / partially uninterpreted by the components X2-1 and / or X2-2. Alternatively, for example, X2-1 could also wholly or partially cancel the optimization oil, for example, in order to more efficiently optimize some already optimized for oil in combination with the methods used for O2 or more efficiently for the following network sections / networks and / or or to share some or all of the optimization aspects in whole or in part for both methods. Although only a simple nesting of optimizations is shown in FIG. 1 e), the number of nested optimizations is basically not limited. Also, sequential optimizations as described for FIG. 1 (d) may be present at any nesting depth. And optimizers of different nestings can be implemented in one system, for example Xl-I and X2-1 coincide (in which case the transmission network N-XIa is practically eliminated). Furthermore, single or multiple optimizers may be implemented directly in endpoints (analogous to FIG. 1 b) and FIG. 1 c). As described for FIG. 1 d), the composition of the optimizers may change temporally and / or spatially; also several optimizations can be operated in parallel.
In den folgenden Beschreibungen wird genannt, dass einige der Ausgestaltungen der Erfindung auch entsprechend Fig. 2 mit optional nur einer einseitigen Optimierer Komponente (in Fig. 2 Optimierer X-I) realisiert werden können. Analog zu den Anordnungen in Fig. 1 kann der Optimierer X-I dabei sowohl in den Endpunkt integriert sein (Fig. 2 g) ) oder losgelöst vom Endpunkt im Datenpfad der Pakete im Netz angeordnet sein (Fig. 2 f) ). Ebenfalls möglich sind in diesen Fällen beispielsweise mehrfache Optimierungen mit mehreren nur einseitig eingesetzten Optimierern und / oder in Kombination mit Optimierer Komponenten-Paaren wie beispielsweise in Fig. 1 beschrieben.In the following descriptions, it is mentioned that some of the embodiments of the invention also correspond to FIG. 2 with optionally only a one-sided optimizer component (in Fig. 2 optimizer XI) can be realized. Analogously to the arrangements in FIG. 1, the optimizer XI can be integrated into the end point (FIG. 2 g) or can be arranged detached from the end point in the data path of the packets in the network (FIG. 2 f)). Also possible in these cases, for example, multiple optimizations with multiple optimizers used only on one side and / or in combination with optimizer component pairs as described for example in Fig. 1.
Fig. 3 bezieht sich speziell auf die nachfolgende in Abschnitt La) beschriebenen Aspekte der Erfindung. Die Optimierung wird dabei von einem Optimierer X-I erbracht, der entsprechend Fig. 3 a) als separate Komponente im Datenpfad zwischen den Kommunizierenden Endpunkten A, B angeordnet sein kann. Entsprechend Fig. 3 b) kann der Optimierer X-I jedoch auch in den Endpunkt A integriert sein. Entsprechend Fig. 3 c) kann der Optimierer X-I auch in mehrere logische, oder, wie in Fig. 3 c) dargestellt, auch mehrere physikalisch getrennte Komponenten aufgeteilt sein. Beispielsweise in eine Komponente X-Ia im Datenpfad zwischen A, B sowie in eine Komponente X-Ib, die beispielsweise NDS Funktionen erbringt. Dabei können auch einzelne Komponenten von X- 1 in den Endpunkt A integriert werden, wie in Fig. 3 d) für X-Ib sowie in Fig. 3 e) für X-Ia beispielhaft gezeigt.Fig. 3 refers specifically to the following aspects of the invention described in section La). The optimization is performed by an optimizer X-I, which according to FIG. 3 a) can be arranged as a separate component in the data path between the communicating end points A, B. However, according to FIG. 3 b), the optimizer X-1 can also be integrated into the end point A. According to FIG. 3 c), the optimizer X-I can also be divided into a plurality of logical or, as shown in FIG. 3 c), also a plurality of physically separate components. For example, in a component X-Ia in the data path between A, B and in a component X-Ib, which provides, for example NDS functions. It is also possible to integrate individual components of X-1 into the end point A, as shown by way of example in FIG. 3 d) for X-Ib and in FIG. 3 e) for X-Ia.
Die vorstehend genannten und in Fig. 1, Fig. 2, Fig. 3 dargestellten Anordnungen sind nur beispielhaft gezeigt und zur Illustration zu verstehen. Beliebige Kombinationen dieser Anordnungen und daraus abgeleitete Anordnungen sind möglich. Auch wenn im folgenden von beispielsweise Anordnungen entsprechend Fig. 1, Fig. 2 und / oder Fig. 3 gesprochen wird, so sind auch die daraus kombinierten und abgeleiteten Anordnungen gemeint.The arrangements mentioned above and illustrated in FIGS. 1, 2, 3 are shown by way of example only and to be understood by way of illustration. Any combinations of these arrangements and arrangements derived therefrom are possible. Although the following is spoken of, for example, arrangements according to FIG. 1, FIG. 2 and / or FIG. 3, the arrangements combined and derived therefrom are also meant.
Insbesondere sind der Übersichtlichkeit halber nur zwei kommunizierende Instanzen in Fig. 1 , Fig. 2 und Fig. 3 dargestellt. Genauso können aber auch mehr als zwei Instanzen als Quellen und / oder Senken von Nutzdaten und / oder als Sender und / oder Empfänger von Steuerinformationen auftreten.In particular, only two communicating entities are shown in FIGS. 1, 2 and 3 for the sake of clarity. Equally, however, more than two instances may occur as sources and / or sinks of payload data and / or as transmitters and / or receivers of control information.
Je nach konkreten Einsatzszenarien, generellen Anforderungen und / oder gewählten Netzen kann es auch vorteilhaft sein, einzelne oder Gruppen von Endpunkten / Systemkomponenten zunächst unter Einsatz von Optimierungs- Verfahren mit ausgewählten Intermediate-Instanzen kommunizieren zu lassen und von diesen aus zu „externen" anderen Endpunkten / System- komponenten ohne Optimierungs- Verfahren, mit anderen Optimierungs- Verfahren oder nur mit einem Teil der eingesetzten Optimierungen zu arbeiten. Diese Intermediate-Instanzen würden dann quasi als Gateway eingesetzt. Letztendlich sind solche Einsatzszenarien aber auf Kombinationen oder leichte Erweiterungen der in Fig. 1, Fig. 2 und Fig. 3 dargestellten Anordnungen zurückzuführen.Depending on the specific application scenarios, general requirements and / or selected networks, it may also be advantageous to have individual or groups of endpoints / system components communicate with selected intermediate instances using optimization methods and from these to "external" other endpoints / System components without optimization procedures, with other optimization methods or only with part of the optimizations used. These intermediate entities would then be used as a kind of gateway. Ultimately, however, such application scenarios are due to combinations or slight extensions of the arrangements shown in FIGS. 1, 2 and 3.
Die Anwendungen können in allen Anordnungen Nutzdaten unidirektional und / oder bidirektional übertragen. Ebenso können einzelne, einige und / oder alle Netze physisch zur unidi- rektionalen und / oder bidirektionalen Übertragung ausgelegt sein.The applications can transmit user data unidirectionally and / or bidirectionally in all arrangements. Likewise, individual, some and / or all networks can be physically designed for unidirectional and / or bidirectional transmission.
Ein Übertragungsnetz oder Netz wie unter anderem in Fig. 1 , Fig. 2 und / oder Fig. 3 dargestellt kann aus mehreren / vielen Übertragungsabschnitten mit zwischengeschalteten Systemen (Bridges, Switches, Routern, Gateways, Proxies usw.) bestehen, kann aus nur einzelnen Übertragungsabschnitten bestehen (beispielsweise eine „durchgeschaltete" Leitung oder eine direkte physische Verbindung durch elektrisches Kabel, Lichtwellenleiter, akustische Kopplung, elektromagnetische Wellen usw.), kann aber durchaus aus auch mehreren miteinander verbundenen Teilnetzen bestehen (die zum Beispiel das Internet-Protokoll nutzen). Genauso können die gezeigten Netze auch aus lokalen Verbindungen bzw. einem lokalen Netz bestehen (insbesondere wird dies bei Netz N-A und N-B durchaus oft der Fall sein, kann aber genauso auch auf die anderen Netze zutreffen).A transmission network or network, as shown inter alia in FIG. 1, FIG. 2 and / or FIG. 3, can consist of several / many transmission sections with interconnected systems (bridges, switches, routers, gateways, proxies etc.), can consist only of individual ones Transmission sections exist (for example, a "through-line" or a direct physical connection by electrical cable, fiber optics, acoustic coupling, electromagnetic waves, etc.), but may well consist of several interconnected subnets (for example, use the Internet Protocol). Likewise, the networks shown may also consist of local connections or a local network (in particular, this will quite often be the case with network NA and NB, but may equally apply to the other networks).
Die vorstehend ausgeführten Netze können beliebige Netze sein (zum Beispiel IP -Netze, verzögerungstolerante Netze (DTNs), lokale Netze wie Ethernet und WLAN, PDH-, SDH- und / oder ATM-Netze, Telefonnetze, Funknetze (wie beispielsweise Mobilfunk, WiMax, 3G, UMTS, HS(D)PA, DVB-T, LTE, UWB, OFDM, 802.1 Ib / a / g / n / s, ...), Satellitenverbindungen (wie beispielsweise DVB-S / S2, DVB-RCS, proprietäre Satellitenverbindungen, Funknetze im Weltraum), auch in kabelgebundenen (Broadcast-) Netzen (wie Kabelnetze, DSL, Fibre-to-the-Home, ...) usw., aber auch Overlay-Netze wie etwa Peer-to-Peer-Netze) und auch Kombinationen aus beliebigen Netzen verschiedener Typen. Die Optimierungsfunktionen sind nicht auf die Nutzung durch Protokolle einer bestimmten Schicht, Anwendung und / oder Anwendungsart begrenzt, können dies aber sein, bzw. speziell auf diese ausgelegt sein. Optimierungen können auf/ für einzelne(n) Schichten oder auch schichtübergreifend arbeiten. Die Optimierung kann von den Eigenheiten der umgebenden Netze oder der Pfade durch das Netz abhängig sein und / oder von der Funktion und / oder dem Vorhandensein bestimmter Netzelemente: so kann beispielsweise eine Optimierungsfunktion anders arbeiten, wenn die Pakete auf dem Weg bestimmte weitere Netzelemente wie Router, NATs und / oder Firewalls passieren müssen. Verschiedene Optimierungen (und deren Optimierer) können sich untereinander abstimmen und / oder unabhängig voneinander arbeiten.The above-mentioned networks may be arbitrary networks (for example IP networks, delay tolerant networks (DTNs), local area networks such as Ethernet and WLAN, PDH, SDH and / or ATM networks, telephone networks, radio networks (such as mobile telephony, WiMax, 3G, UMTS, HS (D) PA, DVB-T, LTE, UWB, OFDM, 802.1 lb / a / g / n / s, ...), satellite links (such as DVB-S / S2, DVB-RCS, proprietary satellite links, radio networks in space), and also in wired (broadcast) networks (such as cable networks, DSL, fiber-to-the-home, ...) etc., as well as overlay networks such as peer-to-peer networks. Networks) and also combinations of arbitrary networks of different types. The optimization features are not limited to use by protocols of a particular layer, application, and / or type of application, but may or may not be specific to them. Optimizations can work on individual layers or across layers. The optimization may depend on the characteristics of the surrounding networks or the Paths dependent on the network and / or the function and / or the presence of certain network elements: for example, an optimization function can work differently if the packets on the way certain other network elements such as routers, NATs and / or firewalls must pass. Different optimizations (and their optimizers) can coordinate with each other and / or work independently of each other.
I. Optimierungen fiir die Nutzung von NamensdienstenI. Optimizations for the use of name services
Wie oben beschrieben kann es für die Etablierung einer Kommunikationsbeziehung im Rahmen eines Datendienstes zwischen zwei Endpunkten A, B erforderlich sein, dass beispielsweise einer der Endpunkte A einen Namensdienst konsultiert. Dies kann geschehen, um Adress- oder andere Informationen beispielsweise über den anderen oder einen weiteren Endpunkt zu erhalten. Es lassen sich logisch zwei Kommunikationsphasen unterscheiden: eine Namensdienstphase, in der mindestens eine Namensauflösung durchgeführt wird, und eine Datendienstphase, während der die Kommunikation im Rahmen eines Datendienstes potentiell unter Nutzung von zumindest Teilen der durch die Namensauflösung erhaltenen Informationen stattfindet. Die Namens- und Datendienstphasen können sequentiell, parallel oder (teilweise) überlappend ablaufen; für eine Datendienstphase können keine, eine oder mehrere Namensdienstphasen ausgeführt werden, und eine Namensdienstphase kann eine oder mehrere Namensauflösungen umfassen.As described above, to establish a communication relationship in the context of a data service between two endpoints A, B, it may be necessary, for example, for one of the endpoints A to consult a naming service. This can be done to get address or other information, for example, about the other or another endpoint. Logically, two communication phases can be distinguished: a name service phase in which at least one name resolution is performed, and a data service phase during which the communication within a data service potentially takes place using at least parts of the information obtained by the name resolution. The name and data service phases may be sequential, parallel or (partially) overlapping; for a data service phase, none, one or more name service phases may be performed, and a name service phase may include one or more name resolutions.
In einer Namensdienstphase erfordert die Nutzung eines Namensdienstes potentiell den Austausch von Informationen (zum Beispiel das Senden einer Anfrage und das Erhalten einer Antwort) zur Namensauflösung. Dieser Informationsaustausch geschieht im Rahmen einer Kommunikationsbeziehung zwischen dem beispielsweise einen Endpunkt A und dem Namensdienstserver. Aus Sicht der Nutzung des Namensdienstes sind dann der Endpunkt A und der Namensdienstserver zwei Endpunkte der Kommunikationsbeziehung für Anfragen an den Namendienst. Diese Kommunikationsbeziehung lässt ebenfalls entsprechend Fig. 1 darstellen: Endpunkt B repräsentiert dann einen Namensdienstserver. Die obigen Ausführungen zur Beeinträchtigung der Kommunikation über ein oder mehrere Netze - insbesondere über einen schwierigen Kommunikationspfad (SKP) - finden entsprechend auf die Kommunikation zwischen den Endpunkten A und B zur Namensauflösung Anwendung. Im folgenden wird der Begriff Namensdienstserver (NDS) verwendet und bezeichnet eine Komponente, an die ein Endpunkt (beispielsweise A oder B) und / oder somit auch ein Namensdienstserver anderer Hierarchie-Ebenen / Stufen eine Namensauflösungsanfrage stellen kann. Das Stellen einer Anfrage kann direkt oder indirekt (indirekt = über mindestens eine weitere logische oder physisch ausgebildete Systemkomponente) geschehen; ebenso kann die Antwort direkt oder indirekt übermittelt werden. Das Beantworten einer Anfrage kann auch durch geeignetes Weiterleiten der Anfrage geschehen (beispielsweise an einen oder mehrere weitere Namensdienstserver), wobei eine folgende Antwort dann direkt an den anfragenden Endpunkt, indirekt über den weiterleitenden Namensdienstserver, und / oder indirekt über weitere logisch oder physisch ausgebildete Komponenten durchgeführt wird.In a name service phase, the use of a name service potentially requires the exchange of information (eg, sending a request and receiving a response) for name resolution. This information exchange takes place within the framework of a communication relationship between, for example, an end point A and the name service server. From the point of view of using the name service, the end point A and the name service server are then two endpoints of the communication relationship for queries to the name service. This communication relationship is also illustrated in FIG. 1: endpoint B then represents a name service server. The above comments on the impairment of communication over one or more networks - especially over a difficult communication path (SKP) - apply accordingly to the communication between the endpoints A and B for name resolution application. In the following, the term name service server (NDS) is used and designates a component to which an endpoint (for example A or B) and / or thus also a name service server of other hierarchy levels / levels can request a name resolution request. The request can be made directly or indirectly (indirectly = via at least one other logical or physically trained system component); likewise the answer can be transmitted directly or indirectly. Answering a request may also be done by appropriately forwarding the request (for example, to one or more other name service servers), with a subsequent response then directly to the requesting endpoint, indirectly via the forwarding name service server, and / or indirectly via other logically or physically trained components is carried out.
Weiterhin kann eine Anfrage auch implizit in einer Nachricht (zum Beispiel einem oder mehreren Paketen) eines Datendienstes enthalten sein. In einem solchen Fall kann ein Namensdienstserver (wie oben beschrieben) eine Antwort im Rahmen des Datendienstes generieren. Beispiele hierfür sind HTTP- oder SIP-Redirect-Nachrichten, die den Fehlercode 301 oder 302 nutzen und von einem Webserver, -proxy bzw. SIP-Redirect-Server oder -User-Agent generiert werden. Aber auch andere Protokolle sehen entsprechende Nachrichten vor. Ein Namensdienstserver kann auch beispielsweise von einem Zwischensystem (zum Beispiel ein „Proxy", „Peer") eines Datendienstes konsultiert werden, das die Nachricht des Datendienstes dann entsprechend der Adressauflösung durch den Namendiestserver weiterleitet, beispielsweise an einen weiteren Proxy, an den intendierten Endpunkt B und / oder an einen oder mehrere weitere Endpunkte. Wie oben beschrieben sind Beispiele für Datendienste, die Namensauflösungen umfassen, das Session Initiation Protocol (SIP), das Hypertext-Transfer Protocol (HTTP), Peer-to-Peer- und andere Overlay-Netze.Furthermore, a request may also be included implicitly in a message (for example, one or more packets) of a data service. In such a case, a name service server (as described above) may generate a response as part of the data service. Examples include HTTP or SIP redirect messages that use error code 301 or 302 and are generated by a web server, proxy, or SIP redirect server or user agent. But other protocols provide appropriate messages. A name service server can also be consulted, for example, by an intermediate system (for example, a "proxy", "peer") of a data service, which then forwards the message of the data service to the intended endpoint B according to the address resolution by the name dispatch server, for example to another proxy and / or one or more other endpoints. As described above, examples of data services including name resolutions include Session Initiation Protocol (SIP), Hypertext Transfer Protocol (HTTP), peer-to-peer, and other overlay networks.
Anfragen zur Namensauflösung können von Endpunkten und / oder Namensdienstservern gestellt werden.Name resolution requests can be made by endpoints and / or name service servers.
Eine Optimiereranordnung mit mindestens einem Optimierer kann eine Optimierung für einen Namensdienst realisieren. Dies kann insbesondere vorteilhaft sein, wenn die Kommunikation eines Endpunkts A in einer Namensdienstphase mit einem Namensdienstserver (NDS) B über einen schwierigen Kommunikationspfad (SKP) erfolgt. Das Vorhandensein eines SKP kann dazu führen, dass Anfragen an einen (und ggf. Antworten von einem) NDS durch die Über- tragungsverzögerung verzögert werden. Auch können Anfragen und / oder Antworten auf dem SKP verloren gehen, so dass sie nach Ablauf eines Timeouts nochmals gesendet werden müssen, was wiederum zu einer Verzögerung führt. Auch eine begrenzte Bandbreite auf dem SKP kann dazu führen, dass Anfragen und / oder Antworten verzögert werden und / oder verloren gehen. Eine beispielsweise vorübergehende Übertragungs-Unterbrechung kann dazu führen, dass ein NDS vorübergehend nicht erreichbar ist, so dass eine Namensauflösung vorübergehend nicht durchgeführt werden kann, was wiederum zu einer Verzögerung und / oder einer Fehlersituation führen kann.An optimizer arrangement with at least one optimizer can realize an optimization for a name service. This can be particularly advantageous if the communication of an end point A in a name service phase with a name service server (NDS) B takes place via a difficult communication path (SKP). The presence of an SKP can lead to queries to one (and possibly replies from one) NDS caused by the over- Delay delay be delayed. Also, requests and / or replies to the SKP may be lost, requiring them to be retransmitted after a timeout, which in turn results in a delay. Also, a limited bandwidth on the SKP may cause requests and / or replies to be delayed and / or lost. A temporary transmission interruption, for example, can result in an NDS being temporarily unavailable, so that name resolution can not be performed temporarily, which in turn can lead to a delay and / or an error situation.
Ein Optimierer X einer Optimiereranordnung kann für einen Endpunkt A als Namensdienstserver (der ersten Stufe) - statisch oder dynamisch - konfiguriert sein oder als weiterer Namensdienstserver (der zweiten bis n-ten Stufe) eingerichtet sein, der zur Namensauflösung durch den Namensdienstserver der ersten (bis k-ten) Stufe verwendet wird. Ein Optimierer X kann auch so in der Netztopologie angeordnet sein oder das Netz so ausgebildet, dass sich der Optimierer im Pfad der Anfragen eines Endpunkts A oder eines Namensdienstservers auf dem Weg zu einem (weiteren) Namensdienstserver befindet, so dass die Anfragen den Optimierer X passieren oder durch ihn empfangen werden. Im allgemeinen Fall kann der Endpunkt A auch ein Namensdienstserver sein, der Anfragen von anderen Namensdienstserver und / oder Endpunkten bearbeitet und / oder weiterleitet.An optimizer X of an optimizer arrangement may be configured for an endpoint A as a name service server (first level) - static or dynamic - or established as another name service server (second to nth level) for name resolution by the name service server of the first (to k-th) stage is used. An optimizer X can also be arranged in the network topology or the network is configured such that the optimizer is in the path of the requests of an end point A or a name service server en route to a (further) name service server, so that the requests pass through the optimizer X. or be received by him. In the general case, endpoint A may also be a name service server that processes and / or forwards requests from other name service servers and / or endpoints.
Die vorliegende Erfindung reduziert den Einfluss eines schwierigen Kommunikationspfades SKP auf die Namensauflösung durch zweierlei Mechanismen, die zur besseren Übersichtlichkeit im folgenden unter I.a), Lb) und Lc) beschrieben werden. Die in den einzelnen Teilen zu I. beschriebenen Mechanismen, deren verschiedenartige Ausprägungen sowie Anordnungen können miteinander und mit den unter IL und III. beschriebenen Optimierungen kombiniert werden.The present invention reduces the influence of a difficult communication path SKP on the name resolution by two mechanisms, which are described below for clarity in I.a), Lb) and Lc). The mechanisms described in the individual parts to I., their various forms and arrangements can be compared with each other and with those under IL and III. combined optimizations.
La) Vergabe und Nutzung einer Pseudo-AdresseLa) Assignment and use of a pseudo-address
Wie oben beschrieben, kann eine Namensauflösung über einen potentiell schwierigen Kommunikationspfad (SKP) ggf. zu einer Verzögerung in der weiteren Ausführung des Datendienstes führen, weil ein Endpunkt A ggf. auf das Ergebnis der Namensauflösung warten kann oder gar muss, bevor er weitere Schritte (beispielsweise der Aufbau einer Kommunika- tionsbeziehung zu einem weiteren Endpunkt) unternimmt. Die vom Endpunkt A durchgeführte Namensauflösung kann - wie oben erwähnt - beliebige Interaktionen mit einem oder mehreren Namensdienstservern und / oder Optimierern umfassen. Insbesondere kann Endpunkt A beispielsweise einen DNS-Namen in eine IP -Adresse umsetzen wollen (etwa um einen Server zu erreichen), aber auch eine IP -Adresse in einen DNS-Namen („Reverse- Lookup") umsetzen wollen (etwa wenn ein Server versucht, den Namen eines ihn kontaktierenden Kommunikationspartners zu bestimmen). Diese und / oder weitere Namensauflösungen können einen oder mehrere Schritte und / oder Interaktionen erfordern.As described above, name resolution over a potentially difficult communication path (SKP) may eventually result in a delay in the further execution of the data service because an endpoint A may or may not have to wait for the result of the name resolution before taking further steps (FIG. For example, building a communication relationship to another endpoint). The name resolution performed by endpoint A may, as mentioned above, include any interaction with one or more name service servers and / or optimizers. In particular, endpoint A may, for example, want to translate a DNS name into an IP address (for example, to reach a server), but also to implement an IP address in a DNS name ("reverse lookup") (for example, if a server attempts to determine the name of a communication partner contacting him.) These and / or other name resolutions may require one or more steps and / or interactions.
Es kann daher vorteilhaft sein, dass ein Optimierer X, der vom Endpunkt A die Anfrage zur Namensauflösung empfängt, eine Pseudo-Adresse ermittelt und diese zeitnah als Antwort an A sendet. Diese Pseudo-Adresse braucht nicht mit der durch die Namensdienst-Anfrage gesuchten Adresse übereinzustimmen, allerdings speichert der Optimierer X zumindest Teile der Anfrage und / oder zumindest Teile der Pseudo-Adresse und / oder zumindest Teile der generierten Antwort und / oder zumindest Teile der Abbildung zwischen Anfrage und Antwort. Die Pseudo-Adresse wird im Rahmen der Optimiereranordnung so gewählt, dass Datenpakete, die an diese Adresse gesendet werden, von einer Komponente des Optimierers X oder eines weiteren Optimierers der Optimiereranordnung empfangen werden (beispielsweise von X-I bzw. Xl-a entsprechend Fig. 3). Je nach Ausgestaltung der Optimiereranordnung kann die Auswahl der Pseudo-Adresse bestimmten Regeln unterliegen (zum Beispiel eine lokal gültige, regional gültige, global gültige Adresse oder für einen Teil des Kommunikationspfades, insbesondere zwischen X-I bzw. X-Ia und A entsprechend Fig. 3, gültig sein müssen), einem bestimmten Adressformat genügen müssen, oder sie frei gewählt werden können. Die Adresse kann zufällig gewählt und / oder kryptographisch generiert werden. Für eine Pseudo-Adresse kann eine dauerhafte oder vorübergehende Gültigkeitsdauer bestimmt werden.It can therefore be advantageous for an optimizer X, which receives the request for name resolution from the end point A, to determine a pseudo-address and to send it promptly in response to A. This pseudo-address does not need to match the address sought by the name service request, however, optimizer X stores at least portions of the request and / or at least portions of the pseudo-address and / or at least portions of the generated response and / or at least portions of the mapping between request and answer. The pseudo-address is chosen in the context of the optimizer arrangement such that data packets sent to this address are received by a component of the optimizer X or of another optimizer of the optimizer arrangement (for example of XI or XI-a corresponding to FIG. 3). , Depending on the configuration of the optimizer arrangement, the selection of the pseudo-address may be subject to certain rules (for example a locally valid, regionally valid, globally valid address or for a part of the communication path, in particular between XI or X-Ia and A according to FIG. must be valid), a specific address format, or they can be chosen freely. The address can be selected at random and / or generated cryptographically. For a pseudo-address, a permanent or temporary validity period can be determined.
Es kann vorteilhaft sein, die Gültigkeitsdauer so kurz wie möglich zu bestimmen - etwa nur für eine Anfrage, für eine Sekunde, für weniger als eine Minute -, beispielsweise um den pot- netiell begrenzten Vorrat an P seudo- Adressen nicht auszuschöpfen und / oder um bei der nächsten Anfrage bereit die richtige Antwort liefern zu können und dadurch ggf. das im folgenden beschriebene Umsetzen von Pseudo-Adressen in andere Adressen zu minimieren. Die Gültigkeitsdauer kann insbesondere in Abhängigkeit von Zeit geschehen, die erwartungsge- mäß zwischen Anfrage und Antwort eine Adressauflösung mittels eines Namensdienstes verstreicht.It may be advantageous to set the period of validity as short as possible - for example, only for one request, for one second, for less than a minute - for example, in order not to exhaust the poten- tially limited supply of private addresses and / or order ready to provide the correct answer on the next request, possibly minimizing the conversion of pseudo-addresses to other addresses as described below. The period of validity may, in particular, be dependent on time, the expected In accordance with the invention, an address resolution between a request and a reply by means of a name service elapses.
Weiterhin stellt der Optimierer X seinerseits eine Anfrage an einen weiteren Namensdienstserver, um die zur Beantwortung der Anfrage von A erforderliche Adresse zu ermitteln. Bei dieser Adresse - sie wird auch als „andere Adresse" bezeichnet - kann es sich um die vom Endpunkt A gesuchte (zum Beispiel die Adresse des weiteren Endsystems) oder um die Adresse des Optimierers X oder eines weiteren Optimierers einer - derselben oder anderen - Optimiereranordnung handeln oder um eine Adresse eines weiteren Namensdienstservers. Der Optimierer X teilt einer (logischen oder physischen) Komponente für die Adressumsetzung (AU) die Pseudo-Adresse, die „andere Adresse", und / oder zumindest Teile des Inhalts der Anfrage und / oder der Antwort zur Namensauflösung mit. Im Beispiel in Fig. 3.a) und 3.b) ist AU nicht separat ausgewiesen und im Optimierer X-I integriert. In den Beispielen in Fig. 3.c), 3d) und 3.e) besteht der Optimierer aus mehreren Komponenten (X-Ia und X-Ib) und AU kann jeweils beispielsweise der Optimiererkomponente X-Ia entsprechen bzw. Funktionen von AU können in Xl-a integriert und / oder AU kann beispielsweise dem Optimierer X-Ib ensprechen bzw. Funktionen von AU können in X-Ib integriert sein. Funktionen von AU können auch sowohl in Xl-a als auch in Xl-b enthalten sein.Furthermore, the optimizer X in turn makes a request to another name service server to determine the address required to answer A's request. This address - also referred to as "another address" - may be the one sought by endpoint A (eg the address of the further end system) or the address of optimizer X or another optimizer of one or the same optimizer arrangement The optimizer X notifies a (logical or physical) component for the address translation (AU) of the pseudo-address, the "other address", and / or at least parts of the content of the request and / or the Answer to the name resolution with. In the example in Fig. 3.a) and 3.b) AU is not shown separately and integrated in the optimizer X-I. In the examples in FIGS. 3.c), 3d) and 3.e), the optimizer consists of several components (X-Ia and X-Ib) and AU can respectively correspond to the optimizer component X-Ia or functions of AU respectively integrated in Xl-a and / or AU, for example, the optimizer X-Ib ensprech or functions of AU can be integrated into X-Ib. Functions of AU can also be included in both Xl-a and Xl-b.
Sendet der Endpunkt A jetzt Pakete an die Pseudo-Adresse, so werden diese von mindestens einer Komponente eines Optimierers X der Optimiereranordnung empfangen (beispielsweise von X-I bzw. X-Ia entsprechend Fig. 3) ). Nachdem X bzw. die genutzte Komponente von X über die zu einer Pseudo-Adresse gehörende „andere Adresse" informiert wurde, ersetzt sie die in den Paketen vom Endpunkt A enthaltene(n) Pseudo-Adresse(n) an geeigneten Stellen (zum Beispiel in der Zieladresse des IP-Headers) durch die „andere Adresse" und leitet die so veränderten (=optimierten) Pakete geeignet weiter (beispielsweise entsprechend einer IP- Routing-Tabelle). Je nach Funktionalität eines Optimierers kann es dabei vorteilhaft sein, weitere Funktionen und Optimierungen durchzuführen. Dadurch kann es sein, dass die von X weiter geleiteten Pakete auch in anderen Header-Feldern von den von A empfangenen Paketen abweichen sowie beispielsweise Paketgrenzen und / oder Nutzdaten(grenzen) des Paketstromes abgewandelt werden. Ein Beispiel wäre ein ganz oder teilweise entsprechend eines Connection-Splitting- Verfahrens arbeitender Optimierer X, der die von A empfangenen Verbindungen (beispielsweise auf einer/mehreren Protökollebenen wie TCP und / oder HTTP) ganz oder teilweise terminiert und aus Sicht der betroffenen Protokoll neue/abgewandelte Kommunikationsbeziehungen zur Kommunikation mit B bzw. zwischengeschalteten Instanzen nutzt.If the endpoint A now sends packets to the pseudo-address, these are received by at least one component of an optimizer X of the optimizer arrangement (for example from XI or X-Ia according to FIG. 3)). After X or the used component of X has been informed about the "other address" belonging to a pseudo-address, it replaces the pseudo-address (s) contained in the packets from the end-point A at suitable places (for example in the destination address of the IP header) through the "other address" and forwards the thus changed (= optimized) packets suitably (for example according to an IP routing table). Depending on the functionality of an optimizer, it may be advantageous to carry out further functions and optimizations. As a result, it is possible that the packets forwarded by X also deviate from the packets received by A in other header fields and, for example, packet boundaries and / or user data (limits) of the packet stream are modified. An example would be an optimizer X operating in whole or in part according to a connection splitting method, which records the connections received by A (for example on one or more protocol layers such as TCP and / or HTTP). terminated in whole or in part and uses new / modified communication relationships for communication with B or intermediary instances from the point of view of the protocol concerned.
Es kann vorteilhaft sein, die Umsetzung der Adressen in verschiedenen Protokollen bzw. Protokollheadern von statisch konfigurierten und / oder dynamisch ermittelten, ergänzten und / oder modifizierten Regeln abhängig zu machen. Im folgenden sind Beispiele für solche Regeln genannt, die vorteilhaft einzeln angewendet werden können oder von denen zwei oder mehrere kombiniert werden können oder von denen eine oder mehrere mit weiteren Regeln kombiniert werden können.It may be advantageous to make the implementation of the addresses in different protocols or protocol headers dependent on statically configured and / or dynamically determined, supplemented and / or modified rules. The following are examples of such rules that may be advantageous to apply individually or two or more of which may be combined or one or more of which may be combined with other rules.
- Beispielsweise kann die Umsetzung der Pseudo-Adresse in die „andere Adresse" (für Pakete, die vom Endpunkt A gesendet werden) und umgekehrt (für Pakete, die an den Endpunkt A gerichtet sind) für jedes Paket durchgeführt werden, das durch den Optimierer oder eine Komponente des Optimierers weitergeleitet wird.For example, the translation of the pseudo-address into the "other address" (for packets sent from the endpoint A) and vice versa (for packets directed to the endpoint A) can be performed for each packet by the optimizer or forwarding a component of the optimizer.
-Beispielsweise kann die Umsetzung für alle Pakete vom Endpunkt A und / oder alle lokalen Endpunkte erfolgen, die als Zieladresse eine durch einen Optimierer vergebene PseudoAdresse haben.For example, the translation can be done for all packets from endpoint A and / or all local endpoints that have a pseudo-address given by an optimizer as the destination address.
- Auch kann die Umsetzung für alle Pakete an den Endpunkt A und / oder alle lokalen Endpunkte erfolgen, die als Quelladresse eine Adresse haben, für die eine Pseudo-Adresse vergeben wurde.- Also, the conversion for all packets to the end point A and / or all local endpoints can take place, which have as source address an address for which a pseudo-address has been assigned.
- Die Umsetzung kann lokal in einem Optimierer durchgeführt werden (etwa Optimierer X-I in Fig. 3a).The conversion can be performed locally in an optimizer (such as optimizer X-I in Fig. 3a).
- Die Umsetzung kann in einem anderen Optimierer - optional in Zusammenhang mit einer Dienstdienstoptimierung - durchgeführt werden (etwa in Optimierer X-2 in Fig. 1 a).The conversion can be carried out in another optimizer-optionally in connection with a service service optimization (for example in optimizer X-2 in FIG. 1 a).
- Die Umsetzung in eine und / oder beide Richtungen kann davon abhängig sein, ob die Kommunikationsbeziehung zwischen dem Endpunkt A und einem anderen Endpunkt durch den Endpunkt A initiiert wurde, d.h. das erste Paket dieser Kommunikationsbeziehung vom Endpunkt A gesendet wurde oder durch den anderen Endpunkt.The implementation in one and / or both directions may depend on whether the communication relationship between the end point A and another end point has been initiated by the end point A, i. the first packet of this communication relationship was sent from endpoint A or through the other endpoint.
- Die Umsetzung in eine und / oder beide Richtungen kann davon abhängig sein, welches Transportprotokoll (zum Beispiel UDP, TCP, SCTP, DCCP) verwendet wird. Beispielsweise kann das Umsetzen von Adressen auf TCP beschränkt sein, nicht jedoch auch UDP angewendet werden. - Die Umsetzung von Adressen kann auf solche „anderen Adressen" beschränkt sein, für die vorher eine Namensauflösung durch den Endpunkt A angefragt wurde.The implementation in one and / or both directions may depend on which transport protocol (for example UDP, TCP, SCTP, DCCP) is used. For example, addressing addresses may be restricted to TCP, but UDPs may not be. - The conversion of addresses can be limited to those "other addresses" for which a name resolution by the end point A was previously requested.
- Die Umsetzung von Adressen kann auf solche „anderen Adressen" beschränkt sein, für die vorher eine Namensauflösung durch den Endpunkt A angefragt wurde und dieser eine Pseudo-Adresse in der Antwort vom Optimierer erhalten hat.- The conversion of addresses can be limited to those "other addresses" for which a name resolution by the end point A was previously requested and this has received a pseudo-address in the response from the optimizer.
- Die Umsetzung von Adressen kann auf Pakete von/zu Endpunkten A, ... beschränkt sein, für die vorher eine Adressauflösung durchgeführt wurde (und die vom Optimierer eine Pseudo-Adresse erhalten haben).The conversion of addresses may be restricted to packets from / to endpoints A,... For which an address resolution was previously performed (and which has been given a pseudo-address by the optimizer).
- Die Umsetzung von Adressen kann auf die Dauer einer oder mehrerer bestimmter Kommunikationsbeziehungen beschränkt sein; die Dauer einer Kommunikationsbeziehung kann ein Optimierer beispielsweise durch Beobachten von Anfangs- und / oder Endepakete (etwa bei TCP SYN- und FIN-Paketen) und / oder durch Timeouts (etwa wenn für einen statisch und / oder dynamisch vorgegebenen Zeitraum keine Pakete mehr übertragen wurden) ermitteln.- The implementation of addresses may be limited to the duration of one or more specific communication relationships; The duration of a communication relationship can be an optimizer, for example, by observing start and / or end packets (such as in TCP SYN and FIN packets) and / or by timeouts (such as when no more packets were transmitted for a static and / or dynamic predetermined period ) determine.
- Die Umsetzung von Adressen kann alle Pakete betreffen, auch wenn vorher keine Namensauflösung durch den Endpunkt A angefragt wurde. Beispielsweise können von anderen Endpunkten eingehende Pakete ebenfalls eine Pseudo-Adresse zugewiesen bekommen, so dass der Endpunkt A für einige oder alle Transport- und / oder Anwendungsprotokolle keine „anderen Adressen" (=hier externe Adressen im Internet) „sieht".- The conversion of addresses can affect all packets, even if no name resolution was requested by the end point A before. For example, incoming packets from other endpoints can also be assigned a pseudo-address so that endpoint A "sees" no "other addresses" (= external addresses on the Internet) for some or all of the transport and / or application protocols.
- Die Umsetzung von Adressen kann auf Header der Schicht 3 beschränkt sein (zum Beispiel IP-Adressen), kann Header der Transportschicht einbeziehen oder aussparen (Schicht 4, zum Beispiel TCP- oder UDP-Portnummern) und / oder kann einzelne oder alle Header- und Nutzdaten von Anwendungsprotokollen umfassen oder aussparen. Werden dann neue (=bisher nicht bekannte) andere (=externe) Adressen gefunden, können hierfür neue Pseu- do-Adressen alloziiert und eine entsprechende Umsetzung vorgenommen werden.The conversion of addresses may be limited to layer 3 headers (for example IP addresses), may include or omit headers of the transport layer (layer 4, for example TCP or UDP port numbers) and / or may include single or all headers. and include or exclude payload data from application logs. If new (= unknown) other (= external) addresses are found, new pseudo addresses can be allocated for this purpose and a corresponding conversion implemented.
- Es können statisch konfigurierte und / oder dynamisch bestimmte Namen und / oder Namensbereiche und / oder Adressen und / oder Adressbereiche und / oder Anwendungsprotokolle (die zum Beispiel aus angefragten Rechnernamen und / oder Adressen ermitteln werden können) explizit in die Umsetzung einbezogen und / oder explizit von dieser ausgenommen werden.Statically configured and / or dynamically determined names and / or name ranges and / or addresses and / or address ranges and / or application protocols (which can be determined, for example, from queried computer names and / or addresses) may be explicitly included in the implementation and / or be explicitly excluded from this.
Es kann vorteilhaft sein, dass zwei oder mehr Optimierer Informationen über die genutzten Pseudo-Adressen und / oder die Abbildungen auf andere Adressen und / oder die zur Umset- zung verwendeten Regeln und / oder Informationen über die gegenwärtig und / oder kürzlich aktiven Endpunkte A und / oder die gegenwärtig und / oder kürzlich aktiven anderen Endpunkte (zum Beispiel Name, Adresse, sonstige Informationen) untereinander austauschen. Es kann vorgesehen sein, dass einer oder mehrere Optimierer die entsprechenden Adressumsetzungen durchführen. Es kann vorteilhaft sein, dass ein Optimierer, der eine Pseudo-Adresse vergibt, auch lokal die Adressumsetzung durchführt bzw. (durch eine Komponente AU) durchfuhren lässt. Es kann auch vorteilhaft sein, dass ein Optimierer, der eine PseudoAdresse vergeben hat, die Adressumsetzung an anderer Stelle im Netz durch einen anderen Optimierer (bzw. dessen lokal zugeordnete Komponente AU) durchführen lässt. Auch kann es vorteilhaft sein, dass eine Adresse mehrfach umgesetzt wird. Zwei oder mehrere Optimierer können sich vorteilhaft über die nutzbaren Bereiche für Pseudo-Adressen und / oder die bereits vergebenen Pseudo-Adressen abstimmen.It may be advantageous for two or more optimizers to provide information about the pseudo-addresses used and / or the images for other addresses and / or for the purposes of implementing and / or information about the current and / or recently active endpoints A and / or the current and / or recently active other endpoints (eg, name, address, other information) among each other. It can be provided that one or more optimizers perform the corresponding address translations. It can be advantageous for an optimizer, which assigns a pseudo-address, also to carry out the address translation locally or to have it executed (by a component AU). It may also be advantageous for an optimizer that has assigned a pseudo-address to have the address translation performed elsewhere in the network by another optimizer (or its locally assigned component AU). It may also be advantageous that an address is implemented several times. Two or more optimizers may advantageously vote over the usable ranges for pseudo-addresses and / or the already assigned pseudo-addresses.
In einer vorteilhaften Ausgestaltung puffert der Optimierer X die an die Pseudo-Adresse gesendeten Pakete bzw. aus diesen abgeleitete Daten oder auch nur Nutzdaten vom Endpunkt A und / oder simuliert gegenüber Endpunkt A das Zustandekommen oder den Fortbestand einer Kommunikationsbeziehung zur Pseudo-Adresse, beispielsweise wie unter II. beschrieben, solange noch keine Informationen über die zu einer Pseudo-Adresse gehörende „andere Adresse" vorliegen.In an advantageous embodiment, the optimizer X buffers the packets sent to the pseudo address or data derived therefrom or even payload data from the end point A and / or simulates the conclusion or continuation of a communication relationship with the pseudo address, for example as compared to end point A. described under II, as long as no information about the belonging to a pseudo address "other address" exist.
Fig. 4 illustriert beispielhaft eine mögliche Netztopologie (entsprechend Fig. 3c) und zeigt einen hier möglichen Ablauf der beschriebenen Optimierung unter Verwendung von PseudoAdressen in den Schritten 1 bis 9. Im Schritt 1 kann ein Endpunkt A eine Namensauflösungsanfrage (für den Namen „AE-N", den Namen des anderen Endpunkts) an den Optimierer X- Ib stellen, der beispielsweise als Namensdienstserver für den Endpunkt A konfiguriert ist. Der Optimierer X-Ib hat in diesem Beispiel keine gespeicherten oder konfigurierten Informationen über „AE-N" und leitet deshalb die Namensdienstanfrage weiter (Schritte 2a, 2b, 2c und 2d). Aufgrund einer Übertragungsunterbrechung gehen die ersten weitergeleiteten Anfragen verloren. Der Optimierer X-Ib verzögert die Antwort so lange wie möglich (wie etwa in Lc) beschrieben), generiert aber in Schritt 3 - bevor bei Endpunkt A ein Timeout der Namensdienstanfrage auftritt - eine Antwort mit einer Pseudo-Adresse P-A, die der Optimierer X-Ib lokal ausgewählt hat (er könnte sich auch mit Optimierer X-Ia abstimmen). Optimierer X-Ib informiert auch Optimierer X-Ia über die neu vergebene Pseudo-Adresse, damit letzte- rer weiß, dass zukünftig Pakete (von oder an Endpunkt A) für diese Adresse zu erwarten sind (Schritt 4); allerdings kann X-Ib zu diesem Zeitpunkt noch keine Abbildung auf die andere Adresse nennen. Da die Namensauflösung noch nicht abgeschlossen ist, setzt Optimierer X- Ib das Wiederholen von Anfragen an den Namensdienstserver fort. Im Schritt 2d erreicht schließlich eine Anfrage den Namensdienstserver, die dieser mit der anderen Adresse „AE-A" beantwortet (Schritt 7). In der Zwischenzeit hat der Endpunkt A die Antwort auf seine Namensdienstanfrage ausgewertet und eine Kommunikationsbeziehung zum anderen Endpunkt initiiert, für die er die Pseudo-Adresse P-A als Ziel („dst") und seine eigene Adresse „A-A" als Absender („src") verwendet (Schritte 5a und 5b zeiegn das Versenden zweier Pakete zu diesem Zweck). Der Optimierer X-Ia empfängt die Pakete 5a, 5b, ... und speichert sie zwischen (oder akzeptiert im Rahmen einer Datendienstoptimierunng die eingehende Kommunikationsbeziehung vorerst anstelle des anderen Endpunktes), da er noch keine andere Adresse hat, an die er die Pakete weiterleiten kann (Schritt 6). Sobald der Optimierer X-Ib die Antwort auf seine Namensauflösungsanfrage erhält (Schritt 7), nämlich die Adresse „AE-A" des anderen Endpunktes, informiert er den Optimierer X-Ia über die jetzt vollständige Abbildung („P-A" <-> „AE-A"). Der Optimierer X-Ia kennt jetzt die Abbildung und sendet die für die Pseudo-Adresse „P-A" bestimmten Pakete nach entsprechender Umsetzung in dem/den Paketheadern und / oder Inhalten an den anderen Endpunkt unter Verwendung dessen richtiger Adresse „AE-A" (Schritte 5a' und 5b'). Weitere vom Endpunkt A ankommende und an „P- A" adressierte Pakete werden unmittelbar nach Umsetzung der Adresse weitergeleitet (Schritte 5m und 5n bzw. 5m' und 5n'). Pakete vom anderen Endpunkt werden ebenfalls vom Optimierer X-Ia nach der umgekehrten Adressumsetzung weitergeleitet: hier wird die Quelladresse des anderen Endpunkts („AE-A") durch die Pseudo-Adresse („P-A") ersetzt.4 exemplarily illustrates a possible network topology (corresponding to FIG. 3c) and shows a possible sequence of the optimization described here using pseudo addresses in steps 1 to 9. In step 1, an end point A can request a name resolution request (for the name "AE"). N ", the name of the other endpoint) to the optimizer X-Ib, which is configured, for example, as a name service server for the end point A. The optimizer X-Ib in this example has no stored or configured information about" AE-N "and forwards therefore, continue the name service request (steps 2a, 2b, 2c, and 2d). Due to a transfer interruption, the first forwarded requests are lost. The optimizer X-Ib delays the response as long as possible (as described in Lc), but generates in step 3 - before a time-out of the name service request occurs at end point A - a response with a pseudo-address PA, which the optimizer X -Ib selected locally (he could also tune with optimizer X-Ia). Optimizer X-Ib also informs optimizer X-Ia about the newly assigned pseudo-address so that He knows that in future packets (from or to end point A) can be expected for this address (step 4); however, X-Ib can not yet refer to the other address at this time. Because name resolution has not yet completed, optimizer X-Ib continues retrying requests to the name service server. Finally, in step 2d, a request reaches the name service server which replies it with the other address "AE-A" (step 7). In the meantime, endpoint A has evaluated the response to its name service request and initiated a communication relationship with the other endpoint for which he uses the pseudo-address PA as the destination ("dst") and his own address "AA" as the sender ("src") (steps 5a and 5b show the sending of two packets for this purpose). The optimizer X-Ia receives the packets 5a, 5b, ... and stores them between (or accepts in the context of a Datenendienstoptimierung the incoming communication relationship for the time being instead of the other endpoint), since he has no other address to which he forwarded the packets can (step 6). As soon as the optimizer X-Ib receives the answer to its name resolution request (step 7), namely the address "AE-A" of the other end point, it informs the optimizer X-Ia about the now complete picture ("PA"<->"AE The optimizer X-Ia now knows the map and sends the packets destined for the pseudo-address "PA" after appropriate translation in the packet header (s) and / or content to the other endpoint using its correct address "AE Further packets arriving from the end point A and addressed to "P-A" are forwarded immediately after the address has been translated (steps 5m and 5n or 5m 'and 5n'). Packets from the other endpoint are also forwarded by the optimizer X-Ia after the reverse address translation: here the source address of the other endpoint ("AE-A") is replaced by the pseudo-address ("PA").
Dieses Beispiel und insbesondere Fig. 4 sind der Übersichtlichkeit halber zeitlich entzerrt und vereinfacht dargestellt und dienen nur der Illustration. Insbesondere können sich die einzelnen gezeigten Schritte überlappen oder weiter auseinander liegen, es können mehr oder weniger Pakete ausgetauscht werden, mehr und anderen Interaktionen stattfinden usw. Lb) Vorhersage / Vorabübertragung von Anfragen und / oder Antworten (zur Namensauflösung)This example and in particular Fig. 4 are shown for the sake of clarity equalized in time and simplified and are only for illustration. In particular, the individual steps shown may overlap or be further apart, more or fewer packets may be exchanged, more and other interactions may take place, and so on. Lb) prediction / advance transfer of requests and / or answers (for name resolution)
Ein Endpunkt A wird oftmals mehr als eine Anfrage zur Namensauflösung an einen Namensdienstserver stellen. Dies kann beispielsweise geschehen, weil der Endpunkt Kommunikationsbeziehungen (im Rahmen von Datendiensten) mit mehreren anderen Endpunkten aufbaut und er deren Adressen ermitteln muss. Es kann auch vorkommen, dass die Antwort auf eine erste Anfrage zur Namensauflösung unzureichend ist, weil sie beispielsweise nur einen Verweis auf einen weiteren zu kontaktierenden Namensdienstserver enthält, an den die ursprüngliche oder eine abgewandelte Form der ursprünglichen Anfrage zu stellen ist.An endpoint A will often ask more than one name resolution request to a name service server. This can happen, for example, because the endpoint establishes communication relationships (as part of data services) with several other endpoints and must determine their addresses. It may also happen that the answer to a first request for name resolution is insufficient because, for example, it only contains a reference to another name service server to be contacted, to which the original or a modified form of the original request is to be placed.
Wird bei der Namensauflösung ein schwieriger Kommunikationspfad involviert, so können - wie oben beschrieben - Verzögerungen und / oder Fehlersituationen auftreten, die zum Sinken der (wahrgenommenen) Dienstgüte führen können. Eine erfindungsgemäße Optimierung in einer Optimiereranordnung (wie beispielhaft in Fig. 1 bis 3 dargestellt) kann hier vorteilhaft sein, um die Verzögerung zu verringern und dadurch die Dienstgüte zu erhöhen.If a difficult communication path is involved in the name resolution, delays and / or error situations can occur, as described above, which can lead to a decrease in the (perceived) quality of service. An optimization according to the invention in an optimizer arrangement (as illustrated by way of example in FIGS. 1 to 3) may be advantageous here in order to reduce the delay and thereby increase the quality of service.
So kann ein Optimierer die von einem Endpunkt A gestellten Anfragen zu Namensauflösungen beobachten und aus den in der Vergangenheit gestellten Anfragen auf zukünftige schließen. In einem sehr einfach Beispiel kann ein Optimierer aus einer Anfrage zur Namensauflösung von „tagesschau.de" vermuten, dass zukünftig eine Anfrage nach www.tagesschau.de gestellt wird. Ein Optimierer kann auch aus einer Anfrage nach einer Art der Namensauflösung auf eine folgende andere Art der Namensauflösung für den gleichen oder einen abgeleiteten Namen schließen. Beispielsweise kann eine Anfrage nach einer IPv4-Adresse eine Anfrage nach einer IPv6-Adresse nach sich ziehen (oder umgekehrt) oder die Anfrage zur Namensauflösung eines Alias-Namens eine Folgeanfrage nach der Adresse. Namensdienste können eine Vielzahl von verschiedenen Arten von Namenseinträgen und entsprechenden Anfragen zur Namensauflösung vorsehen. So kennt beispielsweise DNS neben A-Records für IPv4 und AAAA-Records für IPv6 unter anderem auch SRV-, NAPTR-, MX-, Alias-, CNAME-, TXT-, PTR- und weitere Records, die im Rahmen von Namensauflösungen in Zusammenhang miteinander stehen können. Für deren Nutzung bestehen eine Reihe bekannter Regeln, aus denen und / oder deren Anwendung und / oder den Inhalten der Records sich beispielsweise potentiell zukünftige Namensauflösungsanfragen ableiten lassen. Die Antworten auf die potentiell zukünftigen Namensauflösungsanfragen können dann vorab ermittelt werden, wie unten beschrieben wird.Thus, an optimizer can observe the name resolution requests made by an endpoint A, and infer future requests from past requests. In a very simple example, an optimizer may speculate from a request for name resolution of "tagesschau.de" that a request for www.tagesschau.de will be made in the future.An optimizer may also change from a request for one kind of name resolution to another For example, a request for an IPv4 address may result in a request for an IPv6 address (or vice versa), or the name resolution request for an alias may request a follow-up request for the address. Name services can provide a variety of different types of name entries and corresponding name resolution requests, such as DNS, which not only knows A-records for IPv4 and AAAA records for IPv6, but also SRV, NAPTR, MX, alias, CNAME, TXT, PTR and other records that can be related to one another in name resolution There are a number of known rules from which and / or their application and / or the contents of the records can be derived, for example, potentially future name resolution requests. The answers the potentially future name resolution requests may then be determined in advance, as described below.
Auch kann ein Optimierer den Informationsaustausch des Endpunktes A mit anderen Endpunkten im Rahmen von Kommunikationsbeziehungen, zum Beispiel eines Datendienstes, beobachten, dabei optional die genutzten Protokolle (beispielsweise auf der Transport-, Session- und / oder Anwendungsschicht) interpretieren und daraus Schlussfolgerungen auf zukünftige Namensdienst- Anfragen stellen. Dies kann beispielsweise durch Analysieren von Nachrichten - beispielsweise Anfragen und / oder Antworten und / oder Benachrichtigungen - des Anwendungsprotokolls durch einen der mindestens einen Optimierer geschehen. Die Analyse kann dabei Header-Felder und / oder Nutzdaten einer oder mehrerer Protokollschichten umfassen. So kann ein Optimierer Antworten auf Anfragen des Protokolls HTTP analysieren und beispielsweise den Inhalt einer Antwort „200 OK" auf eine Anfrage „GET" durchsuchen. Der Inhalt kann beispielsweise eine HTML-Seite sein, in der beispielsweise HTML-Elemente (wie etwa IMG) mittels eines URI auf weitere Ressourcen verweisen, wobei ein solcher URI potentiell einen zukünftig aufzulösenden Namen enthalten kann, beispielsweise, wenn die weitere Ressource auf einem anderen Webserver vorgehalten wird als die abgerufene und in der HTTP-Antwort enthaltene HTML-Seite. Eine HTML-Seite kann beispielsweise auf Verweise auf eingebettete Objekte, auf verlinkte Seiten, auf Style-Sheets und / oder auf Frames analysiert werden; die Analyse kann rekursiv auf die Inhalte eingebetteter, verlinkter oder referenzierter Objekte oder Ressourcen fortgesetzt werden. Varianten eines solchen Vorgehens können Bestandteil einer Datendienstoptimierung sein, die als HTTP-Prefetching bekannt ist. HTTP-Prefetching - wie beispielsweise in EP 1559038 beschrieben - kann weitaus komplexer sein und umfassendere Funktionen ausführen als hier skizziert. Das obigen Prinzip zum Kombinieren dieser Datendienstoptimierung mit einer Namensdienstoptimierung bleibt jedoch gleich: aus den Anfragen und / oder Antworten und / oder sonstigen Nachrichten des Anwendungsprotokolls schließt der Namensdienstoptimierer auf zukünftig erwartete Namensdienstanfragen und ermittelt hierzu eine Antwort, bevor die entsprechende Anfrage an ihn gerichtet wird. Eine Kombination mit HTTP-Prefetching erlaubt darüber hinaus, die Analyse auf zukünftig aufzulösende Namen rekursiv auf die eingebetteten, verlinkten und / oder referenzierten Objekte und / oder Ressourcen auszudehnen. Die Analyse ist dabei nicht auf HTML-Seiten beschränkt, sondern kann beliebige über HTTP oder andere Protokolle angefragte Dokumente oder allgemein Dateien umfassen, beispielsweise Style-Sheets, Frames, XML-Dokumente, SDP-Nachrichten (zum Beispiel nach RFC 2327 bzw. 4566), SOAP- Nachrichten, einer MIME-Nachrichten/-objekte, Flash-, Video-, Audio-, Standbild-Objekte/- dateien und / oder Zertifikate, Schlüssel und / oder andere Sicherheitsobjekte umfassen aus denen DNS-Namen oder Namen anderer Namensdienste extrahiert werden können.Also, an optimizer may observe the exchange of information of the endpoint A with other endpoints in the context of communication relationships, for example a data service, optionally interpreting the protocols used (eg at the transport, session and / or application layer) and inferring therefrom conclusions on future name service - make inquiries. This can be done, for example, by analyzing messages - for example, requests and / or replies and / or notifications - of the application log by one of the at least one optimizer. The analysis may include header fields and / or payload data of one or more protocol layers. For example, an optimizer can analyze responses to requests from the HTTP protocol and, for example, search the contents of a "200 OK" response for a "GET" request. The content may be, for example, an HTML page in which, for example, HTML elements (such as IMG) refer to other resources by means of a URI, such a URI potentially containing a future name to be resolved, for example, if the further resource is on another Web server is held as the retrieved and included in the HTTP response HTML page. For example, an HTML page can be parsed for references to embedded objects, linked pages, style sheets, and / or frames; the analysis can be continued recursively to the contents of embedded, linked or referenced objects or resources. Variants of such a procedure may be part of a data service optimization known as HTTP prefetching. HTTP prefetching - as described for example in EP 1559038 - can be far more complex and perform more extensive functions than outlined here. However, the above principle for combining this data service optimization with name service optimization remains the same: from the application protocol requests and / or responses and / or other messages, the name service optimizer closes on expected future name service requests and determines a response before the corresponding request is made to it. In addition, a combination with HTTP prefetching allows recursively extending the analysis to future resolvable names to the embedded, linked, and / or referenced objects and / or resources. The analysis is not limited to HTML pages, but may include any requested via HTTP or other protocols documents or general files, such as style sheets, frames, XML documents, SDP messages (for example, according to RFC 2327 or 4566), SOAP messages, MIME messages / objects, flash, video, audio, still images / files and / or certificates, Keys and / or other security objects can be extracted from which DNS names or names of other name services can be extracted.
Ein solches Beobachten ist nicht auf HTTP beschränkt; andere Datendienste, die beispielsweise Protokolle HTTP, SOAP, RTSP, SIP, XMPP, Flash oder andere Anwendungsprotokolle betrifft nutzen, können ebenso durch den Optimierer genutzt werden. Ein Optimierer kann Protokolle beliebiger Datendienste parsieren/interpretieren und kann dabei mit einem Daten- dienstoptimierer zusammenarbeiten oder als ein solcher fungieren. Ein solcher Optimierer kann auf einer oder beiden Seiten eines schwierigen Kommunikationspfades vorgesehen sein. Auch kann er ganz oder teilweise im Datenpfad angeordnet sein oder als Zwischensystem oder Proxy des Datendienstes ausgebildet sein, um an die im Rahmen des Datendienstes ausgetauschten Informationen zu gelangen.Such monitoring is not limited to HTTP; Other data services, such as HTTP, SOAP, RTSP, SIP, XMPP, Flash, or other application protocols, may also be used by the optimizer. An optimizer can parse / interpret logs of any data service, and can collaborate with or act as a data service optimizer. Such an optimizer may be provided on one or both sides of a difficult communication path. It can also be arranged completely or partially in the data path or be designed as an intermediate system or proxy of the data service in order to access the information exchanged in the context of the data service.
Für einen, einige oder alle der in den der analysierten Nachrichten des Anwendungsprotokolls gefundenen Namen sind potentiell zukünftig Namensdienstanfragen zu erwarten. Analoges gilt für potentiell zukünftige Namensauflösungsanfragen, die durch Analyse von Nachrichten des Namensdienstprotokolls vermutet werden. Deshalb kann es vorteilhaft sein, dass der Optimierer die Antworten auf die zu erwartenden Anfragen vorab ermittelt.One, some, or all of the names found in the analyzed messages of the application log may potentially be expected to receive name service requests in the future. The same applies to potential future name resolution requests, which are suspected by analyzing messages from the name service protocol. Therefore, it may be advantageous for the optimizer to determine the answers to the expected inquiries in advance.
In einem Beispiel mit zwei Optimierern X-I und X-2 kann der Endpunkt A die Namensauflösung beispielsweise an X-I und X-I diese ggf. wiederum an X-2 delegieren - es kann auch nur eine Optimiererkomponente (zum Beispiel X-I), mehrere lokale Optimiererkomponenten (zum Beispiel X-Ia und X-Ib) und / oder mehr als zwei Optimiererkomponenten involviert sein). Für den Aufbau einer Kommunikationsbeziehung zu Endpunkt A von einem anderen Endpunkt kann es vorteilhaft sein, wenn ein Optimierer, der hier (wie oben beschrieben) eine unbekannte IP-Adresse vorfindet, den Aufbau der Kommunikationsbeziehung solange verzögert, bis ein Reverse-Lookup und / oder andere vorteilhafte und / oder notwendige Namensauflösungen - die aus der Adresse, aus durchgeführten Namesauflösungen (Anfragen und / oder Antworten) und / oder aus beispielsweise wie oben beschrieben vorhergesagten Namen und / oder Adressen und / oder anderen Informationen abgeleitet werden können - erfolgreich durchgeführt wurde (etwa durch X-I oder X-2) und das Ergebnis bei X-I vorliegt, so dass folgende Namensauflösungsanfragen (Reverse-Lookups) nach dieser Adresse und / oder diesem Namen und / oder anderen Informationen durch den Endpunkt A oder andere Endpunkte oder Namensdienstserver unmittelbar von X-I beantwortet werden können. Ein entsprechendes Vorgehen ist auch umgekehrt („in die andere Richtung") vorteilhaft, wenn ein Optimierer den Aufbau der Kommunnikationsverbindung solange verzögert, bis beschriebenen Namensauflösungen durchgeführt worden sind und Ergebnisse bei der Optiomiererkom- ponente X-2 auf der anderen Seite des Übertragungsnetzes N vorliegen. So kann der Optimierer bzw. die Optimiereranordnung den Aufbau von Kommunikationsbeziehungen in beide Richtunngen optimieren.In an example with two optimizers XI and X-2, endpoint A can delegate the name resolution to XI and XI to X-2, for example - it can also be just one optimizer component (for example XI), multiple local optimizer components (for example X-Ia and X-Ib) and / or more than two optimizer components are involved). For establishing a communication relationship with endpoint A from another endpoint, it may be advantageous if an optimizer finding an unknown IP address here (as described above) delays the establishment of the communication relationship until a reverse lookup and / or other advantageous and / or necessary name resolutions - which can be derived from the address, from name resolutions (inquiries and / or answers) and / or from eg predicted names and / or addresses and / or other information - have been successfully performed ( about XI or X-2) and the result is XI, so that the following name resolution requests (reverse lookups) for this address and / or name and / or other information by the endpoint A or other endpoints or name service servers can be answered directly by XI. A corresponding procedure is also reversed ("in the other direction") advantageous if an optimizer delays the establishment of the communication link until described name resolutions have been carried out and results in the Optiomiererkom- component X-2 on the other side of the transmission network N present Thus, the optimizer or optimizer arrangement can optimize the establishment of communication relationships in both directions.
Das Ermitteln der Antwort kann entsprechend La) geschehen und / oder durch Stellen einer Anfrage an einen weiteren Optimierer und / oder Namensdienstserver und / oder durch Konsultation einer lokalen Datenbasis und / oder eines Caches und / oder in Kombination mit mindestens einem weiteren Namensdienstoptimierer.The response may be determined according to La) and / or by making a request to another optimizer and / or name service server and / or by consulting a local database and / or cache and / or in combination with at least one other name service optimizer.
Hat ein Optimierer beispielsweise eine Vermutung, was für eine Folgeanfrage ein Endpunkt A oder eine anderer Optimierer zukünftig stellen könnte, so kann der Optimierer diese erwartete Anfrage vorab - direkt oder indirekt - an einen Namensdienstserver stellen und so ggf. die Antwort auf die erwartete Anfrage bereits vor Eintreffen der Folgeanfrage erhalten. Insbesondere kann ein Optimierer dann die Folgeanfrage unmittelbar unter Nutzung der zuvor erhaltenen Antwort beantworten, so dass die Verzögerung für den Endpunkt A zwischen dem Stellen der Anfrage und dem Erhalten der Antwort verringert wird.For example, if an optimizer has an idea as to what a follow-up request an endpoint A or another optimizer might pose in the future, the optimizer may pre-ping this expected request - directly or indirectly - to a name service server, and possibly the answer to the expected request received before the follow-up request. In particular, an optimizer can then immediately answer the next inquiry using the previously received answer, so that the delay for the end point A between placing the request and getting the answer is reduced.
Auch kann sich der Optimierer merken, welche erwarteten Anfragen er bereits gestellt hat. Trifft eine Folgeanfrage ein, die mit einer durch den Optimierer bereits gestellten, aber noch nicht beantworteten erwarteten Anfrage übereinstimmt, so kann der Optimierer das Weiterleiten der Folgeanfrage unterdrücken und auf das Eintreffen der Antwort auf die von ihm gestellte erwartete Anfrage warten, mittels der er dann die Folgeanfrage beantworten kann.Also, the optimizer can remember which expected requests he has already made. If a follow-up request coincides with an expected request already made by the optimizer but not yet answered, then the optimizer can suppress the forwarding of the follow-up request and wait for the answer to the expected request he has made, by which means he then can answer the follow request.
Eine Optimiereranordnung kann entsprechend Fig. 1 aus zwei (oder mehr) Optimierern, beispielsweise X-I und X-2, bestehen. Diese Optimierer können einen schwierigen Kommunikationspfad umschließen. Für Namensauflösungsanfragen des Endpunktes A kann beispielsweise der Optimierer X-I die Anfragen an den Optimierer X-2 weiterleiten, der sie dann an einen Namensdienstserver übermittelt. Die Optimierer X-I und / oder X-2 können - wahlweise einzeln und / oder gemeinsam - Vorhersagen über erwartete Anfragen durch A treffen, und Optimierer X-2 kann diese Anfrage vorab an den Namensdienstserver stellen. Die erhaltenen Antworten kann Optimierer X-2 dann proaktiv an den Optimierer X-I senden — oder gleichzeitig oder sukzessive an eine Gruppe von Optimiererns -, der sie zur Beantwortung der entsprechenden Folgeanfragen des Endpunkts A speichern kann.According to FIG. 1, an optimizer arrangement can consist of two (or more) optimizers, for example XI and X-2. These optimizers can enclose a difficult communication path. For name resolution requests of the end point A, for example, the optimizer XI can forward the requests to the optimizer X-2, who then requests them sent a name service server. The optimizers XI and / or X-2 may - optionally individually and / or collectively - make predictions about A's expected requests, and optimizer X-2 may pre-submit this request to the name service server. The responses received may then proactively send optimizer X-2 to the optimizer XI - or simultaneously or successively to a group of optimizers - who may store it to answer the corresponding follow-up questions of the end point A.
Eine Optimiereranordnung kann auch entsprechend Fig. 3 nur aus einem Optimierer bestehen (der auf mehrere Komponenten verteilt sein kann). Der Optimierer ist - wie in Fig. 3 dargestellt - vorzugsweise auf der gleichen Seite eines potentiell schwierigen Kommunikationspfads oder eines Übertragungsnetzes N wie ein Endpunkt A, der eine Namensauflösung durchführen möchte. Allerdings kann - nicht dargestellt - ein Optimierer auch dann vorteilhaft sein, wenn er sich auf der anderen Seite des schwierigen Kommunikationspfades oder eines Übertragungsnetzes N aus Sicht von A befindet. Die Optimierer können Anfrage- und / oder Antwort- und / oder sonstige Nachrichten eines Namensdienstprotokolls austauschen, wobei die Übermittlung zwischen zwei Optimierern von einem an mehrere Optimierer, von mehreren Optimierern an einen Optimierer und / oder von mehreren Optimierern an mehrere Optimierer verlaufen kann. Operiert der Optimierer (zum Beispiel X-I in Fig. 3a) allein, so kann er die beschriebenen Prozeduren durchführen und die notwendigen Entscheidungen lokal treffen, ohne sich mit einem anderen Optimierer abzustimmen.According to FIG. 3, an optimizer arrangement can also consist of only one optimizer (which can be distributed over several components). The optimizer, as shown in Fig. 3, is preferably on the same side of a potentially difficult communication path or network N as an end point A that wishes to perform name resolution. However, not shown, an optimizer can be advantageous even if it is on the other side of the difficult communication path or a transmission network N from A's point of view. The optimizers may exchange query and / or response and / or other messages of a naming service protocol, where the transmission between two optimizers may be from one to multiple optimizers, from multiple optimizers to one optimizer, and / or from multiple optimizers to multiple optimizers. If the optimizer (for example, X-I in Figure 3a) is operating alone, it can perform the described procedures and make the necessary decisions locally without tuning to another optimizer.
Ein Optimierer kann auch nur auf der anderen Seite des schwierigen Kommunikationspfads vorgesehen sein.An optimizer may also be provided only on the other side of the difficult communication path.
Ein Optimierer kann bei der Beantwortung von Anfragen zur Namensauflösung auch mehrere Antworten zu einer zusammenfassen und / oder Antworten durch weitere (lokal) generierte und / oder bekannte und / oder separat erhaltene Antworten ergänzen.An optimizer, when answering requests for name resolution, can also combine several answers into one and / or supplement answers with further (locally) generated and / or known and / or separately received replies.
Ein Optimierer kann Antworten auf Anfragen zur Namensauflösung Zwischenspeichern. Die Speicherung kann über die zur Beantwortung einer Folgeanfrage notwendige Zeit hinausgehen. Die Speicherung kann auch über die in der Antwort ggf. angezeigte Geltungsdauer (Lebensdauer, Time-to-live, TTL) hinausgehen. Falls in einer Optimiereranordnung mehrere Optimierer vorgesehen sind und / oder mehrere Optimiereranordnungen vorgesehen sind, können die einzelnen Optimierer untereinander Informationen über die durchgeführten bzw. zur Unterstützung der durchzuführenden Optimierungen austauschen. Insbesondere kann ein Optimierer Antworten auf Anfragen zur Namensauflösung und / oder Informationen über die (modifizierte) Geltungsdauer an andere Optimierer übermitteln.An optimizer can cache responses to name resolution requests. The storage may exceed the time necessary to answer a follow-up request. The storage may also exceed the validity period (lifetime, time-to-live, TTL) displayed in the response. If a plurality of optimizers are provided in an optimizer arrangement and / or a plurality of optimizer arrangements are provided, the individual optimizers can exchange information with one another about the optimizations performed or in support of the optimizations to be performed. In particular, an optimizer may submit responses to name resolution requests and / or (modified) validity information to other optimizers.
Weiterhin kann es vorteilhaft sein, wenn ein Optimierer selbst Anfragen an einen Namensdienstserver stellt, um diesen dazu zu bewegen, die entsprechende Anfrage weiterzuleiten und die Antwort ggf. zu speichern. Dieser Vorgehen gestattet es einem Optimierer Namensauflösungsinformationen in einen nichtoptimierten (=regulären) Namensdienstserver zu „pushen". Der Optimierer oder ein anderer Optimierer kann dabei als Namensdienstserver der nächsten Stufe oder indirekt einer weitere Stufe für den regulären Namensdienstserver konfiguriert sein, so dass die Antwort mit den Namensauflösungsinformationen durch den/die Optimierer geliefert wird. Der regulären Namensdienstserver kann sich auch anderer regulärer Namensdienstserver zur Namensauflösung der durch den Optimierer gestellten Anfrage bedienen.Furthermore, it may be advantageous if an optimizer itself makes inquiries to a name service server, in order to induce him to forward the corresponding request and to save the answer if necessary. This approach allows an optimizer to "push" name resolution information into a non-optimized (= regular) name service server The optimizer or other optimizer may be configured as a next-level name service server or, indirectly, another level for the regular name service server The regular name service server can also use other regular name service servers for name resolution of the request made by the optimizer.
Ein Namensdienstoptimierer kann auch eine Datendienstoptimierung anstoßen und / oder unterstützen. Beispielsweise kann ein HTTP-Prefetching indirekt von vorab verfügbaren Informationen über zukünftige Namensauflösungen profitieren, weil potentiell eine oder mehrere Namensdienstphasen verkürzt werden können. Auch kann ein Namensdienstoptimierer Namensdienstanfragen analysieren und aus den Namensdienstanfragen auf die potentiell in der folgenden Datenphase verwendeten Datendienste und / oder die vermutlich genutzten Anwendungsprotokolle schließen. Hierzu kann ein Optimierer beispielsweise Alias-, SRV-, NAPTR-, A-, AAAA-, TXT- oder MX- Anfragen auf Hinweise parsieren und / oder interpretieren. Liegt beispielsweise für DNS eine Namensauflösungsanfrage vor und beginnt der Name mit „www", kann der Optimierer darauf schließen, dass vermutlich eine HTTP- oder HTTPS-Verbindung aufgebaut werden wird; beginnt der Name mit „ftp", lässt dies die Nutzung des Protokolls FTP vermuten. Wird ein MX-Record angefragt, ist vermutlich die Nutzung eines Mailprotokolls (zum Beispiel SMTP, POP, IMAP) zu erwarten. Die Analyse von SRV- oder NAPTR-Records kann direkt Hinweise auf den Datendienst, das Anwendungsund / oder Transportprotokoll sowie weitere Informationen liefern. Auch kann aus Namen, die einen Dienst oder Dienstanbieter bezeichnen, auf das potentiell verwendete Anwendungs- protokoll geschlossen werden. Entsprechende Überlegungen gelten analog für andere DNS- Records, andere Namensdienste und Anwendungsprotokolle. Insbesondere kann eine statisch konfigurierte und / oder dynamisch erstellte bzw. aktualisierte Tabelle und / oder ein oder mehrere Regerln und / oder eine Datenbank und / oder ein Netzmanagement genutzt werden, um eine Abbildung von Namensauflösungsanfragen auf vermutete Anwendungsprotokolle durchzuführen.A name service optimizer may also initiate and / or support data service optimization. For example, HTTP prefetching may indirectly benefit from pre-available information about future name resolutions because potentially one or more name service phases may be shortened. Also, a name service optimizer may analyze name service requests and deduce from the name service requests the data services potentially used in the following data phase and / or the presumably used application protocols. For example, an optimizer can parse and / or interpret alias, SRV, NAPTR, A, AAAA, TXT, or MX requests for clues. For example, if DNS has a name resolution request, and the name begins with "www", the optimizer may conclude that an HTTP or HTTPS connection is likely to be established, and if the name starts with "ftp", this will allow use of the FTP protocol suspect. If an MX record is requested, it is likely to use a mail protocol (for example, SMTP, POP, IMAP). The analysis of SRV or NAPTR records can provide direct indications of the data service, application and / or transport protocol, and other information. Also, names that designate a service or service provider may refer to the potentially used application be closed. Corresponding considerations apply analogously to other DNS records, other name services and application protocols. In particular, a statically configured and / or dynamically created or updated table and / or one or more rules and / or a database and / or a network management can be used to perform mapping of name resolution requests to suspected application protocols.
Für ein oder mehrere derart ermittelte Anwendungsprotokolle kann der Namensdienstoptimie- rer beispielsweise prüfen, ob ein das erwartete Transport- und / oder Anwendungsprotokoll unterstützender Datendienstoptimierer verfügbar ist. Der Namensdienstoptimierer kann eine Datendienstoptimierung für das erwartete Transport- und / oder Anwendungsprotokoll zu dem durch den Namen angegebenen Endpunkt (zum Beispiel Server) initiieren. In einem einfachen Fall, in dem nur eine Datendienstoptimierung für das Transportprotokoll möglich ist, kann ein Datendienstoptimierer, der Connection- Splitting unterstützt, beispielsweise proaktiv eine Kommunikationsbeziehung (zum Beispiel eine TCP-Verbindung) zum angegebenen Endpunkt herstellen, so dass die spätere Aufbauzeit für die Kommunikationsbeziehung verringert wird.For one or more application protocols so determined, the name service optimizer may check, for example, whether a data service optimizer supporting the expected transport and / or application protocol is available. The name service optimizer may initiate data service optimization for the expected transport and / or application protocol to the endpoint specified by the name (for example, server). For example, in a simple case in which only transport protocol data service optimization is possible, a data service optimizer that supports connection splitting can proactively establish a communication relationship (eg, a TCP connection) to the specified endpoint, such that the later setup time for the Communication relationship is reduced.
In einem anderen Fall kann ein Datendienstoptimierer, der HTTP und HTTP-Prefetching unterstützt, bereits vorab HTTP-Prefetching zu einem vermuteten Webserver (dem angegebenen Endpunkt) initiieren und pro-atkiv Anfragen nach den dort vermuteten und vermutlich zukünftig angefragten Seiten/Objekten/Ressourcen stellen, beispielsweise ,,/index.htm", ,,/index.html", „/", ,,/favicon.ico", ,,/style.css" und / oder anderer vermuteter Objekte. Diese so vorab heruntergeladenen Objekte können dann vom Datendienstoptimierer zwischengepuffert werden und stehen entsprechend der Idee von HTTP-Prefetching bereit, wenn der WebBrowser die entsprechenden Anfragen stellt, so dass diese unmittelbar beantwortet werden können. Werden im Rahmen des HTTP-Prefetching die erhaltenen Seiten/Objekte/Ressourcen weiter analysiert, so kann der Optimierer aus den ermittelten URIs und Namen auf weitere potentielle Namensauflösungen und potentiell angefragte Ressour- ces/Objekte/Seiten schließen und den Optimierung rekursiv fortsetzen. Er kann die Rekursionstiefe begrenzen, den Typ der einbezogenen Ressource/Objekte und / oder Zugriffsprotokolle. Entsprechende Ansätze können für andere Transport- und / oder Anwendungsprotokolle verwendet werden. Die Optimierung kann auch auf bestimmte Transport- und / oder Anwendungsprotokolle beschränkt werden, bestimmte Namensbereiche (zum Beispiel Domains, Subdomains) können explizit eingeschlossen und / oder ausgenommen werden, der Umfang der Optimierung kann von der Systemlast und / oder anderen Parametern abhängen.In another case, a data service optimizer that supports HTTP and HTTP prefetching may already pre-initiate HTTP prefetching to a suspected web server (the specified endpoint) and proactively request requests for the sites / objects / resources suspected and likely to be queried there For example, / index.htm, / index.html, /, / favicon.ico, / style.css, and / or other suspected objects then buffered by the data service optimizer and are ready according to the idea of HTTP prefetching, if the WebBrowser makes the corresponding requests, so that they can be answered immediately.When in the course of HTTP prefetching the received pages / objects / resources are further analyzed, so The optimizer can use the determined URIs and names to infer further potential name resolutions and potentially requested resources / objects / pages and optimize them Continue ng recursively. It can limit the recursion depth, the type of resource / objects involved, and / or access logs. Appropriate approaches can be used for other transport and / or application protocols. Optimization may also be limited to particular transport and / or application protocols, specific namespaces (eg, domains, subdomains) may be explicitly included and / or exempted, the extent of optimization may depend on the system load and / or other parameters.
Lc) Weitere OptimierungenLc) Further optimizations
In diesem Abschnitt werden weitere Teile der Erfindung erläutert, die für sich genommen eine vorteilhafte Optimierung mit sich bringen, die beliebig miteinander kombiniert werden können und die auch einzeln oder in Kombination auch kombiniert mit einer oder mehreren der in La), Lb), IL und / oder III. vorgestellten Erfindungen vorteilhaft eingesetzt werden können.In this section, further parts of the invention are explained, which in themselves bring about an advantageous optimization, which can be arbitrarily combined with each other and which also individually or in combination also combined with one or more of the in La), Lb), IL and / or III. presented inventions can be used advantageously.
Wenn ein Optimierer X beispielsweise eine Namensauflösungsanfrage von einem Endpunkt A erhält, kann es vorkommen, dass - etwa aufgrund des schwierigen Kommunikationspfades und / oder aufgrund einer Übertragungsunterbrechung und / oder weil ein anderer Optimierer und / oder ein Namensdienstserver gerade nicht erreichbar ist und / oder zeitnah antworten kann - eine umgehende Beantwortung der Anfrage nicht möglich ist. Wie in La) beschrieben, kann es sinnvoll sein, dann Pseudo-Adressen zu vergeben. Es kann auch vorteilhaft sein, dass der Optimierer X die Anfrage des Endpunktes A nicht unmittelbar mit einer Adresse beantwortet, beispielsweise um die Vergabe eine Pseudo-Adresse so lange wie möglich zu vermeiden. Der Endpunkt A wartet jedoch auf eine Antwort und je nach konkreter Ausgestaltung wiederholen oftmals beispielsweise der Resolver oder Namensdienstserver auf Endpunkt A seine Anfragen in bestimmten Zeitintervallen, wenn sie keine Antwort erhalten. Sie liefern oftmals eine Fehlermeldung, wenn sie nach einem/mehreren Timeouts/Wiederholungen der Anfrage keine Antwort erhalten haben. Ein solcher Timeout/ Anzahl der Wiederholungen der Anfrage können sehr unterschiedlich (beispielsweise zwischen wenigen Sekunden und einer Minute) liegen. Deshalb kann eine Optimierer X die Antwort nicht einfach beliebig verzögern. Es kann daher vorteilhaft sein, wenn ein Optimierer die Eigenheiten des jeweiligen Namensdienstes und / oder dessen verschiedener Implementierungen (zum Beispiel unter MS Windows, Linux, MacOS) berücksichtigt, um die Verzögerung der Namensauflösung so zu gestalten, dass keine Fehlermeldung generiert wird. Die Ausgestaltung der Verzögerung auch angenommene und / oder gemessene RTTs zu Namensdienstservern und / oder weiteren Op- timierern und / oder dem Endpunkt A berücksichtigen und / oder angenommen und / oder gemessene Antwortzeiten von Namensdienstservern einbeziehen.For example, if an optimizer X receives a name resolution request from an endpoint A, it may happen that - for example due to the difficult communication path and / or due to a transfer interruption and / or because another optimizer and / or a name service server is currently unreachable and / or timely can answer - a prompt answer to the request is not possible. As described in La), it may be useful to then assign pseudo-addresses. It may also be advantageous that the optimizer X does not immediately respond to the request of the end point A with an address, for example to avoid assigning a pseudo-address as long as possible. However, endpoint A is waiting for an answer, and depending on the specific implementation, for example, the resolver or name service server at endpoint A often repeats its requests at certain time intervals if they do not receive a response. They often return an error message if they have not received an answer after one / several timeouts / repetitions of the request. Such a timeout / number of repetitions of the request can be very different (for example, between a few seconds and a minute). Therefore, an optimizer X can not simply delay the answer arbitrarily. It may therefore be advantageous if an optimizer takes into account the peculiarities of the respective name service and / or its various implementations (for example under MS Windows, Linux, MacOS) in order to design the delay of the name resolution in such a way that no error message is generated. The design of the delay also includes accepted and / or measured RTTs for name service servers and / or other service providers. consider and / or accept endpoints A and / or accepted and / or include measured response times from name service servers.
Eine Verzögerung - oder ein Wartezustand des Endpunkts - kann auf verschiedene Arten erreicht werden. In einem einfachen Fall kann ein Optimierer eine oder mehrere Antworten einfach nur verzögert senden, ggf. auch wenn ihm eine oder mehrere Antworten bereits vorliegen. Dabei bleibt jedoch das oben beschriebene Problem bestehen, dass ein Timeout der Namensauflösung auf Endpunkt A zu einer Fehlermeldung führen kann.A delay - or wait state of the endpoint - can be achieved in several ways. In a simple case, an optimizer may simply delay sending one or more responses, even if one or more answers already exist. However, the problem described above persists that a timeout of the name resolution on end point A can lead to an error message.
Es kann daher vorteilhaft sein, dass ein Optimierer einen Weg wählt, die Antwort(en) auf Namensdienstanfragen des Endpunkts A so zu verzögern, dass kein Timeout und / oder keine Fehlersituation auftritt. Hierzu kann der Optimierer zunächst Antworten, die er sendet, möglichst lange hinauszögern, beispielsweise entsprechend obiger Ausführungen. Es kann vorteilhaft sein, dass ein Optimierer statt vollständiger Antworten unvollständige Antworten liefern, in der Annahme, dass der Endpunkt A dann weitere ggf. modifizierte Anfragen stellen muss (um die noch fehlenden Informationen zu erhalten), so dass sich insgesamt die Zeit von der ersten Anfrage bis zur Antwort verlängert. Beispielsweise können bei DNS CNAME- Records genutzt werden, um ggf. eine solche Indirektion zu erzielen. Auch kann ein Optimierer vorteilhaft, statt die Auflösung selbst vollständig durchzuführen, dem Endpunkt A einen Verweis auf einen weiteren Namensdienstserver liefern, den der Endpunkt zur weiteren Bearbeitung der Anfrage kontaktieren soll. Bei diesem weiteren Namensdienstserver kann es sich um denselben Optimierer (ggf. eine andere Komponente des Optimierers oder eine andere Adresse des Optimierers) oder einen anderen Optimierer handeln. Auch kann vorgesehen sein, dass der Endpunkt A mehrere Namensdienstserver nutzt. Diese können beispielsweise die für den Endpunkt A konfigurierten Namensdienstserver sein und / oder dem Endpunkt A beispielsweise im Rahmen der Autokonfiguration mitgeteilt werden. Es kann vorteilhaft sein, dem Endpunkt A die Existenz mehrerer Namensdienstserver vorzutäuschen, um dadurch beispielsweise eine längere Verzögerung der Antworten zu ermöglichen. Einer, mehrere oder alle dieser vorgetäuschten mehreren Namensdienstserver können durch den gleichen Optimierer (beispielsweise kann dieser verschiedene Adressen haben und / oder netztopologisch im Pfad vom Endpunkt A zu den angegeben Namensdienstserver liegen) und / oder verschiedene Optimierer realisiert sein. Die Nutzung mehrerer Namensdienstserver durch den Endpunkt A kann zu einer Verlängerung des Timeouts (beispielsweise grob n x Timeout bei n Namens- dienstservern) führen. Es kann sinnvoll sein, beispielsweise mehrere verschiedene Namensdienste (mit unterschiedlichen Namensdienstprotokollen, wie etwa DNS und NetBIOS Name Service) für den Endpunkt vorzusehen, damit dieser - vielleicht sukzessive - die verschiedenen Namensdienste probiert. Ein oder mehrere Optimierer können vorteilhaft die Funktion der Namensdienstserver dieser verschiedenen Namensdienste übernehmen und - im Rahmen der jeweiligen Namensdienstprotokolle - beispielsweise durch Querverweise, unvollständige und / oder verzögertes Absenden von Antworten, durch Verweise auf andere Namensdienste usw. eine Verzögerung der eigentlichen Beantwortung der Anfrage erzielen. Es kann auch sinnvoll sein, dass ein Optimierer im Rahmen eines (der mehreren) Namensdienste(s) eine Antwort generiert, die den Endpunkt A auffordert, noch auf die Antwort zu warten und / oder die Anfrage später (etwa innerhalb oder außerhalb eines angegebenen Zeitintervalls) nochmals zu stellen. Stehen im Namensdienstprotokoll beispielsweise Nachrichten zur Verfügung, die eine Überlastung des Servers signalisieren, so können diese vom Optimierer hierzu genutzt werden. Auch können Wiederholungen der Anfragen durch den Endpunkt A vermieden werden, indem der Optimierer beispielsweise den Empfangs der Anfrage bestätigt (mit Hinweis, dass eine abschließende Antwort folgt) vermieden werden, falls das Namensdienstprotokoll solche Nachrichten vorsieht. Das Session Initiation Protocol (SIP) unterstützt beispielsweise die Antworten wie „503" in Kombination mit dem „Retry-After"-Header (die für Überlast genutzt wurde) und „100", um den Empfang einer Anfrage zu quittieren. Auch kann es sein, dass der Endpunkt A die zeitliche Staffelung der Wiederholungen seiner Anfragen und auch die Timeouts für seine Namensdienstanfrage dynamisch anpasst, beispielsweise aufgrund der in der Vergangenheit beobachteten RTT. Dann kann es beispielsweise vorteilhaft sein, dass ein Optimierer die Beantwortung aller Namensauflösungen verzögert, um dem Endpunkt A gegenüber eine hohe RTT zu simulieren und somit einen großen Timeout/viele Sendewiederholungen zu erzielen und damit beispielsweise mehr Spielraum für das Verzögern von Antworten zu haben. Es kann vorteilhaft sein, wenn der Optimierer die Anfrage zur Namensauflösung so beantwortet, dass der Endpunkt A die Anfrage erneut - zum Beispiel über ein anderes Protokoll - stellen muss. Beispielsweise kann eine DNS-Anfrage, die über UDP empfangen wurde, mit gesetztem TC-Bit („TrunCated") in der Antwort beantwortet werden, so dass die Endpunkt A dieselbe Anfrage erneut über TCP stellt.It may therefore be advantageous for an optimizer to choose a way to delay the response (s) to name service requests of the endpoint A such that no timeout and / or error situation occurs. For this purpose, the optimizer can initially delay answers that he sends as long as possible, for example, according to the above statements. It may be advantageous for an optimizer to provide incomplete answers rather than complete answers, assuming that end point A then has to make any further modified requests (to get the missing information), so that the total time from the first Request extended until answer. For example, CNAME records can be used with DNS to achieve such indirection if necessary. Also, an optimizer may advantageously provide the endpoint A with a reference to another name service server to contact the endpoint for further processing of the request, rather than fully performing the resolution itself. This additional name service server can be the same optimizer (possibly another optimizer component or another optimizer address) or another optimizer. It can also be provided that the end point A uses several name service servers. These can be, for example, the name service servers configured for the end point A and / or communicated to the end point A, for example as part of the autoconfiguration. It may be advantageous to simulate the existence of multiple name service servers to endpoint A, thereby allowing, for example, a longer delay of the responses. One, several or all of these fake multiple name service servers may be implemented by the same optimizer (e.g., it may have different addresses and / or be network topology in the path from endpoint A to the specified name service servers) and / or various optimizers. The use of multiple name service servers by the endpoint A can lead to an extension of the timeout (for example, roughly nx timeout at n-name). service servers). It may be useful, for example, to provide several different name services (with different name service protocols, such as DNS and NetBIOS Name Service) for the endpoint to try, perhaps successively, the various name services. One or more optimizers can advantageously take over the function of the name service servers of these various name services and - within the context of the respective name service protocols - for example by cross-references, incomplete and / or delayed sending responses, by references to other name services, etc. achieve a delay in the actual answering of the request , It may also be useful for an optimizer to generate a response in one (or more) naming services (s) that requests endpoint A to wait for the response and / or later (approximately within or outside a specified time interval) ) again. For example, if there are messages available in the name service protocol that signal overloading of the server, they can be used by the optimizer. Also, repetitions of requests by endpoint A can be avoided by, for example, acknowledging receipt of the request (indicating that a final response follows), if the name service protocol provides such messages. For example, the Session Initiation Protocol (SIP) supports responses such as "503" in combination with the "Retry-After" header (used for congestion) and "100" to acknowledge receipt of a request in that the endpoint A dynamically adjusts the timing of the repetitions of its requests and also the timeouts for its name service request, for example due to the RTT observed in the past For example, then it may be advantageous for an optimizer to delay answering all name resolutions to the endpoint A, to simulate a high RTT and thus have a large timeout / many retransmissions and thus have more leeway for delaying responses, for example, it may be advantageous if the optimizer responds to the name resolution request so that the endpoint A is the Request again - for example, via another protocol - must provide example In particular, a DNS request received via UDP can be answered with the TC TrunCated set in the response so that endpoint A repeats the same request over TCP.
Der Endpunkt A kann auch mit dem Optimierer (beispielsweise im Kontext einer Daten- dienstoptimierung) über ein Protokoll kommunizieren, so dass die Namensauflösung poten- tiell inklusive des Aufbaus einer Kommunikationsbeziehung des Datendienstes explizit an den Optimierer delegiert wird (etwa wenn SOCKS zum Beispiel gemäß RFC 1928 genutzt wird, wenn ein Proxy - etwa im Fall von HTTP - im Endpunkt statisch oder dynamisch konfiguriert wird). In einem solchen Fall können der Namensdienst- und der Datendienstoptimie- rer gemeinsam als Optimierer wirken. Dies kann dazu fuhren, dass ein Endpunkt A nicht erst eine Namensauflösung für den anderen Endpunkt durchführt und anschließend eine Kommunikationsbeziehung (direkt) zu dem anderen Endpunkt aufbaut, sondern dass der Endpunkt A stattdessen eine (indirekte) Kommunikationsbeziehung zum anderen Endpunkt über mindestens einen Optimierer aufbaut. Hierzu kann der Endpunkt A zunächst eine Kommunikationsbeziehung zu dem (ihm bekannten) Optimierer aufbauen und diesem beispielsweise über diese Kommunikationsbeziehung mitteilen, welchen anderen Endpunkt der Endpunkt A erreichen möchte. Diese Mitteilung kann insbesondere den Namen des anderen Endpunktes enthalten, so dass eine vorherige Namensauflösung durch den Endpunkt A ggf. nicht erforderlich ist. Der Endpunkt kann die bereits zum Optimierer etablierte Kommunikationsbeziehung für die spätere Kommunikation mit dem anderen Endpunkt nutzen (etwa im Fall von HTTP) und / oder eine weitere Kommunikationsbeziehung zum Optimierer aufbauen, die dann für die Kommunikation mit dem anderen Endpunkt verwendet werden soll (etwa im Fall von SOCKS). Im letzteren Fall kann der Optimierer die weitere Kommunikationsbeziehung bereits akzeptieren/annehmen (etwa eine TCP- Verbindung annehmen), bevor er die Namensauflösung für den Namen des anderen Endpunkts durchgeführt und / oder den anderen Endpunkt erreicht hat. Oder aber der Optimierer kann das Akzeptieren/ Annehmen der weiteren Kommunikationsverbindung verzögern, bis die Namensauflösung erfolgt ist und / oder er den weiteren Endpunkt hat.Endpoint A can also communicate with the optimizer (for example, in the context of data service optimization) via a protocol, so that name resolution can potentially including the establishment of a communication relationship of the data service is explicitly delegated to the optimizer (for example, if SOCKS is used according to RFC 1928, for example, if a proxy is statically or dynamically configured in the endpoint, for example in the case of HTTP). In such a case, the name service and data service optimizer may act together as an optimizer. This may result in an endpoint A not only performing name resolution for the other endpoint and then establishing a communication relationship (directly) to the other endpoint, but endpoint A instead establishing an (indirect) communication relationship with the other endpoint via at least one optimizer , For this purpose, the end point A can first establish a communication relationship with the (known to him) optimizer and this example, communicate via this communication relationship, which would like to reach the other end point of the end point A. In particular, this message may contain the name of the other endpoint so that prior name resolution by the endpoint A may not be required. The endpoint can use the communication relationship already established for the optimizer for the later communication with the other endpoint (for example in the case of HTTP) and / or establish a further communication relationship with the optimizer which is then to be used for the communication with the other endpoint (for example in Case of SOCKS). In the latter case, the optimizer may already accept / accept the further communication relationship (say, accept a TCP connection) before completing the name resolution for the other endpoint's name and / or reaching the other endpoint. Or, however, the optimizer may delay accepting / accepting the further communication connection until the name resolution has occurred and / or he has the further endpoint.
So kann der Optimierer die Namensauflösung solange probieren, bis eine Antwort vorliegt, und dann erst den Aufbau der Kommunikationsbeziehung im Rahmen des Datendienstes fortsetzen. Auch kann der Optimierer - beispielsweise X-I in Fig. Ia) - die Namensauflösung an einen anderen Optimierer - beispielsweise X-2 in Fig. a) - delegieren. Eine intendierte Kommunikationsbeziehung des Endpunktes A kann inzwischen schon von X-I zu X-2 aufgebaut und dann zum Zielsystem fortgesetzt werden, sobald die Namensauflösung (in diesem Beispiel durch X-2) abgeschlossen ist. Dem Endpunkt A bleibt die Dauer der Namensauflösung verborgen; er erfahrt lediglich vom erfolgreich abgeschlossenen Verbindungsaufbau im Rahmen der Datendienstoptimiertung. Es kann für einen Optimierer auch vorteilhaft sein, die Antwort auf eine Anfrage gar nicht erst verzögern zu müssen, weil die Antwort bereits im Speicher vorliegt oder weil er (wie unter La beschrieben) eine Pseudo- Adresse nutzt. Dies kann für einige Antworten (=zum Beispiel Abbildungen von Namen auf Adressen und / oder umgekehrt) durch Konfiguration geschehen. Dies kann auch dadurch erreicht werden, dass der Optimierer Antworten auf Anfragen speichert und sie somit in Zukunft wiederholt verwenden kann. Der Optimierer kann diese Speicherung ggf. über die angezeigte Gültigkeitsdauer eine Abbildung hinaus durchführen. Er kann Abbildungen mit abgelaufener Gültigkeitsdauer bei der nächsten Gelegenheit (etwa wenn keine Übertragungsunterbrechung vorliegt) pro-aktiv auffrischen (also auch dann, wenn aktuell keine Anfrage vorliegt. Der Optimierer kann die Gültigkeitsdauer der gepufferten Abbildung und / oder die Gültigkeitsinformationen der weitergegeben Antwort durch statische Konfiguration, durch dynamisch ermittelte Werte, durch Messen der zu erwartenden Umlaufzeit (Round-trip Time, RTT) zu einem Namensdienstserver und / oder durch das Anwendungsprotokoll bestimmen und / oder frei wählen. Der Optimierer kann die Gültigkeitsdauer auch so wählen, dass die Antwort nur für die vorliegende Anfrage verwendet werden kann, nicht aber für zukünftige Anfragen. Das kann durch explizites Angeben der Einmalnutzung geschehen, falls der Namensdienst eine solche Funktion vorsieht, kann aber auch durch Angabe einer kurzen Gültigkeitsdauer (etwa 1 Sekunde oder weniger als eine Minute) geschehen. Der Optimierer kann auch den Informationsaustausch im Rahmen des Datendienstes beobachten (siehe hierzu auch I.b) und zu den durch die Analyse der Datenpakete aufgefundenen Namen die entsprechenden Namensauflösungen pro-aktiv durchführen. Auch kann der Optimierer die im Rahmen eines Datendienstes ausgetauschten Pakete beobachten und für ihm noch nicht bekannte Absender- und / oder Zieladressen (zum Beispiel IP-Adressen) Re- verse-Lookups pro-aktiv durchführen.So the optimizer can try the name resolution until an answer is given, and then continue to build up the communication relationship as part of the data service. Also, the optimizer - for example XI in Fig. Ia) - can delegate the name resolution to another optimizer - for example X-2 in Fig. A). In the meantime, an intended communication relationship of the end point A can already be established from XI to X-2 and then continued to the target system as soon as the name resolution (in this example by X-2) is completed. Endpoint A remains hidden from the name resolution time; he only learns from the successfully completed connection setup as part of the data service optimization. It may also be advantageous for an optimizer not to have to delay the response to a request, because the answer already exists in the memory or because he (as described under La) uses a pseudo-address. This can be done by configuration for some answers (= for example, mapping names to addresses and / or vice versa). This can also be achieved by the optimizer storing responses to queries and thus being able to use them repeatedly in the future. The optimizer may perform this storage beyond the displayed validity period of an image. It can proactively refresh (expiration-expired) mappings at the next opportunity (such as when there is no transfer interruption), even if no request is currently in progress.The optimizer can update the validity of the buffered map and / or the validity information of the propagated response by static Configuration, by dynamically determined values, by measuring the expected round-trip time (RTT) to a name service server and / or by the application protocol and / or choose freely.The optimizer can also choose the validity period so that the answer only This can be done by explicitly specifying the one time use if the naming service provides such a function, but can also be done by specifying a short validity period (about 1 second or less than a minute) The optimizer he can also observe the exchange of information in the context of the data service (see also Ib) and proactively perform the corresponding name resolutions on the names found by the analysis of the data packets. The optimizer can also observe the packets exchanged in the context of a data service and proactively perform reverse lookups for sender and / or destination addresses (for example IP addresses) that are not yet known to it.
Der Optimierer X kann aus einer Komponente bestehen, wie in Fig. 3a) und 3b) dargestellt. Der Optimierer X kann auch aus mehreren Komponenten bestehen, die „lokal" zueinander angeordnet sind, also beispielsweise nicht durch ein Übertragungsnetz mit einem schwierigen Kommunikationspfad getrennt sind, sondern sich auf einer „Seite" eines solchen Netzes befinden, wie beispielhaft in Fig. 3c), 3d) und 3e) dargestellt. Der Optimierer X kann auch aus mehreren Komponenten bestehen, wie in Fig. 1 dargestellt, und diese können auf verschiedenen Seiten eines Übertragungsnetzes (potentiell mit einem schwierigen Kommunikationspfad) lokalisiert sein. In einer wie in Fig. 1 beispielhaft dargestellten Anordnung kann die Optimierung verteilt erbracht werden. Die hier beschriebenen Funktionen können in einer, beiden, oder auch mehreren Optimiererkomponenten (zum Beispiel X-I und X-2) erbracht werden.The optimizer X may consist of a component as shown in Fig. 3a) and 3b). The optimizer X can also consist of several components which are arranged "locally" to one another, that is, for example, are not separated by a transmission network with a difficult communication path, but are located on a "side" of such a network, as shown by way of example in FIG. 3c). , 3d) and 3e). The optimizer X may also consist of several components, as shown in FIG. 1, and these may be on different sides of a transmission network (potentially with a difficult communication path). be localized. In an arrangement as exemplified in FIG. 1, the optimization can be distributed. The functions described here can be provided in one, two, or even several optimizer components (for example XI and X-2).
Besteht ein Optimierer aus mehreren Komponenten, so können insbesondere verschiedene Komponenten derart zusammenarbeiten, dass sie erhaltene Informationen pro-aktiv mit den anderen Komponenten teilen. Ermittelt beispielsweise Optimierer X-2 einen Namen oder eine Adresse (beispielsweise aufgrund einer Anfrage und / oder durch Vorhersage vermutlich zukünftiger Anfrage wie in Lb beschrieben) und führt eine entsprechende Adressauflösung durch, so kann Optimierer X-2 die erhaltene Antwort ggf. zusammen mit der Anfrage und / oder zusätzlichen Informationen über die Antwort (etwa was für eine Namensauflösung durchgeführt wurde, warum und / oder die Gültigkeitsdauer der Antwort) an Optimierer X-I (ggf. auch an weitere Optimierer) übermitteln, bevor von Optimierer X-I eine entsprechende Anfrage gestellt wurde. Gleiches gilt umgekehrt. Auch kann Optimierer X-I beispielsweise eine Namensauflösung an Optimierer X-2 delegieren. Entsprechendes gilt für „lokal" zueinander angeordneten Komponenten eines Optimierers (wie etwa X-Ia und X-Ib in Fig. 3c-e).If an optimizer consists of several components, in particular different components can cooperate in such a way that they pro-actively share received information with the other components. For example, if optimizer X-2 detects a name or an address (for example, due to a request and / or prediction, presumably future request as described in Lb) and performs a corresponding address resolution, then optimizer X-2 may combine the received response with the Request and / or additional information about the response (such as what name resolution was performed, why, and / or the validity of the response) to optimizer XI (and possibly other optimizers) before optimizer XI made a request. The same applies vice versa. Also, for example, optimizer X-I may delegate name resolution to optimizer X-2. The same applies to "locally" arranged components of an optimizer (such as X-Ia and X-Ib in Fig. 3c-e).
Optimiereranordnungen können Optimierungen für Namens- und Datendienste durchführen, insbesondere auch in Kombination. So kann der Aufbau einer Kommunikationsbeziehung von einem Endpunkt A zu einem anderen Endpunkt im Rahmen einer Datendienstoptimie- rung durch X-I und X-2 geschehen; eine solche Optimierung kann auch nur durch einen Optimierer X-I (wie etwa in Fig. 3a) oder durch Optimierer X-Ia und X-Ib (wie etwa in Fig. 3c) erbracht werden - und in beliebigen Kombinationen dieser. Auch können mehr als zwei Optimierer und / oder Optimiererkomponenten und / oder Optimiereranordnungen involviert sein.Optimizer arrangements can perform optimizations for name and data services, especially in combination. Thus, the establishment of a communication relationship from one endpoint A to another endpoint can occur as part of a data service optimization by X-I and X-2; Such optimization may also be provided only by an optimizer X-I (such as in Fig. 3a) or by optimizers X-Ia and X-Ib (such as in Fig. 3c) and in any combination thereof. Also, more than two optimizers and / or optimizer components and / or optimizer arrangements may be involved.
Ein Endpunkt A und / oder ein anderer Optimierer und / oder ein Namensdienstserver wiederholt ggf. Namensdienstanfragen (zum Beispiel weil ein Timeout eingetreten ist). Es kann vorteilhaft sein, dass ein Optimierer Wiederholungen der gleichen Folgeanfragen erkennen und diese unterdrücken und / oder verzögern und / oder beantworten und / oder modifizieren und / oder ersetzen kann. Hier kann der Optimierer ggf. zwischen verschiedenen Gründen für wiederholte Anfragen unterscheiden, wobei die im folgenden beschriebenen Vorgehenswei- sen auch beliebig kombiniert werden können und deren Kombination statisch vorgegeben und / oder dynamisch angepasst werden kann:An endpoint A and / or another optimizer and / or a name service server may repeat name service requests (for example, because a timeout has occurred). It may be advantageous for an optimizer to be able to recognize and suppress and / or delay and / or answer and / or modify and / or replace repetitions of the same follow-up requests. Optionally, the optimizer may differentiate between different reasons for repeated requests, using the procedures described below. can also be combined as desired and whose combination can be statically specified and / or dynamically adapted:
1) Wurde beispielsweise noch keine Antwort versendet (und ist auch noch keine Antwort bekannt), so kann es vorteilhaft sein, wenn der Optimierer die Anfrage unterdrückt.1) If, for example, no answer has yet been sent (and no answer is yet known), it may be advantageous if the optimizer suppresses the request.
2) Wurde beispielsweise bereits eine Antwort versendet, aber ist deren Gültigkeit abgelaufen, so kann es vorteilhaft sein, wenn der Optimierer die Antwort erneut senden, wobei er diese optional mit einer aktualisierten Gültigkeitsdauer versehenen kann und / oder die Anfrage weiterleiten.2) If, for example, a reply has already been sent but its validity has expired, it may be advantageous for the optimizer to resend the response, optionally providing it with an updated validity period and / or forwarding the request.
3) Wird der schwierige Kommunikationspfad beispielsweise nach einer Übertragungsunterbrechung wieder nutzbar, kann er vorteilhaft sein, wenn ein Optimierer von sich aus Anfragen und / oder Antworten und / oder andere Nachrichten wiederholt, um ggf. noch ausstehende Adressauflösungen schnell abzuschließen. Auch kann es vorteilhaft sein, wenn ein Optimierer dann Informationen, die er pro-aktiv mit anderen Optimierern teilen möchte, wieder sendet, sobald der schwierige Kommunikationspfad wieder nutzbar ist.3) If the difficult communication path can be used again after a transmission interruption, for example, it can be advantageous if an optimizer repeats inquiries and / or replies and / or other messages in order to quickly terminate any outstanding address resolutions. It can also be advantageous if an optimizer then sends information that he would like to pro-actively share with other optimizers again as soon as the difficult communication path can be used again.
4) Auch kann es vorteilhaft sein, wenn ein Optimierer Informationen unter Verwendung einer, mehrerer oder aller der unter II beschriebenen Optimierungen beispielsweise redundant über den schwierigen Kommunikationspfad überträgt.4) It may also be advantageous if an optimizer transmits information using one, several or all of the optimizations described under II, for example redundantly over the difficult communication path.
5) Es kann vorteilhaft sein, dass ein Optimierer für die Kommunikation über den schwierigen Kommunikationspfad - beispielsweise mit einem anderen Optimierer und / oder mit einem Namensdienstserver - eigene Regeln für Timeouts und / oder Sendewiederholungen verwendet, die - statisch konfiguriert und / oder dynamisch gelernt/modifiziert - besser auf die Kommunikation über das Übertragungsnetz und / oder einen schwierigen Kommunikationspfad abgestimmt sind.5) It may be advantageous for an optimizer to use communication over the difficult communication path - for example with another optimizer and / or with a name service server - to use their own rules for timeouts and / or retransmissions that are: - statically configured and / or dynamically learned / modified - better matched to the communication over the transmission network and / or a difficult communication path.
Eine Unterscheidung kann beispielsweise aufgrund eines statisch konfigurierten und / oder dynamisch ermittelten (beispielsweise auf Basis der RTT oder vorheriger Intervalle zwischen aufeinanderfolgenden Anfragen desselben Anfragenden) geschehen. Erfolgt eine Wiederholung einer Anfrage innerhalb eines so bestimmten Zeitintervalls, kann sie beispielsweise unterdrückt werden, andernfalls nicht.A distinction can be made, for example, on the basis of a statically configured and / or dynamically determined (for example based on the RTT or previous intervals between successive requests from the same requestor). If a repetition of a request occurs within such a specific time interval, it can be suppressed, for example, otherwise not.
Die obigen Beispiele lassen sich verallgemeinern. Ein Optimierer identifiziert Namensdienstpakete und erkennt wiederholte Namensdienstpakete. Je nach statischer und / oder dynamischer Konfiguration, kann ein Optimierer dann diese wiederholten Datenpakete unbedingt oder in Abhängigkeit von einer Bedingung unterdrücken, wobei die Bedingungen beispielsweise sein können, dass das wiederholte Paket nur dann unterdrückt wird, wenn es innerhalb einer statisch konfigurierten und / oder dynamisch ermittelten Zeitspanne empfangen wird, wenn es außerhalb einer statisch konfigurierten und / oder dynamisch ermittelten Zeitspanne empfangen wird, wenn es sich bei dem Paket um eine Anfrage handelt, wenn es sich bei dem Paket um eine Antwort handelt und / oder wenn es sich weder um eine Anfrage noch um eine Antwort handelt. Das Ersetzen und / oder Verzögern von Paketen kann entsprechenden oder anderen Regeln folgen und ebenfalls bedingt oder unbedingt durchgeführt werden. Das Ersetzen kann der Optimierer das Paket durch ein ein semantisch ähnliches, gleichbedeutendes und / oder äquivalentes Paket mit oder ohne zeitlicher Verzögerung durchführen.The above examples can be generalized. An optimizer identifies name service packets and detects repeated name service packets. Depending on the static and / or dynamic configuration, an optimizer may then need these repeated data packets or suppress, depending on a condition, wherein the conditions may be, for example, that the repeated packet is only suppressed if it is received within a statically configured and / or dynamically determined period of time, if it is outside of a statically configured and / or dynamically determined one Time period is received if the packet is a request, if the packet is an answer and / or if it is neither a request nor an answer. The replacement and / or delaying of packages may follow appropriate or other rules and may also be conditional or unconditional. The optimizer may perform the replacement of the packet with a semantically similar, equivalent, and / or equivalent packet, with or without a time delay.
Die hier in I. beschriebenen Optimierungen können beliebig miteinander kombiniert werden und / oder in Kombination mit den in den folgenden Abschnitten II. und III. beschriebenen Optimierungen eingesetzt werden.The optimizations described here in I. can be combined with each other and / or in combination with the in the following sections II. And III. described optimizations are used.
H. Allgemeine OptimierungenH. General optimizations
Die in diesem Abschnitt vorgenommene Gliederung in a), b) und c) dient der besseren Strukturierung des Abschnitts. Sie wird jedoch nicht zwingend eingehalten und einige Aspekte werden abschnittsübergreifend bzw. entgegen dieser Trennung bereits in anderen Abschnitten behandelt.The structure of a), b) and c) in this section serves to better structure the section. However, it is not strictly adhered to and some aspects are already covered in other sections across sections or against this separation.
Im Folgenden werden Aspekte der Erfindung weitergehend im Detail erläutert. Es ist jedoch zu beachten, dass auch vorstehend bereits Ausgestaltungen und Aspekte der Erfindung beschrieben wurden, die für sich genommen und / oder in Kombination einem / mehrerer der folgenden (Teil-)Aspekte genutzt werden können.In the following, aspects of the invention will be further explained in detail. However, it should be noted that embodiments and aspects of the invention have already been described above that can be used alone and / or in combination of one or more of the following (sub) aspects.
II. a) Reduzieren der Auswirkungen von PaketverlustenII. A) Reduce the impact of packet loss
Wie vorstehend beschrieben, haben Paketverluste oftmals negative Auswirkungen auf die resultierende Dienstgüte. Die bekannten Verfahren zum Reduzieren der Auswirkungen von Paketverlusten auf die Dienstgüte haben jedoch unter anderem den Nachteil, dass sie entweder eine bestimmte geänderte oder um-kodierte Content-Kodierung voraussetzen (was unter anderem rechenintensiv sein kann und für die eingesetzten Optimierer voraussetzt, dass sie entsprechende Verfahren zur Content-Kodierung implementieren und / oder sogar voraussetzt, dass die Optimierer die konkreten von einer Anwendung genutzten Content- Kodierungen implementiert haben) und / oder die Optimierungen spezifisch für und mit Hilfe eines Link-Layer-Protokoll (beispielsweise eines Mobilfunklinks, eines Satellitenlink, usw.) eingesetzt werden. Für die resultierende Dienstgüte kommt es jedoch insgesamt auf die die Übertragung durch das gesamte Netz an. Zudem ist es in vielen Fällen bei der Realisierung eines Dienstes nicht möglich Optimierer Komponenten an jeder Stelle eines Netzes - also beispielsweise beidseitig eines eingesetzten bestimmten Übertragungsabschnittes in den Datenpfad zu integrieren (beispielsweise aufgrund administrativer und / oder technischer Ein- schränkungen/Zugriffs-/Zugangsmöglichkeiten).As described above, packet losses often have a negative impact on the resulting quality of service. The known methods for reducing the effects of However, quality of service packet loss has, among other things, the disadvantage that it requires either a specific changed or re-encoded content coding (which may be computationally intensive and requires the deployed optimizers to implement appropriate content coding techniques and / or or even assuming that the optimizers have implemented the specific content encodings used by an application) and / or optimizations specific to and using a link layer protocol (e.g., a mobile link, a satellite link, etc.). However, the overall quality of the resulting quality of service depends on the transmission through the entire network. In addition, in many cases when implementing a service, it is not possible for optimizers to integrate components at each point of a network - for example, on both sides of a specific transmission section used in the data path (for example due to administrative and / or technical restrictions / access / access possibilities). ,
Es ist daher vorteilhaft Optimierer zu realisieren, die auch weitgehend unabhängig von einzelnen Übertragungsabschnitten / Link-Layer-Protokollen und auch weitgehend unabhängig von einer gewählten Content-Kodierung und / oder den eingesetzten Anwendungen und / oder Endgeräten eingesetzt werden können. Auch ist es vorteilhaft, wenn die realisierten Optimierer ihre Optimierung zumindest optional auch weitgehend losgelöst von umfangreichen administrativen Unterstützungsmaßnahmen des Netzes wie Ende-zu-Ende Bandbreitenreservierungen durchführen können.It is therefore advantageous to implement optimizers that can also be used largely independently of individual transmission sections / link-layer protocols and also largely independently of a selected content coding and / or the applications and / or terminals used. It is also advantageous for the implemented optimizers to be able to carry out their optimization, at least optionally, also largely detached from extensive administrative support measures of the network, such as end-to-end bandwidth reservations.
Ausgehend von den in Fig. 1 und Fig. 2 beschriebenen bzw. daraus abgeleiteten Anordnungen kann eine erfindungsgemäße Optimierung daher beispielsweise durch Optimierer X-I und X- 2 realisiert werden, die weitgehend frei im Datenpfad zwischen den Endpunkten A und B angeordnet werden können.Based on the arrangements described in and derived from FIGS. 1 and 2, an optimization according to the invention can therefore be implemented, for example, by optimizers X-I and X-2, which can be arranged largely freely in the data path between the end points A and B.
Ziel kann es dabei sein, einen möglichst großen Teil des Netzes mit der Optimierung Ol zu umfassen.The aim can be to include as much of the network as possible with the optimization oil.
Abhängig vom konkreten Einsatzszenario kann es jedoch auch ausreichen besonders problembehaftete Netzbereiche in die Optimierung Ol einzubeziehen. Ebenfalls abhängig von konkreten Einsatzszenarien kann es umgekehrt auch sinnvoll sein, bestimmte Netzbereiche und / oder einzelne Links nicht in die Optimierung Ol einzubeziehen - beispielsweise wenn die Optimierung Ol zu einer Steigerung des Übertragungsvolumens fuhrt und beispielsweise bestimmte Netzbereiche und / oder einzelne Links gerade durch diese Steigerung des Übertragungsvolumens vermehrt Paketverluste verursachen würden. Dies könnte beispielsweise mit einer Anordnung ähnlicher der in Fig. 1 d) dargestellten realisiert werden. Wobei die Optimierungen Ol und O2 wahlweise ganz, teilweise identisch und / oder spezifisch auf die von ihnen umfassten Netzbereiche N-Xl und N-X2 ausgelegt sein können.Depending on the specific application scenario, however, it may also be sufficient to include especially problematic network areas in the optimization of oil. On the other hand, depending on specific application scenarios, it may also make sense not to include certain network areas and / or individual links in the optimization oil-for example, if the optimization Ol leads to an increase in the transmission volume and, for example, certain network areas and / or individual links by this increase the transmission volume would cause increased packet losses. This could, for example, be realized with an arrangement similar to that shown in FIG. 1 d). Optionally, the optimizations O1 and O2 can be designed completely, partly identically and / or specifically for the network areas N-X1 and N-X2 comprised by them.
Die von Optimierern realisierte erfindungsgemäße Optimierung kann daher beispielsweise Redundanz als Vorwärtsfehlerkorrektur in die übertragenen Daten einfügen. Dies kann unabhängig von den konkreten eingesetzten Anwendungen, unabhängig von den konkreten Content-Kodierungen und unabhängig von ggf. bestehenden FEC Verfahren auf den Link-Layer- Protokollen einzelner Übertragungsabschnitte erfolgen - natürlich könnte optional auch die eingefügte Optimierung mit einem und / oder mehreren in diese anderen Komponenten integrierten bzw. von diesen realisierten FEC Verfahren kooperieren und / oder aus der Kenntnis / Erkennung dieser Verfahren Nutzen ziehen.The optimization according to the invention realized by optimizers can therefore for example insert redundancy as forward error correction into the transmitted data. This can be done independently of the concrete applications used, regardless of the specific content coding and regardless of possibly existing FEC method on the link layer protocols of individual transmission sections - of course, could optionally also the inserted optimization with one and / or more in this cooperate and / or benefit from the knowledge / recognition of these methods.
Am Beispiel von VoIP und bei einer Anordnung entsprechend Fig. 1 a) könnte so beispielsweise das VoIP Gespräch mit einer verbesserten Dienstgüte geführt werden, obwohl ein von Paketverlusten behaftetes Netz N-X im Datenpfad zwischen den Endpunkten A und B liegt. Um diese Steigerung der Dienstgüte zu erreichen, werden die Optimierer X-I und X-2 eingesetzt. So würde X-I beispielsweise von Endpunkt A VoIP Datenpakete empfangen, FEC Redundanz hinzufügen (entweder in die Pakete oder als zusätzliche Pakete / Steuerinformationen) und die resultierenden Datenpakete über das Netz N-X weiterleiten. Optimierer X-2 empfängt den optimierten Datenstrom, kann alle oder zumindest Teile der aufgetretenden Paketverluste durch das Auswerten der FEC Redundanzen ausgleichen und leitet den vollständigen, fast vollständigen ganz oder teilweise wiederhergestellten Datenstrom an Endpunkt B weiter.Using the example of VoIP and with an arrangement according to FIG. 1 a), for example, the VoIP call could be performed with an improved quality of service, even though a network L-X subject to packet loss lies in the data path between the end points A and B. To achieve this increase in quality of service, the optimizers X-I and X-2 are used. For example, X-I would receive data packets from Endpoint A VoIP, add redundancy to FEC (either in the packets or as additional packets / control information) and forward the resulting data packets over the N-X network. Optimizer X-2 receives the optimized data stream, can compensate for all or at least some of the packet losses that occur by evaluating the FEC redundancies, and forwards the complete, almost complete, partially or fully recovered data stream to endpoint B.
Bei dem Netz N-X könnte es sich beispielsweise um das Internet handeln. Und die Optimierer X-I und X-2 könnten jeweils beim Weiterleiten / Empfangen der Daten aus Firmennetzen oder Heimnetzen N-A und N-B in das Internet N-X die Optimierung Ol einfügen / auswerten. Das Netz N-X könnte beispielsweise auch ein gemeinsam von mehreren Nutzern und / oder Anwendungen genutzter Internetzugang beispielsweise an einem öffentlichen Internet Hotspot (oder auch speziellen Internet Hotspots wie sie in Zügen, Flugzeugen usw. angeboten werden) sein. In diesem Fall treten ggf. gerade auf diesem gemeinsam genutzten Internetzugang vermehrt Paketverluste auf. Während auch hier grundsätzlich alle in Fig. 1 gezeigten Anordnungen eingesetzt werden können, lässt sich dieses Einsatzszenario gut anhand der Anordnung aus Fig. 1 b) beschreiben. Endgerät A könnte dann beispielsweise ein Laptop sein, der über WLAN und einen Hotspot gemeinsam mit anderen Nutzern und / oder eigenen Anwendungen einen Internetzugang nutzt. Wenn dieser Internetzugang überlastet ist und dies zu Paketverlusten führt, kann der Nutzer von Endgerät A beispielsweise für seine VoIP Daten (und / oder all seine Anwendungsdaten zum Endpunkt B) FEC Redundanzen mit Hilfe eines Optimierers X-I (der beispielsweise lokal auf seinem Laptop realisiert ist) in seine Datenströme einfügen. Optimierer X-2 liegt entweder ohnehin im Datenpfad zu Endpunkt B oder aber beispielsweise Optimierer X-I stellt beispielsweise durch geeignete Ziel- Adressierung der generierten Pakete sicher, dass die generierten Pakete über N-X an X-2 weitergeleitet werden sollen. X-2 könnte dann beispielsweise im Heimnetz des Nutzers von Endpunkt A stehen, oder im Firmennetz des Nutzers von Endpunkt A, oder Optimierer X-2 wird von einem Dienstanbieter betrieben, der es so Dienstnutzern (wie in diesem Beispiel dem Nutzer von Endpunkt A) ermöglicht seine Daten mit der Optimierung Ol an X-2 zu übertragen. X-2 ist dann beispielsweise an ein Übertragungs-Netz N-B angebunden, über das der Endpunkt B erreicht werden kann. Optional könnte es sich bei dem Netz N-B auch (erneut) um das Internet handeln, in das die unter Ausnutzung von Ol ganz / teilweise wiederhergestellten Daten (zurück) gegeben werden und dann Endpunkt B erreichen können.For example, the network NX could be the Internet. And the optimizers XI and X-2 could each insert / evaluate the optimization Ol in forwarding / receiving the data from corporate networks or home networks NA and NB to the Internet NX. For example, the network NX could also be an Internet access shared by multiple users and / or applications, for example at a public Internet hotspot (or special Internet hotspots such as those offered on trains, planes, etc.). In this case, increased packet losses may occur on this shared Internet access. While in principle all the arrangements shown in FIG. 1 can also be used here, this application scenario can be well described by means of the arrangement of FIG. 1 b). Terminal A could then be a laptop, for example, which uses Internet access via WLAN and a hotspot together with other users and / or own applications. If this Internet access is overloaded and this leads to packet loss, the user of terminal A, for example, for his VoIP data (and / or all his application data to the end point B) FEC redundancies using an optimizer XI (for example, is implemented locally on his laptop) insert into its data streams. Optimizer X-2 is either already in the data path to endpoint B or else, for example Optimizer XI ensures, for example, by suitable target addressing of the generated packets, that the generated packets should be forwarded to X-2 via NX. For example, X-2 could be on the Endpoint A user's home network, or on the endpoint A's corporate network, or Optimizer X-2 would be operated by a service provider serving service users (endpoint A user, as in this example). allows to transfer its data to X-2 with the optimization Ol. X-2 is then connected, for example, to a transmission network NB, via which the end point B can be reached. Optionally, the network NB could also be (again) the Internet into which the data partially and completely recovered using oil can be (back) given and then reach endpoint B.
Welche der bekannten oder auch speziell entwickelten FEC Verfahren zur Redundanzgenerie- rung eingesetzt werden, kann bei der Realisierung beispielsweise anhand von CPU Leistung, Speicheranforderungen, den erwarteten und / oder dynamisch gemessenen Paketverlustraten, toleriertem durch die FEC Redundanzen erzeugten Overhead und nicht zuletzt abhängig von der durch die Auswertung der FEC Verfahren potentiell erzeugten zusätzlichen Verzögerung beim empfangenen Optimierer weitgehend frei zugeschnitten auf das konkrete Einsatzszenario gewählt werden. Neben komplexeren FEC Verfahren wie beispielsweise auf Vandermon- de-Matrizen basierenden Verfahren, sind hier sehr einfache beispielweise XOR basierte Verfahren ebenso denkbar.Which of the known or even specially developed FEC methods for redundancy generation can be used, for example, based on CPU performance, memory requirements, the expected and / or dynamically measured packet loss rates, tolerated by the FEC redundancies generated overhead and not least depending on the by the evaluation of the FEC method potentially generated additional delay in the received optimizer are largely tailored tailored to the specific application scenario. In addition to more complex FEC procedures such as Vandermon- de-matrix-based methods, very simple, for example, XOR-based methods are also conceivable here.
Für Einsatzszenarien wie auch für die Beispielanwendung VoIP könnte es je nach konkretem Einsatzszenario sinnvoll sein, nicht unbedingt zusätzliche Datenpakete für die FEC zu erzeugen (unter anderem, da zusätzliche Datenpakete in der Regel auch zusätzliche Header benötigen und damit zusätzlichen Overhead generieren). Hier könnte es sich anbieten die FEC Redundanzinformationen ganz und / oder teilweise an die einzelnen zum Beispiel VoIP Datenpakete anzuhängen.Depending on the specific application scenario, it might be useful for usage scenarios as well as for the example application VoIP to not necessarily generate additional data packets for the FEC (among other things, since additional data packets generally also require additional headers and thus generate additional overhead). Here it might be appropriate to attach the FEC redundancy information completely and / or partially to the individual, for example, VoIP data packets.
Je nach Einsatzszenario kann es auch vorteilhaft sein, die eingefügten FEC Redundanzinformationen so zu gestalten, dass sie auch direkt von einem der Endpunkte (beispielsweise Endpunkt B) bzw. der beteiligten Anwendung genutzt und „ausgewertet" werden können. Hiermit ist bei einer erfindungsgemäßen Ausgestaltung nicht gemeint, dass beispielsweise die genutzten Anwendungen direkt Ende-zu-Ende die FEC Redundanzinformationen in beispielsweise ihren Anwendung-Übertragungsprotokollen implementieren. Vielmehr ist damit das Einfügen von FEC Redundanzinformationen durch einen weitgehend von der Anwendung losgelösten Optimierern X-I wie beispielsweise in Fig. 2 f) und g) gezeigt, gemeint.Depending on the application scenario, it may also be advantageous to design the inserted FEC redundancy information in such a way that it can also be used and "evaluated" directly by one of the endpoints (for example endpoint B) or the application involved For example, the applications used directly implement the FEC redundancy information in, for example, their application transfer protocols end-to-end, rather than inserting FEC redundancy information through an optimizer XI largely detached from the application, such as in FIGs g).
Der Optimierer X-I kann in vielen Einsatzszenarien im einfachsten Fall die eingehenden Datenpakete verdoppeln (oder allgemeiner stets und / oder bei beispielsweise dynamisch festgestellten auftretenden Paketverlusten doppelt bzw. allgemeiner mehrfach) senden. Da viele Übertragungsprotokolle (unter anderen das breit eingesetzte Protokoll IP) nicht zusichern, dass Pakete während der Übertragung nicht verdoppelt oder vervielfacht werden, tolerieren (ggf. ignorieren) viele Empfangsprotokolle und Anwendungen doppelt empfangene Pakete. So werden zusätzlich zu den Anordnungen aus Fig. 1 auch Anordnungen gemäß Fig. 2 möglich, bei denen optional nur eine Optimierer Komponente X-I eingesetzt wird. Dennoch kann es auch beispielsweise bei Paketverdopplung je nach Einsatzszenario und beispielsweise administrativen und / oder technischen Anordnungsmöglichkeiten sinnvoll sein, einen Optimierer X-2 einzusetzen, der vor dem Weiterleiten über nachfolgende Netze an Endpunkt B die Paketverdopplungen wieder rückgängig macht um Übertragungskapazität in den folgenden Netzen / Netzabschnitten einzusparen (sofern sie nicht ganz / teilweise bereits durch aufgetretene Paketverluste „rückgängig" gemacht wurden). Unter Ausnutzung der Kenntnis von zur Übertragung genutzten Protokollen kann das Einfügen von Redundanzen oftmals auch geschickt so realisiert werden, dass weniger Overhead entsteht als dies bei einem reinen Operieren auf Paketebene ohne Betrachtung der einzelnen Protokolle möglich ist. Dies kann man erneut am Beispiel VoIP verdeutlichen. Viele VoIP Anwendungen nutzen das Protokoll RTP zur Datenübertragung (siehe auch [6]). RTP wird in der Regel oberhalb von UDP und IP eingesetzt - daher haben RTP Pakete im Vergleich zu dem oftmals relativ geringen Volumen der in einem RTP enthaltenen Sprachdaten einen sehr hohen RTP, UDP, IP, usw. Header-Overhead. Zugleich enthalten RTP Pakete Timestamps und einen Sprachdatenteil (Nutzdatenteil) variabler Größe. Eine erfindungsgemäße Realisierung könnte daher in einem Einsatzszenario mit beispielsweise VoIP und RTP Redundanz in RTP einfügen, in dem Optimierer X-I in jedes von Endpunkt A empfangene RTP Datenpaket erneut vor den neu empfangenen Nutzdaten auch die Nutzdaten des zuvor empfangenen RTP Datenpaketes einfügt (also beispielsweise die doppelte Nutzdatenmenge pro RTP versendet) und die Timestamps (die im Beispiel von RTP beispielsweise den Timestamp der ersten in einem Paket enthaltenen Nutzdaten angeben) entsprechend anpasst. Eine entsprechende Realisierung würde deutlich weniger Overhead erzeugen als eine komplette Verdopplung der RTP Pakete. Zugleich würden VoIP RTP-Protokoll- und / oder Anwendungsimplementierungen oftmals problemlos auch ohne den Einsatz eines Optimierers X-2 diese modifizierten RTP Pakete verstehen und selbstständig (weitgehend transparent) die eingehenden Redundanzinformationen zum Ausgleich von Paketverlusten nutzen können. Es sind also auch in diesem Beispiel auch Anordnungen gemäß Fig. 2 möglich.In many cases, the optimizer XI can, in the simplest case, double the incoming data packets (or, more generally, always and / or, for example, in the case of dynamically detected occurring packet losses, send them twice or more generally multiple times). Because many transmission protocols (including the widely used IP protocol) do not assure that packets will not be duplicated or duplicated during transmission, many receive protocols and applications tolerate (or ignore) duplicate packets. Thus, in addition to the arrangements of FIG. 1, arrangements according to FIG. 2 also become possible in which optionally only one optimizer component XI is used. Nevertheless, it may also be useful, for example in case of packet duplication depending on the application scenario and, for example, administrative and / or technical arrangement options, to use an optimizer X-2, which reverses the packet duplications before forwarding via subsequent networks to end point B in order to transfer capacity in the following networks. To save network sections (if they were not completely / partially already made by occurred packet losses "undone"). By taking advantage of the knowledge of protocols used for transmission, the insertion of redundancies can often also be cleverly implemented in such a way that less overhead is created than is possible with pure packet-level operation without considering the individual protocols. This can be clarified again using the example of VoIP. Many VoIP applications use the RTP protocol for data transmission (see also [6]). RTP is typically used above UDP and IP - therefore RTP packets have very high RTP, UDP, IP, etc. header overhead compared to the often relatively small volume of voice data contained in an RTP. At the same time, RTP packets contain timestamps and a voice data part (payload part) of variable size. An implementation according to the invention could therefore insert redundancy into RTP in an application scenario with, for example, VoIP and RTP, in which optimizer XI also inserts the user data of the previously received RTP data packet into each of the RTP data packets received by endpoint A before the newly received user data (thus, for example, the double User data volume per RTP sent) and the timestamps (which in the example of RTP indicate, for example, the timestamp of the first user data contained in a packet) accordingly adapts. A corresponding implementation would generate significantly less overhead than a complete duplication of the RTP packets. At the same time, VoIP RTP protocol and / or application implementations would often be able to easily understand these modified RTP packets even without the use of an optimizer X-2, and be able to independently (largely transparently) use the incoming redundancy information to compensate for packet losses. Thus, arrangements in accordance with FIG. 2 are also possible in this example.
Ist ungewiss, ob ein Optimierer X-2 zur Interpretation (Rückwandlung) des optimierten Datenstroms während der Dauer der optimierten Kommunikationsbeziehung zur Verfügung steht, so kann der Optimierer X-I den optimierten Datenstrom auch so ausbilden, dass die für die Optimierung notwendigen Informationen nur für den Optimieret X-2 „sichtbar" sind, vom (im obigen Beispiel) Endpunkt B jedoch nicht wahrgenommen werden. Hierzu können beispielsweise die zur Optimierung notwendigen Informationen in separaten Paketen übertragen und diese beispielsweise anders (zum Beispiel an den Optimierer X-2) adressiert werden. Auch können die zur Optimierung notwendigen Informationen in den für den Endpunkt B bestimmten Paketen „versteckt" sein. Beispielsweise kann in einer Protokoll-Hierarchie ein „größeres" Paket einer Schicht (zum Beispiel der Vermittlungs-Schicht) ein „kleineres" Paket einer höheren Schicht (zum Beispiel der Transport-Schicht) enthalten, und zwar so dass nach dem „Ende" des Transport-Schicht-Paketes noch Raum für weitere Informationen ist. Bei der Vermittlungs-Schicht kann es sich insbesondere um IP (zum Beispiel IPv4 oder IPv6), bei der höheren Schicht um IP, UDP, TCP, ICMP, DCCP, SCTP sowie andere IP-basierte Tunneling- oder Transportprotokolle handeln.If it is uncertain whether an optimizer X-2 is available for interpreting (reconverting) the optimized data stream during the duration of the optimized communication relationship, the optimizer XI can also design the optimized data stream such that the information necessary for the optimization is only for the optimizer X-2 are "visible", but are not perceived by the endpoint B (in the example above), for example, the information needed for the optimization can be transmitted in separate packages and addressed, for example, differently (for example to the optimizer X-2). Also, the information necessary for optimization may be "hidden" in the packets destined for endpoint B. For example, in a protocol hierarchy, a "larger" packet of a layer (e.g., the switching layer) may include a "smaller" packet of a higher layer (e.g., the transport layer), such that There is still room for further information at the "end" of the transport layer packet The switching layer can be, in particular, IP (for example IPv4 or IPv6), at the higher layer IP, UDP, TCP, ICMP, DCCP , SCTP, and other IP-based tunneling or transport protocols.
In jedem dieser Einsatzfälle kann eine statische Konfiguration beispielsweise der Menge der eingefügten Redundanzinformationen und / oder eine dynamische Anpassung beispielsweise bezogen auf eine dynamisch geschätzte und / oder gemessene Paketverlustrate erfolgen. Neben der Menge der eingefügten Redundanzinformationen kann auch optional auch beispielsweise das eingesetzte FEC Verfahren selbst modifiziert und / oder gewechselt werden.In each of these applications, a static configuration, for example, the amount of inserted redundancy information and / or a dynamic adjustment, for example, based on a dynamically estimated and / or measured packet loss rate. In addition to the amount of inserted redundancy information, the FEC method itself can also be optionally modified and / or changed, for example.
Je nach Einsatzszenario kann es vorteilhaft sein, Paketverluste als Optimierung und / oder Teil einer Optimierung auch durch Übertragungswiederholungen (beispielsweise entsprechend eines ARQ Protokolls) zu reduzieren. Hierbei könnten beispielsweise herkömmliche ARQ basierte Protokolle wie TCP zum Einsatz kommen und beispielsweise unter anderem zu diesem Zweck die zu übertragenen Pakete durch eine und / oder mehrere TCP Verbindungen getunnelt werden. Es wäre aber beispielsweise auch möglich und je nach Einsatzszenario vorteilhaft, hierfür beispielsweise spezielle Protokolle zu entwerfen und / oder diese Funktionalität in die von den Optimierern eingesetzten Protokollen zu integrieren.Depending on the application scenario, it may be advantageous to reduce packet losses as an optimization and / or part of an optimization also by retransmissions (for example, according to an ARQ protocol). In this case, for example, conventional ARQ-based protocols such as TCP could be used and, for example, for this purpose, the packets to be transmitted could be tunneled through one and / or several TCP connections. However, it would also be possible and, depending on the application scenario, for example, to design special protocols for this purpose and / or to integrate this functionality into the protocols used by the optimizers.
Auch kann es je nach Einsatzszenario vorteilhaft sein eine Kombination aus Übertragungswiederholungen (wie ARQ Verfahren) und FEC Verfahren einzusetzen. So könnte beispielsweise ein einen optimierten Datenstrom empfangener Optimierer zunächst die FEC Informationen auswerten und für den Fall, dass dennoch nicht alle Pakete/Informationen empfangen wurden bzw. wiederhergestellt wurden, eine entsprechende Übertragungswiederholung anfordern.Depending on the application scenario, it may also be advantageous to use a combination of retransmissions (such as ARQ methods) and FEC methods. For example, an optimizer receiving an optimized data stream could first evaluate the FEC information and request a corresponding retransmission in case all packets / information were not yet received or restored.
Da Übertragungswiederholungen, wenn sie notwendig werden, oftmals zu einer zusätzlichen Verzögerung führen, kann es, je nach Einsatzszenario, vorteilhaft sein, eine entsprechende Optimierung beispielsweise nur für Netze / Teilnetze und / oder Übertragungsabschnitte durchzuführen, die relativ hohe Übertragungsfehlerraten und / oder allgemein relativ hohe Paketverlustraten aufweisen. Daher kann es auch vorteilhaft sein, beispielsweise auf Übertragungswiederholungen basierende Optimierungen für einzelne Netze / Teilnetze und / oder Übertragungsabschnitte einzeln durchzufuhren und gegebenenfalls so mehrere Optimierungen - beispielsweise für diesen Zweck sequentiell ähnlich wie in Fig. 1 d) gezeigt - zu kombinieren. Auch kann es je nach Einsatzszenario beispielsweise vorteilhaft sein, eine auf Übertragungswiederholungen basierende Optimierung für ein Netz / Teilnetz und / oder Übertragungsabschnitt zu nutzen (dies könnte beispielsweise in einer Anordnung entsprechend Fig. 1 e) die Optimierung Ol sein) und eine beispielsweise weiterreichende Optimierung oberhalb dieser zu nutzen (dies könnte beispielsweise in einer Anordnung entsprechend Fig. 1 e) die Optimierung O2 sein). Es kann, je nach Einsatzszenario, vorteilhaft sein, wenn auf Übertragungswiederholungen basierende Optimierungen in Netzen/Teilnetzen und / oder Übertragungsabschnitten mit zumindest relativ kleiner RTT eingesetzt werden. Unter anderem vor diesem Hintergrund kann es auch vorteilhaft sein, ein entsprechendes Verfahren / Anordnung mit den unter b) beschriebenen Verfahren zur Reduzierung der RTTs zu kombinieren.Since retransmissions, if necessary, often lead to an additional delay, depending on the application scenario, it may be advantageous to carry out a corresponding optimization, for example, only for networks / subnets and / or transmission sections, which have relatively high transmission error rates and / or generally relatively high Have packet loss rates. Therefore, it may also be advantageous, for example, for retransmission-based optimizations for individual networks / subnets and / or Carrying transmission sections individually and possibly to combine several optimizations - for example, for this purpose sequentially similar to in Fig. 1 d) - to combine. It may also be advantageous depending on the application scenario, for example, to use an optimization based on retransmission for a network / subnetwork and / or transmission section (this could be, for example, in an arrangement according to FIG. 1 e) the optimization Ol) and an example, further optimization above to use this (this could be, for example, in an arrangement according to FIG. 1 e) the optimization O2). Depending on the application scenario, it can be advantageous if optimizations based on retransmission in networks / subnetworks and / or transmission sections with at least relatively small RTTs are used. Among other things, against this background, it may also be advantageous to combine a corresponding method / arrangement with the methods described under b) for reducing the RTTs.
Sofern als Bestandteil der Optimierung Übertragungswiederholungen / ARQ Verfahren genutzt werden, kann es, je nach Einsatzszenario, vorteilhaft sein, beispielsweise das Anfordern von Übertragungswiederholungen nur durchzuführen, wenn die daraus resultierende und / oder zu erwartende Verzögerung nicht „inakzeptabel" groß wird. Ab wann eine Übertragungsverzögerung inakzeptabel groß wäre, hängt unter anderem vom konkreten Einsatzszenario und / oder den verwendeten Protokollen und / oder den Anwendungen ab. Entsprechende Grenzwerte könnten beispielsweise konfiguriert werden, gemessen werden, aus den eingesetzten Protokollen und / oder Anwendungen und / oder deren Parametern abgeleitet werden. Auch könnten sie absolut und / oder relativ angegeben werden (beispielsweise relativ zu einer RTT sein).Depending on the application scenario, it may be advantageous, if the retransmission / ARQ method is used as part of the optimization, to only request retransmissions, for example, if the resulting and / or expected delay does not become "unacceptable" Transmission delay would be unacceptably large depends, inter alia, on the specific application scenario and / or the protocols used and / or the applications.For example, corresponding limit values could be configured, measured, derived from the protocols used and / or applications and / or their parameters. Also, they could be stated absolutely and / or relatively (eg relative to an RTT).
Da unter anderem durch Übertragungswiederholungen und / oder Nutzung von FEC Informationen zum Wiederherstellen fehlender Pakete und / oder Queuing und / oder anderen Mechanismen während der Übertragung die Reihenfolge der Pakete verändert werden kann, kann es, je nach Einsatzszenario vorteilhaft sein, Sequenznummer und / oder Timestamps in der Optimierung einzufügen und / oder aus bestehenden Headern nutzen. Ln diesem Fall kann es für einen den optimierten Datenstrom empfangenen und weiterleitenden Optimierer vorteilhaft sein, die Paketreihenfolge beim Weiterleiten zumindest teilweise wiederherzustellen. Zur Reduzierung von Übertragungsverzögerungen kann es, je nach Einsatzszenario, vorteilhaft sein, bestimmte Datenpakete / bestimmte Informationen über andere Übertragungswege (Netze / Teilnetze und / oder Übertragungsabschnitte) zu übertragen. Beispielsweise könnte es vorteilhaft sein, wenn diese anderen Übertragungswege eine relativ kurze RTT und / oder geringe Paketverlustraten aufweisen, beispielsweise da hierdurch die die optimierten Datenströme empfangenen Optimierer diese Informationen beispielsweise bei auftretenden Paketverlusten schneller erhalten und so das Weiterleiten der (wiederhergestellten) Pakete und / oder Informationen weniger verzögern. Auch kann es aus ähnlichen Gründen je nach Einsatzszenario vorteilhaft sein, bestimmte Datenpakete / bestimmte Informationen (wie beispielsweise FEC und / oder Übertragungswiederholungen) mit einer höheren Priorität zu übertragen und so beispielsweise die Übertragungsverzögerung und / oder Verlustraten für diese Datenpakete/Informationen zu reduzieren.Since, inter alia, by retransmission and / or use of FEC information to recover missing packets and / or queuing and / or other mechanisms during transmission, the order of the packets can be changed, it may be advantageous, depending on the application scenario, sequence number and / or timestamps to insert in the optimization and / or use from existing headers. In this case, for an optimizer received and forwarded to the optimized data stream, it may be advantageous to at least partially restore the packet order when forwarding. To reduce transmission delays, it may be advantageous, depending on the application scenario, certain data packets / specific information on other transmission paths (networks / Subnetworks and / or transmission sections). For example, it could be advantageous if these other transmission paths have a relatively short RTT and / or low packet loss rates, for example because the optimizers receiving the optimized data streams obtain this information more quickly, for example in the event of packet losses, and thus forward the (recovered) packets and / or Delay information less. It may also be advantageous for similar reasons, depending on the application scenario, to transmit certain data packets / specific information (such as FEC and / or retransmissions) with a higher priority and thus for example to reduce the transmission delay and / or loss rates for these data packets / information.
Je nach Einsatzszenario kann es vorteilhaft sein, die Optimierung und / oder deren intern verwendete Verfahren auf einzelne Kommunikationsbeziehungen, Gruppen von Kommunikationsbeziehungen und / oder auch den gesamten Datenfluss zu beziehen.Depending on the application scenario, it may be advantageous to refer the optimization and / or its internally used methods to individual communication relationships, groups of communication relationships and / or the entire data flow.
ILb) Reduzieren von ÜbertragungsverzögerungenILb) Reduce transmission delays
Wie oben beschrieben, entsteht oftmals ein wesentlicher Bestandteil der Übertragungsverzögerungen in paketvermittelter Übermittlung durch das Anstauen von Paketen in Warteschlangen vor Engpässen. Diese Warteschlangen entstehen oft in Netzelementen und / oder Implementierungsschichten, auf die wenig direkter Einfluss bezüglich der Realisierung geeigneter QoS-Algorithmen genommen werden kann. Ein Optimierer, der sich auf einem Pfad vor einem Engpass befindet, kann oftmals zur Vermeidung oder Begrenzung solcher Staus beitragen, indem er beispielsweise die oben beschriebenen Verfahren der Optimierung anwendet, also beispielsweise Pakete unterdrückt, umordnet, zurückhält oder komprimiert, oder auch in sonstiger Weise den Datenstrom so beeinflusst, dass zum Beispiel das Verhalten der beteiligten Endsysteme zu einer Regelung der Warteschlangen beiträgt.As described above, often a significant component of the transmission delays in packet-switched transmission arises from the congestion of packets in queues ahead of bottlenecks. These queues often arise in network elements and / or implementation layers, which can be taken on the little direct impact on the implementation of suitable QoS algorithms. An optimizer that is on a path ahead of a bottleneck can often help prevent or limit such congestion by, for example, applying the optimization methods described above, such as suppressing, rearranging, retaining or compressing packets, or otherwise influences the data stream so that, for example, the behavior of the participating end systems contributes to a regulation of the queues.
Eine Schwierigkeit ist dabei die mangelnde Information des Optimierers über den aktuellen Zustand des Engpasses, wie zum Beispiel die erzielbare Bitrate, die aktuelle Größe und Struktur der Warteschlange, die eingesetzten Priorisierungsalgorithmen sowie der Anteil des durch den Optimierer laufenden Datenflusses an dem Gesamtdatenfluss durch den Engpass und das Verhalten (und weiter zu erwartende Verhalten) des nicht durch den Optimierer laufenden Anteils. Es kann dabei vorteilhaft sein, dass der Optimierer durch Beobachtungen der Paketströme Wissen, wenn auch oft unvollständiges, nachlaufendes Wissen, über diese Zustands- parameter ermittelt. Beispielsweise könnte der Optimierer Bitraten messen und / oder aus dem Auftreten von Übertragungswiederholungen (bzw., bei Verwendung von ECN nach RPC 3168, verwandte Signale wie „congestion experienced" bzw. ECN-Echo und CWR auf der Transportebene) auf Übertragungseigenschaften schließen und / oder andere Feedback- Signale wie RTCP oder ROHC-Feedback nutzen und aus diesen beispielsweise schließen, dass ab bestimmten Bitraten Stau-verursachte Verluste auftreten. Ebenso kann es vorteilhaft sein, wenn der Optimierer Aussagen über den Verlauf der RTT nutzt, um diese mit der beobachteten und beeinflussten Bitrate in Beziehung zu setzen und daraus Parameter des Engpasses zu bestimmen. Es kann zudem vorteilhaft sein, wenn der Optimierer das zu erwartende Verhalten der Endsysteme in seine Vorhersagen einbezieht — beispielsweise kann eine zu erwartende Übertragungswiederholung durch rechtzeitige Priorisierung eines Datenpakets vermieden werden — und / oder auch gezielt beeinflusst, beispielsweise durch Unterdrückung von unnötigen Übertragungswiederholungen und / oder durch Unterdrückung und / oder Verzögerung von ACK- oder Daten-Paketen und ein dadurch erzieltes Herunterbremsen eines Senders, der beispielsweise droht, den Engpass zu überlasten.A difficulty is the lack of information of the optimizer about the current state of the bottleneck, such as the achievable bitrate, the current size and structure of the queue, the used prioritization algorithms and the proportion of current through the optimizer data flow to the total data flow through the bottleneck and the behavior (and expected behavior) of not running through the optimizer Share. It may be advantageous that the optimizer, through observations of the packet streams, determines knowledge, albeit often incomplete, trailing knowledge, about these state parameters. For example, the optimizer could measure and / or track transmission rates and / or from the occurrence of retransmissions (or, when using ECN to RPC 3168, related signals such as "congestion experienced" or ECN echo and CWR at the transport level) Using other feedback signals, such as RTCP or ROHC feedback, we can conclude from these that, for example, congestion-induced losses occur at certain bitrates, and it may be advantageous for the optimizer to use statements about the course of the RTT to compare them to the observed and It can also be advantageous if the optimizer includes the expected behavior of the end systems in his forecasts - for example, an expected retransmission can be avoided by timely prioritizing a data packet - and / or influence it in a targeted way t, for example, by suppressing unnecessary retransmissions and / or by suppression and / or delay of ACK or data packets and thereby achieved a deceleration of a transmitter, for example, threatens to overload the bottleneck.
Weitere je nach Einsatzszenario vorteilhafte Optimierungsmassnahmen eines Optimierers und / oder in Kombination mit diesem eingesetzte Verfahren wie HTTP-Prefetching lassen sich (durch Steuerung der Initiierung, aber auch durch Steuerung des jeweiligen Verlaufs der Transportverbindungen einzelner Zugriffe) so steuern, dass die vorhergesagte Kapazität des Engpasses jeweils beispielsweise möglichst gut, aber nicht zu stark ausgenutzt wird, zugleich könnten dabei auch weitere Informationen über den Engpass gewonnen werden. Schließlich kann es je nach Einsatzszenario vorteilhaft sein, wenn der Optimierer den Engpass durch Kommunikation mit einer Gegenstelle auch ohne direkte Nutzwirkung der ausgelösten Datenübertragung aktiv sondiert, zum Beispiel mit o.g. ICMP-Techniken (echo request / echo reply, „ping") und / oder auch durch Aufsetzen von Huckepack-Informationen auf den Nutzdaten und / oder durch Nutzung von einer / mehreren Management-, Diagnose- und / oder Messschnittstellen zu einem und / oder mehreren / allen Netzelementen die Queues implementieren und / oder verursachen und / oder entsprechende Informationen weitergeben können. Viele dieser Maßnahmen lassen sich bei unidirektionaler Beobachtung / Beeinflussung wie auch bei bidirektionaler Beobachtung / Beeinflussung jeweils mindestens eines Teils der durch den Engpass fließenden Daten realisieren.Further optimizing measures of an optimizer which are advantageous depending on the application scenario and / or methods used in combination with this, such as HTTP prefetching, can be controlled (by controlling the initiation, but also by controlling the respective course of the transport connections of individual accesses) such that the predicted capacity of the bottleneck For example, each is used as well as possible, but not too strong, while at the same time also more information about the bottleneck could be obtained. Finally, depending on the application scenario, it may be advantageous if the optimizer actively probes the bottleneck by communicating with a remote station even without direct utilization of the triggered data transmission, for example with the above-mentioned ICMP techniques (echo request / echo reply, "ping") and / or also by implementing piggyback information on the user data and / or by using one / more management, diagnostic and / or measurement interfaces to one and / or more / all network elements, the queues implement and / or cause and / or pass on appropriate information Many of these measures can be unidirectionally observed / influenced as well as in bidirectional observation / influencing at least a part of the data flowing through the bottleneck realize.
Einzelne und / oder Kombinationen dieser Maßnahmen können von einem Optimierer dazu genutzt werden, die vor einem Engpass entstehende Warteschlange zu beeinflussen und damit insgesamt eine Verbesserung der Dienstqualität zu erzielen. Je nach Einsatzszenario können dabei geeignete Vorgaben genutzt werden (beispielsweise eine maximal gewünschte RTT oder auch ein anderes Ziel aus geeigneten Kennwerten wie eine Kombination aus Verlustrate, RTT und RTT- Varianz / Variabilität, die beispielsweise nach der Padhye-Firoiu-Gleichung zu bestimmten Durchsatzwerten von TCP- Verbindungen führt).Individual and / or combinations of these measures can be used by an optimizer to influence the queue created before a bottleneck and thus achieve an overall improvement in the quality of service. Depending on the application scenario, suitable specifications can be used (for example, a maximum desired RTT or another target from suitable characteristic values such as a combination of loss rate, RTT and RTT variance / variability, for example according to the Padhye-Firoiu equation for specific throughput values of TCP connections).
Ziel kann je nach Einsatzszenario aber auch sein, jeweils nicht (nur) der Summe der Datenströme und / oder Gruppen von Datenströmen, sondern gegebenenfalls nur / auch bevorzugten Datenströmen (wie interaktiv gesprochenes VoIP) die erforderliche Dienstqualität mit einer höheren Zuverlässigkeit zur Verfügung zu stellen als dies ohne diese Maßnahmen möglich wäre.Depending on the application scenario, however, the goal can also be to provide not only the sum of the data streams and / or groups of data streams but also only / preferred data streams (such as interactively spoken VoIP) the required quality of service with a higher reliability than this would be possible without these measures.
Beispielsweise ausgehend von den in Fig. 1 und 2 beschriebenen oder daraus abgeleiteten Anordnungen kann eine Optimierung daher beispielsweise durch Optimierer X-I und X-2 realisiert werden, die weitgehend frei im Datenpfad zwischen den Endpunkten A und B angeordnet werden können. Beispielsweise in der in Fig. 1 a) dargestellten Anordnung optimieren die beiden Optimierer gemeinsam die Nutzung eines Engpasses im Netz N-X. Beispielsweise könnten dabei X-I und / oder X-2 einen möglicherweise verteilt realisierten Algorithmus zur Gewinnung relevanter Kennparameter des / der Engpässe im Netz N-X einsetzen. So können sich X-I und X-2 gegenseitig aktive Sondierungspakete senden und / oder auf ohnehin gesendete Pakete Huckepack-Informationen aufsetzen und darüber beispielsweise die RTT und ggf. auch ihren Verlauf abschätzen.For example, based on the arrangements described in or derived from FIGS. 1 and 2, an optimization can therefore be realized, for example, by optimizers X-I and X-2, which can be arranged largely freely in the data path between the end points A and B. For example, in the arrangement shown in FIG. 1 a), the two optimizers jointly optimize the use of a bottleneck in the network N-X. For example, X-I and / or X-2 could use a potentially distributed algorithm for obtaining relevant characteristic parameters of the bottleneck (s) in network N-X. Thus, X-I and X-2 can send mutually active sounding packets and / or put on anyway sent packets piggyback information and about it, for example, the RTT and possibly estimate their course.
Betrachten wir ohne Beschränkung der Allgemeinheit als eines von vielen möglichen Ausführungsbeispielen den Weg von A nach B und die auf diesem Weg in N-X entstehende Warteschlange, dann kann X-I den Zufluss und X-2 den Abfluss von Datenpaketen in die Berechnungen einbeziehen und damit eine verfeinerte Aussage über die aktuelle Größe der Warte- schlange(n) treffen. Der in X-2 sichtbar werdende Abfluss von Datenpaketen kann des weite- ren Aussagen über die erzielbare Bitrate und die aktuelle Paketverlustrate liefern. X-I kann auf die gemeinsam mit X-2 ermittelten Kennparameter durch Einflussnahme (beispielsweise Verzögerung, Unterdrückung, Verdoppelung, Umordnung, Umschreiben der Paketfelder, zum Beispiel Veränderung des angebotenen Fensters) auf die in Vorwärtsrichtung (im beschriebenen Beispiel also von Endpunkt A an B) gesendeten Datenpakete reagieren. X-2 kann dies ebenfalls; allerdings ist der Einfluss dann indirekt über die Rücksendungen von B an A vermittelt; diese Einflussnahmen können sowohl B als auch A noch direkt beeinflussen.If we consider the path from A to B as one of many possible embodiments and the queue resulting from this in NX without restriction of generality, then XI can include the inflow and X-2 the flow of data packets into the calculations and thus a more refined statement about the current size of the queue (s). The outflow of data packets becoming visible in X-2 can statements about the achievable bit rate and the current packet loss rate. XI can influence the parameters determined jointly with X-2 by influencing them (for example, delay, suppression, duplication, reordering, rewriting the packet fields, for example changing the window offered) to those in the forward direction (in the example described, from end point A to B) Data packets react. X-2 can do this too; however, the influence is then mediated indirectly via the returns from B to A; these influences can affect both B and A directly.
Je nach Einsatzszenario kann es vorteilhaft sein, dass ein Optimierer in einer alternativen Ausgestaltung bzw. in Kombination mit einem / mehreren der vorgenannten Verfahren auch Rückmeldungen / Feedback und / oder Informationen (zum Beispiel über Queueinformationen nachfolgender Komponenten und / oder Bandbreiten für einzelne / Typen / Gruppen von Datenströmen nutzt. Diese Informationen könnten beispielsweise angeben, wie viele Bytes für bestimmte Datenarten und / oder generell noch beispielsweise an nachfolgende Komponenten senden kann ohne dadurch ein Queueing zu verursachen, bzw. um beispielsweise ein relativ geringes Queueing zu verursachen und / oder verbunden mit weitergehenden Informationen über derzeitige und beispielsweise je nach Datenart und / oder Priorität resultierenden bzw. bestehenden Queuegrößen und / oder Füllstände. Vorteilhafte Übertragungsarten und Schnittstellen für diesen Informationsaustausch / dieses Feedback könnten lokale / übertragene Steuerinformationen und / oder andere Schnittstellen wie beispielsweise die im Linux Betriebssystem oft von Treibern genutzte / proc Dateisystem-Schnittstelle sein.Depending on the application scenario, it may be advantageous for an optimizer in an alternative embodiment or in combination with one or more of the aforementioned methods to also provide feedback / feedback and / or information (for example via queue information of subsequent components and / or bandwidths for individual / types / This information could, for example, indicate how many bytes for certain types of data and / or, in general, for example, can send to subsequent components without causing queuing or, for example, causing relatively low queuing and / or associated with Further information on current and, for example, depending on the data type and / or priority resulting or existing cue levels and / or levels.Of Advantageous transmission types and interfaces for this information exchange / this feedback could be local / transferred tax information and / or other interfaces such as the Linux operating system often used by drivers / proc file system interface.
ILc) Reduzieren der Auswirkungen von Übertragungs-UnterbrechungenILc) Reduce the effects of transmission interruptions
Wie oben beschrieben haben Übertragungs-Unterbrechungen oft den Verlust und / oder die Verzögerung von Datenpaketen zur Folge, was das Herstellen und / oder den Ablauf und / oder das Beenden einer Kommunikationsbeziehung beeinträchtigen kann. Eine Verzögerung kann beispielsweise eintreten, wenn die während der Übertragungs-Unterbrechung gesendeten Pakete beispielsweise in einem Router (d.h. dessen Queue) zwischengespeichert wurden, bis die Übertragungs-Unterbrechung vorüber ist. Eine solche Zwischenspeicherung bezieht sich aber im Allgemeinen nur auf (relativ) wenige Pakete und auf einen (relativ) kurzen Unterbrechungszeitraum. Paketverluste wiederum können sich auf die Übertragungsverzögerung auswirken, wenn beispielsweise ein zuverlässiges und / oder reihenfolgeerhaltendes Transport- protokoll (zum Beispiel TCP, SCTP) eingesetzt wird. Dauert die Unterbrechung länger an als eine (zum Beispiel durch das Transportprotokoll und dessen Parameter) bestimmten Zeitspanne (Timeout), so kann es vorkommen, dass die Kommunikationsbeziehung durch das entsprechende Protokoll beendet wird. Unter anderem wenn dies unterhalb des Anwendungsprotokolls (zum Beispiel auf der IP- oder Transportschicht) geschieht, wird dem Anwendungsprotokoll oftmals die Kommunikationsgrundlage entzogen, und die Kommunikationsbeziehung zwischen den Anwendungen kommt nicht zustande bzw. kann nicht fortgeführt werden bzw. muss später (nach Wegfall der Unterbrechung) neu aufgesetzt werden.As described above, transmission interruptions often result in the loss and / or delay of data packets, which can interfere with the establishment and / or operation and / or termination of a communication relationship. A delay may occur, for example, if the packets sent during the transmission interruption have been temporarily stored in a router (ie its queue) until the transmission interruption is over. However, such caching generally only relates to (relatively) few packets and to a (relatively) short interruption period. In turn, packet loss can affect the transmission delay, for example, if a reliable and / or order-preserving transport protocol (for example, TCP, SCTP). If the interruption lasts longer than a certain period of time (for example, by the transport protocol and its parameters), it may happen that the communication relationship is terminated by the corresponding protocol. Among other things, if this happens below the application protocol (for example, at the IP or transport layer), the communication protocol is often removed from the application protocol, and the communication relationship between the applications does not materialize or can not continue or must be later (after elimination of the Interruption).
Auch kann eine neue Adresse eines Kommunikationspartners zur (vorübergehenden) Unterbrechung oder zum Abbruch einer Kommunikationsbeziehung führen.Also, a new address of a communication partner can lead to the (temporary) interruption or abort of a communication relationship.
Verschiedene Lösungen wurden im Laufe der Zeit vorgeschlagen, um die Kommunikationsbeziehung der Anwendung aufrecht zu erhalten, auch wenn sich die Netzadresse ändert oder eine Übertragungs-Unterbrechung eintritt. Hierzu können beispielsweise Zwischensysteme eingesetzt werden (dies könnten je nach Einsatzszenario beispielsweise die Optimierer selbst und / oder mit diesen kombiniert eingesetzte Komponenten / Verfahren sein und / oder beispielsweise aber nicht zwingend auf denselben Geräten wie die Optimierer implementiert sind). Dabei wird dann oftmals die Kommunikationsbeziehung - sichtbar oder transparent für die Anwendung - in mehrere Abschnitte unterteilt. Dieses Vorgehen wird oftmals als Con- nection Splitting oder auch Split Connection bezeichnet, wenn es auf der Transport- oder Anwendungsschicht angewendet wird; die hier beschriebene Erfindung ist allerdings nicht auf Verbindungen (Connections) beschränkt, es müssen Verbindungen nicht einmal als solche erkannt werden, sondern es können - wie teilweise unter weiter ausgeführt - auch Pakete, Link-Layer- und andere Frames oder andere übertragene Informationseinheiten als Basis verwendet werden. Dabei können einzelne Kommunikationsbeziehungen oder auch Gruppen von Kommunikationsbeziehungen gemeinsam betrachtet werden. Die im folgenden beschriebenen für die Erfindung je nach Einsatzszenario vorteilhaften Verfahren gelten für alle Anordnungen der Fig. 1 und 2 und beliebige Kombinationen aus diesen (also unter anderen auch für den Fall, daß ein Optimierer vorhanden ist). Die Unterteilung in mehrere Abschnitte kann auf einer beliebigen Schicht der OSI-Referenzmodells erfolgen. Oftmals findet eine solche Unterteilung auf der IP-, HIP-, Transport- oder Anwendungsschicht statt. Eine erfindungsgemäße Lösung kann auf einer und / oder mehreren Schichten zum Einsatz kommen. Die eben angesprochenen Lösungen sehen zum Beispiel vor, dass der mindestens eine Optimierer X den Abschnitt von einem Optimierer zu einem Endpunkt von evtl. Übertragungs- Unterbrechungen vom Optimierer X zu einem anderen Optimierer und / oder zu einem anderen Endpunkt abschirmt. So kann beispielsweise entsprechend Fig. 2 a) eine Transportverbindung (zum Beispiel TCP) zwischen dem Endpunkt A und dem Optimierer X-I und / oder zwischen dem Optimierer X-2 und dem Endpunkt B aufrecht erhalten werden, auch wenn die Transportverbindung zwischen den Optimierern X-I und X-2 abbricht.Various solutions have been proposed over time to maintain the communication relationship of the application, even if the network address changes or a transmission interruption occurs. For example, intermediate systems can be used for this purpose (depending on the application scenario, these could be, for example, the optimizers themselves and / or components / methods used in combination with them and / or, for example, not necessarily implemented on the same devices as the optimizers). In doing so, often the communication relationship - visible or transparent for the application - is divided into several sections. This approach is often referred to as connection splitting or split connection when applied at the transport or application layer; However, the invention described herein is not limited to connections, connections do not even have to be recognized as such, but it may - as partially explained below - including packets, link-layer and other frames or other transmitted information units as a basis be used. Individual communication relationships or even groups of communication relationships can be considered together. The methods described below which are advantageous for the invention depending on the application scenario apply to all arrangements of FIGS. 1 and 2 and any combinations of these (that is to say inter alia also for the case in which an optimizer is present). The division into multiple sections can be done on any layer of the OSI reference model. Often, such a subdivision occurs at the IP, HIP, transport or application layer. A solution according to the invention can be used on one and / or more layers. For example, the solutions just mentioned provide that the at least one optimizer X shields the section from one optimizer to an endpoint of any transmission interruptions from the optimizer X to another optimizer and / or to another endpoint. Thus, for example, according to FIG. 2 a) a transport connection (for example TCP) between the end point A and the optimizer XI and / or between the optimizer X-2 and the end point B can be maintained, even if the transport connection between the optimizers XI and X-2 stops.
Während dieses Vorgehen ermöglicht, die Kommunikationsbeziehung auf einer oder mehreren Schichten prinzipiell aufrecht zu erhalten - indem beispielsweise wie bei Mobile-IP die IP-Adressen beibehalten werden, wie bei HIP (Host Identity Protocol) die Kontaktadressen aktualisiert werden oder wie bei TCP-Connection-Splitting die Transportverbindungen auf den Abschnitten zu einem / den Endpunkt(en) bestehen bleiben, ist dieses Verfahren für Anwendungen jedoch oftmals unzureichend. Denn Anwendungen und / oder Anwendungsprotokolle und / oder die von Anwendungen für Namensauflösungen genutzten Namensdienste verfügen über eigene Zeitfenster (Timeouts). Wird eine von einer Instanz einer Anwendung (zum Beispiel auf einem Endpunkt A) angestoßene Operation (zum Beispiel eine Anfrage) nicht innerhalb dieses Zeitfensters abgeschlossen (zum Beispiel durch eine entsprechende Antwort), kann diese Operation - ggf. nach einem oder mehreren wiederholten Versuchen, sie auszuführen - für gescheitert erklärt werden. Der gewünschte Effekt wird dann ggf. nicht erzielt, und in einem solchen Fall kann dem Benutzer eine Fehlermeldung präsentiert werden. Beispielsweise kann bei der Nutzung eines Webbrowsers zum Abruf einer Webseite die Meldung geliefert werden, der Name des Servers sei nicht bekannt und / oder der Server sei gerade nicht erreichbar und / oder eine Seite konnte nicht gefunden oder geladen werden. In anderen Fällen kann die angeforderte Webseite unvollständig (zum Beispiel fehlender Text, fehlende Bilder) angezeigt werden. In derartigen Fehlerfällen wird die Verantwortung zum erneuten Laden einer prinzipiell verfügbaren Webseite an den Nutzer delegiert: er kann entscheiden, die entsprechende Operation nochmals anzustoßen (ggf. wiederholt), und er kann entscheiden, wann und wie oft er dies versuchen will. Was vorstehend für Webseiten beschrieben wurde, kann gleichermaßen für andere Anwendungen gelten und kann auch Anwendungen betreffen, die im Hintergrund ablaufen und nicht über eine Nutzungsschnittstelle (User Interface) verfügen. Die im folgenden beschriebenen Verfahren können in vielen Einsatzszenarien das Problem lösen, dass Operationen nicht begonnen oder vorzeitig ganz oder teilweise abgebrochen werden, und können damit zu einer Verbesserung der Bedienbarkeit und / oder der Funktionsweise und / oder der Effizienz und / oder der Effektivität von Kommunikationsanwendungen und / oder der Dienstgüte allgemein führen.During this procedure, the communication relationship can be maintained in principle on one or more layers - for example by maintaining the IP addresses as in the case of Mobile IP, as in the case of HIP (Host Identity Protocol), the contact addresses are updated or, as with TCP connection. Splitting the transport links on the sections to an endpoint (s) will persist, but this method is often inadequate for applications. Because applications and / or application protocols and / or name services used by name resolution applications have their own timeouts. If an operation initiated by an instance of an application (for example, an endpoint A) (eg, a request) is not completed within that time window (for example, by a corresponding response), that operation may - after one or more repeated attempts, if to execute them - to be declared failed. The desired effect may then not be achieved, and in such a case an error message may be presented to the user. For example, when using a web browser to retrieve a web page the message can be delivered, the name of the server is not known and / or the server is currently not reachable and / or a page could not be found or loaded. In other cases, the requested web page may be displayed incompletely (for example, missing text, missing images). In such cases of error, the responsibility for reloading a principally available web page is delegated to the user: he may decide to initiate the corresponding operation again (if necessary repeatedly), and he can decide when and how often he wants to try this. What has been described above for web pages can equally apply to other applications and may also apply to applications that run in the background and do not have a user interface. The methods described below can solve the problem in many application scenarios that operations are not started or prematurely terminated completely or partially, and thus can improve the operability and / or the functionality and / or the efficiency and / or the effectiveness of communication applications and / or the quality of service in general.
In einer beispielhaften erfindungsgemäßen Anordnung erhält ein Optimierer (zum Beispiel Xl) Informationen (zum Beispiel Nutzdaten oder Steuerinformationen) im Rahmen einer oder mehrerer Kommunikationsbeziehungen von einem Abschnitt (zum Beispiel X1-X2 im Übertragungsnetz N-X) - zum Beispiel von einem anderen Optimierer oder einem anderen Endpunkt - und leitet diese Informationen über einen anderen Abschnitt (zum Beispiel A-Xl) einen Endpunkt (zum Beispiel A) weiter.In an exemplary arrangement according to the invention, an optimizer (eg Xl) receives information (eg payload or control information) from one section (eg X1-X2 in the transmission network NX) within one or more communication relationships - for example from another optimizer or another Endpoint - and passes this information on to another section (for example, A-Xl) to an endpoint (for example, A).
Um zu vermeiden, dass eine Anwendung während einer vorübergehenden Unterbrechung nach Ablauf eines Zeitfenster eine Operation und / oder eine Sequenz von Operationen abbricht, werden vom Optimierer nicht alle Informationen weitergeleitet, sobald sie zur Verfügung stehen. Stattdessen gibt der Optimierer die Informationen nur verzögert weiter, so daß (zum Beispiel vor Abschluß einer Operation) noch Teile der Informationen im Optimierer verbleiben. Tritt eine Übertragungs-Unterbrechung auf, kann der Optimierer diese noch verbleibenden Informationen in beliebig kleinen Einheiten (Bits und / oder Bytes und / oder Folgen von Bits und / oder Folgen von Bytes und / oder Pakete und / oder Folgen von Paketen und / oder Paketfragmente und / oder Folgen von Paketfragmenten und / oder Frames und / oder Folgen von Frames) an die Endpunkte weiterleiten. Dies kann dazu führen, dass die Anwendung auf dem Endpunkt permanent mit Informationen versorgt wird, so dass für sie keine Unterbrechung der Übertragung sichtbar ist, sondern nur zum Beispiel eine langsamere Übertragung vorliegt. Dadurch kann verhindert werden, dass ein Timeout ausgelöst wird, da die Anwendung kontinuierlicher Informationen empfängt. Dieser Mechanismus kann auf einer oder mehrerer beliebigen Protokollschicht(en) (insbesondere, aber nicht beschränkt auf den Schicht 2 und / oder 3 und / oder 3,5 und / oder 4 und / oder 5 und / oder 6 und / oder 7) erfolgen.To prevent an application from aborting an operation and / or sequence of operations during a temporary break after a time window expires, the optimizer does not forward all information as it becomes available. Instead, the optimizer passes the information only delayed, so that (for example, before an operation is completed) some of the information remains in the optimizer. If a transmission interruption occurs, the optimizer can store this remaining information in arbitrarily small units (bits and / or bytes and / or sequences of bits and / or sequences of bytes and / or packets and / or sequences of packets and / or packet fragments and / or sequences of packet fragments and / or frames and / or sequences of frames) to the endpoints. This can result in the application being permanently supplied with information on the endpoint, so that no interruption of the transmission is visible to it, but only, for example, a slower transmission. This can prevent a timeout from being triggered because the application receives continuous information. This mechanism may be on any one or more protocol layer (s) (particularly, but not limited to, layers 2 and / or 3 and / or 3.5 and / or 4 and / or 5 and / or 6 and / or 7) ,
Bei der Weiterleitung von Informationen kann es vorteilhaft sein, wenn die Weiterleitung nicht in einzelnen Bits oder Bytes oder anderen oben genannten beliebigen Einheiten erfolgt, sondern der Struktur der höheren Protokollschichten folgt. Dies können die Datenstrukturen (zum Beispiel Paketformate, Datenformate, Operatoren, Parameter, Anfragen, Antworten, HTML-, XML- und / oder andere Dokumente usw.) und / oder Header und / oder Nutzdaten sein. Nutzt beispielsweise eine Anwendung eigene Datensätze oder erfolgt die Kommunikation in ganzen Einheiten dieser Daten, so kann es in einigen Fällen sinnvoll oder gar erforderlich sein, diese Datensätze als Ganzes weiterzuleiten. In anderen Fällen, kann es erforderlich sein, diese Datensätze nur stückweise weiterzuleiten. Auch können Kombinationen erforderlich bzw. vorteilhaft sein. In welchen Fällen, welches Vorgehen geeignet ist, hängt von den Anwendungen und / oder den Anwendungsprotokollen ab.When forwarding information, it may be advantageous if the forwarding does not occur in individual bits or bytes or other arbitrary units mentioned above, but follows the structure of the higher protocol layers. These may be the data structures (eg packet formats, data formats, operators, parameters, queries, responses, HTML, XML and / or other documents, etc.) and / or headers and / or payloads. If, for example, an application uses its own data records or if the communication takes place in whole units of this data, then in some cases it may be useful or even necessary to forward these data records as a whole. In other cases, it may be necessary to pass on these records only piecemeal. Combinations may also be necessary or advantageous. In which cases, which procedure is suitable depends on the applications and / or application protocols.
Es kann vorteilhaft sein, dass mindestens einer der Optimierer zusätzliche Informationen zur Weiterleitung an den Endpunkt erzeugt und diese in die Folge der weitergeleiteten Informationen einfügt. Hierzu kann Wissen um die verwendeten Protokolle auf den betroffenen Schichten erforderlich sein. Beispielsweise können anwendungsspezifische „Keine- Operation"-Elemente (NOP, No-Operation) eingefügt werden, wenn das Protokoll so etwas erlaubt. Auch können leere Elemente eingefügt werden (etwa Folgen von Leerzeilen = CRLF und / oder Leerzeichen bei HTTP, beispielsweise bevor eine neue Antwort begonnen wird).It may be advantageous for at least one of the optimizers to generate additional information for routing to the endpoint and to insert it into the sequence of forwarded information. This may require knowledge of the protocols used on the affected layers. For example, application-specific "no-operation" (NOP, no-operation) elements can be included if the protocol allows this, or blank elements can be inserted (such as empty space = CRLF and / or space on HTTP, for example, before a new answer is started).
Sieht ein Protokoll einen einstellbaren und / oder verhandelbaren Timeout vor, kann es vorteilhaft sein, dass ein Optimierer diesen durch Generierung geeigneter Protokollelemente und / oder durch entsprechende Ergänzung, Modifikation und / oder selektives Zurückhalten weitergeleiteter Informationen abändert. ZUM BEISPIEL kann beim Auftreten einer Übertragungs-Unterbrechung ein höherer Timeout eingestellt werden. Ein neuer Timeout kann dabei so gewählt werden, dass er der erwarteten Dauer der Unterbrechungsverzögerung entspricht oder höher ausfällt. Er kann auf einen festen oder einen anderweitig dynamisch ermittelten Wert gesetzt werden. Er kann auch entsprechend den noch in dem mindestens einen Optimierer verfügbaren weiterzuleitenden Informationen angepasst werden. Die Wahl kann auch durch beliebige Kombination eines, einiger oder aller der vorstehend genannten und / oder weiterer Parameter bestimmt werden.If a protocol provides for an adjustable and / or negotiable timeout, it may be advantageous for an optimizer to modify it by generating suitable protocol elements and / or by appropriately supplementing, modifying and / or selectively withholding forwarded information. For example, a higher timeout may be set when a transmission interrupt occurs. A new timeout can be chosen so that it corresponds to the expected duration of the interruption delay or higher. It can be set to a fixed or otherwise dynamically determined value. It can also be adapted according to the information to be forwarded which is still available in the at least one optimizer. The choice may also be determined by any combination of one, some or all of the above and / or other parameters.
Es kann vorteilhaft sein, dass der Optimierer Protokollelemente generiert (zum Beispiel als Antwort auf eine Anfrage und / oder als Mitteilung und / oder eigene Anfrage), die dem Endpunkt mitteilen, dass dieser für ein bestimmtes Zeitfenster keine weitere Anfragen stellen soll (z. B. ein Retry- After-Header). Die Ermittlung des Zeitfensters kann wie vorstehend beschrieben erfolgen.It may be advantageous for the optimizer to generate protocol elements (for example, in response to a request and / or as a message and / or own request) informing the endpoint that it should not make further requests for a particular time slot (eg a retry-after header). The determination of the time window can be carried out as described above.
Es kann vorteilhaft sein, dass der Optimierer Protokollelemente und / oder Inhalte generiert und ergänzt und / oder weitergeleitete Informationen entsprechend modifiziert und / oder ergänzt, die der Anwendung und / oder dem Nutzer mitteilen, dass eine bestimmte Operation im Gang ist.It may be advantageous for the optimizer to generate and supplement protocol elements and / or content and / or modify and / or supplement routed information that notifies the application and / or the user that a particular operation is in progress.
Es kann vorteilhaft sein, wenn es sich bei diesen Inhalten um Skripte und / oder Programmteile und / oder Anweisungen usw. handelt, die auf dem Endsystem interpretiert und / oder sonst ausgeführt werden können.It can be advantageous if these contents are scripts and / or program parts and / or instructions, etc., which can be interpreted on the end system and / or otherwise executed.
Die vorstehend beschriebenen Mechanismen können auch zum Einsatz kommen, falls zu dem Zeitpunkt, zu dem eine Anwendung eine Kommunikationsbeziehung herstellen will, eine Unterbrechung vorliegt. So kann der Optimierer durch lokales Interpretieren zumindest eines (Teils der) genutzten Protokolle/s (beispielsweise des Transportprotokolls und optional auch der/ausgewählter Anwendungsprotokolle) das Zustandekommen einer Kommunikationsbeziehung simulieren und dadurch die Anwendung von einer vorliegenden Unterbrechung abschirmen. So könnten Optimierer, die Connection Splitting implementieren zum Beispiel eine eingehende Verbindung (beispielsweise TCP Verbindung) entsprechend des Connection Splittings annehmen, das Weiterleiten der Verbindung und letztendlich eine vollständige Kommunikationsbeziehung zwischen A und B aber beispielsweise verzögern bzw. ggf. wiederholt versuchen, bis die Unterbrechung nicht mehr vorliegt. Ähnlich könnten auch, je nach eingesetzten Protokollen, nicht nach dem Connection Splitting Verfahren operierende Optimierer beispielsweise durch das Aufgreifen von Paketen und ggf. Senden eigener Antwortpakete und Paketwiederholungen beispielsweise das Zustandekommen einer Verbindung simulieren oder die Zeitspanne bevor die Beteiligten Protokolle von einem NichtZustandekommen der Verbindung ausgehen verlängernThe mechanisms described above may also be used if there is an interruption at the time an application wishes to establish a communication relationship. Thus, by locally interpreting at least one (part of) the used protocols / s (eg, the transport protocol and optionally also the / selected application protocols), the optimizer can simulate the establishment of a communication relationship and thereby shield the application from an existing interrupt. For example, optimizers implementing Connection Splitting could, for example, accept an incoming connection (for example, TCP connection) according to the connection splitting, but delay the connection, and eventually a complete communication relationship between A and B, for example, delaying or possibly repeating until the interruption no longer available. Similarly, depending on the protocols used, optimizers not operating according to the connection splitting method, for example by picking up packets and possibly sending their own response packets and packet retries, could for example simulate the establishment of a connection or the time span before the involved protocols emanate from the connection not being established extend
Es kann vorteilhaft sein, a) die zu erwartende Dauer einer Übertragungs-Unterbrechung und / oder b) das Bevorstehen einer Übertragungs-Unterbrechung vorherzusagen beziehungsweise dies zumindest zu versuchen. Beispiele für die Nutzung von Fall a) wurden oben bereits beschrieben. Fall b) kann vorteilhaft sein, um beispielsweise nicht immer Informationen verzö- gert weiterzuleiten, sondern nur dann Informationen zur verzögerten Weiterleitung in mindestens einem Optimierer zu sammeln, wenn auch Bedarf an derart gepufferten Informationen besteht, da sonst ggf. die Performance der Kommunikationsbeziehung sinken kann.It can be advantageous to a) predict or at least try the expected duration of a transmission interruption and / or b) the imminence of a transmission interruption. Examples of the use of case a) have already been described above. Case b) may be advantageous, for example, to not always delay information. but only to collect information for delayed forwarding in at least one optimizer, if there is also a need for such buffered information, since otherwise the performance of the communication relationship may possibly decrease.
Daher kann es sinnvoll sein, mögliche Informationen über die Wahrscheinlichkeit einer Übertragungs-Unterbrechung oder deren abzusehendem Ende mit einzubeziehen. ZUM BEISPIEL könnte bei Funknetzen eine sinkende Datenrate oder, wenn verfügbar auch andere Indizien wie sinkende Signalpegel (zum Beispiel die Signalstärke und / oder das Signal-to- Noise-Ratio, SNR) auf eine bevorstehende Unterbrechung hindeuten und / oder ein ansteigender Pegel auf deren Ende. Auch könnten GPS und / oder Bewegungsindikatoren zu Hilfe genommen werden. Auch könnten Heuristiken wie Bewegungswerte und / oder Zeitwerte und / oder Netzwechsel der Vergangenheit zu Hilfe genommen werden. Auch könnten externe Systeme eine bevorstehende bzw. potentielle bevorstehende Übertragungs-Unterbrechung anzeigen bzw. Hinweise auf deren Wahrscheinlichkeit geben. Weiterhin könnten Erfahrungswerte der Vergangenheit (die zum Beispiel in einem der Optimierer gespeichert werden) wichtige Hinweise geben. Auch könnten die beteiligten Übertragungsnetze selbst oder (digitale) Landkarten mit Informationen über die Netzabdeckung) Hinweise geben. Gleiches könnte ein Nutzer in zumindest einigen Fällen auch tun. Einzelne, einige und / oder alle dieser und / oder weitere Informationen können kombiniert werden, um derartige Vorhersagen zu treffen.Therefore, it may be useful to include possible information about the likelihood of a transmission interruption or its end to be deterred. For example, in radio networks, a decreasing data rate or, if available, other indicia such as falling signal levels (e.g., signal strength and / or signal-to-noise ratio, SNR) could indicate an impending pause and / or an increasing level thereof The End. Also, GPS and / or motion indicators could be used. Heuristics such as movement values and / or time values and / or network changes of the past could also be used. Also, external systems could indicate an imminent or potential impending transmission interruption or give indications of their likelihood. Furthermore, past experience (stored, for example, in one of the optimizers) could provide important clues. Also, the participating transmission networks themselves or (digital) maps with information about the network coverage) could give hints. The same could be done by a user in at least some cases. Individuals, some and / or all of these and / or other information may be combined to make such predictions.
Wie oben in Teilen bereits beschrieben, kann die Erfindung unidirektional und / oder bidirektional eingesetzt werden. Im Falle eines bidirektionalen Einsatzes können die beiden Übertragungsrichtungen unabhängig oder abhängig voneinander betrieben werden. Der unabhängige und / oder abhängige Betrieb kann sich beziehen auf einzelne Datenpakete, einzelne Kommunikationsbeziehungen und / oder auf Gruppen von Kommunikationsbeziehungen und dieser Bezug bzw. der unabhängige und / oder abhängige Betrieb kann sich im Laufe der Zeit einmalig und / oder wiederholt ändern.As already described above in parts, the invention can be used unidirectionally and / or bidirectionally. In the case of a bidirectional use, the two transmission directions can be operated independently or dependent on each other. The independent and / or dependent operation may relate to individual data packets, individual communication relationships, and / or groups of communication relationships, and that reference or independent and / or dependent operation may change over time once and / or repeatedly.
Steht für die Kommunikation zwischen den Optimierern nur ein unidirektionaler Übertragungsweg zur Verfügung, so können die Optimierer durch geeignete Auswahl von Algorithmen und / oder zusätzlich übertragenen Steuerinformationen dafür Sorge tragen, daß empfangene Optimierer in der Lage sein werden, den optimierten Datenstrom und / oder die opti- miert eingehenden Datenpakete zu interpretieren und / oder entsprechend weiterzuleiten. Hierzu könnte beispielsweise die Nutzung rein (oftmals ohnehin) unidirektionaler FEC- Verfahren, die Ermittlung von zur Verfügung stehender Bandbreite ohne bidirektionale beispielsweise PING Protokolle vorauszusetzen und / oder auch die Nutzung alternativer Übertragungswege in Rückrichtung, die nur für weniger Daten und / oder nur für Steuerinformationen genutzt werden eingesetzt werden.If only one unidirectional transmission path is available for the communication between the optimizers, the optimizers, by suitable selection of algorithms and / or additionally transmitted control information, can ensure that received optimizers will be able to obtain the optimized data stream and / or the opti - miert to interpret incoming data packets and / or forward accordingly. For this purpose, for example, the use of pure (often anyway) unidirectional FEC method, the determination of available bandwidth without bidirectional example PING protocols presuppose and / or the use of alternative transmission paths in return, only for less data and / or only for control information be used.
Optimierer können in vielen Einsatzszenarien weitgehend transparent in den Datenpfad eingebunden werden, d.h. die Anwendungen brauchen nicht von diesen zu wissen und die Datenpakete deshalb nicht zwangsweise direkt an die Optimierer zu adressieren. Alternativ und / oder zusätzlich könnten die Optimierer aber auch als Proxy arbeiten. Eine Proxy-Einstellung wird von vielen Anwendungen wie zum Beispiel Browsern oftmals ohne Änderung der Anwendung an sich und ohne sehr komplexe Konfigurationsarbeiten unterstützt. Auch ist für einige Anwendungen eine automatische Proxy-Erkennung vorgesehen, so dass der eigentliche Proxy (bzw. dessen Adressen) nicht immer direkt in den Anwendungen konfiguriert werden müssen. Die zur automatischen Proxy-Erkennung genutzten Protokolle erlauben es zum Teil auch, dass Optimierer und / oder externe Komponenten den Anwendungen automatisch beispielsweise direkt die Optimierer als Proxy angeben, so dass ggf. beispielsweise zumindest pro Anwendung keine manuellen Proxy Konfigurationen notwendig sind. Auch erlauben diese Verfahren oftmals auch ein Umkonfigurieren der Proxies beispielsweise bei Ausfall, als Load-Sharing und / oder um die Datenströme gezielt an andere Proxies und / oder durch andere Netze zu leiten.Optimizers can be integrated into the data path to a large extent transparently in many application scenarios, i. the applications do not need to know about them and therefore do not necessarily have to address the data packets directly to the optimizers. Alternatively and / or additionally, the optimizers could also work as a proxy. A proxy setting is often supported by many applications, such as browsers, without changing the application itself and without very complex configuration. Also, for some applications, an automatic proxy detection is provided, so that the actual proxy (or its addresses) does not always have to be configured directly in the applications. In some cases, the protocols used for automatic proxy detection also allow optimizers and / or external components to automatically specify the optimizers as proxies directly to the applications, so that, for example, at least one manual proxy configuration may not be necessary per application. In addition, these methods often also allow for reconfiguring the proxies, for example in the event of a failure, as load sharing and / or for directing the data streams to other proxies and / or through other networks.
Je nach Einsatzszenario kann es vorteilhaft sein den Datenaustausch zwischen den Komponenten (insbesondere auch zwischen beteiligten Optimierern wie beispielsweise X-I und X-2 in Fig. 1) durch zusätzliche Protokolle zu tunneln. Hierzu eignen sich eine Vielzahl bekannter und optional auch speziell hierfür konzipierter Protokolle bzw. Kombinationen aus beiden. Beispielsweise könnte die Kommunikation über einen TCP Tunnel aus einer oder mehreren parallelel TCP Verbindungen geführt werden, auch der Einsatz beispielsweise des Protokolls IPsec und / oder IPsec Nat Traversal können vorteilhaft sein, zumal sie zugleich zusätzliche Verfahren wie Verschlüsselung umsetzen können. Auch ein Tunneln von Paketen in verschiedenen Protokollen der Netzebene (beispielsweise IPv6 Pakete über IPv4 Pakete / Netze tunneln) kann vorteilhaft sein (beispielweise wenn die Optimierer auch IPv6 unterstützen, jedoch potentiell (Teile) des Netzes zwischen Optimierern lediglich IPv4 unterstützen; gleiches gilt bei ähnlichen bzw. auch in umgekehrten Szenarien). Auch zur Tunnelung von Paketen verschiedener Protokolle der Netzebene sind bekannte als auch speziell konzipierte Protokolle möglich. Dabei kann ein entsprechendes „Tunneln" auch sehr indirekt erfolgen, beispielsweise indem nur am Anfang von erkannten Kommunikationsbeziehungen Adreßinfor- mationen ausgetauscht werden. Wenn beispielweise eine neue IPv6 Kommunikationsbeziehung beginnt, die Optimierer dafür beispielweise eine Identifikationsnummer vergeben und beispielsweise nur initial einem anderen Optimierer diese Identifikationsnummer zusammen mit den entsprechenden Quell- und / oder Ziel-Adressen mitteilen. In diesem Beispiel könnte in einer von vielen Ausgestaltungen das Tunnelprotokoll zwischen den Optimierern auf IPv4 basieren, während für die erkannten Kommunikationsbeziehungen intern im Tunnelprotokoll auch IPv6 Adreßinformationen ausgetauscht werden (und / oder ähnlich bzw. auch in umgekehrten Szenarien).Depending on the application scenario, it may be advantageous to tunnel the data exchange between the components (in particular also between participating optimizers such as XI and X-2 in FIG. 1) by additional protocols. For this purpose, a variety of known and optionally also specially designed for this purpose protocols or combinations of both. For example, the communication over a TCP tunnel could be made from one or more parallel TCP connections, also the employment of for example the protocol IPsec and / or IPsec Nat Traversal could be advantageous, since at the same time they can implement additional procedures like encryption. Also, tunneling packets in different network-level protocols (for example, tunneling IPv6 packets over IPv4 packets / networks) may be advantageous (for example, if the optimizers also support IPv6, however, potentially (parts of) the network between optimizers only support IPv4; the same applies to similar or in reverse scenarios). It is also possible to tunnel known packets as well as specially designed protocols for tunneling of packets of different network level protocols. In this case, a corresponding "tunneling" can also take place very indirectly, for example by exchanging address information only at the beginning of recognized communication relationships If, for example, a new IPv6 communication relationship begins, the optimizers allocate an identification number for example, and for example only initially assign this identification number to another optimizer In this example, in one of many embodiments, the tunneling protocol between the optimizers could be based on IPv4, while for the detected communication relationships internally IPv6 address information is exchanged internally (and / or similarly) in the tunneling protocol or in reverse scenarios).
Es kann je nach Einsatzszenario auch vorteilhaft sein, die zwischen Optimierern eingesetzten Protokolle beispielsweise zusätzlich auf UDP zu basieren. Der Einsatz von UDP könnte hier beispielsweise dazu dienen, dass ein Optimierer leichter auch als typischer Nutzerprozeß sogar dann auf Computern (beispielweise Laptops) installiert und ausgeführt werden kann, wenn der Nutzer / Installateur und / oder der Optimierer während seiner späteren Ausführung keine Administratorrechte auf diesem PC hat (zugleich kann dies dazu dienen die Sicherheit der beteiligten Computer zu erhöhen - beispielsweise bei evtl. Sicherheitslücken im Optimierer selbst, da beispielsweise über die Optimierer ausgeführter Schadcode / Viren... in diesem Fall auch nicht unmittelbar mit Administrationsrechten auf den / die betroffenen Computer zugreifen können). Zudem kann der Einsatz entsprechender Protokolle - insbesondere Tunnelprotokolle - es ermöglichen und / oder vereinfachen, dass die ausgetauschten Daten auch über Firewalls und / oder Network Address Translators (NATs) hinweg ausgetauscht werden können.Depending on the application scenario, it may also be advantageous to additionally base the protocols used between optimizers on UDP, for example. For example, using UDP could make it easier for an optimizer to be installed and run on computers (such as laptops) even as a typical user process, even if the user / installer and / or optimizer does not have administrator privileges on it later PC has (at the same time this can serve to increase the security of the participating computers - for example, in case of potential security holes in the optimizer itself, as for example on the optimizer executed malicious code / viruses ... in this case not directly with administration rights to the / affected Computer can access). In addition, the use of appropriate protocols - in particular tunneling protocols - can enable and / or simplify the exchange of data via firewalls and / or Network Address Translators (NATs).
Je nach Einsatzszenario gibt es für Optimierer viele potentielle Strategien welche Pakete und / oder Datenströme in die Optimierung einbezogen werden sollen. Hierzu können Optimierer beispielweise selbstständig Pakete und / oder Datenströme verschiedener Protokolle erkennen und / oder dabei von externen Komponenten über Steuerinformationen / Steuersignale und / oder Markieren der Pakete selbst instruiert und / oder unterstützt werden. Möglich sind hierzu viele Verfahren. Dazu zählen zum Beispiel die bereits zuvor genannten: Konofgurieren von Quell- / Zieladressen, Markieren der Pakete (zum Beispiel „TOS" Feld in IP Headern), Erkennen bestimmter Protokolle (zum Beispiel erkannt über das „Protocol" Feld in IP Headern), das Auswerten von Signalisierungsprotokollen zum Ermitteln der Quell- / Zieladressen und / oder auch Verfahren zum (heuristischen) Erkennen von bestimmten Daten- / Anwendungsklassen (beispielsweise anhand von Paketgrößen / -Intervallen, bestimmten Feldern wie Versionsnummern und / oder Timestamps, Sequenznummern in Paketheadern, usw.). Auch viele andere Auswahlkriterien beispielsweise zu Unterstützung oder direkten Vorgabe welche Pakete / Datenströme in die Optimierung einbezogen werden sollen sind möglich und je nach Einsatzszenario vorteilhaft. Hierzu können beispielsweise auch zählen: Das Anliefern von Daten auf verschiedenen (physikalischen / virtuellen / ...) Netzwerkinterfaces an die Optimierer oder das Nutzen von (verschiedenen) Tunnelprotokollen und / oder Overlay-Netzen.Depending on the application scenario, there are many potential strategies for optimizers which packages and / or data streams should be included in the optimization. For this purpose, optimizers can, for example, autonomously detect packets and / or data streams of different protocols and / or be instructed and / or supported by external components via control information / control signals and / or marking of the packets themselves. Possible for this purpose many procedures. These include, for example, the previously mentioned: conofguration of source / destination addresses, marking of the packets (for example "TOS" field in IP headers), detection of certain protocols (for example detected via the "Protocol" field in IP headers), the Evaluate signaling protocols to determine the source / destination addresses and / or methods to (heuristically) recognize particular data / application classes (for example, packet sizes / intervals, specific fields such as version numbers and / or timestamps, sequence numbers in packet headers, etc.). ). Many other selection criteria, for example, for support or direct specification which packages / data streams are to be included in the optimization are possible and depending on the application scenario advantageous. This may include, for example: delivering data on different (physical / virtual / ...) network interfaces to the optimizers or using (different) tunneling protocols and / or overlay networks.
Messungen wie beispielsweise der Paketverlustrate und / oder RTT und / oder von Übertragungs-Unterbrechungen sind zumindest oftmals auch möglich, wenn wie in den Anordnungen aus Fig. 2 kein Optimierer X-2 eingesetzt wird. In diesem Fall kann der Optimierer X-I beispielsweise angepasst an das Einsatzszenario andere im Endpunkt B und / oder in dessen Umfeld bzw. im Übertragungspfad zu Endpunkt B implementierte Funktionalitäten ausnutzen, um an die benötigten Informationen zu gelangen. Beispielsweise könnte in vielen Einsatzszenarien das Kommando PING (ICMP Protokoll; mit Standard PING Paketgrößen oder auch mit typischen Paketgrößen wie sie im zu optimierenden Datenstrom auch vorkommen) genutzt werden, um zu einer entsprechenden Gegenstelle ohne spezifische X-2 Optimierer- Komponenten und ohne spezielle Optimierungs-Funktionen Paketverluste und / oder RTTs abzuschätzen und / oder Übertragungs-Unterbrechungen festzustellen. Im Bespiel VoIP unter Einsatz des Protokolls RTP, können in einigen Einsatzszenarien ähnliche Informationen auch über das Protokoll RTCP gewonnen werden, über das VoIP Implementierungen der Gegenseite Rückmeldungen über die empfangenen Daten geben.Measurements such as the packet loss rate and / or RTT and / or transmission interruptions are at least often also possible if, as in the arrangements of FIG. 2, no optimizer X-2 is used. In this case, the optimizer X-I, for example, adapted to the deployment scenario, exploit other functionalities implemented in the endpoint B and / or in its environment or in the transmission path to endpoint B in order to access the required information. For example, in many scenarios the command PING (ICMP protocol, with standard PING packet sizes or with typical packet sizes as they appear in the data stream to be optimized) could be used to reach a corresponding remote site without specific X-2 optimizer components and without special optimization Functions to estimate packet losses and / or RTTs and / or detect transmission interruptions. In the example of VoIP using the RTP protocol, in some scenarios similar information can also be obtained via the RTCP protocol, via which VoIP implementations provide feedback to the opposite party about the received data.
Für Einsatzszenarien und abhängig von den Anforderungen kann zudem eine Kombination mit einer Komprimierung der übertragenen Nutzdaten und / oder Transcoding / Wechsel der Content-Kodierung erfolgen. Dabei bieten sich je nach Einsatzszenario sowohl verlustfreie als auch verlustbehaftete Komprimierungsverfahren (wie beispielsweise das Reduzieren von Bildauflösungen, der Bildqualität, oder des Herausfiltern von optionalen Zusatzinformatio- nen, usw.). Dies gilt generell für den Einsatz von Anordnungen entsprechend Fig. 1. Abhängig von dem konkreten Einsatzszenario und den eingesetzten Komprimierungsverfahren ist es jedoch auch möglich diese Techniken in Anordnungen entsprechend Fig. 2 einzusetzen. Beispielsweise beim Reduzieren von Bildauflösungen, der Bildqualität, dem Herausfiltern von Zusatzinformationen, dem Wechsel der Content-Kodierung / Transcoding (dies jedoch oft abhängig vom Funktionsumfang / den unterstützten Content-Kodierungen der genutzten Anwendungen). Selbst für Einsatzszenarien wie Websurfen erlaubt es beispielsweise das HTTP Protokoll, das die übertragenen Webobjekte direkt vom Webserver oder eben auch von zwischengeschalteten Komponenten wie beispielsweise einem Optimierer komprimiert werden. Da gängige Webbrowser oftmals mehrere dieser Komprimierungsverfahren unterstützen, kann ein Optimierer optional auch Webobjekte mit einem dieser Komprimierungsverfahren komprimieren und könnte die Komprimierung sogar bis zum empfangenen Endsystem / Anwendung (in diesem Fall dem Webbrowser) bestehen lassen.In addition, for use scenarios and depending on the requirements, a combination with a compression of the transmitted user data and / or transcoding / change of the content coding can take place. Depending on the application scenario, both lossless and lossy compression methods are available (such as reducing image resolution, image quality, or filtering out optional additional information). NEN, etc.). This applies generally to the use of arrangements according to FIG. 1. Depending on the specific application scenario and the compression methods used, however, it is also possible to use these techniques in arrangements according to FIG. For example, when reducing image resolution, image quality, filtering out additional information, changing content encoding / transcoding (but often depending on the functionality / supported content coding of the applications used). Even for usage scenarios such as web surfing, for example, the HTTP protocol allows the transmitted Web objects to be compressed directly by the Web server or even by intermediate components such as an optimizer. Because common web browsers often support several of these compression methods, an optimizer can optionally also compress web objects with one of these compression methods, and could even persist compression to the receiving end system / application (in this case the web browser).
Generell kann es sich bei Einsatz von Anordnungen entsprechend Fig. 1 und teilweise (wie eben am Beispiel Websurfen und Komprimierung beschrieben) auf für Anordnungen entsprechend Fig. 2 anbieten auch weitere Verfahren wie Verschlüsselung mit zu integrieren.In general, with the use of arrangements according to FIG. 1 and partly (as just described by way of example web surfing and compression), it is also possible to integrate further methods such as encryption for arrangements according to FIG.
Für einige Einsatzszenarien und Netze bietet sich zudem eine Kombination und / oder gemeinsame Nutzung mit zusätzlichen Protokoll-Enhancement- Verfahren an. Protokoll- Enhancement- Verfahren gibt es für eine Vielzahl an Protokollen und Zielstellungen und / oder Netzen. Sehr oft eingesetzt werden beispielsweise Protokoll-Enhancement- Verfahren für TCP und / oder HTTP und / oder Filesharing Protokolle (wie beispielsweise SMB, CIFS, NFS, NetBios). Dabei werden diese Protokolle entweder beispielsweise für bestimmte Übertragungsabschnitte durch andere Protokolle ersetzt und / oder Protokoll-Parameter in den Endgeräten und / oder den ausgetauschten Datenpaketen modifiziert. Dabei gibt es vielfältige potentielle Zielstellungen für solche Protokoll-Enhancement- Verfahren. Beispielsweise könnte es die Aufgabe eines TCP-Protokoll-Enhancements sein, auch bei hohen Übertragungsverzögerungen (und / oder Übertragungsverzögerungen, die trotz Optimierung verbleiben) und / oder hohen Paketverlustraten (und / oder Paketverlustraten, die trotz Optimierung verbleiben) eine hohe Übertragungsbandbreite zu ermöglichen und / oder den Protokoll -Overhead, beispielsweise verursacht durch Steuerpakete, gering zu halten. Ähnliche Zielstellungen haben oft HTTP-Protokoll-Enhancements. Bei diesen sollen beispielsweise auch die bei Einsatz ei- nes üblichen Internet-Browsers entstehenden Seitenladezeiten auch für Netze mit hohen Übertragungsverzögerungen und / oder hohen Paketverlustraten reduziert werden. Möglichkeiten, dies zu tun, umfassen beispielsweise zwischengeschaltete Proxies und / oder das proaktive Senden von auf Webseiten enthaltenen oder sogar hinter Links folgenden Objekten.For some application scenarios and networks, a combination and / or sharing with additional protocol enhancement methods is also suitable. Protocol enhancement techniques exist for a variety of protocols and objectives and / or networks. Very often used are, for example, protocol enhancement methods for TCP and / or HTTP and / or file-sharing protocols (such as SMB, CIFS, NFS, NetBios). These protocols are either replaced for example for certain transmission sections by other protocols and / or modified protocol parameters in the terminals and / or the exchanged data packets. There are many potential targets for such protocol enhancement methods. For example, it may be the task of TCP protocol enhancement to allow high transmission bandwidth even with high transmission delays (and / or transmission delays remaining despite optimization) and / or high packet loss rates (and / or packet loss rates remaining despite optimization) / or keep the protocol overhead, for example caused by control packets, low. Similar goals often have HTTP protocol enhancements. For example, these should also be Nes usual Internet browser resulting page load times are also reduced for networks with high transmission delays and / or high packet loss rates. Ways to do this include, for example, intermediary proxies and / or proactively sending objects contained on web pages or even behind links.
Das HTTP-Protokoll ist auch ein Beispiel dafür, dass es vorteilhaft sein kann, die verschiedenen hier genannten Verfahren zu kombinieren (dabei steht HTTP aber nur stellvertretend für viele Protokolle, auf die dies zutrifft, etwa - aber nicht nur - viele Text-basierte Protokolle wie SIP, RTSP, SOAP, SDP usw.). So setzt HTTP beispielsweise auf TCP und IP auf, es wird also eine relativ große Protokoll-Hierarchie genutzt, wobei höherliegende Protokollschichten oftmals direkt von Optimierungen für tieferliegende Protokollschichten profitieren können. In diesem Beispiel könnte eine Optimierung beispielsweise Paketverlustraten und / oder RTTs verkürzen. Von dieser Optimierung würde oftmals HTTP selbst direkt profitieren. Aber HTTP profitiert von den Optimierungen oftmals auch bereits dadurch, dass es auf TCP aufsetzt und TCP wiederum oftmals erheblich von geringenen Paketverlustraten und / oder verkürzten RTTs profitiert. HTTP ist auch ein gutes Beispiel, dass in einem entsprechenden Einsatzszenario oft auch zusätzliche Verfahren wie HTTP-spezifische Protokoll-Enhance- ments, Komprimierung, Verschlüsselung und / oder Header-Komprimierungsverfahren zusätzlich zu den Optimierungen vorteilhaft sein können.The HTTP protocol is also an example of how it may be beneficial to combine the various methods mentioned here (but HTTP is representative of many protocols that apply to this, such as, but not limited to, many text-based protocols such as SIP, RTSP, SOAP, SDP, etc.). For example, HTTP uses TCP and IP, so a relatively large protocol hierarchy is used, with higher-layer protocol layers often directly benefiting from optimizations for lower-level protocol layers. In this example, optimization could, for example, reduce packet loss rates and / or RTTs. HTTP often benefits directly from this optimization. But HTTP often benefits from the optimizations already by relying on TCP, and TCP in turn often benefits significantly from low packet loss rates and / or shortened RTTs. HTTP is also a good example that in a corresponding deployment scenario, additional methods such as HTTP-specific protocol enhancements, compression, encryption and / or header compression methods can often be advantageous in addition to the optimizations.
Dabei könnten die einzelnen potentiell mit der Optimierung zu kombinierenden Verfahren / Verfahrenstypen (wie beispielsweise die vorstehend genannten Protokoll-Enhancements, Komprimierung, Verschlüsselung, Header-Komprimierung, usw.) unabhängig voneinander und / oder unabhängig von der Optimierung realisiert werden, was unter anderem die Flexibilität und / oder Austauschbarkeit erhöht. Eine Realisierung in kombinierten Systemkomponenten und / oder Geräten reduziert jedoch potentiell die Gesamtkomplexität und / oder Konfigurationsaufwände. Nicht zuletzt könnten die einzelnen Verfahrenstypen bei einer ganz / teilweise integrierten Realsierung und / oder bei einer Realisierung bei denen mindestens einzelne Steuerinformationen zwischen den Komponenten der Verfahrenstypen ausgetauscht werden, vereinfacht realisiert und genutzt werden.In this case, the individual potentially to be combined with the optimization method / process types (such as the aforementioned protocol enhancements, compression, encryption, header compression, etc.) could be realized independently of each other and / or independently of the optimization, which among other things Increased flexibility and / or interchangeability. However, implementation in combined system components and / or devices potentially reduces the overall complexity and / or configuration effort. Last but not least, the individual types of methods could be implemented and used in a simplified manner in the case of a completely / partially integrated realization and / or in a realization in which at least individual control information is exchanged between the components of the method types.
Wie bereits beschrieben ist es in vielen Einsatzszenarien vorteilhaft die Optimierer / durchzuführende Optimierung in Kombination mit anderen Verfahren (wie Komprimierung von Nutzdaten, Header-Komprimierung, Verschlüsselung, Protokoll-Enhancement, usw.) durchzufuhren. Dabei können diese anderen Verfahren, wie bereits beschrieben, beispielsweise direkt innerhalb der Optimierer oder auch beispielsweise als externe eigenständige Komponenten realisiert werden. Auch können diese anderen Verfahren auf die Pakete je nach Einsatzszenario und gewählter Anordnung vor oder nach dem Optimieren der Pakete / Datenströme angewendet werden. Je nach gewählter Anordnung könnten jedoch durch die Optimierung selbst bzw. durch die anderen Verfahren Informationen für „nachfolgende Komponenten" nicht mehr erkenntlich und / oder verwertbar sein. Beispielsweise könnten Paket-Header (beziehungsweise Teile von diesen) und / oder Nutzdaten (beziehungsweise Header höheren Protokollschichten) durch Verschlüsselung und / oder Content- / Nutzdaten-Komprimierung und / oder Header-Komprimierung für nachfolgende Komponenten (oder allgemeiner ausgedrückt für andere Komponenten) unkenntlich sein, solange sie nicht wieder beispielsweise entschlüsselt und / oder dekomprimiert werden. Diese nachfolgenden Komponenten können vielfältiger Art sein. Dies könnte beispielsweise die erwähnten anderen Verfahren anwendenden Komponenten betreffen, es kann die Optimierer betreffen, aber auch beispielsweise Router und / oder Traffϊc-Shaper und / oder andere QoS Devices allgemein, können davon betroffen sein, dass Informationen nicht mehr erkenntlich sind und sie ihre Funktionen daher beispielsweise nur noch eingeschränkt oder auch gar nicht mehr wahrnehmen können. Daher kann es vorteilhaft sein, implizite beispielsweise zusätzliche Absprachen und / oder Signalisierungen und / oder einen zusätzlichen Informationsaustausch zwischen den beteiligten Komponenten zu nutzen.As already described, in many application scenarios it is advantageous to use the optimizer / optimization to be performed in combination with other methods (such as compression of Payload, header compression, encryption, protocol enhancement, etc.). As already described, these other methods can be implemented, for example, directly within the optimizers or, for example, as external, independent components. Also, these other methods may be applied to the packets depending on the deployment scenario and arrangement chosen before or after optimizing the packets / data streams. Depending on the selected arrangement, however, information for "subsequent components" could no longer be recognizable and / or exploitable by the optimization itself or by the other methods, for example, packet headers (or parts of them) and / or payloads (or higher headers) Protocol layers) may be unrecognizable by encryption and / or content / payload compression and / or header compression for subsequent components (or more generally for other components), as long as they are not decrypted and / or decompressed again, for example This could concern, for example, the components applying other methods mentioned, it may concern the optimizers, but also, for example, routers and / or Traffϊc shapers and / or other QoS devices in general, may be affected by the fact that information is no longer e For example, they can only perform their functions to a limited extent or not at all. Therefore, it may be advantageous to use implicit, for example, additional agreements and / or signaling and / or additional information exchange between the components involved.
Beispiele können auch hier das Markieren von Paketen (beispielsweise über das TOS Feld der IP Header), das Signalisieren / Klassifizieren von Paketen / Datenströmen anhand von Adre- ßinformationen (die beispielweise über Konfigurationen und / oder Signalisierungsprotokolle anderen Komponenten bekannt gemacht werden), den Einsatz von Tunnelprotokollen und / oder auch spezielle Protokolle, die beispielweise in zusätzlichen Informationsheader und / oder Steuerinformationen die ansonsten nicht mehr erkenntlichen Informationen der Pakete / Datenströme enthalten. Dabei kann es abhängig von einer konkreten Anordnung vorteilhaft sein, wenn diese zusätzlichen Informationsheader nicht zwingend über weite Strecken der beteiligten Netze übertragen werden, sondern beispielsweise von der letzten Komponente, die diese Informationen benötigt, entfernt werden; auch könnte je nach konkreter Anordnung eine Komponente diese zusätzlichen Informationsheader vollständig an nachfolgende Komponen- ten weitergeben, sie könnte sie um weitere Informationen erweitern, sie könnte beispielsweise von nachfolgenden Komponenten nicht mehr benötigte Informationen aus den zusätzlichen Informationsheadern entfernen, die Informationsheader vollständig löschen oder eine Kombination aus diesen Schritten.Examples can also be here of marking packets (for example via the TOS field of the IP headers), signaling / classifying packets / data streams based on address information (which, for example, are made known to other components via configurations and / or signaling protocols) of tunneling protocols and / or special protocols that contain, for example, in additional information header and / or control information otherwise unrecognizable information of the packets / data streams. Depending on a specific arrangement, it may be advantageous if these additional information headers are not necessarily transmitted over long distances of the participating networks, but are removed, for example, by the last component that requires this information; Also, depending on the specific arrangement, a component could completely transfer these additional information headers to subsequent components. For example, it could remove information that is no longer needed from the additional information headers, completely delete information headers, or a combination of these steps.
Je nach Einsatzszenario kann es vorteilhaft sein, die zu übertragenen Datenpakete nicht nur auf einem Pfad durch das Netz / Teilnetze und / oder parallel über mehrere Übertragungsabschnitte zu übertragen. Die resultierenden Vorteile können je nach Einsatzszenario beispielsweise eine Lastaufteilung und damit verbunden potentiell geringere Übertragungsverzögerungen und / oder Paketverlustraten, eine Steigerung der insgesamt zur Verfügung stehenden Übertragungskapazität und / oder insbesondere bei einem redundanten Übertragen von allen und / oder einigen der Informationen auch eine höhere Ausfallsicherheit und / oder Robustheit gegenüber beispielsweise dem Verlassen von Empfangsbereichen und / oder dem Wechseln zwischen Netzen umfassen. Für die Aufteilung der zu übertragenen Datenpakete auf mehrere Pfade durch das Netz / Teilnetze und / oder parallel über mehrere Übertragungsabschnitte können je nach Einsatzszenario verschiedene Verfahren vorteilhaft sein. Insbesondere bei weitgehend unbekannten Netzen / Teilnetzen und / oder parallel genutzten Übertragungsabschnitten kann eine Aufteilung unter Berücksichtigung der Übertragungsverzögerung / RTT der einzelnen Pfade vorteilhaft sein. Ein entsprechendes Verfahren könnte beispielsweise die über die einzelnen Pfade geleiteten Datenmengen dahingehend regeln, dass die einzelnen Pfade beispielsweise eine ähnliche RTT aufweisen und / oder eine RTT, die beispielsweise ein konfiguriertes und / oder ermitteltes Maximum nicht und / oder möglichst wenig überschreitet.Depending on the application scenario, it may be advantageous to transmit the data packets to be transmitted not only on a path through the network / subnetworks and / or in parallel over several transmission sections. Depending on the application scenario, the resulting advantages can be, for example, load sharing and potentially lower transmission delays and / or packet loss rates, an increase in the total available transmission capacity and / or, in particular in the case of redundant transmission of all and / or some of the information, also higher reliability / or robustness to, for example, leaving reception areas and / or switching between networks. Depending on the application scenario, different methods may be advantageous for the division of the data packets to be transmitted over several paths through the network / subnetworks and / or in parallel over several transmission sections. In particular, in the case of largely unknown networks / subnetworks and / or transmission sections used in parallel, a division taking into account the transmission delay / RTT of the individual paths can be advantageous. A corresponding method could, for example, regulate the data volumes routed via the individual paths in such a way that the individual paths have, for example, a similar RTT and / or an RTT which, for example, does not exceed a configured and / or determined maximum and / or as little as possible.
Generell können auch Steuersignale des Nutzers oder externer Systeme wie beispielsweise eines Netzwerkmanagement Systems beispielsweise Art, Umfang, Menge, Optimierungsverfahren / dessen Parameter und / oder die Auswahl der in die Optimierung einbezogenen Datenströme beeinflussen und / oder direkt steuern. Auch kann es eine optionale oder stets vorhandene / genutzte Funktionalität der Optimierer geben, die beispielsweise verschiedene Optimierungen, Optimierungsumfänge, Parameter und / oder das Einbeziehen von Datenströmen in die Optimierung auch dynamisch und / oder gesteuert durch Eingaben des Nutzers und / oder externer Systeme wie beispielsweise eines Netzwerkmanagement Systems steuert. Vorteilhaft kann es je nach Einsatzszenario auch sein, ergänzend zu und / oder anstelle einer überwiegend stets (statisch) genutzten Optimierung ein automatisches Erkennen und Anpassen der möglichen Optimierungen vorzusehen. Ein solcher Mechanismus kann verteilt zwischen zwei oder mehreren Optimierern realisiert sein und / oder einseitig in einen Kompressor und / oder sogar extern zu den Optimierern. Der Erkennungsmechanismus kann passiv sein (z. B. nur Paketflüsse beobachten) oder aktiv (z. B. selbst Pakete zur Ermittlung der Optimierungsmöglichkeiten aussenden). Der Mechanismus (gleichgültig ob in einem oder in mehreren Optimierern oder extern realisiert) kann die notwendigen Informationen vom Netz (etwa durch Routing-, Middleboxsignalisierungsprotokolle wie zum Beispiel RSVP, NSIS, SOCKS, MIDCOM usw. und / oder sonstige Steuerungsprotokolle) und / oder einem Netzmanagement erhalten und / oder sie durch Interaktion zweier oder mehrerer Optimierer ermitteln. Hinweise können durch initiale und / oder fortlaufende Konfiguration gegeben werden.In general, control signals of the user or external systems such as a network management system can also influence and / or directly control, for example, nature, extent, amount, optimization method / its parameters and / or the selection of the data streams included in the optimization. Also, there may be an optional or always-present / used functionality of the optimizers, including, for example, various optimizations, optimization scopes, parameters, and / or the inclusion of data streams in the optimization, also dynamically and / or controlled by inputs from the user and / or external systems such as a network management system controls. Depending on the application scenario, it may also be advantageous to provide automatic detection and adaptation of the possible optimizations in addition to and / or instead of an optimization that is always used predominantly (statically). Such a mechanism may be implemented distributed between two or more optimizers and / or one-way into a compressor and / or even external to the optimizers. The detection mechanism may be passive (eg, only observe packet flows) or active (eg sending out packets to identify optimization possibilities). The mechanism (whether implemented in one or more optimizers or externally) can provide the necessary information from the network (such as through routing, middlebox signaling protocols such as RSVP, NSIS, SOCKS, MIDCOM, etc. and / or other control protocols) and / or one Maintain network management and / or determine it by interaction of two or more optimizers. Hints can be given by initial and / or continuous configuration.
Ein solcher Mechanismus erkennt dynamisch teilweise oder ganz selbständig, welche Verfahren in die Optimierung mit einbezogen werden können und / oder welche zusätzlichen (ggf. kombiniert mit der Optimierung realisierten) Verfahren genutzt werden sollen. Diese Ermittlung der Kompressionsmöglichkeiten kann im Vorfeld der Inbetriebnahme der Optimierung, vor / während des Aufbaus einer oder mehrerer Kommunikationsbeziehungen und / oder fortlaufend während der aktiven Optimierung erfolgen.Such a mechanism recognizes dynamically, partially or completely independently, which methods can be included in the optimization and / or which additional (possibly combined with the optimization realized) methods should be used. This determination of the compression possibilities can take place in advance of the commissioning of the optimization, before / during the establishment of one or more communication relationships and / or continuously during the active optimization.
Dabei kann es vorteilhaft sein, dass der Mechanismus automatisch auch während des Betriebes Fehler erkennt (zum Beispiel aus der Übertragung oder NichtÜbertragung optimierter Datenpakete selbst, deren Verlustraten und / oder ihrer sonstigen Übertragungscharakteristika und daraus Rückschlüsse auf Veränderungen im Übertragungsweg (neue Wegewahl, Hinzufügen eines oder mehrerer weiterer Knoten, Lastverteilung auf mehrere Routen usw.) zieht. Basierend auf diesen Informationen kann der Mechanismus dann die Header-Optimierung entsprechend anpassen.It may be advantageous that the mechanism automatically detects errors during operation (for example, from the transmission or non-transmission of optimized data packets themselves, their loss rates and / or their other transmission characteristics and conclusions on changes in the transmission path (new routing, adding a or multiple other nodes, load sharing on multiple routes, etc.) Based on this information, the mechanism can then adjust the header optimization accordingly.
Ein solcher Mechanismus kann in verschiedenen Ausprägungen gleichzeitig aktiv sein und auch parallel in Ergänzung und / oder zeitlich versetzt zu einer statischen Konfiguration betrieben werden. Unterschiedliche Ausprägungen (verschiedener dynamischer Ermittlungen und / oder statischer Konfigurationen und / oder Aushandlungen) können gleichzeitig und / oder sequentiell für unterschiedliche Datenpakete einzelner und / oder mehrerer Kommunika- tionsbeziehungen genutzt werden. Die Identifikation, welche Mechanismen auf welchen (Teile einer) Kommunikationsbeziehung(en) und / oder Gruppen von Kommunikationsbeziehungen und / oder den gesamten Datenstrom angewendet werden sollen kann wiederum statisch oder dynamisch erfolgen und / oder von den Eigenschaften der Datenpakete und / oder den verwendeten Protokollen und / oder von der Netzlast (gegenwärtig, vergangen, zukünftig erwartet) und / oder von den beobachteten Übertragungseigenschaften (Fehlerrate, Umlaufzeit usw.) abhängig sein.Such a mechanism can be active simultaneously in various forms and can also be operated in parallel in addition and / or offset in time to a static configuration. Different forms (different dynamic determinations and / or static configurations and / or negotiations) can be used simultaneously and / or sequentially for different data packets of individual and / or multiple communication packets. relationships are used. The identification of which mechanisms are to be applied to which (parts of) a communication relationship (s) and / or groups of communication relationships and / or the entire data stream can again be done statically or dynamically and / or by the properties of the data packets and / or the protocols used and / or dependent on the network load (present, past, expected in the future) and / or on the observed transmission characteristics (error rate, round trip time, etc.).
Insbesondere kann vorgesehen sein, in Ergänzung und / oder anstelle der Konfiguration, welche Optimierungen oder kombinierten Verfahren durchgeführt werden, aktiv beispielsweise Testpakete nach einem zuvor (statisch oder dynamisch) vereinbarten Schema auszutauschen und / oder Feedback beispielsweise zu derzeitigen Dienstgüte von einem empfangenen Optimierer an den sendenden Optimierer zu geben (beispielsweise um diesen direkt und / oder indirekt aufzufordern weitere / mehr beispielsweise FEC Redundanzen in die Optimierung aufzunehmen und / oder Datenraten zum Vermindern der RTT weiter zu senken und / oder bestimmte Pakete anders zu priorisieren).In particular, it can be provided to replace and / or instead of the configuration, which optimizations or combined methods are actively exchanged, for example, test packages according to a previously (static or dynamic) agreed scheme and / or feedback, for example, to current quality of service from a received optimizer to the to send sending optimizers (for example, to directly and / or indirectly request further / more FEC redundancies in the optimization and / or lower data rates to reduce the RTT and / or to prioritize certain packages).
Es kann vorteilhaft sein, dynamisch zu ermitteln, was für Typen von Datenströmen und / o- der Kommunikationsbeziehungen vorliegen (etwa welche Anwendungen und / oder Anwendungsprotokolle genutzt werden), um die Optimierung entsprechend anzupassen. So lässt sich beispielsweise durch dynamische Erkennung des Typs eines Datenstroms (beispielsweise eines Multimediadatenstroms auf der Basis von RTP) automatisch entscheiden, ob und / oder welche Datenpakete auf welche Weise optimiert werden sollen. Als Entscheidungsgrundlagen können beispielsweise die technische Machbarkeit (so lassen sich etwa verschlüsselte Pakete weniger gut komprimieren als unverschlüsselte) und / oder die Effizienz der Optimierung und / oder der Aufwand (zum Beispiel Rechenleistung, Speicher usw.) dienen.It may be advantageous to dynamically determine what types of data streams and / or communication relationships exist (such as which applications and / or application protocols are being used) to adjust the optimization accordingly. For example, by dynamically detecting the type of a data stream (for example, a multimedia data stream based on RTP), it is automatically possible to decide whether and / or which data packets should be optimized in which way. For example, the technical feasibility (for example, encrypted packets can be compressed less well than unencrypted packets) and / or the efficiency of the optimization and / or the effort (for example, computing power, memory, etc.) can serve as the basis for decision-making.
Ein Optimierer kann Pakettypen und insbesondere Namensdienst- und Datendienstpakete i- dentifizieren und beispielsweise Namensdienstpakete über einige oder alle Datendienstpakete priorisieren; auch können ausgewählte Datendienstpakete ggü. Namensdienstpaketen und anderen Datendienstpaketen priorisiert werden. Ein Optimierer kann auch wiederholte Namensdienst- und Datendienstpakete erkennen. Je nach statischer und / oder dynamischer Konfiguration, kann ein Optimierer dann diese wiederholten Pakete unbedingt oder in Ab- hängigkeit von Bedingungen unterdrücken, wobei solche Bedingungen beispielsweise sein können, dass das wiederholte Paket nur dann unterdrückt wird, wenn es innerhalb einer statisch konfigurierten und / oder dynamisch ermittelten Zeitspanne empfangen wird, wenn es außerhalb einer statisch konfigurierten und / oder dynamisch ermittelten Zeitspanne empfangen wird, wenn es sich bei dem Paket um eine Anfrage handelt, wenn es sich bei dem Paket um eine Antwort handelt und / oder wenn es sich weder um eine Anfrage noch um eine Antwort handelt. Das Ersetzen und / oder Verzögern von Paketen kann entsprechenden oder anderen Regeln folgen und ebenfalls bedingt oder unbedingt durchgeführt werden. Das Ersetzen kann der Optimierer das Paket durch ein ein semantisch ähnliches, gleichbedeutendes und / oder äquivalentes Paket mit oder ohne zeitlicher Verzögerung durchführen. Diese Mecha- nisms können mit anderen Optimierungsmechanismen kombiniert werden. Das Unterdrücken und / oder Ersetzen und / oder Verzögern kann insbesondere vorteilhaft sein, weil dadurch potentiell Bandbreite in eine und / oder beide Übertragungsrichtungen (nicht nur) auf dem schwierigen Kommunikationspfad eingespart werden kann - was auch eine sinnvolle Ergänzung zur unter III. beschriebenen Header-Komprimierung ist.An optimizer may identify packet types, and in particular name service and data service packets, and prioritize, for example, name service packets over some or all of the data service packets; also selected data service packages can be compared. Naming service packages and other data service packages. An optimizer can also recognize repeated name service and data service packets. Depending on the static and / or dynamic configuration, an optimizer may then unconditionally or at variance suppress conditions, such conditions may be, for example, that the repeated packet is suppressed only if it is received within a statically configured and / or dynamically determined period of time, if it is received outside of a statically configured and / or dynamically determined period of time if the package is a request, if the package is an answer and / or if it is neither a request nor an answer. The replacement and / or delaying of packages may follow appropriate or other rules and may also be conditional or unconditional. The optimizer may perform the replacement of the packet with a semantically similar, equivalent, and / or equivalent packet, with or without a time delay. These mechanisms can be combined with other optimization mechanisms. Suppressing and / or replacing and / or delaying may be particularly advantageous because potentially bandwidth can be saved in one and / or both directions of transmission (not only) on the difficult communication path - which is also a useful addition to the III. described header compression.
Alternativ bzw. in Kombination kann die Optimierung abhängig gemacht werden von bestimmten beteiligten Endpunkten und / oder Anwendungen und / oder der Last in den Übertragungsnetzen und / oder auf einzelnen / Gruppen von Übertragungsabschnitten und / oder von verfügbarem Speicher und / oder der CPU- / Prozessorlast der beteiligten Komponenten. Abhängig von einzelnen oder Kombinationen solcher Kriterien kann die Optimierung ganz / teilweise aktiviert, eingegrenzt und / oder ganz / teilweise deaktiviert werden bzw. entsprechende Entscheidungen für mit der Optimierung kombinierte Verfahren getroffen werden. Sowohl bei statischer als auch bei dynamischer Optimierungs-Entscheidung, kann diese Entscheidung einseitig durch einzelne Komponenten oder Komponenten einer Übertragungsseite getroffen werden oder gemeinsam von mehren beteiligten Komponenten oder auch „nebenstehender" Systemkomponenten wie einem Netzwerkmanagement-System. Dabei ist es in vielen Einsatzszenarien auch möglich, Verbindungen zunächst zu optimieren und während des Fortbestandes der Verbindungen / von Teilen der Verbindungen die Optimierung zu beenden (und anders herum bzw. mehrfach wechselnd). Die Erfindung ist in vielen Einsatzszenarien auch für den Einsatz in der Punkt-zu-Mehrpunkt- Kommunikation (wie sie beispielsweise in einem Satelliten- oder terrestrischen Broadcastnetz oft vorliegt) geeignet. Dieselben Optimierungsverfahren können angewendet werden. Allerdings ist zu oftmals berücksichtigen, dass die die optimierten Paketen empfangenen (mehreren) Optimierer und / oder auch (mehreren) Endsysteme / Anwendungen (gemeinsam in diesem Kontext hier Empfänger genannt) unterschiedliche Fähigkeiten haben können und dass die Übertragungswege zu diesen unterschiedliche Eigenschaften aufweisen können. Ein Optimierer sollte dann den wichtigen, der Mehrzahl und / oder allen Optimierern eine Interpretation der optimierten Datenpakete ermöglichen. Dies kann dadurch geschehen, dass Optimierungs-Verfahren gewählt werden, welche für alle intendierten Empfänger geeignet sind. Und / oder ein Optimierer kann unterschiedlich optimierte Datenpakete / Datenströme an einzelne Empfänger und / oder Gruppen von Empfängern senden, die spezifisch für den / die jeweiligen Übertragungsweg und / oder Optimierung geeignet sind. Und / oder ein Optimierer kann zusätzliche Information (in bestehenden und / oder weiteren Daten- und / oder Steuerpaketen) an einzelne und / oder Gruppen von Empfängern (und / oder Knoten der Übertragungsnetze) senden, um eine erfolgreiche Weiterleitung und / oder Empfang und / oder Auswertung des empfangenen optimierten Datenstromes zu ermöglichen. Gleiches gilt in vielen Fällen für die Mehrpunkt-zu-Mehrpunkt-Kornmunikation. Diese kann oftmals zudem auf mehrere Punkt-zu- Mehrpunkt-Kommunikationsbeziehungen abgebildet werden.Alternatively, or in combination, the optimization may be made contingent on certain involved endpoints and / or applications and / or the load in the transmission networks and / or on individual / groups of transmission sections and / or available memory and / or the CPU / processor load the components involved. Depending on individual or combinations of such criteria, the optimization can be fully / partially activated, limited and / or completely / partially deactivated or corresponding decisions can be made for methods combined with the optimization. In both a static and a dynamic optimization decision, this decision can be made unilaterally by individual components or components of a transmission side or jointly by several involved components or also by "neighboring" system components such as a network management system, whereby it is also possible in many application scenarios Optimizing connections first and stopping the optimization (and vice versa) while the connections / parts of the connections continue. The invention is also suitable for use in point-to-multipoint communication (as is often the case, for example, in a satellite or terrestrial broadcast network) in many application scenarios. The same optimization methods can be used. However, it is too often to be considered that the (multiple) optimizers and / or (multiple) end systems / applications (collectively referred to herein as receivers in the context of the optimized packets) may have different capabilities and that the transmission paths to these may have different characteristics. An optimizer should then allow the most important, the majority, and / or all optimizers to interpret the optimized data packets. This can be done by selecting optimization methods which are suitable for all intended recipients. And / or an optimizer may send differently optimized data packets / data streams to individual receivers and / or groups of receivers that are specific to the particular transmission path and / or optimization. And / or an optimizer may send additional information (in existing and / or other data and / or control packets) to individual and / or groups of receivers (and / or nodes of the transmission networks) to ensure successful routing and / or reception and / or or to enable evaluation of the received optimized data stream. The same is true in many cases for multipoint-to-multipoint grain communication. This can often also be mapped to multiple point-to-multipoint communication relationships.
Für Anordnungen insbesondere entsprechend Fig. 1 bietet sich auch eine optionale Kombination mit Header-Komprimierungstechniken an, um das Übertragungsvolumen zu reduzieren. Neben dem offensichtlichen Vorteil des Einsparens von Netzkapazität reduziert dies oftmals implizit beispielsweise bei überlasteten Netzen / Übertragungsabschnitten auch die Paketverlustraten und insbesondere bei schmalbandigen Netzen / Übertragungsabschnitten die RTT. Bei der Optimierung durch das Einfügen von FEC Redundanzinformationen kann die Nutzung von Header-Komprimierung oftmals (wie beispielsweise bei VoIP und RTP) einen erheblichen Anteil leisten, um den durch die Redundanzinformationen steigenden Bandbreitenbedarf wieder ganz oder teilweise oder sogar unter den ursprünglichen Bandbreitenbedarf zu senken.For arrangements in particular according to FIG. 1, an optional combination with header compression techniques is also available in order to reduce the transmission volume. In addition to the obvious advantage of saving network capacity, this often implicitly reduces, for example in the case of congested networks / transmission sections, the packet loss rates and, in particular in the case of narrowband networks / transmission sections, the RTT. When optimizing by inserting FEC redundancy information, the use of header compression can often (such as in VoIP and RTP) make a significant contribution to reducing the redundancy information increasing bandwidth requirement again, in whole or in part, or even below the original bandwidth requirement.
Die Erfindung erlaubt es optional auch, die Optimierung (beispielsweise Ol) über quasi beliebige und / oder sogar wechselnde Netze / Netzpfade / Übertragungsabschnitte einzusetzen. Daher und unter anderem um trotz zumindest relativ effizienter Header-Komprimierungs- techniken relativ geringe bzw. nur weitgehend bestimmbarer Anforderungen an die Art den genutzten Netze / Netzpfade / Übertragungsabschnitt zu stellen ist es auch vorteilhaft die Erfindung optional in Kombinationen mit partiellen Header-Komprimierungsverfahren - wie im folgenden Abschnitt II. beschrieben - einzusetzen.Optionally, the invention also makes it possible to use the optimization (for example, oil) via virtually arbitrary and / or even changing networks / network paths / transmission sections. Therefore, and among other things, in spite of at least relatively efficient header compression To provide techniques relatively low or only largely determinable requirements for the type of networks / network paths / transmission section used, it is also advantageous to use the invention optionally in combinations with partial header compression method - as described in Section II below - use.
III. Weitere Optimierungen durch Kompression von Protokoll-HeadernIII. Further optimizations by compression of protocol headers
Dieser Abschnitt beschreibt eine spezifische Ausprägung einer Optimierung. Dieser Aspekt liegt auf dem Gebiet der Paket-orientierten Datenübertragung und der Reduzierung des durch Paket-Header erzeugten Overheads. Dabei erlaubt es die Erfindung Paket-Header sowohl ganz als auch teilweise bei der Übertragung einzusparen. Der Stand der Technik wurde eingangs bereits beschrieben.This section describes a specific form of optimization. This aspect is in the field of packet-oriented data transmission and the reduction of overhead generated by packet headers. The invention makes it possible to save packet headers both completely and partially in the transmission. The prior art has already been described at the beginning.
Die in diesem Abschnitt vorgenommene Gliederung in a), b), c) und d) dient der besseren Strukturierung des Abschnitts. Sie wird jedoch nicht zwingend eingehalten und einige Aspekte werden abschnittsübergreifend bzw. entgegen dieser Trennung bereits in anderen Abschnitten behandelt.The subdivision in a), b), c) and d) used in this section serves to better structure the section. However, it is not strictly adhered to and some aspects are already covered in other sections across sections or against this separation.
Eine Header-Komprimierung wie im Folgenden beschrieben ist eine spezifische Ausprägung einer Optimierungsfunktion, ein Kompressor eine mögliche Ausgestaltung eines Optimierers. Zur Verdeutlichung dieses Zusammenhangs können die Systemanordnungen der Fig. 1 und 2 herangezogen werden, wobei die Optimierer der Fig. 1 und 2 als Kompressoren und / oder Dekompressoren ausgebildet sind sowie die Optimierung der Fig. 1 und 2 die spezifischen Ausprägungen von Komprimierungen sind. Zur Erläuterung der Systemanordnungen für die spezifische Ausprägung der Kompression sei auf die obigen Beschreibungen der Fig. 1 und 2 verwiesen. Die Ausführungen gelten analog für Optimierung und Kompression, für Optimierer und (De-)Kompressor. Es sei darauf verwiesen, dass die allgemeine Darstellung in Abschnitt I zur Optimierung immer von Optimierern spricht: ein Optimierer fügt Optimierungen ein, ein anderer Optimierer interpretiert diese im Sinne der Optimierung, um zum Beispiel die Datenpakete (wie sie vor der Optimierung vorlagen) ganz oder teilweise wiederherzustellen. Im Kontext von Komprimierungen wird hier zur Vereinfachung ein zweiter Begriff eingeführt: neben dem Kompressor (das Datenpakete komprimiert) wird für die Gegenseite vom Dekompressor gesprochen (der die ursprünglichen Datenpakete ganz oder in wesentlichen Teilen wiederherstellt).A header compression as described below is a specific expression of an optimization function, a compressor a possible embodiment of an optimizer. To illustrate this relationship, the system arrangements of FIGS. 1 and 2 can be used, wherein the optimizers of FIGS. 1 and 2 are designed as compressors and / or decompressors and the optimization of FIGS. 1 and 2 are the specific characteristics of compression. For an explanation of the system arrangements for the specific expression of the compression, reference is made to the above descriptions of FIGS. 1 and 2. The explanations apply analogously for optimization and compression, for optimizers and (de) compressor. It should be noted that the general presentation in section I for optimization always speaks of optimizers: one optimizer inserts optimizations, another optimizer interprets them in terms of optimization, for example, the data packets (as they were before the optimization) or partially restore. In the context of compression, a second term is introduced here for the sake of simplicity: in addition to the compressor (which compresses data packets) is used for the opposite side of the Decompressor spoken (which restores the original data packets in whole or in substantial parts).
Nachfolgend werden weitere Aspekte der Erfindung im Detail dargestellt, wobei die Merkmale der verschiedenen Aspekte sowohl einzeln als auch in beliebiger Kombination bei der Verwirklichung der Erfindung in ihren verschiedenen Ausfuhrungsformen von Bedeutung sein können. Insbesondere ergeben die verschiedenen Aspekte jeweils für sich eine wesentliche Verbesserung des Standes der Technik.Hereinafter further aspects of the invention will be described in detail, wherein the features of the various aspects both individually and in any combination in the realization of the invention in its various embodiments may be of importance. In particular, the various aspects individually provide a substantial improvement in the state of the art.
Die in dem folgenden Abschnitt vorgenommene Gliederung in a), b), c) und d) dient der besseren Strukturierung des Abschnitts. Sie wird jedoch nicht zwingend eingehalten und einige Aspekte werden abschnittsübergreifend bzw. entgegen dieser Trennung bereits in anderen Abschnitten behandelt.The subdivision in a), b), c) and d) in the following section serves to better structure the section. However, it is not strictly adhered to and some aspects are already covered in other sections across sections or against this separation.
Zur Erleichterung des Verständnisses der unterschiedlichen Aspekte der Erfindung wird hierbei im folgenden oftmals zunächst jeweils kurz auf den Hintergrund (Abschnitt (i)) zu dem Aspekt eingegangen, um anschließend die spezielle Problematik und Erfindungsaspekte (Abschnitt (ii)) und eine oder mehrere bevorzugte Ausführungsformen des Erfindungsaspektes (Abschnitt (iii)) zu beschreiben. Zu einigen der Erfindungsaspekte werden in einem Abschnitt (iv) dann Ausgestaltungen beschrieben bei denen es sich teilweise um Alternativen handelt. Diese Gliederung wird jedoch nicht zwingend eingehalten und einige Aspekte werden abschnittsübergreifend bzw. entgegen dieser Trennung bereits in anderen Abschnitten behandelt. Einige mögliche Anordnungen zur Anwendung der erfindungsgemäßen Technologien sind in Fig. 1 und 2 allgemein für Optimierungen dargestellt und auch Komprimierungen anwendbar. Die Ausführungen aus Abschnitt 1 zu Optimierungen gelten entsprechend für Komprimierungen, insbesondere die verschiedenen Systemanordnungen und beliebigen Kombinationen dieser. Die Erläuterungen zu entsprechen den obigen zu Fig. 1 und 2 und werden deshalb hier nicht wiederholt. Auch können Header-Komprimierungen und anderen Optimierungen beliebig in denselben und / oder anderen Komponenten integriert und / oder miteinander verknüpft sein. Die Ausführungen aus Abschnitt I zu Netzen und spezifischen Netztechnologien gelten ebenfalls analog. Ergänzend sei angemerkt, dass bei geschachtelten und / oder parallelen Optimierungen bzw. Komprimierungen (beispielsweise wie in Fig. Ie) dargestellt), einige Daten der parallelen bzw. geschachtelten Optimierungen bzw. Komprimierungen ganz oder teilweise gemeinsam von beiden Optimierungen bzw. Komprimierungen genutzt werden können. Beispiele hierfür können u.a. Connection-IDs, Längen-Felder bzw. (Teil-)Längeninformationen aber auch viele andere Feldtypen sein.In order to facilitate the understanding of the different aspects of the invention, the following will often be discussed briefly in the following (background (section (i)) on the aspect, followed by the specific problem and invention aspects (section (ii)) and one or more preferred embodiments of the invention aspect (Section (iii)). For some of the aspects of the invention, then, in a section (iv), embodiments are described that are partly alternatives. However, this structure is not necessarily adhered to and some aspects are already covered in other sections across all sections or contrary to this separation. Some possible arrangements for the application of the technologies according to the invention are generally shown in FIGS. 1 and 2 for optimizations and also for compressions. The comments in section 1 on optimizations apply accordingly to compressions, in particular the various system arrangements and any combinations of these. The explanations to correspond to the above to Fig. 1 and 2 and are therefore not repeated here. Also, header compression and other optimizations may be arbitrarily integrated and / or linked to the same and / or other components. The remarks in Section I on networks and specific network technologies also apply analogously. In addition, it should be noted that in the case of nested and / or parallel optimizations or compressions (for example, as shown in FIG. 1 e), some data of the parallel or nested optimizations or compressions can be used in whole or in part jointly by both optimizations or compressions , Examples include connection IDs, length fields or (sub) length information, but also many other field types.
Die Komprimierungsfunktionen sind nicht auf Informationen in Paket-Header einer bestimmten Schicht begrenzt. Einzelne Komprimierungen können sich jedoch auf bestimmte Paket- Header, bestimmte Schichten, bestimmte Protokolle und / oder bestimmte Anwendungen spezialisieren. Einzelne Komprimierungen können auf einzelnen Schichten oder auch schichtübergreifend arbeiten. Die Komprimierung kann von den Eigenheiten der umgebenden Netze oder der Pfade durch das Netz abhängig sein und / oder von der Funktion und / oder dem Vorhandensein bestimmter Netzelemente: so kann beispielsweise eine Kompressionsfunktion anders arbeiten, wenn die Pakete auf dem Weg bestimmte weitere Netzelemente wie Router, NATs und / oder Firewalls passieren müssen. Verschiedene Komprimierungen (und deren Kompressoren) können sich untereinander abstimmen und / oder unabhängig voneinander arbeiten.The compression functions are not limited to information in packet headers of a particular layer. However, individual compressions may specialize in particular packet headers, particular layers, particular protocols, and / or particular applications. Individual compressions can work on individual layers or across layers. The compression may depend on the nature of the surrounding networks or paths through the network and / or on the function and / or presence of particular network elements: for example, a compression function may work differently if the packets on the way are certain other network elements such as routers , NATs and / or firewalls have to happen. Different compressions (and their compressors) can co-ordinate with each other and / or work independently of each other.
Neben einer reinen Reduktion der Paket-Header können Kompressoren auch die Inhalte modifizieren, um die Kommunikation effizienter und / oder performanter und / oder robuster zu gestalten oder die Kommunikation überhaupt erst zu ermöglichen. Auch muß eine Komprimierungsfunktion (oder Komprimierung) nicht in allen Fällen zu einer Reduktion des Datenvolumens führen. Ist beispielsweise ein Übertragungsnetz nicht in der Lage, Datenpakete eines bestimmten Typs (zum Beispiel einer bestimmten Anwendung, eines bestimmten Transportprotokolls) zu übermitteln, so kann eine Kompressionsfunktion Datenpakete so umschreiben, daß dennoch eine Übermittlung über das fragliche Netz zustande kommt.In addition to a mere reduction of the packet headers, compressors can also modify the contents in order to make the communication more efficient and / or performant and / or robust, or to enable communication in the first place. Also, a compression function (or compression) may not always lead to a reduction in the volume of data. If, for example, a transmission network is unable to transmit data packets of a specific type (for example, a specific application, a particular transport protocol), then a compression function can rewrite data packets in such a way that a transmission over the network in question nevertheless occurs.
Im Folgenden werden einige Aspekte der Erfindung weitergehend im Detail erläutert. Es ist jedoch zu beachten, dass auch vorstehend bereits Ausgestaltungen und Aspekte der Erfindung beschrieben wurden, die für sich genommen und / oder in Kombination einem / mehrerer der folgenden (Teil-)Aspekte genutzt werden können. Ill.a) Partielle Header-KomprimierungIn the following, some aspects of the invention will be further explained in detail. However, it should be noted that embodiments and aspects of the invention have already been described above that can be used alone and / or in combination of one or more of the following (sub) aspects. Ill.a) Partial header compression
(i) Hintergrund(i) background
Header-Kompression reduziert und / oder entfernt Header- Informationen auf einer Teilstrecke zwischen zwei Systemen im Netz. Diese zwei Systeme können (wie oben beschrieben) sowohl die Endpunkte sein also auch sonstige Knoten im Netz („in der Mitte, d.h. zwischen den Endpunkten") sein. Sie können Nachbarn sein, d.h., direkt durch einen Übertragungsabschnitt eines physischen Netzes (beispielsweise eine Wählverbindung, einen Satellitenübertragungsabschnitt oder ein Ethernet) miteinander verbunden sein. Oder es können ein oder mehrere weitere Knoten (zum Beispiel Router) netztopologisch zwischen diesen beiden Systemen liegen, so dass die Kommunikation zwischen beiden eine Weiterleitung der ausgetauschten Datenpakete durch Dritte (die eben angesprochenen weiteren Knoten) erfordert. In letzterem Fall kann sich die Route zwischen beiden Systemen über die Zeit ändern. Der letzte Fall liegt oftmals vor (muss aber nicht vorliegen bzw. kann auch in anderen Situationen und / oder Konstellationen vorliegen), wenn die die Kompression ausführenden Systeme zwei Endpunkte sind.Header compression reduces and / or removes header information on a leg between two systems in the network. These two systems (as described above) may be both the endpoints and other nodes in the network ("in the middle, ie between the endpoints") .You may be neighbors, ie directly through a transmission section of a physical network (e.g. One or more further nodes (for example, routers) may be network-topologically between these two systems, so that the communication between them is a forwarding of the exchanged data packets by third parties (the others mentioned above) In the latter case, the route between both systems may change over time, the latter case being often (but need not exist or may be in other situations and / or constellations) when the compression executing systems are two endpoints.
Es sei darauf hingewiesen, dass die Frage, ob zwei Systeme Nachbarn sind, in Abhängigkeit von der untersten Protokoll-Schicht, ab der die Kompression stattfindet, unterschiedlich beantworten wird. Beispielsweise sind zwei IP-Router Nachbarn, wenn kein weiterer Router zwischen ihnen liegt und sie Kompression auf der IP-Schicht durchführen. Hingegen sind auf der Anwendungsschicht auch zwei Endpunkte mit beliebig vielen IP- Routern dazwischen Nachbarn, solange keine Anwendungs-Proxies zum Einsatz kommen und die Kompression nur auf der Anwendungsschicht erfolgt. Weiterhin sind zwei Anwendungs-Proxies Nachbarn, wenn keine weiteren Proxies zwischen ihnen liegen und die Kompression auf der Anwendungsschicht stattfindet.It should be noted that the question of whether two systems are neighbors will answer differently depending on the lowest protocol layer from which the compression takes place. For example, two IP routers are neighbors if there is no other router between them and they are performing compression on the IP layer. By contrast, two endpoints with any number of IP routers between them are neighbors on the application layer, as long as no application proxies are used and the compression takes place only on the application layer. Furthermore, two application proxies are neighbors when there are no more proxies between them and the application layer compression occurs.
Bei der Header-Kompression werden Teile oder alle Informationen des oder der zu komprimierenden Header in einem System (dem sendenden) entfernt und / oder ersetzt und in dem anderen System (dem empfangenden) rekonstruiert. Dabei verfügen die beiden an der Kompression beteiligten Systeme über gemeinsames Wissen (Kontext) und / oder lokales Wissen (Zustandsinformationen) und / oder ein gemeinsames Verständnis der zu verwendenden Kompressionsalgorithmen. Dieses Wissen und die Algorithmen können beispielsweise vordefiniert und / oder dynamisch ausgetauscht und / oder im Laufe einer oder mehrerer ausgetauschter Datenpakete (einer oder mehrerer Kommunikationsbeziehungen) abhängig und / oder unabhängig voneinander dynamisch aufgebaut („gelernt") und / oder angepasst werden.In header compression, parts or all information of the header (s) to be compressed in one system (the sending one) is removed and / or replaced and reconstructed in the other system (the receiving one). The two systems involved in the compression have common knowledge (context) and / or local knowledge (state information) and / or a common understanding of the compression algorithms to be used. This knowledge and the algorithms can for example, predefined and / or dynamically exchanged and / or dynamically constructed ("learned") and / or adapted in the course of one or more exchanged data packets (one or more communication relationships) and / or independently of one another.
Damit Header-Kompression funktionieren kann, müssen die vom komprimierenden System erzeugten Datenpakete das dekomprimierende System in den wesentlichen Teilen unverändert (und - je nach verwendetem Verfahren — in einigen, aber oftmals nicht in allen Fällen auch in der richtigen Reihenfolge) erreichen. Hierzu ist es erforderlich, dass evtl. zwischen den beiden Systemen vorhandene Knoten in der Lage sind, die komprimierten Datenpakete weiterzuleiten und dabei keine für die Dekomprimierung erforderlichen Informationen zu verfälschen. Dies ist am einfachsten, wenn die beiden Systeme direkt Nachbarn sind (d.h., nur einen „Hop" voneinander entfernt), denn hier gibt es keine „störenden" Netzknoten dazwischen. In diesem Fall sprechen wir von Hop-by-Hop-Header- Kompression. Entsprechend bezeichnet Ende-zu-Ende-Kompression die Header- Kompression zwischen zwei Endpunkten. Von Mitte-zu-Mitte-Kompression spricht man in allen Fällen, in denen die beiden an der Kompression beteiligten Systeme weder benachbart noch die beiden Endpunkte sind.For header compression to work, the data packets generated by the compressing system must be essentially unaltered in the decompressing system (and, depending on the method used, in some, but often not all, in the correct order). For this purpose, it is necessary that any existing nodes between the two systems are able to forward the compressed data packets and thereby distort any information required for the decompression. This is easiest if the two systems are directly neighbors (i.e., only one "hop" apart) because there are no "interfering" network nodes in between. In this case we are talking about hop-by-hop header compression. Similarly, end-to-end compression refers to header compression between two endpoints. Mid-to-mid compression is used in all cases where the two systems involved in the compression are neither adjacent nor the two endpoints.
Sind die beiden Systeme Nachbarn, müssen sie also nicht auf die Weiterleitungsfunktionen von zwischen ihnen liegenden Systemen Rücksicht nehmen. Für Mitte-zu-Mitte- und Ende-zu-Ende-Kompression müssen die von den anderen Knoten zur Bearbeitung und / oder Weiterleitung der Pakete erforderlichen Informationen unverändert gelassen werden. Zur Kompression selbst können sie einen oder mehrere Paket-Header aus der Header- Hierarchie berücksichtigen, solange die vorstehende Bedingung erfüllt bleibt.Thus, if the two systems are neighbors, they do not have to consider the forwarding functions of systems lying between them. For center-to-center and end-to-end compression, the information required by the other nodes to process and / or forward the packets must be left unchanged. For compression itself, you can consider one or more packet headers from the header hierarchy, as long as the above condition is met.
(ii) Das Kompressionsverfahren ist im Allgemeinen umso effizienter, je mehr Header aus der Header-Hierarchie in die Kompression einbezogen werden können. Dies ermöglicht es Hop-by-Hop- Verfahren (die eben die Kompression für einen Übertragungsabschnitt durchführen) oft, wesentlich höhere Kompressionsraten zu erzielen als Ende-zu-Ende- Verfahren (letztere können schließlich diejenigen Header nicht komprimieren, die für die Weiterleitung durch die weiteren Knoten erforderlich sind). Allerdings nimmt ein Paket oft Wege, bei denen nicht auf jedem Abschnitt eine Hop-by-Hop-Kompression realisiert werden kann, zum Beispiel aus Gründen der Leistung der eingesetzten Komponenten oder weil Komponenten für die jeweilige Aufgabe nicht mit installierter Header- Kompression verfügbar sind, gegebenenfalls auch, da vielleicht aus Gewinn- / Abrechnungsgründen eine Komprimierung gar nicht gewünscht ist.(ii) The compression method is generally more efficient the more headers from the header hierarchy can be included in the compression. This often allows hop-by-hop techniques (which do the compression for one section of transmission) to achieve much higher compression rates than end-to-end techniques (the latter can not eventually compress the headers used for forwarding through the additional nodes are required). However, a packet often takes paths that do not realize hop-by-hop compression on each section can be, for example, for reasons of performance of the components used or because components for the particular task are not available with installed header compression, if necessary, because perhaps for profit / billing reasons, a compression is not desired.
Vorteilhaft ist eine Mitte-zu-Mitte-Header-Kompression, die einige der Effizienz- Vorteile der Hop-by-Hop-Header-Kompression mit dem geringeren Integrations-Aufwand der Ende- zu-Ende-Header-Kompression zumindest auf einem besonders relevanten Teil des Pfades miteinander verbindet. Eine solche Mitte-zu-Mitte-Header-Kompression wird dabei am effizientesten sein können, wenn sie den in der Header-Hierarchie abgedeckten Bereich maximiert. Eine Grenze in dieser Maximierung ergibt sich dadurch, dass die zwischen dem Kompressor und dem Dekompressor auf dem Pfad befindlichen Systeme einen Teil der Header-Hierarchie für ihre jeweiligen Funktionen benötigen und dieser „untere Teil" kann, wie oben erwähnt, nicht einfach wegkomprimiert werden.Advantageous is a center-to-center header compression that provides some of the efficiency advantages of hop-by-hop header compression with the less integration overhead of end-to-end header compression, at least on a particularly relevant one Part of the path connects with each other. Such center-to-center header compression will be most efficient in maximizing the area covered in the header hierarchy. One limit to this maximization is that the systems on the path between the compressor and the decompressor will require part of the header hierarchy for their respective functions and, as mentioned above, this "bottom part" can not simply be compressed away.
Allgemein empfängt ein Kompressor X-I einer Komprimierung C ein Datenpaket und komprimiert selektiv die Header, die nicht zur Weiterleitung der Datenpakete durch weitere Systeme benötigt werden. Dabei werden sinnvollerweise so viele der für den Kompressor „sichtbaren" (d.h., unverschlüsselt zugreifbar vorliegenden) Header wie möglich einbezogen.Generally, a compressor X-I of a compression C receives a data packet and selectively compresses the headers that are not needed for forwarding the data packets by other systems. It makes sense to include as many of the compressors 'visible' (i.e., present in unencrypted form) headers as possible.
Die beschriebene Maximierung der von der Header-Kompression erfassten Header muss sich nicht auf den Ein- oder Ausschluss ganzer Header beschränken. Benötigt ein System auf dem Pfad zwischen Kompressor und Dekompressor nur bestimmte Felder eines Headers, stehen die anderen Felder dieses Headers für die Einbindung ins Kompressionsverfahren zur Verfügung, wenn zumindest die Struktur des Headers bei dieser Kompression erhalten bleibt und / oder rekonstruiert werden kann.The described maximization of headers captured by header compression need not be limited to including or excluding entire headers. If a system on the path between the compressor and the decompressor requires only certain fields of a header, the other fields of this header are available for integration into the compression method if at least the structure of the header can be retained and / or reconstructed during this compression.
Gleichgültig ob ganze Header oder nur Teile dieser in die Kompression einbezogen werden, kann es erforderlich sein, die ganzen oder einen Teil einzelner Header oder der Header- Hierarchie beizubehalten. Durch die erfolgte Kompression wird jedoch weniger als der insgesamt im jeweiligen Header vorhandene Platz benötigt, um die erforderlichen Informationen zu übertragen. In solchen Fällen kann der durch die Kompression frei werden- de Platz in einem Header mit - komprimierten oder nicht komprimierten - Steuerinformationen anderer Header und / oder zusätzlichen Steuerinformationen und / oder For- ward-Error-Correction (FEC)-Informationen und / oder Nutzdaten des Datenpakets gefüllt werden.Regardless of whether entire headers or only parts of them are included in the compression, it may be necessary to retain all or part of individual headers or the header hierarchy. Due to the compression, however, less than the total space available in the respective header is required to transmit the required information. In such cases, it can become free due to compression. de space in a header with - compressed or uncompressed - control information other headers and / or additional control information and / or forward error correction (FEC) information and / or payload of the data packet are filled.
Die Kompression von Headerfeldern kann individuell für jedes einzelne oder für einige der Datenpakete im Zusammenhang erfolgen. Bei der Kompression können Datenpakete auf andere (vorher oder später gesendete) Datenpakete Bezug nehmen und dadurch beispielsweise die Kompressionseffizienz erhöhen. Die Auswahl der zu komprimierenden Datenpakete und / oder der Datenpakete für eine zusammenhängende Kompression kann aufgrund von fest vordefinierten und / oder dynamisch erzeugten Regeln erfolgen und / oder aufgrund der Paketeigenschaften und / oder der zeitlichen Abfolgen der Pakete usw.The compression of header fields can be done individually for each or for some of the data packets related. During compression, data packets may refer to other (previously or later sent) data packets, thereby increasing, for example, the compression efficiency. The selection of the data packets to be compressed and / or the data packets for a contiguous compression may be based on fixed predefined and / or dynamically generated rules and / or on the basis of the packet properties and / or the time sequences of the packets etc.
Bei der Kompression von Datenpaketen können die (Folgen von) Datenpakete(n) unterschiedlicher Kommunikationsbeziehungen Ende-zu-Ende unabhängig voneinander betrachtet werden und / oder einige (oder alle) Kommunikationsbeziehungen können gemeinsam betrachtet werden. Die unabhängige und / oder gemeinsame Betrachtung zur Kompression kann einzelne (beliebige oder durch ihre Eigenschaften bestimmte) und / oder alle Datenpakete betreffen. Schließlich kann zwischen individueller und gemeinsamer Betrachtung der Datenpakete verschiedener Kommunikationsbeziehungen im Laufe der Zeit hin und her gewechselt werden.In the compression of data packets, the (sequences of) data packets (n) of different communication relationships can be considered end-to-end independently of each other and / or some (or all) communication relationships can be considered together. Independent and / or collective consideration of compression may involve individual (arbitrary or by their properties) and / or all data packets. Finally, between individual and joint viewing of the data packets of different communication relationships can be switched back and forth over time.
Die Kompression kann das zwischen Kompressor und (De-)Kompressor übertragene Datenvolumen (pro Paket) auch (ggf. nur kurzfristig) erhöhen, etwa durch zusätzliche Header, größere Header, zusätzliche Pakete und / oder sonstige ergänzende und / oder redundante Übertragung von Informationen. Auch kann vorgesehen sein, die Kompression für einzelne Datenpakete nicht anzuwenden und / oder trotz Kompression das Datenvolumen einzelner Datenpakete nicht zu vermindern. Gleiches gilt generell / zeitlich begrenzt für ganze Kommunikationsbeziehungen und / oder Gruppen von Datenpaketen und / oder alle Datenpakete. Vorteilhaft kann sein, neben den (komprimierten oder nicht komprimierten) weitergeleiteten Datenpaketen zusätzliche Steuerpakete in eine oder beide Richtungen zwischen Kompressor und Dekompressor zu übertragen.The compression can also increase the data volume (per packet) transmitted between the compressor and (decompressor) (possibly only in the short term), for example by additional headers, larger headers, additional packets and / or other supplementary and / or redundant transmission of information. It can also be provided not to use the compression for individual data packets and / or not to reduce the data volume of individual data packets despite compression. The same applies generally / for a limited time to entire communication relationships and / or groups of data packets and / or all data packets. It can be advantageous to transmit additional control packets in one or both directions between the compressor and the decompressor in addition to the (compressed or uncompressed) forwarded data packets.
Auch kann vorgesehen sein, Steuerinformationen, darunter implizite oder explizite Bestätigungen über empfangene und / oder nicht empfangene Daten- und / oder zusätzliche Steuerpakete, zwischen Kompressor und Dekompressor auszutauschen. Es kann vorteilhaft sein, einige Datenpakete oder zusätzliche Steuerpakete erneut zu übertragen und / oder weitere Informationen als eigenständige Pakete und / oder Zusatzinformationen in anderen Pakete zu übertragen, aus denen sich Teile der Informationen und / oder gesamte Pakete wiederherstellen lassen.It can also be provided to exchange control information, including implicit or explicit acknowledgments about received and / or non-received data and / or additional control packets, between compressor and decompressor. It may be advantageous to retransmit some data packets or additional control packets and / or transmit further information as separate packets and / or additional information in other packets from which to recover portions of the information and / or entire packets.
Ein so komprimiertes Datenpaket (und / oder eine Folgen von Datenpaketen) wird vom Kompressor X-I an den (De-)Kompressor X-2 weitergeleitet und die Komprimierung C in diesem ganz oder weitgehend wieder rückgängig gemacht, so dass das ursprüngliche Datenpaket ganz oder in wesentlichen Teilen rekonstruiert wird.Such a compressed data packet (and / or a sequence of data packets) is forwarded by the compressor XI to the (de) compressor X-2 and the compression C in this completely or largely reversed, so that the original data packet wholly or substantially Parts is reconstructed.
(iii) Es sei angemerkt, dass der eingangs gewählte Begriff der „Mitte-zu-Mitte-Header- Kompression" gewählt wurde, da er in vielen Ausführungsformen zu einem einfachen Verständnis beiträgt. Unabhängig von den Wortbestandteilen des Begriffes „Mitte-zuMitte-Header-Kompression" kann das Verfahren aber in vielfältigen Ausführungsformen - einschließlich der zu Fig. 1 und 2 beschriebenen - eingesetzt werden. Dementsprechend kann die Header-Komprimierung auch zum Beispiel bereits in den / einem der beteiligten Endpunkte beginnen. Im Folgenden werden einige beispielhafte Ausführungsformen beschrieben. Dabei ist zu beachten, dass die beschriebenen Beispiele die Aspekte der Erfindung in einem bestimmten Kontext als Beispiel erläutern. Die eigentlichen Erfϊndungsas- pekte können jedoch auch anders bzw. wesentlich allgemeiner genutzt werden.(iii) It should be noted that the term "center-to-center header compression" chosen at the outset has been chosen, since it contributes to a simple understanding in many embodiments, irrespective of the word components of the term "center-to-center header Compression, however, the method may be used in a variety of embodiments including those described with reference to FIGS. 1 and 2. Accordingly, header compression may also begin, for example, already in the one or more of the involved endpoints. Hereinafter, some exemplary embodiments will be described. It should be noted that the examples described illustrate the aspects of the invention in a particular context as an example. However, the actual aspects of the invention can also be used differently or more generally.
Am Beispiel einer Realisierung mit IPv4 könnte, wenn die Systeme auf dem Pfad zwischen Kompressor und Dekompressor die IPv4-Zieladresse auswerten, trotzdem in vielen Fällen die IPv4-Quelladresse an der Kompression teilnehmen. In einer der möglichen Realisierungen könnte dies bedeuten, dass sich wiederholende Quelladressen durch einen kürzeren Kontextbezeichner ersetzt werden können und, um die Struktur des Headers zu- mindest in den wesentlichen Teilen zu erhalten, die restlichen Bits des Quelladressfeldes aufgefüllt werden mit komprimierten Daten aus der Kompression der höheren Schichten, zum Beispiel UDP und RTP. Ein entsprechender Kontextbezeichner könnte auch genereller genutzt werden, für mehrere Felder eines / mehrerer Protokoll-Header gemeinsam gelten, nicht speziell einer Komprimierung der IPv4-Quelladresse dienen, usw.In the case of an implementation with IPv4, if the systems on the path between compressor and decompressor evaluate the IPv4 destination address, in many cases the IPv4 source address could still participate in the compression. In one of the possible implementations, this could mean that repetitive source addresses can be replaced by a shorter context identifier and, to increase the structure of the header, at least in substantial parts, the remaining bits of the source address field are padded with compressed data from the higher layer compression, for example UDP and RTP. A corresponding context identifier could also be used more generally, be common to multiple fields of one / more protocol headers, not specifically serve to compress the IPv4 source address, etc.
In vielen dieser Fälle würde der Kontextbezeichner (oder ein Äquivalent) auch nicht innerhalb der Bits des Quelladressfeldes übertragen werden müssen, sondern oft an beliebiger Stelle innerhalb der resultierenden Pakete und / oder sogar ganz oder teilweise durch Header- Informationen beispielsweise darunterliegender Protokollschichten (implizit) ersetzt werden können. In anderen möglichen Realisierungen, beispielsweise in Einsatzszenarien in denen die IPv4-Quelladressen ggf. sowohl für die zwischenliegenden Netzknoten als auch für den empfangenen Endpunkt und / oder Anwendung irrelevant ist, kann die IPv4- Quelladress-Information auch ersatzlos entfallen. Auch dies ermöglicht es die Bits des Quelladressfeldes mit anderen Daten aufzufüllen und dennoch die eigentliche Struktur des Headers zumindest in den wesentlichen Teilen zu erhalten.Also, in many of these cases, the context identifier (or equivalent) would not need to be translated within the bits of the source address field but would often (implicitly) be replaced anywhere within the resulting packets and / or even partially or completely by header information of, for example, underlying protocol layers can be. In other possible implementations, for example in deployment scenarios in which the IPv4 source addresses may be irrelevant both for the intermediate network nodes and for the received endpoint and / or application, the IPv4 source address information can also be omitted without substitution. This also makes it possible to fill the bits of the source address field with other data and still obtain the actual structure of the header, at least in its essential parts.
Verallgemeinert ergibt sich aus einer Reihe von komprimierten Feldern eines oder mehrerer Header einerseits durch Zusammenfassung ein zur Verfügung stehender Freiraum von n Bits und andererseits potentiell die Erfordernis, Kontextinformationen zum Beispiel von k Bits zur Rekonstruktion des Datenpaketes zum Dekompressor zur übertragen, wobei im allgemeinen k < n gilt. Die verbleibenden n-k Bits stehen zur Aufnahme von (ggf. ebenfalls komprimierten) Steuerinformationen aus anderen Headern oder zur Aufnahme von Nutzdaten zur Verfügung.Generally speaking, a set of compressed fields of one or more headers results, on the one hand, in summary, in n-bit available space and, on the other hand, potentially requires the transfer of context information, for example, from k bits to reconstruct the data packet to the decompressor, generally k < n applies. The remaining n-k bits are available for recording (possibly also compressed) control information from other headers or for recording user data.
Ein Spezialfall liegt vor, wenn durch die Kompression ein oder mehrere Header und / oder Teile eines oder mehrerer Header vollständig eingespart werden können.A special case occurs when one or more headers and / or parts of one or more headers can be completely saved by the compression.
Unter Umständen reduziert sich die oberhalb des eines bestimmten Headers (zum Beispiel des IP-Header) verbleibende komprimierte Information auf die leere Menge, da alle relevanten Informationen nach Komprimierung in diesen n-k Bits untergebracht werden können. Wie vorstehend bereits angesprochen, kann - abhängig von Anforderungen und / oder Einsatzszenarien und / oder genutzten / komprimierten Headern und / oder komprimierten Header-Feldern - auf das explizite Übertragen von Kontextbezeichnern ggf. auch (in einigen und / oder allen) Paketen verzichtet werden - beispielsweise wenn sich dieser implizit aus Informationen und / oder Adreßinformationen darunter liegender Protokollschichten ergibt und / oder Steuerinformationen ausgetauscht werden, die diese Informationen / Adreßinformationen auf einen Kontextbezeichner bzw. Kontext abbilden. In diesem Fall wäre k für alle / einige Pakete kleiner bzw. sogar k=null.It is possible that the compressed information remaining above that of a particular header (IP header, for example) will be reduced to the empty set since all relevant information after compression can be accommodated in these nk bits. As already mentioned above, depending on requirements and / or application scenarios and / or used / compressed headers and / or compressed header fields, the explicit transfer of context identifiers may also be dispensed with (in some and / or all) packages. For example, if this implicitly results from information and / or address information of underlying protocol layers and / or control information is exchanged, which map this information / address information to a context identifier or context. In this case, k would be smaller for all / some packets, or even k = zero.
Abhängig von Anforderungen und / oder Einsatzszenarien und / oder genutzten / komprimierten Headern bzw. Header-Feldern kann es auch vorkommen, dass Teile der Header nicht einfach durch einen mehr oder weniger statischen Kontextbezeichner ersetzt werden können oder sollen. Beispielsweise könnte dies an der Art der zu komprimierenden Header- Felder liegen, aber auch Zielsetzungen wie die Reduzierung der Komplexität und / oder Steigerung der Robustheit und / oder Verkürzung von Übertragungsverzögerungen usw. können es sinnvoll machen, einzelne / einige Header-Felder nicht (nur) durch einen Kontext-Bezeichner, sondern durch zusätzliche Informations-Bits (allgemeiner: durch zusätzlich Informationen) im komprimierten Header darzustellen.Depending on requirements and / or application scenarios and / or used / compressed headers or header fields, it may also happen that parts of the headers can not or should not simply be replaced by a more or less static context identifier. For example, this could be due to the nature of the header fields to be compressed, but also objectives such as reducing complexity and / or increasing robustness and / or shortening transmission delays, etc. may make sense to omit individual / some header fields (just ) by a context identifier but by additional information bits (more generally: additional information) in the compressed header.
Ein Beispiel für solche Header-Felder könnten zum Beispiel in Headern enthaltene Sequenznummern sein, die zum Beispiel als Differenzwert oder beispielsweise auf die letzten Bits / Bytes verkürzt in den komprimierten Header in allen oder einigen der Pakete aufgenommen werden. Zur Vereinfachung wird aber auch im folgenden stets von k Bits gesprochen. Wobei k eben einen Kontextbezeichner und / oder weitere Informationen enthalten kann und k durchaus beispielsweise je nach übertragenem Paket unterschiedlich groß sein kann.An example of such header fields could be, for example, sequence numbers contained in headers, which are included in the compressed header in all or some of the packets, for example as a difference value or, for example, to the last bits / bytes. For the sake of simplicity, however, k bits are also always used in the following. Whereby k may just contain a context identifier and / or further information and k may well be different depending on the transmitted packet, for example.
Im oben beschrieben Beispiel der IPv4-Quelladresse ist n=32, und bei Verwendung eines kurzen Kontextbezeichners von k=8, verbleiben n-k=24 Bits. Falls dies nicht ausreichend ist, verbleibt neben den in der Quelladresse untergebrachten Informationen ein wenig Information oberhalb des IPv4-Headers. Bei dieser Modifikation ist darauf zu achten, dass die an der Kompression nur teilweise teilnehmenden Paketheader aus Sicht der Funktionen der Systeme auf dem Pfad zwischen Kompressor und Dekompressor konsistent scheinen: An beschriebenem Beispiel heißt dies unter anderem: Prüft eins der Systeme auf dem Pfad zwischen Kompressor und Dekompressor die typische Anforderungen an IPv4-Quelladressen, muss der Kompressor darauf achten, dass die eingesetzten Daten die geprüften Anforderungen erfüllen (beispielsweise kann es daher sein, dass die eingesetzten Daten keine IP-Multicast-Adresse ergeben dürfen); wertet eins der Systeme auf dem Pfad zwischen Kompressor und Dekompressor die IPv4-Header-Checksum aus, so muss der Kompressor sie so modifizieren, dass das auswertende System das Paket für konsistent hält, und der Dekompressor muss das Feld wiederherstellen.In the example of the IPv4 source address described above, n = 32, and using a short context identifier of k = 8, nk = 24 bits remain. If this is not enough, there will be some information above the IPv4 header besides the information stored in the source address. In this modification, care should be taken to ensure that the packet headers, which only partially participate in the compression, are consistent from the point of view of the functions of the systems on the path between the compressor and the decompressor Among other things, this may seem like the following: If one of the systems on the path between the compressor and the decompressor tests the typical requirements for IPv4 source addresses, the compressor must ensure that the data used meets the audited requirements (for example, it may be that the data used must not result in an IP multicast address); if one of the systems on the compressor-decompressor path evaluates the IPv4 header checksum, the compressor must modify it so that the evaluating system considers the packet consistent, and the decompressor must restore the field.
Im Fall der IPv4-Header-Checksum erfolgt dies jeweils durch einfache Neuberechnung; im Falle anderer Headerfelder, die solchen Konsistenzanforderungen genügen müssen, kann es auch erforderlich sein, diese im Kompressor in die Kompression einzubeziehen und bei der Dekompression aus Kontext und komprimierten Feldern wiederherzustellen. (Wertet keins der Systeme auf dem Pfad zwischen Kompressor und Dekompressor die IPv4-Header-Checksum aus, ist diese ebenso wie die anderen Felder aller Paketheader ein Kandidat für die Teilnahme an der Header-Kompression.) Diese Beschreibung nutzte IPv4 und die IPv4-Quelladresse als Beispiel; der beschriebene Aspekt lässt sich aber auf beliebige Header (oder Teile dieser) wie Ethernet-Header und andere Header der Schichten 1 und 2, IPv6-Header und andere Header der Schicht 3, sowie die Header der darüber liegenden Schichten anwenden.In the case of the IPv4 header checksum, this is done by simple recalculation; in the case of other header fields which must meet such consistency requirements, it may also be necessary to include them in compression in the compressor and to restore them from context and compressed fields during decompression. (If none of the systems on the path between compressor and decompressor evaluates the IPv4 header checksum, this, as well as the other fields of all packet headers, is a candidate for participating in header compression.) This description took advantage of IPv4 and the IPv4 source address as an an example; however, the described aspect can be applied to any headers (or portions thereof) such as Ethernet headers and other layers 1 and 2 headers, IPv6 headers and other layer 3 headers, as well as the headers of the layers above them.
Wie oben beschrieben muss die Kompression nicht auf einen einzelnen Header beschränkt sein, sondern kann Protokoll-übergreifend erfolgen. Neben mehreren Feldern aus dem IP-Header können auch noch ein oder mehrere Felder von UDP (wie etwa die Checksumme) oder TCP (wie etwa der Urgent Pointer) berücksichtigt werden.As described above, compression need not be limited to a single header, but may be protocol-spanning. In addition to several fields from the IP header, one or more fields of UDP (such as the checksum) or TCP (such as the Urgent pointer) can also be taken into account.
UDP- und TCP-Portnummern dienen oftmals der Identifikation von Kommunikationsbeziehungen auch für weitere Knoten im Netz, und so kann es erforderlich sein, diese unverändert beizubehalten. Gleiches kann für die IP-Quell-Adresse gelten. Ist dies nicht erforderlich, kann das gesamte Tupel bestehend aus IP-Quell- und / oder Transport-Quell- und / oder Zielportnummer und / oder Transport-Protokollbezeichner komprimiert werden. Am Beispiel von IPv4 Headern und mehr oder weniger einfachen IP-Routern als Netzknoten, die von den komprimierten Paketen passiert werden, gibt es eine Vielzahl von weitere Header-Feldern, die potentielle Kandidaten zum Einbeziehen in die partielle Header- Komprimierung wären. Hier neben der IPv4-Quell-Adresse (Source Address) und Checksumme beispielhaft genannt seien die Felder: Protocol, Identification, Fragment Offset und / oder das MF Bit (zum Beispiel, wenn zwischen X-I und X-2 keine (weitere) Fragmentierung erfolgt / erfolgen soll), TOS, TTL (oder ein Teil davon, falls zwischengeschalteten Router beispielsweise nur auf >0 prüfen und begrenzt reduzieren - in diesem Fall könnte man zum Beispiel die unteren 4 Bits auf 1 setzen und zum Beispiel die oberen 4 Bits in die Komprimierung einbeziehen), Total Length (zum Beispiel, wenn sich diese aus den darunterliegenden Protokoll-Headern ergibt und die zwischengeschalteten Komponenten nur diese auswerten) und IP Header Length (beispielsweise wenn diese ignoriert oder einfach implizit von den zwischengeschalteten Komponenten beispielsweise in Abhängigkeit von der IP Versionsnummer angenommen wird). Welche der Felder wirklich in die Komprimierung einbezogen werden können, ergibt sich, wie zuvor beschrieben, unter anderen durch die Einsatzszenarien und die zwischengeschalteten Komponenten.UDP and TCP port numbers are often used to identify communication relationships for other nodes in the network, so it may be necessary to keep them unchanged. The same can apply to the IP source address. If this is not required, the entire tuple can be compressed consisting of IP source and / or transport source and / or destination port number and / or transport protocol identifier. Given the example of IPv4 headers and more or less simple IP routers as the nodes that are passed by the compressed packets, there are a variety of other header fields that would be potential candidates for inclusion in the partial header compression. In addition to the IPv4 source address and checksum, the fields: Protocol, Identification, Fragment Offset and / or the MF bit (for example, if there is no (further) fragmentation between XI and X-2) / TOS, TTL (or a part of it, if, for example, intermediate routers check and reduce only to> 0 - in this case, for example, one could set the lower 4 bits to 1 and, for example, the upper 4 bits into the compression Include), Total Length (for example, if this results from the underlying protocol headers and the intermediary components only evaluate these) and IP Header Length (for example, if ignored or simply implicit of the intermediary components, for example, depending on the IP version number Is accepted). Which of the fields can really be included in the compression results, as described above, among others through the deployment scenarios and the intermediary components.
In einigen Einsatzszenarien und Ausführungen könnte ggf. sogar die IPv4-Ziel- Adressen (Destination Address) ganz oder teilweise in die Komprimierung mit einbezogen werden. Dies könnte zum Beispiel vorteilhaft sein, wenn die Daten über ein Broadcast (oder Broadcast-ähnliches) Netz übertragen werden, bei denen die Daten unabhängig von der Zieladresse ohnehin (stets oder in der Regel oder für bestimmte Pakete) alle Empfänger bzw. den / die Dekompressoren erreichen. Vorteilhaft ist in solchen Fällen der Einsatz von partieller Header-Komprimierung unter anderem dann, wenn auf Sendeseite oder Empfangsseite (oder im Netz selbst) Komponenten eingesetzt werden, die einen IP Header (bzw. etwas ganz / teilweise in der Struktur und / oder Größe eines IP Headers) voraussetzen. In einem einfachen Beispielfall, könnte beispielsweise eine un-modifizierte Netzwerkkarte und / oder ein unmodifizierter Netzwerk-Kartentreiber zum Absenden der Pakete eingesetzt werden sollen, die / der voraussetzt, dass er Datenpakete mit einem IP- Header erhält. Ein ähnliches Beispiel könnten an eine IP-Multicast-Adresse gesendete Pakete sein. Wenn zum Beispiel bekannt ist welche Adressen nur genutzt werden, oder vielleicht sogar bekannt ist, dass nur eine IP-Multicast-Adresse in einem Netz genutzt wird, und / oder die Empfanger oder Dekompressor die IP-Multicast-Adressen anhand von Kontext- Bezeichnern wiederherstellen, könnten für IP Multicast Pakete große Teil der IP(v4)- Destination Adresse in die Komprimierung mit einbezogen werden.In some usage scenarios and implementations, even the IPv4 destination addresses (destination address) might be included in the compression in whole or in part. This could be advantageous, for example, if the data is transmitted via a broadcast (or broadcast-like) network in which the data regardless of the destination address anyway (always or usually or for certain packets) all the receiver or the / Achieve decompressors. In such cases, the use of partial header compression is advantageous, inter alia, if components are used on the transmitting side or receiving side (or in the network itself) which have an IP header (or something entirely / partially in the structure and / or size of a IP headers). For example, in a simple example, an unmodified network card and / or an unmodified network card driver could be used to send packets that require it to receive data packets with an IP header. A similar example could be packets sent to an IP multicast address. For example, if it is known which addresses are being used, or perhaps even known, that only one IP multicast address is being used in a network and / or the receivers or decompressors are recovering the IP multicast addresses using context identifiers , for IP multicast packets, much of the IP (v4) destination address could be included in the compression.
Je nachdem, welche Protokolle auf den einzelnen Schichten eingesetzt und welche Header- Informationen in die Komprimierung einbezogen werden, können ergänzende Verfahren zum Einsatz kommen oder in schwierigeren Fällen auch zum Einsatz kommen müssen. Soll zum Beispiel unabhängig von IP Multicast die IP -Ziel-Adresse in eine Komprimierung einbezogen werden, kann es sinnvoll und / oder notwendig sein, eingesetzte Komponenten zu unterstützen, damit sie mit diesen mit anderen Inhalten gefüllten IP- Destination Adressen umgehen können. Sollen IP-Pakete mit einer in die Komprimierung einbezogenen IP-Destination Adresse beispielsweise über ein „Ethernet" (zum Beispiel gemäß IEEE 802.3) übertragen werden, kann das eingesetzte Address Resolution Proto- col (ARP) unterstützt werden, indem beispielsweise ein lokaler ARP Cache oder ein ARP Proxy / eine auf ARP -Anfragen antwortende Instanz, für ARP Anfragen mit einer durch Komprimierung entstandenen Pseudo-IP-Destination Adresse mit geeigneten ARP Antworten / Werten antwortet.Depending on which protocols are used on the individual layers and which header information is included in the compression, additional procedures may be used or, in more difficult cases, also be used. If, for example, the IP destination address is to be included in a compression independently of IP multicast, it may be useful and / or necessary to support components used so that they can handle these IP destination addresses filled with other content. If IP packets with an IP destination address included in the compression are to be transmitted, for example, via an "Ethernet" (for example according to IEEE 802.3), the Address Resolution Protocol (ARP) can be supported, for example by using a local ARP cache or an ARP proxy / responding ARP requestor responds to ARP requests with a pseudo-IP destination address created by compression with appropriate ARP responses / values.
(iv) Die obigen Ausführungen bezogen sich zum Teil auf IPv4. Entsprechend lässt sich auch mit IPv6 verfahren, was vorteilhaft sein kann, weil dort die Adreßfelder größer sind und damit durch Kompression potentiell mehr Raum zur Unterbringung weiterer Steuerinformationen und / oder Daten entsteht. Das gilt auch, wenn statt IPv6-Adressen verwandte Adressformate wie HIP-Adressen verwendet werden.(iv) The above remarks refer in part to IPv4. Accordingly, it is also possible to proceed with IPv6, which can be advantageous because there the address fields are larger and thus potentially more space is created by compression for accommodating further control information and / or data. This also applies if related address formats such as HIP addresses are used instead of IPv6 addresses.
Auch andere Protokolle können entsprechend komprimiert werden. So bieten auf der Schicht 2 des OSI-Referenzmodells beispielsweise die Quelladressen der Header von IEEE-802- LAN-Protokollen entsprechenden Raum. Oberhalb der Netzschicht lassen sich Transportprotokoll-Header und / oder Anwendungsprotokoll-Header entsprechen komprimieren. Die auf einzelnen Schichten durch Kompression der entsprechenden Headerfelder „gewonnenen" Bits können schichtübergreifend zusammengefasst und gemeinsam genutzt werden. Das kann beispielsweise Raum für Kontextbezeichner sparen, zum Beispiel weil diese nicht mehr auf jeder Schicht vergeben, verwaltet und / oder übertragen werden müssen und / oder sich diese sogar ganz / teilweise aus Feldern darunterliegender Protokoll- Header ableiten lassen.Other protocols can be compressed accordingly. For example, at layer 2 of the OSI reference model, the source addresses of the headers provide appropriate space for IEEE 802 LAN protocols. Above the network layer, transport protocol headers and / or application protocol headers can be compressed. The bits "extracted" on individual layers by compression of the corresponding header fields can be combined and shared across layers, for example saving space for context identifiers, for example because they no longer need to be assigned, managed and / or transmitted on each layer and / or These can even be derived in whole / in part from fields underneath protocol headers.
Wie oben angedeutet, kann dieses Verfahren unidirektional und / oder bidirektional eingesetzt werden. Im Falle bidirektionaler Kompression können die beiden Übertragungsrichtungen unabhängig oder abhängig voneinander betrieben werden. Der unabhängige und / oder abhängige Betrieb kann sich beziehen auf einzelne Datenpakete, einzelne Kommunikationsbeziehungen und / oder auf Gruppen von Kommunikationsbeziehungen und dieser Bezug bzw. der unabhängige und / oder abhängige Betrieb kann sich im Laufe der Zeit einmalig und / oder wiederholt ändern.As indicated above, this method can be used unidirectionally and / or bidirectionally. In the case of bidirectional compression, the two directions of transmission can be operated independently or independently of each other. The independent and / or dependent operation may relate to individual data packets, individual communication relationships, and / or groups of communication relationships, and that reference or independent and / or dependent operation may change over time once and / or repeatedly.
Steht für die Kommunikation zwischen Kompressor und Dekompressor nur ein unidirektiona- ler Übertragungsweg zur Verfügung, so kann der Kompressor durch geeignete Auswahl von Algorithmen (etwa die Nutzung von DEFLATE) und / oder zusätzlich übertragenen Steuerinformationen dafür Sorge tragen, daß der Dekompressor in der Lage sein wird, ein oder mehrere von Kompressor komprimierte(s) und weitergeleitete(s) Datenpakete ganz oder in wesentlichen Teil zu rekonstruieren.If only one unidirectional transmission path is available for the communication between the compressor and the decompressor, the compressor can ensure that the decompressor is capable of doing so by appropriate selection of algorithms (such as the use of DEFLATE) and / or additionally transmitted control information is to reconstruct one or more Compressor compressed (s) and forwarded (s) data packets in whole or in substantial part.
Ein alternative Nutzung ergibt sich, wenn anstelle der partiellen Header-Komprimierung mit dem Beibehalten von Teil-Headern bzw. (Teil-) Header-Strukturen (beispielsweise um zwischengeschalteten Netzkomponenten zu unterstützen, die diese Header auswerten) Header eines anderen (beispielsweise von diesen Netzkomponenten unterstützten) Protokolls eingefügt werden. Beispielsweise könnten für den Fall, dass zwischengeschaltete Router das IPv4 Protokoll unterstützen, die deutlich größeren IPv6 Header komprimiert werden und die komprimierte Information, versehen mit eingefügten IPv4 Headern übertragen werden. In diesem Fall können dann optional, wie zuvor für IPv4 Header beschrieben wiederum Teile des Inhalts des IPv4 Headers komprimiert und / oder zur Übertragung von andere Informationen und / oder Nutzdaten ersetzt werden. Für Einsatzszenarien und abhängig von den Anforderungen kann zudem eine Kombination mit einer Komprimierung der übertragenen Nutzdaten erfolgen. Dabei bieten sich je nach Einsatzszenario sowohl verlustfreie als auch verlustbehaftete Komprimierungsverfahren (wie beispielsweise das Reduzieren von Bildauflösungen, der Bildqualität, oder des Herausfiltern von optionalen Zusatzinformationen, usw.).An alternative usage arises when, instead of partial header compression, maintaining sub-headers or (sub-) header structures (for example, to support intermediate network components that evaluate these headers) headers of another (for example, those network components supported) protocol. For example, in the event that intermediate routers support the IPv4 protocol, the significantly larger IPv6 headers could be compressed and the compressed information provided with inserted IPv4 headers could be transmitted. In this case, as described previously for IPv4 headers, parts of the contents of the IPv4 header can then optionally be compressed and / or replaced for transmission of other information and / or user data. For use scenarios and depending on the requirements, a combination with a compression of the transmitted user data can also be carried out. Depending on the application scenario, both lossless and lossy compression methods are available (such as reducing image resolution, image quality, or filtering out optional additional information, etc.).
Für einige Einsatzszenarien und Netze bietet sich zudem generell eine Kombination und / oder gemeinsame Nutzung von Komprimierungsverfahren und zusätzlichen Protokoll- Enhancement- Verfahren an. Protokoll-Enhancement- Verfahren gibt es für eine Vielzahl an Protokollen und Zielstellungen und / oder Netzen. Sehr oft eingesetzt werden beispielsweise Protokoll-Enhancement- Verfahren für TCP und / oder HTTP. Dabei werden diese Protokolle entweder beispielsweise für bestimmte Übertragungsabschnitte durch andere Protokolle ersetzt und / oder Protokoll-Parameter in den Endgeräten und / oder den ausgetauschten Datenpaketen modifiziert. Dabei gibt es vielfältige potentielle Zielstellungen für solche Protokoll-Enhancement- Verfahren. Beispielsweise könnte es die Aufgabe eines TCP-Protokoll-Enhancements sein, auch bei hohen Übertragungsverzögerungen und / oder hohen Paketverlustraten eine hohe Übertragungsbandbreite zu ermöglichen und / oder den Protokoll-Overhead, beispielsweise verursacht durch Steuerpakete, gering zu halten. Ähnliche Zielstellungen haben oft HTTP-Protokoll-Enhancements. Bei diesen soll beispielsweise auch die bei Einsatz eines üblichen Internet-Browsers entstehenden Seitenladezeiten auch für Netze mit hohen Übertragungsverzögerungen und / oder hohen Paketverlustraten reduziert werden. Möglichkeiten, dies zu tun, umfassen beispielsweise zwischengeschaltete Proxies und / oder das proaktive Senden von auf Webseiten enthaltenen oder sogar hinter Links folgenden Objekten.In addition, for some application scenarios and networks, a combination and / or common use of compression methods and additional protocol enhancement methods is generally suitable. Protocol enhancement techniques exist for a variety of protocols and objectives and / or networks. Very often used are, for example, protocol enhancement methods for TCP and / or HTTP. These protocols are either replaced for example for certain transmission sections by other protocols and / or modified protocol parameters in the terminals and / or the exchanged data packets. There are many potential targets for such protocol enhancement methods. For example, it may be the task of a TCP protocol enhancement to enable a high transmission bandwidth even with high transmission delays and / or high packet loss rates and / or to keep the protocol overhead, for example caused by control packets, low. Similar goals often have HTTP protocol enhancements. With these, for example, the page load times that arise when using a standard Internet browser should also be reduced for networks with high transmission delays and / or high packet loss rates. Ways to do this include, for example, intermediary proxies and / or proactively sending objects contained on web pages or even behind links.
Das HTTP-Protokoll ist auch ein Beispiel dafür, dass es sehr sinnvoll sein kann, die verschiedenen hier genannten Verfahren zu kombinieren (dabei steht HTTP aber nur stellvertretend für viele Protokolle, auf die dies zutrifft). So setzt HTTP beispielsweise auf TCP und IP auf, es wird also eine relativ große Protokoll-Hierarchie genutzt, für die sich typische Header- Komprimierungs- und partielle Header-Komprimierungs- Verfahren anbieten; die HTTP- Header selbst sind oftmals weitgehend Text-basiert / -codiert. Unter anderem daher könnten für HTTP-Header sowohl typische (auch partielle) Header-Komprimierungs- Verfahren eingesetzt werden. Aber auch wenn man die HTTP-Header mit und / oder ohne die ggf. folgenden Nutzdaten mit einem herkömmlichen Komprimierungsverfahren (wie beispielsweise DE- FLATE) komprimiert (beispielsweise auch optional bzw. abhängig vom Typ der Nutzdaten und / oder davon, ob die Nutzdaten bereits komprimiert sind), können sich signifikante Volumeneinsparungen ergeben. Nicht zuletzt ist HTTP ein Protokoll, für das sich in vielen Netzen Enhancement- Verfahren empfehlen und für das oftmals eine Verschlüsselung nützlich ist.The HTTP protocol is also an example of how it can be very useful to combine the various methods mentioned here (but HTTP is only representative of many protocols that apply to this). For example, HTTP uses TCP and IP, so it uses a relatively large protocol hierarchy, with typical header compression and partial header compression techniques; the HTTP headers themselves are often largely text-based / -coded. Among other things, for HTTP headers both typical (even partial) header compression methods could be used. But even if you use the HTTP header with and / or without the following if necessary User data with a conventional compression method (such as DE-FLATE) compressed (for example, optional or depending on the type of payload and / or whether the payload is already compressed), can result in significant volume savings. Last but not least, HTTP is a protocol for which enhancement procedures are recommended in many networks and for which encryption is often useful.
Jeder dieser genannten Verfahrenstypen (wie Header-Komprimierung, FEC, Nutzdaten- Komprimierung, Protokoll-Enhancement, Verschlüsselung) kann beispielsweise für HTTP in allen in Fig. 1 und 2 genannten Anordnungen eingefügt werden. Dabei könnten die einzelnen Verfahrenstypen unabhängig voneinander realisiert werden, was unter anderem die Flexibilität und / oder Austauschbarkeit erhöht. Eine Realisierung in kombinierten Systemkomponenten und / oder Geräten reduziert jedoch potentiell die Gesamtkomplexität und / oder Konfigurationsaufwände. Nicht zuletzt könnten die einzelnen Verfahrenstypen bei einer ganz / teilweise integrierten Realisierung und / oder bei einer Realisierung bei denen mindestens einzelne Steuerinformationen zwischen den Komponenten der Verfahrenstypen ausgetauscht werden, vereinfacht realisiert und genutzt werden. Beispielsweise kann durch das Verfahrenstyp- übergreifende gemeinsame Nutzen von Statusinformationen und / oder Kontextbezeichnern in einigen Fällen zudem die Menge der über das Netz auszutauschenden Steuerinformationen reduziert und / oder effizienter genutzt werden. In einigen Fällen kann so auch beispielsweise die Zeitspanne zum Aufbauen neuer Verbindungen und / oder des Datenaustausches reduziert werden.Each of these mentioned types of methods (such as header compression, FEC, user data compression, protocol enhancement, encryption) can be inserted, for example, for HTTP in all the arrangements mentioned in FIGS. 1 and 2. In this case, the individual types of process could be implemented independently, which among other things increases the flexibility and / or interchangeability. However, implementation in combined system components and / or devices potentially reduces the overall complexity and / or configuration effort. Last but not least, the individual types of methods could be implemented and used in a simplified manner in a completely / partially integrated realization and / or in a realization in which at least individual control information is exchanged between the components of the method types. For example, in some cases, the sharing of status information and / or context identifiers across methods can, in some cases, reduce and / or more efficiently use the amount of control information to be exchanged over the network. In some cases, for example, the time span for establishing new connections and / or exchanging data can also be reduced.
Ill.b) Erkennung von Komprimierungs-Möglichkeiten / Steuerung der KomprimierungIll.b) Detection of compression possibilities / Control of compression
(i) Vorstehend wurde beschrieben, dass (statisch) Regeln konfiguriert werden können, wie und auf welche Header / Header-Felder eine Header-Kompression angewendet werden kann. Dies erfordert jedoch vorbereitende Arbeiten und ist zudem wenig flexibel beispielsweise gegenüber sich ändernden Netzstrukturen oder entfallener beziehungsweise zusätzlich zwischengeschalteten weiteren Knoten / Netzkomponenten wie etwa Routern.(i) It has been described above that (statically) rules can be configured how and to which header / header fields header compression can be applied. However, this requires preparatory work and is also less flexible, for example, against changing network structures or dropped or additionally interconnected further nodes / network components such as routers.
(ii) Vorteilhaft kann es sein, ergänzend zu und / oder anstelle einer solchen (statischen) Konfiguration ein automatisches Erkennen und Anpassen der möglichen Headerkompression vorzusehen. Ein solcher Mechanismus kann verteilt zwischen zwei oder mehreren Kom- pressoren realisiert sein und / oder einseitig in einen Kompressor. Der Erkennungsmechanismus kann passiv sein (zum Beispiel nur Paketflüsse beobachten) oder aktiv (zum Beispiel selbst Pakete zur Ermittlung der Kompressionsmöglichkeiten aussenden). Der Mechanismus (gleichgültig ob in einem oder in mehreren Kompressoren realisiert) kann die notwendigen Informationen vom Netz (etwa durch Routing-, Middleboxsignalisie- rungsprotokolle wie zum Beispiel RSVP, NSIS, SOCKS, MIDCOM usw. und / oder sonstige Steuerungsprotokolle) und / oder einem Netzmanagement erhalten und / oder sie durch Interaktion zweier oder mehrerer Kompressoren ermitteln. Hinweise können durch initiale und / oder fortlaufende Konfiguration gegeben werden.(ii) It may be advantageous, in addition to and / or instead of such a (static) configuration, to provide automatic detection and adaptation of the possible header compression. Such a mechanism can be distributed between two or more com- be realized pressors and / or one-sided in a compressor. The detection mechanism may be passive (for example, only observe packet flows) or active (for example sending out packets for determining compression possibilities). The mechanism (whether implemented in one or more compressors) can provide the necessary information from the network (such as routing, middle-box signaling protocols such as RSVP, NSIS, SOCKS, MIDCOM, etc. and / or other control protocols) and / or one Maintain network management and / or determine them by interaction of two or more compressors. Hints can be given by initial and / or continuous configuration.
Ein solcher Mechanismus erkennt dynamisch teilweise oder ganz selbständig, welche Header bzw. Header-Felder in eine bestimmte Komprimierung einbezogen werden können. Diese Ermittlung der Kompressionsmöglichkeiten kann im Vorfeld der Inbetriebnahme der Komprimierung, vor / während des Aufbaus einer oder mehrerer Kommunikationsbeziehungen und / oder fortlaufend während der aktiven Komprimierung erfolgen.Such a mechanism dynamically recognizes partially or completely independently which headers or header fields can be included in a particular compression. This determination of the compression possibilities can take place in advance of the startup of the compression, before / during the establishment of one or more communication relationships and / or continuously during the active compression.
Dabei kann es vorteilhaft sein, dass der Mechanismus automatisch auch während des Betriebes Fehler erkennt (zum Beispiel aus der Übertragung oder NichtÜbertragung komprimierter Datenpakete selbst, deren Verlustraten und / oder ihrer sonstigen Übertragungs- charakteristika und daraus Rückschlüsse auf Veränderungen im Übertragungsweg (neue Wegewahl, Hinzufügen eines oder mehrerer weiterer Knoten, Lastverteilung auf mehrere Routen usw.) zieht. Basierend auf diesen Informationen kann der Mechanismus dann die Header-Komprimierung entsprechend anpassen.It may be advantageous that the mechanism automatically detects errors during operation (for example, from the transmission or non-transmission of compressed data packets themselves, their loss rates and / or their other transmission characteristics and conclusions about changes in the transmission path (new routing, Add one or more other nodes, load sharing on multiple routes, etc.) Based on this information, the mechanism may then adjust the header compression accordingly.
Ein solcher Mechanismus kann in verschiedenen Ausprägungen gleichzeitig aktiv sein und auch parallel in Ergänzung und / oder zeitlich versetzt zu einer statischen Konfiguration betrieben werden. Unterschiedliche Ausprägungen (verschiedener dynamischer Ermittlungen und / oder statischer Konfigurationen und / oder Aushandlungen) können gleichzeitig und / oder sequentiell für unterschiedliche Datenpakete einzelner und / oder mehrerer Kommunikationsbeziehungen genutzt werden. Die Identifikation, welche Mechanismen auf welchen (Teile einer) Kommunikationsbeziehung(en) angewendet werden sollen kann wiederum statisch oder dynamisch erfolgen und / oder von den Eigenschaften der Datenpakete und / oder den verwendeten Protokollen und / oder von der Netzlast (gegenwärtig, vergangen, zukünftig erwartet) und / oder von den beobachteten Übertragungseigenschaften (Fehlerrate, Umlaufzeit usw.) abhängig sein.Such a mechanism can be active simultaneously in various forms and can also be operated in parallel in addition and / or offset in time to a static configuration. Different forms (different dynamic determinations and / or static configurations and / or negotiations) can be used simultaneously and / or sequentially for different data packets of individual and / or multiple communication relationships. The identification of which mechanisms should be applied to which (parts of) a communication relationship (s) can in turn be done statically or dynamically and / or by the properties the data packets and / or the protocols used and / or the network load (currently, past, future expected) and / or dependent on the observed transmission characteristics (error rate, orbital period, etc.).
(iii) Insbesondere kann vorgesehen sein, in Ergänzung und / oder anstelle der Konfiguration, welche Felder / Teilfelder in die Kompression einbezogen werden dürfen, aktiv beispielsweise Testpakete nach einem zuvor (statisch oder dynamisch) vereinbarten Schema auszutauschen. So kann durch sukzessives systematisches Testen ermittelt werden, welche Header-Felder komprimiert werden dürfen und welche unverändert vorhanden sein müssen und / oder ob die und / oder welche Teile der einen oder mehreren Paket-Header in ihrer Struktur erhalten bleiben müssen.(iii) In particular, provision may be made for actively exchanging, for example, test packages according to a previously (statically or dynamically) agreed scheme in addition to and / or instead of the configuration as to which fields / subfields may be included in the compression. Thus, it can be determined by successive systematic testing which header fields may be compressed and which must be present unchanged and / or whether the and / or which parts of the one or more packet headers must be preserved in their structure.
(iv) Es kann vorteilhaft sein, dynamisch zu ermitteln, was für Typen von Datenpaketen vorliegen, um die Komprimierung entsprechend anzupassen. So lässt sich beispielsweise durch dynamische Erkennung des Typs eines Datenstroms (beispielsweise eines Multi- mediadatenstroms auf der Basis von RTP) automatisch entscheiden, ob und / oder welche Datenpakete auf welche Weise komprimiert werden sollen. Als Entscheidungsgrundlagen können die technische Machbarkeit (so lassen sich etwa verschlüsselte Pakete weniger gut komprimieren als unverschlüsselte) und / oder die Effizienz der Kompression und / oder der Aufwand (zum Beispiel Rechenleistung, Speicher usw.) dienen.(iv) It may be advantageous to dynamically determine what types of data packets are available to adjust the compression accordingly. For example, by dynamically detecting the type of a data stream (for example, a multimedia data stream based on RTP), it is automatically possible to decide whether and / or which data packets should be compressed in what way. The basis for decision making can be the technical feasibility (for example, encrypted packets can be compressed less well than unencrypted packets) and / or the efficiency of the compression and / or the effort (for example, computing power, memory, etc.).
Es kann vorteilhaft sein, diese beiden (und ggf. weitere) (dynamische und / oder statische) Erkennungs- und / oder Entscheidungsschritte und / oder die Kompression selbst miteinander zu kombinieren.It may be advantageous to combine these two (and possibly further) (dynamic and / or static) recognition and / or decision steps and / or the compression itself with each other.
(v) Natürlich gehen auch Kombinationen aus vorangehender Konfiguration und einer automatischen Erkennung. Dabei könnte beispielsweise vorab eine Unterscheidung pro Protokoll-Header bzw. Header-Feld getroffen werden, ob dieser Teil stets komprimiert werden soll, nie komprimiert werden soll, oder abhängig vom Ergebnis einer automatischen Erkennung komprimiert werden soll.(v) Of course, combinations of previous configuration and automatic detection are also possible. In this case, for example, a distinction could be made in advance per protocol header or header field, whether this part should always be compressed, never compressed, or whether it should be compressed depending on the result of an automatic detection.
Alternativ bzw. in Kombination kann die Kompression abhängig gemacht werden von bestimmten beteiligten Endpunkten und / oder Anwendungen und / oder der Last in den Übertragungsnetzen und / oder auf einzelnen / Gruppen von Übertragungsabschnitten und / oder von verfügbarem Speicher und / oder der CPU- / Prozessorlast der beteiligten Komponenten. Abhängig von einzelnen oder Kombinationen solcher Kriterien kann die Komprimierung ganz / teilweise aktiviert, eingegrenzt und / oder ganz / teilweise deaktiviert werden. Sowohl bei statischer als auch bei dynamischer Kompressions- Entscheidung, kann diese Entscheidung einseitig durch einzelne Komponenten oder Komponenten einer Übertragungsseite getroffen werden oder gemeinsam von mehren beteiligten Komponenten oder auch „nebenstehender" Systemkomponenten wie einem Netzwerkmanagement-System. Dabei ist es auch möglich, Verbindungen zunächst zu komprimieren und während des Fortbestandes der Verbindungen / von Teilen der Verbindungen die Kompression zu beenden (und anders herum bzw. mehrfach wechselnd).Alternatively, or in combination, the compression may be made contingent on certain involved endpoints and / or applications and / or the load in the transmission networks and / or on individual / groups of transmission sections and / or available memory and / or the CPU / processor load of the components involved. Depending on individual or combinations of such criteria, the compression may be fully / partially activated, limited and / or totally / partially disabled. In both static and dynamic compression decisions, this decision can be made unidirectionally by individual components or components of a transmission side, or shared by multiple involved components or even "adjacent" system components such as a network management system to compress and terminate the compression (and vice versa) during the continuity of the connections / parts of the connections.
III.c) Verschachtelte oder inkrementelle KomprimierungIII.c) Nested or Incremental Compression
(i) Die obigen Beschreibungen sind für die Mitte-zu-Mitte-Kompression zunächst davon ausgegangen, dass die vom Kompressor (zum Beispiel X-I) zu komprimierenden Datenpakete als nicht-komprimierte („ursprüngliche") Datenpakete vorliegen (beziehungsweise haben die obigen Beschreibungen nicht weiter unterschieden, ob die eingehenden Datenpakete bereits in einer Form komprimiert sind). Entsprechend rekonstruiert auch der De- kompressor (zum Beispiel X-2) die nicht-komprimierten Datenpakete ganz oder in wesentlichen Teilen. Die Anwendung der oben beschriebenen Verfahren ist jedoch nicht auf nicht komprimierte Pakete beschränkt.(i) The above descriptions for center-to-center compression are initially based on assuming that the data packets to be compressed by the compressor (eg, XI) are non-compressed ("original") data packets (respectively) Furthermore, the decompressor (for example X-2) reconstructs the non-compressed data packets in whole or in substantial parts, but the application of the methods described above is not performed limited to uncompressed packages.
(ii) Liegt eine Netztopologie entsprechend einer Struktur wie in Fig. 1 e) dargestellt vor, dann sind die Pakete, die von der dortigen Komprimierung C2 zu bearbeiten sind, vorher bereits (teilweise oder ganz) durch die Komprimierung Cl komprimiert worden.(ii) If there is a network topology corresponding to a structure as shown in Fig. 1 (e), then the packets to be processed by the local compression C2 have already been (partially or wholly) compressed by the compression C1.
Genauso könnte beispielsweise eine Anwendung oder ein Endpunkt bereits (Header-)komprimierte Datenpakete generieren. (Im Falle einer VoIP Anwendung könnten dies beispielsweise, wie in [9] beschrieben, komprimierte RTP Header sein, wobei die darunter liegenden UDP und IP Header gemäß [9] unkomprimiert geblieben sein könnten. In diesen Fällen, kann eine innere Komprimierung als ergänzende und / oder ersetzende Komprimierung vorgenommen werden.Similarly, for example, an application or endpoint could already generate (header) compressed data packets. (In the case of a VoIP application, for example, as described in [9], these could be compressed RTP headers, whereas the underlying UDP and IP headers could have remained uncompressed according to [9]. In these cases, internal compression can be done as supplemental and / or replacement compression.
Die innere Komprimierung kann ergänzend sein, indem weitere Header und / oder Header-Felder, die vielleicht auf dem betreffenden Übertragungsnetz (N-X2 im Fall von Fig. Ie) bei der Übertragung eingespart werden können, in einem geschachtelten Kompressionsschritt komprimiert werden.The internal compression may be complementary by compressing further headers and / or header fields, which may perhaps be saved on the relevant transmission network (N-X2 in the case of Fig. Ie) in the transmission, in a nested compression step.
Die Komprimierung kann ersetzend sein, wenn vor der erneuten Komprimierung zunächst eine Dekomprimierung erfolgt, etwa weil mehrere Header- oder Header-Felder dann effizienter gemeinsam komprimiert werden können.Compression may be a replacement if decompression is performed before recompression, for example, because multiple header or header fields can then be compressed more efficiently together.
Ergänzende und ersetzende Komprimierung können gleichzeitig und / oder zeitlich abwechselnd aktiv sein.Supplementary and substitute compression may be active simultaneously and / or at different times.
Von der äußeren Komprimierung nicht erkannte und / oder nicht komprimierte Datenpakete können von der inneren Komprimierung erfasst werden und umgekehrt.Data packets not recognized by the external compression and / or uncompressed data packets can be detected by the internal compression and vice versa.
In allen Fällen kann die Erkennung komprimierter Datenpakete und die Erkennung der noch zu komprimierenden Header-Informationen wiederum statisch konfiguriert und / oder dynamisch ermittelt werden und / oder durch Interaktionen mit den an der Komprimierung beteiligten oder externen Komponenten erhalten werden.In all cases, the detection of compressed data packets and the recognition of the header information to be compressed can in turn be statically configured and / or dynamically determined and / or obtained through interactions with the components involved in the compression or external.
Die einzelnen Komprimierungen können sich - wie oben bereits beschrieben - auf einzelne Pakete und / oder Paketfolgen und / oder alle Pakete einer und / oder eine Gruppe von Kommunikationsbeziehungen beziehen. Sie können auch in zeitlicher Abfolge unterschiedlich angewendet werden.The individual compressions can-as described above-relate to individual packets and / or packet sequences and / or all packets of one and / or a group of communication relationships. They can also be applied differently in chronological order.
Eine „innere" Komprimierung kann in einigen Ausgestaltungen beispielsweise auf die Kontextbezeichner der „äußeren" Komprimierung zurückgreifen, um so beispielsweise das Datenvolumen weiter zu reduzieren und / oder die Komplexität und / oder Steuerinformationen der inneren Komprimierung zu reduzieren. Beispielsweise kann für Multimedia-Datenpakete, die RTP nutzen, eine innere Komprimierung CRTP-Header in den eingehenden Datenpaketen erkennen und dann besonders effizient die in der äußeren Komprimierung noch beibehaltenen UDP- und IP-Header ganz oder teilweise komprimieren (beispielsweise indem die innere Komprimierung die Kontextbezeichner / Flow-ID der äußeren Komprimierung nutzt und die im UDP-, IP- Header zu komprimierenden Informationen ganz oder teilweise in den durch die Kontextbezeichner referenzierten Kontext einbezieht). Eine solche Schachtelung kann sich rekursiv fortsetzen oder auch sequentiell ähnlich zu Fig. Id) fortsetzen.For example, in some embodiments, "inner" compression may use the context specifiers of "outer" compression, for example, to further reduce the volume of data and / or reduce the complexity and / or control of internal compression. For example, for multimedia data packets that use RTP, internal compression can detect CRTP headers in the incoming data packets, and then most or all partially or completely compress the UDP and IP headers retained in the outer compression (eg, by using internal compression) Uses context identifier / outer compression flow ID and includes all or part of the information to be compressed in the UDP, IP header in the context referenced by the context identifiers). Such nesting may continue recursively or may continue sequentially similar to FIG. Id).
(iv) Alternativ kann eine innere Komprimierung aber auch weniger Header und / oder Header-Felder komprimieren (beispielsweise, wenn in einem inneren Übertragungsnetz zwischengeschaltete Komponenten eingesetzt werden, die eine Komprimierung bestimmter Header und / oder Header-Felder erlauben).(iv) Alternatively, however, internal compression may also compress fewer headers and / or header fields (for example, if intermediate components are used in an internal transmission network that allow for compression of particular headers and / or header fields).
Aber auch eine Reduzierung des Umfangs einer inneren Komprimierung oder gar das vollständige Aufheben einer Komprimierung für beispielsweise Volumen-Abrechnungsund / oder Monitoring- und / oder vereinfachte Abhörzwecke und / oder Aufzeichnungszwecke ist denkbar. Alternativ könnten für alle oder einige dieser Zwecke auch die eigentlichen übertragenen Endsysteme unverändert bleiben und zusätzlich ein Datenstrom aus unkomprimierten Daten erzeugt werden. Auch kann es in einigen Fällen (u.a. abhängig von den verwendeten Komprimierungsverfahren) vorteilhaft sein, wenn die auf einer äußeren Komprimierung eingesetzten Komprimierungs- Verfahren zusätzliche Steuerinformationen an innere (De-)Komprimierungs-Komponenten senden bzw. mit diesen austauschen.But also a reduction of the extent of internal compression or even the complete cancellation of compression for example, volume billing and / or monitoring and / or simplified Abhörzwecke and / or recording purposes is conceivable. Alternatively, for all or some of these purposes, the actual transmitted end systems could remain unchanged and additionally a data stream of uncompressed data could be generated. Also, in some cases (including, but not limited to, the compression methods used), it may be advantageous for the compression methods employed on an external compression to send or exchange additional control information to internal (de) compression components.
Auch das Einfügen von Datenverschlüsselung alternativ bzw. zusätzlich bzw. in Kombination mit Komprimierungs- Verfahren ist - oft auch unabhängig von deren verschachtelten bzw. inkrementellen Einsatz - möglich. Und auch beim Einsatz von Datenverschlüs- selungs- Verfahren kann es unter anderem abhängig vom Einsatzzweck, den verwendeten Verfahren und den Zielstellungen, vorteilhaft sein, Steuerinformationen mit inneren Komponenten beispielsweise zum Ermöglichen einer Entschlüsselung auszutauschen. Ill.d) Header-Komprimierung bei Punkt-zu-Mehrpunkt-KommunikationThe insertion of data encryption alternatively or additionally or in combination with compression methods is - often independent of their nested or incremental use - possible. And even with the use of data encryption methods, it may be advantageous inter alia, depending on the purpose, the methods used and the objectives, to exchange control information with internal components, for example, to enable decryption. Ill.d) Header compression for point-to-multipoint communication
(i) Wie oben beschrieben, muss die Komprimierung von Protokoll-Headern nicht auf eine Strecke zwischen zwei Kompressoren beschränkt sein, sondern kann auch mehr als zwei Kompressoren umfassen. Dabei sind grundsätzlich zwei Arten der Kommunikation möglich, die durch das unterliegende Netz vorgegeben sein können (aber nicht müssen): a) unidirektional von genau einem Knoten S an viele Knoten Rl, ..., Rn (n > 1) ohne dass die Knoten Rl , ..., Rn die Möglichkeit haben, auch Pakete an den Knoten S zu senden; b) bidirektional, so dass die Übertragung von Paketen von den Knoten Rl, ..., Rn an den Knoten S möglich ist. Im Fall b) können die Pakete von den den Knoten Rl, ..., Rn an den Knoten S nur Steuerpakete sein und / oder auch komprimierte Datenpakete. Im letzteren Fall kann noch unterschieden werden, ob eine, mehrere oder alle der Knoten Rl, ..., Rn Steuer- und / oder Datenpakete senden können. Jeder Knoten Ri, der auch (komprimierte) Datenpakete sendet, fungiert dann gleichermaßen als sendender Knoten S.(i) As described above, the compression of protocol headers need not be limited to a distance between two compressors, but may include more than two compressors. In principle, two types of communication are possible, which can be (but do not have to) be defined by the underlying network: a) unidirectionally from exactly one node S to many nodes Rl, ..., Rn (n> 1) without the nodes Rl, ..., Rn have the possibility to also send packets to the node S; b) bidirectional, so that the transmission of packets from the nodes Rl, ..., Rn to the node S is possible. In case b), the packets from the nodes Rl, ..., Rn to the node S can only be control packets and / or also compressed data packets. In the latter case, it is also possible to distinguish whether one, several or all of the nodes R 1,..., R n can send control and / or data packets. Each node Ri, which also sends (compressed) data packets, then acts equally as a sending node S.
(ii) Auch in einem solchen Netz soll entsprechend der vorliegenden Erfindung (wie vorstehend unter A, B und / oder C ausgeführt) komprimiert werden können. Entsprechend des Standes der Technik für traditionelle Header-Kompression ist jedoch ein gemeinsames Verständnis zwischen Kompressor und Dekompressor erforderlich, das fortlaufend abgeglichen wird - was naturgemäß eine 1 : 1 -Beziehung zwischen Kompressor und Dekompressor annimmt. Sobald jedoch mehrere Dekompressoren komprimierte Datenpakete eines Kompressors erhalten, was im vorliegenden Szenario der Fall ist, geht diese 1 :1- Beziehung verloren.(ii) Also in such a network according to the present invention (as stated above under A, B and / or C) should be able to be compressed. However, prior art traditional header compression requires a common understanding between the compressor and the decompressor, which is continually adjusted - which naturally assumes a 1: 1 relationship between compressor and decompressor. However, once multiple decompressors receive compressed data packets from a compressor, which is the case in the present scenario, that 1: 1 relationship is lost.
Die vorliegende Erfindung ist auch für den Einsatz von Header-Kompression in der Punkt-zu-Mehrpunkt-Kommunikation (wie sie beispielsweise in einem Satelliten- oder terrestrischen Broadcastnetz vorliegt) geeignet. Dieselben Kompressionstechniken können angewendet werden.The present invention is also suitable for the use of header compression in point-to-multipoint communication (such as exists in a satellite or terrestrial broadcast network). The same compression techniques can be used.
Allerdings ist zu oftmals berücksichtigen, dass die Dekompressoren zum Beispiel in (oder „hinter") den Knoten Rl, ..., Rn unterschiedliche Fähigkeiten haben können und dass die Übertragungswege zu den verschiedenen Dekompressoren unterschiedliche Eigenschaften aufweisen können. Ein Kompressor sollte dann den wichtigen, der Mehrzahl und / oder allen Dekompressoren eine Dekomprimierung der komprimierten Datenpakete ermöglichen. Dies kann dadurch geschehen, dass der Kompressor Verfahren und Header / Header-Felder zur Kompression wählt, welche für alle intendierten Dekompressoren geeignet sind. Und / oder der Kompressor kann unterschiedlich komprimierte Datenpakete an einzelne Dekompressoren und / oder Gruppen von Dekompressoren senden, die spezifisch für den / die jeweiligen Übertragungsweg und / oder Dekompressor geeignet sind. Und / oder der Kompressor kann zusätzliche Information (in bestehenden und / oder weiteren Daten- und / oder Steuerpaketen) an einzelne und / oder Gruppen von Dekompressoren (und / oder Knoten den Übertragungsnetzen) senden, um eine erfolgreiche Weiterleitung und Dekomprimierung der Datenpakete zu ermöglichen.However, it is too often taken into account that the decompressors may have different capabilities in (or "behind") the nodes R1, ..., Rn, and that the transmission paths to the different decompressors may have different characteristics , the majority and / or all decompressors allow a decompression of the compressed data packets. This can be done by the compressor selecting methods and header / header fields for compression that are appropriate for all intended decompressors. And / or the compressor may send differently compressed data packets to individual decompressors and / or groups of decompressors that are specific to the particular transmission path and / or decompressor. And / or the compressor may send additional information (in existing and / or other data and / or control packets) to individual and / or groups of decompressors (and / or nodes to the transmission networks) to allow successful forwarding and decompression of the data packets ,
Da in IP -Netzen Datenpakete verloren werden können (etwa durch Bitfehler oder Überlast), ist es möglich, dass einem, mehreren oder allen Dekompressoren Informationen für die korrekte Dekomprimierung eines Datenpaketes fehlen. In einem solchen Fall ist vorgesehen, dass ein Dekompressor dem Kompressor mitteilt (so bidirektionale Kommunikation direkt über die gleichen oder indirekt über teilweise oder ganz verschiedene Übertragungsnetze möglich ist), dass Informationen fehlen. Der Kompressor kann entscheiden, ob und wann er zur Rekonstruktion der fehlenden Informationen (des Kontexts) weitere Informationen in bestehenden und / oder zusätzlichen Daten- und / oder Steuerpaketen überträgt. Diese Entscheidung kann abhängig von der Kommunikationsbeziehung (Art der Daten, Dauer, usw.) und / oder von dem / den fraglichen Dekompressor(en) und / oder der Anzahl der Dekompressoren, die diese Informationen benötigen und / oder sonstigen Konfigurationsinformationen und / oder Vorgaben und / oder den allgemeinen und / oder aktuellen Übertragungseigenschaften des Netzes geschehen. Alternativ oder ergänzend kann ein Kompressor auch in regelmäßigen oder unregelmäßigen Abständen redundante Informationen zur evtl. Rekonstruktion des Kontexts übermitteln, beispielsweise durch Einsatz von FEC, wobei die Bitrate für die redundanten Informationen je nach Netz, vermuteter oder realer Netzlast, angenommener oder beobachteter Bit- und / oder Paketfehlerrate oder durch Konfiguration oder durch Signalisierung eines Netzmanagementsystems über die Zeit variieren kann.Since data packets can be lost in IP networks (eg due to bit errors or overload), it is possible that one, several or all decompressors lack information for the correct decompression of a data packet. In such a case, it is envisaged that a decompressor will notify the compressor (so bidirectional communication is possible directly through the same or indirectly via partially or completely different transmission networks) that information is missing. The compressor may decide if and when to transmit further information in existing and / or additional data and / or control packets to reconstruct the missing information (context). This decision may depend on the communication relationship (type of data, duration, etc.) and / or on the decompressor (s) in question and / or the number of decompressors that need this information and / or other configuration information and / or specifications and / or the general and / or current transmission characteristics of the network. Alternatively or additionally, a compressor may also transmit at regular or irregular intervals redundant information for the eventual reconstruction of the context, for example by using FEC, the bit rate for the redundant information depending on the network, assumed or real network load, assumed or observed bit and or packet error rate or by configuration or by signaling a network management system over time.
Es können einer oder mehrere oder alle der Dekompressoren in der Lage sein, Feedback über fehlende Informationen und / oder den Kontext und / oder das lokale Wissen (Zu- stand) an den Kompressor zu senden. In einem solchen Fall kann es vorteilhaft sein, dass nicht alle möglichen Dekompressoren dies auch tun, zum Beispiel um zu vermeiden, dass der Kompressor oder der rückwärtige Übertragungsweg mit zu vielen Informationen überlastet wird. Statt dessen kann beispielsweise ein oder mehrere Dekompressoren als designierte Dekompressoren einer Gruppe oder aller Dekompressoren ausgewählt werden; nur diese designierten Dekompressoren liefern dann Feedback stellvertretend für die jeweilige Gruppe oder alle Empfänger. Nicht alle Dekompressoren müssen durch designierte Dekompressoren vertreten werden.One or more or all of the decompressors may be able to provide feedback on missing information and / or context and / or local knowledge. stand) to the compressor to send. In such a case, it may be advantageous that not all possible decompressors do so, for example, to avoid overloading the compressor or the rearward transmission path with too much information. Instead, for example, one or more decompressors may be selected as designated decompressors of a group or of all decompressors; only these designated decompressors provide feedback on behalf of the respective group or all recipients. Not all decompressors must be represented by designated decompressors.
Die Auswahl der designierten Dekompressoren kann statisch festgelegt sein und / oder dynamisch ausgehandelt werden (zum Beispiel kann der Kompressor die Dekompressoren bestimmen) und / oder aufgrund der Übertragungscharakteristika zu den Dekompressoren festgelegt werden und / oder durch die funktionalen Eigenschaften (Leistungsmerkmale) der Dekompressoren und / oder die Eigenschaften bezüglich der komprimierbaren Header und / oder Header-Felder auf dem jeweiligen Übertragungsweg; in allen diesen Fällen kann auch eine Zufallskomponente (echte Zufallszahlen, Pseudo- Zufallszahlen, kryptographisch errechnete Funktionen) benutzt werden, um die tatsächliche Auswahl weiter einzuschränken. Verschiedene Dekompressoren können dabei anhand eines oder mehrerer dieser Kriterien auch jeweils spezifische Teile der für den Kompressor nützlichen Feedback- Information senden. Sowohl bezüglich eines oder mehrerer der Kriterien als auch bezüglich der jeweils übertragenen Untermengen kann die Auswahl dauerhaft und / oder bis zu einer expliziten Neukonfiguration erfolgen und / o- der zeitlich variieren. Die Auswahl kann für alle vom Kompressor übertragenen Pakete gelten und / oder für die Pakete einzelner Kommunikationsbeziehungen und / oder Gruppen von Kommunikationsbeziehungen und / oder für durch ihren Typ und / oder sonstige Eigenschaften bestimmte Pakete gelten.The selection of the designated decompressors may be static and / or dynamically negotiated (for example, the compressor may determine the decompressors) and / or determined based on the transfer characteristics to the decompressors and / or by the functional characteristics (characteristics) of the decompressors and / or or the characteristics relating to the compressible headers and / or header fields on the respective transmission path; in all these cases, a random component (true random numbers, pseudo-random numbers, cryptographically-calculated functions) can also be used to further constrain the actual selection. Various decompressors can also send specific parts of the feedback information useful for the compressor based on one or more of these criteria. With regard to one or more of the criteria as well as with respect to the respectively transferred subsets, the selection can be made permanently and / or up to an explicit reconfiguration and / or vary in time. The selection may apply to all packets transmitted by the compressor and / or to the packets of individual communication relationships and / or groups of communication relationships and / or to packets determined by their type and / or other characteristics.
(iii) Ein solches Verfahren lässt sich beispielsweise über ein terrestrisches Funknetz (etwa DVB-T, DVB-H, WLAN, WiMAX, Mobilfunk wie GSM, UMTS, HS(D)PA, LTE, UWB, OFDM usw.) einsetzen. Es lässt sich auch über beliebige Satellitennetze, Funknetze im Weltraum usw. einsetzen. Ebenfalls einsetzbar ist es in kabelgebundenen Broadcast-Netzen (wie Kabelnetze, DSL, Fibre-to-the-Home, Ethernet usw.). Diese Netze können einzeln oder in beliebiger Kombination zum Broadcast genutzt werden. Wie bereits beschrieben kann mit allen Komprimierungen eine vollständige und / oder teilweise Verschlüsselung der Informationen einhergehen. Dabei können beispielsweise auch die zur Identifikation (einzelner) Kommunikationsbeziehungen genutzten Kontextbezeichner und Kontextinformationen kryptografisch erzeugt sein, so dass sich beispielsweise einem zwischengeschalteten un-autorisierten Empfänger noch nicht einmal erschließt, welche Pakete beispielsweise einer Kommunikationsbeziehung zuzuordnen sind. Ebenso können kryptogra- fische Informationen zur Authentisierung / Autorisierung oder auch Priorisierung von Feedback-Informationen dienen.(iii) Such a method can be used, for example, via a terrestrial radio network (such as DVB-T, DVB-H, WLAN, WiMAX, mobile radio such as GSM, UMTS, HS (D) PA, LTE, UWB, OFDM, etc.). It can also be used over any satellite networks, radio networks in space, etc. It can also be used in wired broadcast networks (such as cable networks, DSL, fiber-to-the-home, Ethernet, etc.). These networks can be used individually or in any combination for broadcasting. As previously described, all compression may be accompanied by complete and / or partial encryption of the information. In this case, for example, the context identifiers and context information used for identifying (individual) communication relationships can also be produced cryptographically, so that, for example, an intermediary unauthorized recipient does not even discover which packets are to be assigned, for example, to a communication relationship. Cryptographic information can also be used to authenticate / authorize or prioritize feedback information.
Die in der vorstehenden Beschreibung, den Ansprüchen und der Zeichnung offenbarten Merkmale der Erfindung können sowohl einzeln als auch in beliebiger Kombination für die Verwirklichung der Erfindung in ihren verschiedenen Ausführungsformen von Bedeutung sein. The features of the invention disclosed in the foregoing description, in the claims and in the drawing may be of importance both individually and in any combination for the realization of the invention in its various embodiments.

Claims

Ansprüche claims
1. Verfahren zum Optimieren einer Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten, wobei das Verfahren die folgenden Schritte umfasst:A method for optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
- Bereitstellen einer Kommunikationsbeziehung zwischen einem Kommunikationsendpunkt und einem weiteren Kommunikationsendpunkt, wobei für die Kommunikationsbeziehung eine paketorientierte Datenübertragung vorgesehen ist, bei der ein Datenstrom ausgetauschte Datenpakete umfassend gebildet wird,Provision of a communication relationship between a communication end point and a further communication end point, a packet-oriented data transmission being provided for the communication relationship in which a data stream is comprehensively formed by exchanged data packets,
- Bereitstellen einer Optimiereranordnung, die mit mindestens einem Optimierer gebildet wird, undProviding an optimizer arrangement formed with at least one optimizer, and
- Ausführen eines Optimierungsmechanismus, welcher die folgenden Schritte umfasst:Execute an optimization mechanism comprising the following steps:
- Absenden einer Namensauflösungsanfrage betreffend eine dem weiteren Kommunikationsendpunkt in dem Netz zugeordnete Adresse durch den Kommunikationsendpunkt,Sending a name resolution request concerning an address assigned to the further communication end point in the network by the communication endpoint,
- Empfangen und Auswerten der Namensauflösungsanfrage durch die Optimiereranordnung,Receiving and evaluating the name resolution request by the optimizer arrangement,
- Erzeugen einer oder mehrerer Antwortnachrichten auf die Namensauflösungsanfrage durch die Optimiereranordnung undGenerating one or more response messages to the name resolution request by the optimizer arrangement and
- Übersenden der einen oder der mehreren Antwortnachrichten an den Kommunikationsendpunkt, wobei die eine oder die mehreren AntwortnachrichtTransmitting the one or more response messages to the communication endpoint, wherein the one or more response messages
- frei von der Adresse ist und- is free from the address and
- eine einen Wartezustand für den Kommunikationsendpunkt initiierende Wartenachricht und / oder eine Pseudo-Adresse umfasst, welche von der Optimiereranordnung lokal ausgewählt und von der dem weiteren Kommunikationsendpunkt zugeordneten Adresse verschieden ist,a waiting message for the communication endpoint initiating waiting message and / or a pseudo-address comprises, which is selected locally by the optimizer arrangement and different from the further communication endpoint associated address,
- Initiieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt.Initiate the packet-oriented data transmission between the communication endpoint and the further communication endpoint.
2. Verfahren nach Anspruch 1 dadurch g e k e n n z e i c h n e t, dass das Verfahren die folgenden weiteren Schritte umfasst - Ermitteln der dem weiteren Kommunikationsendpunkt zugeordneten Adresse durch die Optimiereranordnung,2. The method according to claim 1, characterized in that the method comprises the following further steps Determining the address assigned to the further communication end point by the optimizer arrangement,
- Erzeugen eines im Rahmen der paketorientierten Datenübertragung von dem Kommunikationsendpunkt zu dem weiteren Kommunikationsendpunkt zu übertragenden Datenpaketes durch den Kommunikationsendpunkt unter Einbeziehung der PseudoAdresse,Generating a data packet to be transmitted in the course of the packet-oriented data transmission from the communication end point to the further communication end point by the communication endpoint including the pseudoaddress,
- Empfangen des Datenpaketes durch die Optimiereranordnung,Receiving the data packet by the optimizer arrangement,
- Ersetzen der Pseudo-Adresse in dem Datenpaket durch die dem weiteren Kommunikationsendpunkt zugeordneten Adresse und- Replacing the pseudo-address in the data packet by the further communication endpoint associated address and
- Senden des Datenpaketes mit der dem weiteren Kommunikationsendpunkt zugeordneten Adresse von der Optimiereranordnung an den weiteren Kommunikationsendpunkt.- Sending the data packet with the further communication endpoint associated address from the optimizer arrangement to the other communication endpoint.
3. Verfahren zum Optimieren einer Datenübertragung zwischen Kommunikationsendpunkten in einem Netz mit Kommunikationsendpunkten, wobei das Verfahren die folgenden Schritte umfasst:A method for optimizing data transmission between communication endpoints in a network having communication endpoints, the method comprising the steps of:
- Ausbilden einer Kommunikationsbeziehung zwischen einem Kommunikationsendpunkt und einem weiteren Kommunikationsendpunkt, wobei die Kommunikationsbeziehung für eine paketorientierte Datenübertragung konfiguriert wird, bei der ein Datenstrom ausgetauschte Datenpakete umfassend gebildet wird,Forming a communication relationship between a communication endpoint and another communication endpoint, wherein the communication relationship is configured for a packet-oriented data transmission in which a data stream is comprehensively formed exchanged data packets,
- Bereitstellen einer der Kommunikationsbeziehung zugeordneten Optimiereranordnung, die mit wenigstens einem Optimierer gebildet wird, undProviding an optimizer arrangement associated with the communication relationship, which is formed with at least one optimizer, and
- Optimieren der paketorientierten Datenübertragung zwischen dem Kommunikationsendpunkt und dem weiteren Kommunikationsendpunkt, indem mittels der Optimiereranordnung im Rahmen eines Optimierungsmechanismus für die paketorientierte Datenübertragung Informationen über ein Kommunikationsverhalten des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes bei einem zukünftigen Namensauflösungsprozess bereitgestellt werden.Optimizing the packet-oriented data transmission between the communication endpoint and the further communication endpoint by providing information about a communication behavior of the communication endpoint and / or the further communication endpoint in a future name resolution process by means of the optimizer arrangement as part of an optimization mechanism for the packet-oriented data transmission.
4. Verfahren nach Anspruch 3, dadurch g e k e n n z e i c h n e t, dass das Bereitstellen der Informationen über das Kommunikationsverhalten bei dem zukünftigen Namensauflösungsprozess wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst: - Analysieren einer oder mehrerer Namensdienstanfragen und -antworten auf Hinweise auf zukünftige Namensdienstanfragen,4. The method of claim 3, wherein providing the information about the communication behavior in the future name resolution process comprises at least one step selected from the following group of steps: Analyze one or more name service requests and responses for indications of future name service requests
- passives Überwachen der Kommunikationsbeziehung,- passive monitoring of the communication relationship,
- Interpretieren des Inhalts eines ausgewählten Datenaustausches des Datenstromes,Interpreting the content of a selected data exchange of the data stream,
- Bestimmen eines von dem Kommunikationsendpunkt und / oder dem weiteren Kommunikationsendpunkt genutzten Anwendungsprotokolls aus einer Namensdienstanfrage und Verwenden des bestimmten Anwendungsprotokolls durch die Optimiereranordnung undDetermining an application protocol used by the communication endpoint and / or the further communication endpoint from a name service request and using the particular application protocol by the optimizer arrangement and
- Ausbilden eines Datendienst-Zwischensystems, welches konfiguriert ist, in der Optimiereranordnung lokale Datensätze zur Vorhersage von Anfragen des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes zu erzeugen.- Forming a data service subsystem, which is configured to generate in the optimizer arrangement local data records for the prediction of requests of the communication endpoint and / or the further communication endpoint.
5. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung Schritte zum Erzeugen von mehreren Anfragen durch die Optimiereranordnung und zum Synthetisieren von Antworten zu den Anfragen in einer Antwort an den Kommunikationsendpunkt und / oder den weiteren Kommunikationsendpunkt umfasst.The method of claim 3 or 4, characterized in that optimizing the packet-oriented data transmission comprises steps of generating multiple requests by the optimizer arrangement and synthesizing responses to the requests in a response to the communication endpoint and / or the further communication endpoint.
6. Verfahren nach mindestens einem der Ansprüche 3 bis 5, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung ein Schritt zum Vorhersagen einer zukünftigen Anfrage des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes umfasst.6. The method according to at least one of claims 3 to 5, characterized in that optimizing the packet-oriented data transmission comprises a step for predicting a future request of the communication endpoint and / or the further communication endpoint.
7. Verfahren nach mindestens einem der Ansprüche 3 bis 6, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Vorabstellen einer zu erwartenden Anfrage des Kommunikationsendpunktes und / oder des weiteren Kommunikationsendpunktes umfasst.7. The method according to at least one of claims 3 to 6, characterized in that the optimizing the packet-oriented data transmission comprises a step for Vorabstellen an expected request of the communication endpoint and / or the further communication endpoint.
8. Verfahren nach mindestens einem der Ansprüche 3 bis 7, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Austauschen von Informationen zwischen Optimierern der Optimiereranordnung umfasst, wobei ein Optimierer Namensauflösungsinformationen oder -antworten an einen anderen Optimierer und / oder einen Namensdienstserver und / oder einen Kommunikationsendpunkt übermittelt, bevor dieser eine entsprechende Anfrage gestellt hat.The method of at least one of claims 3 to 7, characterized in that optimizing the packet-oriented data transmission comprises a step of exchanging information between optimizers of the optimizer arrangement, wherein an optimizer provides name resolution information or responses to one other optimizer and / or a name service server and / or communication endpoint before it has made a request.
9. Verfahren nach mindestens einem der Ansprüche 3 bis 8, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:9. The method according to claim 3, wherein optimizing the packet-oriented data transmission comprises at least one step selected from the following group of steps:
- eine Datendienstoptimierung,- a data service optimization,
- eine Beobachtung eines Datendienstes undan observation of a data service and
- Parsieren zumindest eines Datenpakets eines Datendienstes.- Parsing at least one data packet of a data service.
10. Verfahren nach mindestens einem der Ansprüche 3 bis 9, dadurch gekennzeichnet, dass beim Optimieren der paketorientierten Datenübertragung weiterhin mindestens einer der Schritte aus den Ansprüchen 1 und 2 vorgesehen ist.10. The method according to at least one of claims 3 to 9, characterized in that when optimizing the packet-oriented data transmission further at least one of the steps of claims 1 and 2 is provided.
11. Verfahren nach Anspruch 1 , 2 oder 10, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:11. The method of claim 1, 2 or 10, characterized in that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Auswählen einer lokal, regional oder global gültigen Adresse als Pseudo-Adresse,Selecting a locally, regionally or globally valid address as a pseudo-address,
- Auswählen einer zufällig gewählten Adresse als Pseudo-Adresse,Selecting a randomly chosen address as a pseudo-address,
- Auswählen einer Adresse aus einem reservierten Adressbereich als Pseudo-Adresse,Selecting an address from a reserved address range as a pseudo-address,
- Auswählen einer vorübergehend oder dauerhaft gültigen Adresse als Pseudo-Adresse und- Selecting a temporary or permanent valid address as a pseudo-address and
- Bestimmen einer Gültigkeitsdauer der Pseudo-Adresse.Determining a validity period of the pseudo-address.
12. Verfahren nach mindestens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung weiterhin wenigstens einen Schritt ausgewählt aus der folgenden Gruppe von Schritten umfasst:12. The method according to at least one of the preceding claims, characterized in that optimizing the packet-oriented data transmission further comprises at least one step selected from the following group of steps:
- Pro-aktives Ermitteln einer Antwort auf eine zukünftig erwartete Namensdienstanfrage,Proactively determining a response to a future expected name service request;
- Stellen einer erwarteten Anfrage bei einem regulären Namensdienstserver durch den Optimierer,Providing an expected request to a regular name service server by the optimizer,
- Beantworten der durch regulären Namensdienstserver gestellten bzw. weitergeleiteten erwarteten Anfrage durch den oder einen anderen Optimierer, - Mitteilung einer geeigneten Gültigkeitsdauer für die Antwort durch den beantwortenden Optimierer an den regulären Namensdienstserver.Responding to the expected request made by regular name service servers by the or another optimizer, Notification of a suitable validity period for the response by the answering optimizer to the regular name service server.
13. Verfahren nach mindestens einem der vorangegangen Ansprüche, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Unterdrücken von Folgeanfragen umfasst.13. The method according to at least one of the preceding claims, characterized in that optimizing the packet-oriented data transmission comprises a step for suppressing subsequent requests.
14. Verfahren nach mindestens einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung einen Schritt zum Wiederholen von verloren gegangenen Anfragen oder Antworten und/oder des redundanten Übertragens von zumindest einem Paket der Anfragen und/oder Antworten oder das Ersetzen von mindestens einem Paket der Anfragen und/oder Antworten durch mindestens ein semantisch ähnliches, gleichbedeutendes und/oder äquivalentes Paket mit oder ohne zeitlicher Verzögerung umfasst.14. A method according to at least one of the preceding claims, characterized in that optimizing the packet-oriented data transmission comprises a step of repeating lost requests or responses and / or redundantly transmitting at least one packet of the requests and / or responses or replacing at least a packet of the requests and / or responses by at least one semantically similar, equivalent and / or equivalent packet with or without time delay.
15. Verfahren nach mindestens einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung weiterhin die folgenden Schritte umfasst:15. The method according to at least one of the preceding claims, characterized in that optimizing the packet-oriented data transmission further comprises the following steps:
- Bestimmen, ob eine Störung oder Unterbrechung der paketorientierten Datenübertragung bezüglich der Optimieranordnung in einem dem Kommunikationsendpunkt zugeordneten Kommunikationspfad oder in einem dem weiteren m dem Kommunikationsendpunkt zugeordneten Kommunikationspfad zu erwarten ist, undDetermining whether a disruption or interruption of the packet-oriented data transmission with respect to the optimizing arrangement is to be expected in a communication path assigned to the communication endpoint or in a communication path assigned to the further communication endpoint, and
- Anpassen des Optimierungsmechanismus an den bestimmten Kommunikationspfad.- Adapting the optimization mechanism to the particular communication path.
16. Verfahren nach mindestens einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass das Optimieren der paketorientierten Datenübertragung kombiniert mit wenigstens einem Schritt aus der folgenden Gruppe von Schritten ausgeführt wird:16. The method according to at least one of the preceding claims, characterized in that the optimization of the packet-oriented data transmission is performed combined with at least one step from the following group of steps:
- Performance-Enhancement- Verfahren,- performance enhancement method,
- Datenkomprimieren,- data compression,
- Header-Kompression,- header compression,
- Datenverschlüsseln und- Encrypt data and
- Datentranskodieren. - Data transcoding.
17. Verfahren nach mindestens einem der vorangehenden Ansprüche, dadurch g e k e n n z e i c h n e t, dass das Optimieren der paketorientierten Datenübertragung kombiniert mit den folgenden Schritten ausgeführt wird:17. The method according to claim 1, characterized in that the optimization of the packet-oriented data transmission is carried out in combination with the following steps:
- Erkennen einer Optimierungsmöglichkeit für die paketorientierte Datenübertragung,Recognition of an optimization possibility for the packet-oriented data transmission,
- Auswählen einer von einem Optimierungsmechanismus umfassten Optimierung für die paketorientierte Datenübertragung undSelecting an optimization for packet-oriented data transmission, which is included in an optimization mechanism, and
- Anwenden der ausgewählten Optimierung für die paketorientierte Datenübertragung.- Apply the selected optimization for the packet-oriented data transmission.
18. Computerprogramm-Produkt mit Programmcode, welcher wahlweise auf einem computerlesbaren Speichermedium gespeichert ist und geeignet ist, beim Ablauf auf einer Rechenvorrichtung ein Verfahren nach mindestens einem der vorangehenden Ansprüche auszuführen. 18. Computer program product with program code, which is optionally stored on a computer-readable storage medium and is suitable for executing on a computing device a method according to at least one of the preceding claims.
PCT/DE2010/000583 2009-05-25 2010-05-25 Method for optimizing a packet-oriented data transmission and computer program product WO2010136023A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102009022499.8 2009-05-25
DE102009022499 2009-05-25
DE102009034357.1 2009-07-17
DE102009034357 2009-07-17

Publications (2)

Publication Number Publication Date
WO2010136023A1 true WO2010136023A1 (en) 2010-12-02
WO2010136023A8 WO2010136023A8 (en) 2011-02-17

Family

ID=42829370

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2010/000583 WO2010136023A1 (en) 2009-05-25 2010-05-25 Method for optimizing a packet-oriented data transmission and computer program product

Country Status (1)

Country Link
WO (1) WO2010136023A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103037466A (en) * 2012-12-17 2013-04-10 南京理工大学连云港研究院 Delay tolerant network (DTN) routing strategy under light-weight infantry combat brigade scene
DE102016223533A1 (en) 2016-11-28 2018-05-30 Audi Ag Method for transmitting messages between control units of a motor vehicle and switch device and motor vehicle
CN110213330A (en) * 2019-04-28 2019-09-06 北京奇艺世纪科技有限公司 Pre- supplying system, method, apparatus, electronic equipment and computer-readable medium
CN113891310A (en) * 2020-07-03 2022-01-04 华为技术有限公司 Cooperative communication method, user equipment and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1533982A2 (en) * 2003-11-19 2005-05-25 The Directv Group, Inc. System and method for pre-fetching secure content in a proxy architecture via transparent secure connections
EP1559038A2 (en) 2002-11-06 2005-08-03 Tellique Kommunikationstechnik GmbH Method for the pre-transmission of structured data amounts between a client device and a server device
EP1718034A1 (en) * 2005-04-25 2006-11-02 Thomson Multimedia Broadband Belgium Process for managing resource address requests and associated gateway device
US20080225728A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for providing virtual fair queueing of network traffic

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1559038A2 (en) 2002-11-06 2005-08-03 Tellique Kommunikationstechnik GmbH Method for the pre-transmission of structured data amounts between a client device and a server device
EP1533982A2 (en) * 2003-11-19 2005-05-25 The Directv Group, Inc. System and method for pre-fetching secure content in a proxy architecture via transparent secure connections
EP1718034A1 (en) * 2005-04-25 2006-11-02 Thomson Multimedia Broadband Belgium Process for managing resource address requests and associated gateway device
US20080225728A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for providing virtual fair queueing of network traffic

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
BORMANN ET AL.: "IETF RFC 3095", ROBUST HEADER COMPRESSION (ROHC): FRAMEWORK FOR FOUR PROFILES: RTP, UDP, ESP, AND UNCOMPRESSED., July 2001 (2001-07-01)
CASNER ET AL.: "IETF RFC 2508", COMPRESSING IP/UDP/RTP HEADERS FOR LOW-SPEED SERIAL LINKS, February 1999 (1999-02-01)
E. RESCORLA: "IETF RFC 2818", HTTP OVER TLS, May 2000 (2000-05-01)
KOREN ET AL.: "IETF RFC 3544", IP HEADER COMPRESSION OVER PPP, July 2003 (2003-07-01)
KOREN ET AL.: "IETF RFC 3545", ENHANCED COMPRESSED RTP (CRTP) FOR LINKS WITH HIGH DELAY, PACKET LOSS AND REORDERING, July 2003 (2003-07-01)
R. FIELDING; J. GETTYS: "IETF RFC 2616", HYPERTEXT TRANSFER PROTOCOL - HTTP/1.1, June 1999 (1999-06-01)
RODRIIGUEZ P ET AL: "Session Level Techniques for Improving Web Browsing Performance on Wireless Links", PROCEEDINGS OF THE 13TH INTERNATIONAL CONFERENCE ON WORLD WIDE WEB, 17 May 2004 (2004-05-17) - 22 May 2004 (2004-05-22), XP040180034 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103037466A (en) * 2012-12-17 2013-04-10 南京理工大学连云港研究院 Delay tolerant network (DTN) routing strategy under light-weight infantry combat brigade scene
DE102016223533A1 (en) 2016-11-28 2018-05-30 Audi Ag Method for transmitting messages between control units of a motor vehicle and switch device and motor vehicle
WO2018095604A1 (en) 2016-11-28 2018-05-31 Audi Ag Method for transmitting messages between controllers of a motor vehicle, and switch apparatus and motor vehicle
US10771282B2 (en) 2016-11-28 2020-09-08 Audi Ag Method for transmitting messages between control units of a motor vehicle, and switch apparatus, and motor vehicle
CN110213330A (en) * 2019-04-28 2019-09-06 北京奇艺世纪科技有限公司 Pre- supplying system, method, apparatus, electronic equipment and computer-readable medium
CN110213330B (en) * 2019-04-28 2023-02-03 北京奇艺世纪科技有限公司 Pre-push system, method, device, electronic equipment and computer readable medium
CN113891310A (en) * 2020-07-03 2022-01-04 华为技术有限公司 Cooperative communication method, user equipment and system

Also Published As

Publication number Publication date
WO2010136023A8 (en) 2011-02-17

Similar Documents

Publication Publication Date Title
US10021034B2 (en) Application aware multihoming for data traffic acceleration in data communications networks
US10158742B2 (en) Multi-stage acceleration system and method
US7894364B2 (en) Method for the transmission of data packets in a tunnel, corresponding computer program product, storage means and tunnel end-point
US8335858B2 (en) Transparent auto-discovery of network devices logically located between a client and server
Alani Guide to OSI and TCP/IP models
EP2774340B1 (en) Unobtrusive content compression in a telecommunications network
Fairhurst et al. Services provided by IETF transport protocols and congestion control mechanisms
US20070064618A1 (en) Method of forming protocol data units, protocol data units and protocol data unit generation apparatus
DE202021103381U1 (en) Computer readable medium and systems for implementing a regionally contiguous proxy service
DE102015004668A1 (en) DIVISIONAL NETWORK ADDRESS TRANSLATION
JP2010504688A (en) Method and module for implementing network protocol stack handoff and optimization
EP2385682B1 (en) Method for optimising packet-oriented data transmission and computer program product
US7543072B1 (en) Method and system capable of performing a data stream over multiple TCP connections or concurrent interleave of multiple data streams over multiple TCP connections
WO2010136023A1 (en) Method for optimizing a packet-oriented data transmission and computer program product
JP2005520374A (en) Changes to TCP / IP
Al-Qudah et al. Anycast-aware transport for content delivery networks
EP3136684B1 (en) Multicast transmission using programmable network
JP2009015392A (en) Communication device and communication method
US20140334502A1 (en) System and method for relaying data based on a modified reliable transport protocol
JP4292884B2 (en) Real-time data communication system, real-time data communication apparatus, and real-time data communication method
Shamieh et al. Dynamic cross-layer signaling exchange for real-time and on-demand multimedia streams
JP2002077263A (en) Transmitting/receiving method
EP2802117B1 (en) A system and method for relaying data based on a modified reliable transport protocol
Bilski Network performance issues in IP transition phase
US7787368B1 (en) In-network per packet cashes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10735179

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 1120100021155

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10735179

Country of ref document: EP

Kind code of ref document: A1