SE523862C2 - A method and apparatus for transmitting data packets in IP routers - Google Patents

A method and apparatus for transmitting data packets in IP routers

Info

Publication number
SE523862C2
SE523862C2 SE0201346A SE0201346A SE523862C2 SE 523862 C2 SE523862 C2 SE 523862C2 SE 0201346 A SE0201346 A SE 0201346A SE 0201346 A SE0201346 A SE 0201346A SE 523862 C2 SE523862 C2 SE 523862C2
Authority
SE
Sweden
Prior art keywords
context
router
packet
session context
session
Prior art date
Application number
SE0201346A
Other languages
Swedish (sv)
Other versions
SE0201346L (en
SE0201346D0 (en
Inventor
Jan Berglund
Stefan Gabrielsson
Johan Gerhardsson
Ingela Noeteberg
Dusan Stevanovic
Johan Svedberg
Original Assignee
Operax Ab
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
Priority claimed from SE0103495A external-priority patent/SE0103495D0/en
Application filed by Operax Ab filed Critical Operax Ab
Priority to SE0201346A priority Critical patent/SE523862C2/en
Publication of SE0201346D0 publication Critical patent/SE0201346D0/en
Priority to PCT/SE2002/001889 priority patent/WO2003034670A1/en
Priority to EP02778157A priority patent/EP1444812A1/en
Publication of SE0201346L publication Critical patent/SE0201346L/en
Publication of SE523862C2 publication Critical patent/SE523862C2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2491Mapping quality of service [QoS] requirements between different networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/286Time to live
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • 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/08Protocols for interworking; Protocol conversion
    • H04L69/085Protocols for interworking; Protocol conversion specially adapted for interworking of IP-based networks with other networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method and apparatus for transferring data packets over a router (100) comprising interface units (106) and a switchingunit (108). It is determined whether a received data packetbelongs to an existing session context by comparing extractedheader information with any session contexts stored in the router. In that case, a header translation is applied for thepacket according to the existing session context duringtransfer through the router from an ingress unit to an egress unit. Otherwise, a new session context is createdincluding selecting a header translation scheme to be used for further packets of the new session. The new session context is stored in the router together with a context IDassigned to the new session context. In this way, processingwork and delays are reduced in the router when transferring data packets, thereby enabling a high data throughput.

Description

' šüzïßš '_":'"Z .I .'. . _ 2 omkopplare, nätportar, routrar och gränssnitt. Därför kan individuella datapaket hos en kommunikationssession överföras med olika fördröjningar och även över olika routrar. När de tas emot vid sin slutstation ordnas paketen i korrekt sekvensordning och den kodade informationen i datapaketen kan avkodas, t ex för att presenteras eller spelas upp för en användare vid mottagarsidan. De sändande och mottagande parterna kan var och en innefatta nagon typ av ändstation, såsom fasta eller mobila telefoner, datorer, servrar, spelstationer, TVset etc. 'šüzïßš' _ ": '" Z .I.'. . _ 2 switches, mains ports, routers and interfaces. Therefore, individual data packets of a communication session can be transmitted with different delays and also over different routers. When they are received at their terminal, the packets are arranged in the correct sequence order and the coded information in the data packets can be decoded, for example to be presented or played to a user at the receiving side. The transmitting and receiving parties may each include some type of terminal, such as fixed or mobile telephones, computers, servers, gaming stations, TV sets, etc.

Sasom nämnts ovan överförs datapaket typiskt över ett flertal olika nät. Routrar är öveföringsnoder, antingen i nät eller sammankopplande olika nät för att hantera trafik däremellan. Internetprotokollet (IP) används i stor utsträckning idag som en överföringsstandard för kommunikation i och mellan nät. Därmed överförs datapaket typiskt över en eller flera lP-rotitrexr i en transmissionsväg under en kommunikationssession.As mentioned above, data packets are typically transmitted over a number of different networks. Routers are transmission nodes, either in networks or interconnecting different networks to handle traffic between them. The Internet Protocol (IP) is widely used today as a transmission standard for communication in and between networks. Thus, data packets are typically transmitted over one or more IP rotitrexes in a transmission path during a communication session.

Förutom att helt enkelt ta emot och vidarebefordra datapaket utför också en IP- router andra aktiviteter säsom säkerhetskontroll, paketplanering och adress- och protokollöversättningar. Till exempel kan IP-routern bestämma om den ska vidarebefordra ett inkommande paket eller inte baserat pä förutbestämda regler och Säkerhetspolicy. Till exempel sä kan det vid sä kallade domänkantsroutrar kontrolleras att ett dataflöde som gär in i en fördefinierad domän inte överträder nagra överenskommelser eller reserveringar.In addition to simply receiving and forwarding data packets, an IP router also performs other activities such as security checking, packet planning, and address and protocol translations. For example, the IP router can decide whether or not to forward an incoming packet based on predefined rules and security policies. For example, in the case of so-called domain edge routers, it can be checked that a data fate that goes into a predefined domain does not violate any agreements or provisions.

Det kan ocksa vara nödvändigt att använda planeringsmekanismer för att multiplexera flera inkommande paket fran olika kommunikationssessioner över delade överföringsresurser, t ex baserat pä servicekvalité-(QOS = Quality of Service)- policys och prioritetsklassificeringar. Olika sessioner kan därmed ha olika krav beträffande fördröjningar och/ eller datahastighet och klassificeras i enlighet med det. Slutanvändarabonnemang kan också ha olika QoS-klasser.It may also be necessary to use planning mechanisms to multiplex your incoming packets from different communication sessions over shared transmission resources, for example based on quality of service (QOS) policies and priority classifications. Different sessions may thus have different requirements regarding delays and / or data speeds and be classified accordingly. End-user subscriptions can also have different QoS classes.

Ytterligare adress och protokollöversättningar av paketen kan vara nödvändiga att utföra när olika protokoll eller adressutrymmen används av tvä sammankopplade nät. Till exempel kan översättning krävas mellan privata och publika adressutrymmen enligt IP-version 4 eller mellan IP-version 4 och IP-version 6- domäner. u . . - . .u - . - . n.Additional address and protocol translations of the packets may be necessary when different protocols or address spaces are used by two interconnected networks. For example, translation may be required between private and public address spaces according to IP version 4 or between IP version 4 and IP version 6 domains. u. . -. .u -. -. n.

~ Q . - .u 523 862 3 Alla dessa aktiviteter i IP-routerii kräver emellertid väsentliga behandlingsresurser och kan också begränsa datakapacitethastigheten. Speciellt om många eller alla av funktionema beskrivna ovan utförs för varje enskilt inkommande datapaket av flera Sessioner kan behandlingsresursema som finns tillgängliga i IP-routem eventuellt inte vara tillräckliga. Om så kallad bredbandsåtkomst används i stor utsträckning kommer i princip alla överförda paket att kräva dessa funktioner.~ Q. - .u 523 862 3 However, all these activities in IP routers require significant processing resources and may also limit the data capacity speed. Especially if many or all of the functions described above are performed for each individual incoming data packet of your Sessions, the processing resources available in the IP router may not be sufficient. If so-called broadband access is used to a large extent, in principle all transmitted packets will require these functions.

Därmed finns det ett stort behov av en enkel och mer effektiv lösning som reducerar överföringsbelastning, behandlingsarbete och fördröjningar i routern och samtidigt i grund och botten uppfyller krav på t ex åtkomst, säkerhet och QoS.Thus, there is a great need for a simple and more efficient solution that reduces transmission load, processing work and delays in the router and at the same time basically meets requirements for eg access, security and QoS.

SAMMANFATTNINGEN AV UPPFINNINGEN Det är ett syfte med uppfinningen att övervinna nackdelarna som beskrivits ovan och att uppnå en hög datakapacitet och reducerad behandlingsbelastning likväl som tillfórsäkrad kvalité och säkerhet av paketdataöverföringar i IP-routrar. Dessa och andra syften uppnås genom en enkel lösning för att överföra datapaket över en router mellan en sändande ändstation och en mottagande ändstation. Paket från den sändande ändstationen tas emot i en ingångsenhet vid en första gränssnittsenhet i routern och paket sänds från en utgångsenhet vid en andra gränssnittsenhet till den mottagande ändstationen. Routern innefattar vidare en omkopplingsenhet för att överföra paket mellan de första och andra gränssnittsenheterna.SUMMARY OF THE INVENTION It is an object of the invention to overcome the disadvantages described above and to achieve a high data capacity and reduced processing load as well as to ensure the quality and security of packet data transmissions in IP routers. These and other objects are achieved by a simple solution for transmitting data packets over a router between a transmitting terminal and a receiving terminal. Packets from the transmitting terminal are received in an input unit at a first interface unit in the router and packets are transmitted from an output unit at a second interface unit to the receiving terminal. The router further includes a switching unit for transmitting packets between the first and second interface units.

När ett datapaket tas emot från den sändande ändstationen vid ingångsenheten extraheras information frän ett huvud i paketet. Att extrahera huvudinformationen kan innefatta att beräkna en haschnyckel från data i huvudfälten såsom en kontrollsumma. Den extraherade huvudinformationen kan också innefatta verkligt data i huvudfälten.When a data packet is received from the transmitting terminal at the input unit, information is extracted from a header in the packet. Extracting the master information may include calculating a hash key from data in the master fields as a checksum. The extracted master information may also include actual data in the master fields.

Det avgörs om det mottagna datapaketet tillhör ett existerande sessionskontext, som beskriver interna aktiviteter i routern, genom att jämföra den extraherade huvudinformationen med något existerande sessionskontext lagrat i routern. Till exempel kan en beräknad haschnyckel jämföras med en motsvarande haschnyckel av något lagrat sessionskontext. Om I":š":š š:".'"Z. .å 4 paketet tillhör ett existerande sessionskontext appliceras en huvudöversättning för paketet under överföring genom routern frän ingangsenheten till utgangsenheten enligt ett valt översättningsschema för det existerande sessionskontextet. Vid huvudöversättningen ersätts huvudet med ett modifierat och väsentligen reducerat huvud innefattande ett kontext-ID tilldelat det existerande sessionskontextet. Det modifierade huvudet kan vidare innefatta dynamiska huvudfält och ett TTL-(Time to Live = tid att leva)-fält. Efter överföring genom routern kan huvudet aterskapas vid utgangsenheten genom att använda det valda översättningsschemat och genom att hämta det lagrade sessionskontextet som matchar paketet baserat pa det tilldelade kontext-ID innan paketet sänds ut mot den mottagande ändstationen.It is determined whether the received data packet belongs to an existing session context, which describes internal activities in the router, by comparing the extracted main information with any existing session context stored in the router. For example, a calculated hash key can be compared to a corresponding hash key of any stored session context. Om I ": š": š š: ". '" Z. If the packet belongs to an existing session context, a master translation of the packet is applied during transmission through the router from the input unit to the output unit according to a selected translation schedule for the existing session context. At the main translation, the header is replaced with a modified and substantially reduced header including a context ID assigned to the existing session context. The modified header may further include dynamic main fields and a TTL (Time to Live) field. After transmission through the router, the header can be recreated at the output device using the selected translation schedule and by retrieving the stored session context that matches the packet based on the assigned context ID before sending the packet to the receiving terminal.

Om det mottagna datapaketet inte tillhör ett existerande sessionskontext skapas ett nytt sessionskontext innefattande att välja ett översättningsschema som ska användas för att applicera en huvudöversättning för ytterligare paket av den nya sessionen. Sessionskarakteristika kan sen bestämmas fran det mottagna paketet baserat pa information extraherad fran pakethuvudet och pä förutbestämda regler eller policys. Sessionskarakteristikan kan innefatta nagon /nagra av: en käll-IP- adress, en destinations-IP-adress, ett kommunikationsprotokoll, en krävd QOS, ett källportnummer och ett destinationsportsnummer. Det nya sessionskontextet kan vidare innefatta tagna beslut beträffande vidarebefordring, atkomststyrning, QOS och adres- eller protokollöversättningar. Det skapade sessionskontextet lagras sen tillsammans med ett kontext-ID tilldelat sessionen som en nyckel.If the received data packet does not belong to an existing session context, a new session context is created including selecting a translation schedule to be used to apply a master translation for additional packets of the new session. Session characteristics can then be determined from the received packet based on information extracted from the packet header and on predetermined rules or policies. The session characteristics may include any of: a source IP address, a destination IP address, a communication protocol, a required QOS, a source port number, and a destination port number. The new session context may also include decisions made regarding forwarding, access control, QOS and address or protocol translations. The created session context is then stored together with a context ID assigned to the session as a key.

Att skapa det nya sessionskontextet innefattar att ta ett vidarebefordñngsbeslut genom att kontrollera om paketet tilläts att överföras baserat pa förutbestämda policys och om nagon väg till dess destination existerar fran routern.Creating the new session context involves making a forwarding decision by checking if the packet was allowed to transfer based on predetermined policies and if any path to its destination exists from the router.

Att skapa det nya sessionskontextet innefattar vidare att definiera kontextdeskriptorer som beskriver karakteristika av datasessionen.Creating the new session context further involves designing context descriptors that describe the characteristics of the data session.

Kontextdeskriptorerna innefattar det valda huvudöversattningsschemat och vilken/vilka som helst av: huvudmallar, ett vidarebefordringsbeslut och identifikationer pa ingangs- och utgangsenheter i routern som ska användas under sessionen. Kontextdeskriptorerna kan definieras separat för ursprungliga och avslutande gränssnittsenheter hos routern och kan vidare definieras separat för . - . . .fi - . . - -. 523 862 5 ingangs- och utgàngsenheterna i var och en av de ursprungliga respektive avslutande gränssnittsenheterna.The context descriptors include the selected master translation scheme and any of: main templates, a forwarding decision and identifications of input and output devices in the router to be used during the session. The context descriptors can be defined separately for the original and final interface devices of the router and can be further defined separately for. -. . .fi -. . - -. 523 862 5 the input and output units of each of the original and final interface units, respectively.

Uppfinningen omfattar ett förfarande och en router som har medel för att utföra förfarandet. Uppfinningsförfarandet kan vidare utföras med hjälp av ett dataprogram innefattande en mjukvarakod som är anpassad att utföra förfarandet i en router.The invention comprises a method and a router having means for performing the method. The inventive method can further be performed by means of a computer program comprising a software code adapted to perform the method in a router.

KORT BESKRIVNING AV RITNINGARNA Föreliggande uppfinning kommer nu att beskrivas i mer detalj och med referens till de bifogade ritningarna i vilka: Figur 1 är en schematisk vy av ett exempel pä ett kommunikationsscenario för att överföra data.BRIEF DESCRIPTION OF THE DRAWINGS The present invention will now be described in more detail and with reference to the accompanying drawings in which: Figure 1 is a schematic view of an example of a communication scenario for transmitting data.

Figur 2 är en mer detaljerad vy av en router.Figure 2 is a more detailed view of a router.

Figur 3 är en schematisk illustration av ett exempel på ett datapaket.Figure 3 is a schematic illustration of an example of a data packet.

Figur 4 är ett flödesschema av en procedur för att ta emot datapaket i en router.Figure 4 is a flow chart of a procedure for receiving data packets in a router.

Figur 5 är ett flödesschema av den första delen av en procedur för att skapa ett nytt sessionskontext när ett första paket mottas.Figure 5 is a flow chart of the first part of a procedure for creating a new session context when a first packet is received.

Figur 6 är ett flödesschema av den andra delen av en procedur för att skapa det nya sessionskontextet.Figure 6 is a fate diagram of the second part of a procedure for creating the new session context.

Figur 7 är en schematisk illustration av de ursprungliga och avslutande sidorna hos en router.Figure 7 is a schematic illustration of the original and final pages of a router.

BESKRIVNING Av FÖREDRAGNA UTFÖRINGSFORMER Figur 1 är en överblick av ett exempel av ett kommunikationsscenario ivilket uppfinningsförfarandet och apparaten för att överföra datapaket kan . . . . .n 52s 862 - . ~ « . .- 6 implementeras. En router 100 ansluter ett flertal olika nåt 102 för att möjliggöra kommunikation mellan ändstationer 104 som är anslutna till dessa. Routern 100 kan kommunicera datapaket i olika format mellan en mängd olika ändstationer eller terminaler sasom fasta eller mobila telefoner, datorer, spelstationer, servrar etc. Vidare kan näten 102 innefatta nagon typ av kommunikationsnät sasom mobila eller fasta nät, privata eller publika nät, backbone IP-(Internet Protocol)-nät, Internet etc.DESCRIPTION OF PREFERRED EMBODIMENTS Figure 1 is an overview of an example of a communication scenario in which the inventive method and apparatus for transmitting data packets may. . . . .n 52s 862 -. ~ «. .- 6 implemented. A router 100 connects a plurality of different nodes 102 to enable communication between terminals 104 connected thereto. The router 100 may communicate data packets in various formats between a variety of terminals or terminals such as fixed or mobile telephones, computers, gaming stations, servers, etc. Furthermore, the networks 102 may include any type of communication network such as mobile or fixed networks, private or public networks, backbone IP - (Internet Protocol) network, Internet etc.

En första ändstation 104A är ansluten till ett första nät 102A och en andra ändstation l04B är ansluten till ett andra nät 102B. Routern innefattar ett antal nätgränssnittsenheter 106 av vilka gränssnittsenhet l06A är ansluten till det första nätet 102A och gränssnittsenhet 106B är ansluten till det andra nätet 102B.A first terminal 104A is connected to a first network 102A and a second terminal 104B is connected to a second network 102B. The router includes a plurality of network interface units 106, of which interface unit 106A is connected to the first network 102A and interface unit 106B is connected to the second network 102B.

Gränssnittsenheterna 106A, 106B är ocksa anslutna i routern 100 med hjälp av en omkopplingsenhet 108. Detta är en förenklad routerstruktur och i verkligheten kan ytterligare omkopplare och/ eller länkar vara involverade, vilka inte är visade här för enkelhets skull.The interface units 106A, 106B are also connected in the router 100 by means of a switching unit 108. This is a simplified router structure and in reality additional switches and / or links may be involved, which are not shown here for simplicity.

I figur 1 visas endast fyra gränssnittsenheter 106 och nät 102 men routern 100 kan naturligtvis innefatta vilket antal som helst av gränssnittenheter anslutna till vilket antal som helst av nät. Varje gränssnittsenhet 106 kan ocksa vara ansluten till ett eller flera nät 102 och kan verka antingen som en ursprungspaketsbehandlingsenhet eller som en avslutningspaketsbehandlingsenhet beroende pa vilka nät de ursprungliga och avslutande ändstationerna är anslutna till respektive, d v s fran vilken sida en kommunikationssession är initierad.Figure 1 shows only four interface units 106 and networks 102, but the router 100 may, of course, include any number of interface units connected to any number of networks. Each interface unit 106 may also be connected to one or more of the networks 102 and may act either as an original packet processing unit or as a termination packet processing unit depending on which networks the original and terminating terminals are connected to, i.e. from which side a communication session is initiated.

I detta exempel initierar den första ändstationen 104A en paketdatasession genom att sända ett första datapaket adresserat till den andra ändstationen l04B. Det första datapaketet kommer att följas av ytterligare paket under sessionen. Det första datapaketet kan innefatta en tjänsteförfragan till en server, ett första block eller en ram av taldata fran en telefon, ett första clatablock för videostrearning fran en server för att bara nämna några exempel.In this example, the first terminal 104A initiates a packet data session by sending a first data packet addressed to the second terminal 104B. The first data packet will be followed by additional packets during the session. The first data packet may comprise a service request to a server, a first block or frame of voice data from a telephone, a first clata block for video streaming from a server to name just a few examples.

Enligt definition är da den första ändstationen 104A den ursprungliga ändstationen och därmed kommer gränssnittsenheten l06A som tar emot det första datapaketet - - . . .n ---- .- 523 362 7 att verka som en ursprungspaketsbehandlingsenhet. Följaktligen är den andra ändstationen 104B den avslutande ändstationen och gränssnittsenheten 106B kommer att verka som en avslutningspaketsbehandlingsenhet. Senare kommer en ny session att initieras i den motsatta riktningen vilket omkastar rollerna beskrivna OVQD.By definition, then, the first terminal 104A is the original terminal, and thus comes the interface unit 106A which receives the first data packet. . .n ---- .- 523 362 7 to act as an origin packet processing unit. Accordingly, the second end station 104B is the terminating terminal and the interface unit 106B will act as a termination packet processing unit. Later, a new session will be initiated in the opposite direction, which reverses the roles described OVQD.

För varje pågående datasession som kommuniceras över routern 100 skapas ett sessionskontext och lagras i routern 100 vilket definierar parametrar som giltiga fór sessionen. Når det första datapaketet tas emot fran den första ändstationen lO4A extraherar gränssnittsenheten 106A information från ett huvud i paketet och upptäcker att paketet inte tillhör någon existerande session genom att jämföra den extraherade huvudinformation med något lagrat sessionskontext. Ett nytt sessionskontext skapas därför och lagras i routern 100 baserat pa informationen i huvudet och pa förbestämda regler eller policys.For each ongoing data session communicated over the router 100, a session context is created and stored in the router 100 which defines parameters that are valid for the session. When the first data packet is received from the first terminal station 104A, the interface unit 106A extracts information from a header in the packet and detects that the packet does not belong to an existing session by comparing the extracted main information with any stored session context. A new session context is therefore created and stored in the router 100 based on the information in the header and on predetermined rules or policies.

Att skapa ett nytt sessionskontext involverar ett antal beslut som tas baserat på det första mottagna paketet dä det tagna besluten inkluderas i det lagrade sessionskontextet. Dessa beslut tas med hänsyn till fördefinierade regler eller policys som kan vara lagrade i ursprungsingångsenheten respektive avslutningsutgångsenheten. Alternativt kan regler tas emot från en separat och gemensam styrenhet som ibland refereras till som en applikationslagernätport (Application Layer Gateway = ALG) som övervakar styrsignaler överförda mellan ändstationerna 104A, 1048 innan sessionen startas. ALGn lägger till relevanta regler till de berörda gränssnittsenheterna som sen kan ta nödvändiga beslut enligt de tillförda reglerna.Creating a new session context involves a number of decisions that are made based on the first received packet where the decisions made are included in the stored session context. These decisions are made with regard to predefined rules or policies that may be stored in the source input unit and the output output unit, respectively. Alternatively, rules may be received from a separate and common controller which is sometimes referred to as an Application Layer Gateway (ALG) which monitors control signals transmitted between the terminals 104A, 1048 before starting the session. The ALG adds relevant rules to the interface units concerned, which can then make the necessary decisions according to the added rules.

Beslut som ska tas kan innefatta något eller nagra av: - vidarebefordringsbeslut som kan baseras på routingtabeller - ätkomststyrningsbeslut som kan vara baserade på fördefinierade säkerhetspolicys - QoS-beslut med hänsyn till t ex prioritetklassificeringar och paketplanering och - adress eller protokollöversättningsbeslut. 523 862 När ytterligare paket för den initierade sessionen tas emot efter det första paketet behöver sadana beslut inte tas eller hämtas för varje mottaget paket eftersom besluten lagrade i kontextet görs giltiga genom att bara detektera att ett paket tillhör det lagrade sessionskontextet. Detta kommer att spara väsentligt behandlingsarbete och reducera fördröjningar i routern lOO. En liknande procedur beskrivs i sökandens tidigare svenska patentansökan 0100708-7 där en dataström initieras baserat pà strömkarakteristika bestämt från ett första mottaget datapaket.Decisions to be made may include one or more of: - forwarding decisions that can be based on routing tables - access control decisions that can be based on predefined security policies - QoS decisions with regard to eg priority classifications and package planning and - address or protocol translation decisions. 523 862 When additional packets for the initiated session are received after the first packet, such decisions do not need to be made or retrieved for each received packet because the decisions stored in the context are made valid by simply detecting that a packet belongs to the stored session context. This will save significant processing work and reduce delays in the router 100. A similar procedure is described in the applicant's previous Swedish patent application 0100708-7 where a data stream is initiated based on current characteristics determined from a first received data packet.

För att ytterligare förenkla överföringen av datapaket i routern tillämpas en huvudöversättning för varje paket under överföring genom routern vilket kommer att beskrivas nedan. Genom att använda huvudöversättning kan huvudstorleken reduceras väsentligt och därmed reducera bandbredd och behandlingsbehov internt i routern sa att genomströmningshastigheten kan ökas och fördröjningar kan reduceras.To further simplify the transmission of data packets in the router, a main translation is applied for each packet during transmission through the router, which will be described below. By using head translation, the head size can be significantly reduced and thereby reduce bandwidth and processing needs internally in the router so that the throughput speed can be increased and delays can be reduced.

Figur 2 illustrerar komponenter i routern 100 i figur 1 som är involverade i kommunikation av datapaket mellan ändstationerna lO4A och lO4B. Var och en av gränssnittsenheterna 106A och 106B innefattar en ingängsenhet 2OOAi, 2OOBi en utgängsenhet 20OAe, 200Be respektive en styrenhet 202A, 202B. Det bör noteras att figur 2 endast är en logisk illustration och de funktionella komponenterna 2OOAi, Bi, 20OAe, Be och 202A, B kan fysiskt vara implementerade som separata eller kombinerade processelement. Till exempel kan styrenheterna 202A, B vara implementerade i separata processorer eller en gemensam processor antingen belägen i nagon av gränssnittsenheterna lO6A, B eller någon annanstans. Vidare kan ingängs- och utgángsenheterna hos varje gränssnitsenhet l06A och 106B vara en och samma enhet som tar olika roller beroende pä riktningen för kommunicerade paket.Figure 2 illustrates components of the router 100 in Figure 1 that are involved in communication of data packets between the terminals 104A and 104B. Each of the interface units 106A and 106B comprises an input unit 200Ai, 20OBi an output unit 20OAe, 200Be and a control unit 202A, 202B, respectively. It should be noted that Figure 2 is only a logical illustration and the functional components 200Ai, Bi, 20OAe, Be and 202A, B may be physically implemented as separate or combined process elements. For example, the controllers 202A, B may be implemented in separate processors or a common processor either located in any of the interface units 106A, B or elsewhere. Furthermore, the input and output units of each interface unit 106A and 106B may be one and the same unit taking on different roles depending on the direction of communicated packets.

I en exempelprocedur tas datapaket emot frän den första ändstationen 104A vid ingängsenheten QOOAi hos gränssnittsenheten 106A. De mottagna paketen är ämnade att gä till den andra ändstationen lO4B. Figur 3 illustrerar schematiskt ett exempel på ett inkommande datapaket 300 som innefattar ett huvud 302 med olika huvudfält 304-314 innefattande information om datasessionen. I detta exempel innefattar huvudfälten bland annat ett käll-IP-adressfält 304, ett destinations-IP- . . . . .. 523 862 ' . ~ . . » - - . . - m. 9 adressfält 306, ett kommunikationsprotokollsfält 308, ett fält 310 för begärd QoS.In an exemplary procedure, data packets are received from the first terminal 104A at the input unit QOOAi of the interface unit 106A. The received packets are intended to go to the other terminal station 104B. Figure 3 schematically illustrates an example of an incoming data packet 300 comprising a header 302 with different header fields 304-314 including information about the data session. In this example, the main fields include a source IP address field 304, a destination IP. . . . .. 523 862 '. ~. . »- -. . m. 9 address field 306, a communication protocol field 308, a field 310 for requested QoS.

Beroende pa protokollet innefattar huvudet vidare i detta fall ett källportsnummersfält 312 och ett destinationsportsnummerfält 314. Datapaketen innefattar också ett nyttolastdatafalt 316 förutom huvudet 302. De ovan beskrivna huvudfälten är typiskt inkluderade i varje paket för en session.Depending on the protocol, the header further comprises in this case a source port number field 312 and a destination port number field 314. The data packets also include a payload data field 316 in addition to the header 302. The main fields described above are typically included in each packet for a session.

Med referens till flödesschemat i figur 4 opererar ingängsenheten 200Ai enligt följande procedur när den tar emot datapaket. I ett första steg 400 tar ingangsenheten 200Ai emot ett datapaket fran ändstation 104A och extraherar information fran ett huvud däri för att matcha paketet med nagot existerande och lagrat sessionskontext i ett nästa steg 402. Att extrahera information innefattar företrädesvis att beräkna en haschnyckel eller liknande frän data i huvudfálten sasom en kontrollsumma som jämförs med en motsvarande haschnyckel av nagot lagrat sessionskontext t ex i en lagrad haschuppslagningstabell. Alternativt kan verkligt data extraheras fran huvudfälten för jämförelse. En kombination av haschnyckel och verkligt data kan också användas.With reference to the fate diagram in Figure 4, the input unit 200Ai operates according to the following procedure when receiving data packets. In a first step 400, the input unit 200Ai receives a data packet from the terminal 104A and extracts information from a header therein to match the packet with some existing and stored session context in a next step 402. Extracting information preferably includes calculating a hash key or the like from the data in the main fields as a checksum which is compared with a corresponding hash key of some stored session context, for example in a stored hash look-up table. Alternatively, real data can be extracted from the main fields for comparison. A combination of hash key and real data can also be used.

Om det upptäcks i steg 402 att paketet inte tillhör någon existerande session sänds paketet till styrenheten 202A för att skapa och lagra ett nytt sessionskontext i ett steg 404 som kommer att beskrivas senare. Å andra sidan om paketet matchas med ett lagrat sessionskontext i steg 402 förflyttar sig proceduren till ett steg 406.If it is detected in step 402 that the packet does not belong to any existing session, the packet is sent to the controller 202A to create and store a new session context in a step 404 which will be described later. On the other hand, if the packet is matched with a stored session context in step 402, the procedure moves to a step 406.

I steg 406 låses ett TTL-(Time To Live = tid att leva)-fált och dynamiska huvudfält, såsom ett TCP-(Transmission Control Protocol = överföringsstyrningsprotokoll)-fált innefattande ett segmentantal. Det bestäms sen i ett steg 408 om paketet är giltigt, t ex baserat på det lästa TTL-fältet. Om det har gatt ut kastas paketet bort i ett steg 410. Om paketet fortfarande är giltigt appliceras en huvudöversättning till paketet i ett steg 412 enligt ett översättningsschema som väljs för sessionen som upprätthalls under överföring genom routern.In step 406, a TTL (Time To Live) field and main dynamic fields are locked, such as a TCP (Transmission Control Protocol) field comprising a segment number. It is then determined in a step 408 whether the packet is valid, for example based on the read TTL field. If it has expired, the packet is discarded in a step 410. If the packet is still valid, a master translation is applied to the packet in a step 412 according to a translation schedule selected for the session maintained during transmission through the router.

Huvudöversättningen som utförs i steg 412 innefattar att ersätta huvudet av det inkommande paketet med ett modifierat och huvudsakligen reducerad huvud enligt det valda översättningsschemat som har lagrats i sessionskontextet hos den igenkända sessionen. Det modifierade huvudet innefattar företrädesvis endast ett kontext ID och de dynamsiska huvudfälten. Nämnda kontext-ID kan extraheras 523 862 10 fran den lagrade haschuppslagningstabellen som kontrollerades i steg 402. Paketet som innefattar det modifierade och reducerade huvudet och nyttolastsdata vidarebefordras slutligen fran ingangsenheten 200Ai till utgangsenheten 200Be över omkopplingsenheten 108 i ett steg 414.The master translation performed in step 412 involves replacing the header of the incoming packet with a modified and substantially reduced header according to the selected translation scheme stored in the session context of the recognized session. The modified header preferably includes only a context ID and the dynamic header fields. The context ID can be extracted from the stored hash look-up table checked in step 402. The packet comprising the modified and reduced header and payload data is finally passed from the input unit 200Ai to the output unit 200Be over the switching unit 108 in a step 414.

Utgangsenheten 200Be som tar emot paketet återskapar sen ett riktigt huvud innefattande de mottagna dynamiska fälten genom att hämta det lagrade sessionskontextet som matchar paketet baserat pä nämnda mottagna kontext-ID.The output unit 200Be receiving the packet then recreates a real header including the received dynamic fields by retrieving the stored session context that matches the packet based on said received context ID.

Utgångsenheten 200Be sänder sen slutligen ut paketet över det andra nätet 102B mot ändstationen 104B. Eftersom huvudet modifieras och huvudsakligen reduceras i storlek under överföringen mellan ingängs- och utgängsenheten 200Ai, 200Be kräver paketöverföringen mindre resurser i routern, t ex i omkopplingsenheten 108 och möjliggör därmed en högre datakapacitet och reducerade fördröjningar.The output unit 200Be then finally sends the packet over the second network 102B to the end station 104B. Since the header is modified and substantially reduced in size during the transmission between the input and output units 200Ai, 200Be, the packet transmission requires less resources in the router, for example in the switching unit 108, thus enabling a higher data capacity and reduced delays.

Det kommer nu att beskrivas med referens till figurerna 5 och 6 hur ett nytt sessionskontext skapas. Figur 5 är ett flödesschema som illustrerar proceduren som utförs vid ursprungsgränssnittsenheten lO6A. Såsom nämndes ovan sändes ett första datapaket som inte tillhörde nagon existerande session till styrenheten 202A för att skapa och lagra ett nytt sessionskontext i steg 404 i ñgur 4. Det nya paketet tas därmed emot vid styrenheten 202Ai ett första steg 500 och olika huvudfält säsom de illustreras i figur 3 läses för att skapa det nya se ssionskontextet.It will now be described with reference to Figures 5 and 6 how a new session context is created. Figure 5 is a fate diagram illustrating the procedure performed at the original interface unit 106A. As mentioned above, a first data packet that did not belong to any existing session was sent to the controller 202A to create and store a new session context in step 404 in step 4. The new packet is thus received at the controller 202A in a first step 500 and various main fields as illustrated. in figure 3 is read to create the new ssion context.

I ett nästa steg 502 kontrolleras det om det är möjligt att vidarebefordra paketet till dess destination och ett vidarebefordringsbeslut tas. Det kan sen kontrolleras om paketet tillats att överföras baserat pa fördefinierade ingangspolicys och om nagon väg till dess destination existerar frän routern. Om det inte är möjligt att vidarebefordra paketet kastas det i ett steg 504.In a next step 502, it is checked whether it is possible to forward the packet to its destination and a forwarding decision is made. It can then be checked if the packet has been allowed to be transmitted based on predefined input policies and if any path to its destination exists from the router. If it is not possible to forward the packet, it is thrown in a step 504.

Om paketet accepteras i steg 502 kontrolleras det i ett steg 506 om någon översättning av t ex protokoll och adresser är nödvändig. Om det är så utförs översättningar i enlighet med det i ett steg 508 innan man fortsätter till ett nästa steg 510. Om inga översättningar är nödvändiga förflyttar sig proceduren direkt fran steg 506 till steg 510.If the packet is accepted in step 502, it is checked in a step 506 if any translation of eg protocols and addresses is necessary. If so, translations are performed accordingly in a step 508 before proceeding to a next step 510. If no translations are necessary, the procedure proceeds directly from step 506 to step 510.

- ~ . . .- .E“.5 gi". ”IÉQ .å .'°. .'::":E ll I nästa steg 510 skapas ett sessionskontext baserat pa huvudfälten i paketet. Att skapa ett nytt sessionskontext innefattar att extrahera sessionskarakteristika från det mottagna paketet innefattande någon eller några av: en käll-IP-adress, en destinations-IP-adress, ett kommunikationsprotokoll, en krävd QOS, ett källportsnummer och ett destinationsportsnummer. Sessionskontextet skapas genom att definiera kontextdeskriptorer som beskriver sessionskarakteristika som är giltiga vid ursprungs- och avslutningssidorna. Särskilt väljs ett huvudöversättningsschema för sessionskontextet. Kontextcieskriptorerna kan vidare innefatta huvudmallar, ett vidarebefordringsbeslut och identifikationer av ingängs- och utgängsenheterna 200Ai, 200Be som ska användas under sessionen.- ~. . .- .E “.5 gi". ”IÉQ .å. '°..' ::": E ll In the next step 510, a session context is created based on the main fields in the packet. Creating a new session context involves extracting session characteristics from the received packet comprising one or more of: a source IP address, a destination IP address, a communication protocol, a required QOS, a source port number and a destination port number. The session context is created by defining context descriptors that describe session characteristics that are valid at the origin and end pages. In particular, a main translation schedule is selected for the session context. The contextual scripts may further include master templates, a forwarding decision, and identifications of the input and output units 200Ai, 200Be to be used during the session.

Vidare tilldelas ett kontext-ID till sessionen i steg 510 för att identifiera sessionen.Further, a context ID is assigned to the session in step 510 to identify the session.

Huvudöversättningsschemat som valts i kontextet skall tillämpas pä ytterligare paket hos sessionen under överföring i routern 100.The master translation schedule selected in the context should be applied to additional packets of the session during transmission in the router 100.

Det första paketet sänds sen tillsammans med de definierade kontextdeskriptorerna och tilldelat kontext-ID till styrenheten 202B vid avslutningsgränssnittsenheten 106B i ett steg 512.The first packet is then sent along with the defined context descriptors and assigned context ID to the controller 202B at the termination interface unit 106B in a step 512.

Med referens till flödesschemat i figur 6 verkar avslutningsgränssninttsenheten 106B enligt följande procedur när den tar emot det första datapaketet frán ursprungsgränssnittsenheten 106A. I ett första steg 600 tar styrenheten 202B vid avslutningsgränssnittsenheten 106B emot det första datapaketet som vidarebefordrades från ursprungsgränssnittsenheten l06A över omkopplingsenheten 108 i steg 512 i figur 5.Referring to the destiny diagram of Figure 6, the termination interface unit 106B operates according to the following procedure when receiving the first data packet from the source interface unit 106A. In a first step 600, the control unit 202B at the termination interface unit 106B receives the first data packet forwarded from the source interface unit 106A over the switching unit 108 in step 512 in Figure 5.

Det mottagna första paketet innefattar kontextdeskriptorerna definierade vid styrenheten 202A och nämnda tilldelade kontext-ID. Vid styrenheten 202B kontrolleras det sen om det är möjligt att sända ut paketet i ett steg 602. Det kan sen kontrolleras om paketet tillats att sändas i enlighet med utgängspolicys och om en utgangsenhet existerar till den destinerade ändstationen. Om det inte är möjligt att sända paketet kastas paketet bort i ett steg 604. Om paketet är tillätet kontrolleras det om sessionskontextet behöver uppdateras i ett steg 606. Det kontrolleras därmed om de mottagna kontextdeskriptorerna är korrekta och giltiga eller om de måsta uppdateras. 523 862 . . . w . .n 12 Om de mottagna kontextdeskriptorerna maste uppdateras görs detta i ett steg 608.The received first packet includes the context descriptors defined at the controller 202A and the assigned context ID. At the control unit 202B, it is then checked whether it is possible to transmit the packet in a step 602. It can then be checked whether the packet has been allowed to be transmitted in accordance with the output policy and whether an output unit exists to the destination terminal. If it is not possible to send the packet, the packet is discarded in a step 604. If the packet is allowed, it is checked if the session context needs to be updated in a step 606. It thus checks if the received context descriptors are correct and valid or if they need to be updated. 523 862. . . w. .n 12 If the received context descriptors need to be updated, this is done in a step 608.

Ytterligare vidarebefordringsbeslut kan sen tas och de mottagna kontextdeskriptorerna kan modifieras om nödvändigt. Uppdatering av kontextdeskriptorerna kan baseras på utgångspolicys, säkerhet och QOS-krav för att sända paket från avslutningsgränssnittsenheten lO6B. Kontextdeskriptorer kan också definieras separat för ursprungs- och avslutningssidoma vilket kommer att beskrivas senare. Det uppdaterade sessionskontextet som innefattar de definierade och avslutade kontextdeskriptorerna lagras slutligen i routern tillsammans med nämnda tilldelade kontext-ID som en nyckel i ett steg 610.Additional forwarding decisions can then be made and the received context descriptors can be modified if necessary. Updating the context descriptors can be based on output policies, security and QOS requirements for sending packets from the termination interface unit 106B. Context descriptors can also be defined separately for the origin and end pages, which will be described later. The updated session context that includes the fi initiated and terminated context descriptors is finally stored in the router along with the assigned context ID as a key in a step 610.

De slutliga kontextdeskriptorerna läggs sen till paketet i ett steg 612 efter vilket det första paketet kan vidarebefordras till den valda utgangsenheten 2OOBe i ett steg 614. De slutliga kontextdeskriptorerna lagras vid utgangsenheten 2OOBe med nämnda kontext-ID som en nyckel. Paketet äterställes sen baserat på de slutliga kontextdeskriptorerna så att det är giltigt för avslutningsutgångskontextet och sänds slutligen ut till dess destinerade ändstation lO4B i ett steg 616. Om ingen uppdatering behövs i steg 606 kan processen förflyttas direkt till paketsändningssteget 6 1 6.The final context descriptors are then added to the packet in a step 612 after which the first packet can be forwarded to the selected output unit 20Be in a step 614. The final context descriptors are stored at the output unit 2000e with said context ID as a key. The packet is then reset based on the final context descriptors so that it is valid for the terminating output context and is finally transmitted to its destination terminal 104B in a step 616. If no update is needed in step 606, the process for fl can be transferred directly to the packet transmission step 6 1 6.

Efter steg 612 sänds de slutliga kontextdeskriptorerna också tillbaka till ursprungsgränssnittsenheten lO6A i ett steg 618 och de uppdaterade och slutliga kontextdeskriptorerna lagras där också.After step 612, the final context descriptors are also sent back to the original interface unit 106A in a step 618 and the updated and final context descriptors are stored there as well.

Efter processen att upprätta sessionskontextet som beskrevs i figurerna 5 och 6 har sessionskontextet som innefattar relevanta kontextdeskriptorer lagrats i både ursprungs- och avslutningsgränssnittsenheterna 106A, B. Ytterligare paket hos sessionen kan sen smidigt överföras genom routern 100 såsom beskrivits ovan i anslutning till figur 4 med användning av huvudöversättning enligt översättningsschemat definierat för sessionen.Following the process context establishment described in Figures 5 and 6, the session context including relevant context descriptors has been stored in both the origin and end interface units 106A, B. Additional packets of the session can then be smoothly transmitted through the router 100 as described above in connection with fi gur 4 using of main translation according to the translation schedule defined for the session.

Sessionskontextet kan lagras antingen i en gemensam databas elleri separata databaser vid ursprungs- respektive avslutningsgränssnittsenheterna 106A, l06B.The session context can be stored either in a common database or in separate databases at the origin and end interface units 106A, 106B, respectively.

Ett haschvärde, såsom en kontrollsumma kan också beräknas och lagras i en haschuppslagningstabell sa att efterföljande paket kan identifieras som att de hör o u . . »- - . . . .- 523 862 _. 13 till samma sessionskontext genom att kontrollera haschuppslagningstabellen sasom beskrivits ovan i steg 402 i figur 4. Därmed kan ytterligare paket enkelt kännas igen som att de tillhör den upprättade sessionen.A hash value, such as a checksum, can also be calculated and stored in a hash lookup table so that subsequent packets can be identified as belonging o u. . »- -. . . .- 523 862 _. 13 to the same session context by checking the hash lookup table as described above in step 402 of Figure 4. Thus, additional packets can be easily recognized as belonging to the established session.

I en utföringsform kan kontextdeskriptorer clefinieras separat för ursprungs- och avslutningsgränssnittsenheterna 106A, lO6B. N är ett första nytt paket tas emot vid styrenheten 202A hos ursprungsgränssnittsenheten 106A definieras därmed ursprungskontextdeskriptorer baserade pä ingängspolicys, säkerhet och QoS-krav för att ta emot paket vid ursprungsgränssnittsenheten 106A. Pa samma sätt när det nya paketet tas emot vid styrenheten 2028 hos avslutningsgränssnittsenheten lO6B definieras avslutningskontextdeskriptorer baserade på utgängspolicys, säkerhet och QoS-krav för att sända paket fran avslutningsgränssnittsenheten 106A.In one embodiment, context descriptors can be clefined separately for the origin and end interface units 106A, 106B. N is a first new packet received at the controller 202A of the source interface unit 106A, thus defining origin context descriptors based on input policies, security and QoS requirements for receiving packets at the source interface unit 106A. Similarly, when the new packet is received at the control unit 2028 of the termination interface unit 106B, termination context descriptors are defined based on output policies, security and QoS requirements for sending packets from the termination interface unit 106A.

Ytterligare preliminära avslutningskontextdeskriptorer kan definieras vid ursprungsgränssnittsenheten 106A som kan modifieras när det första paketet kommer till avslutningsgränssnittsenheten lO6B. När ursprungs- och avslutningskontextdeskriptorema är avslutade lagras dessa i routern tillsammans med ett tilldelat kontext-ID som en nyckel, såsom beskrivits ovan.Additional preliminary termination context descriptors may be defined at the source interface unit 106A which may be modified when the first packet arrives at the termination interface unit 106B. When the origin and end context descriptors are completed, they are stored in the router together with an assigned context ID as a key, as described above.

I en annan utföringsform kan omvända kontextdeskriptorer definieras för paket som ska överföras i den motsatta riktningen i samma session baserat på det första mottagna paketet. Därmed kan totalt följande fyra olika kontextdeskriptorer definieras med referens till figur 6: 1. En ursprungsingángsdeskriptor 700Ai som är giltig for paket frän ursprungssidan A när de kommer till ingangsenheten 2OOAi hos urspruiigsgränssnittsenheten 106A. 2. En avslutningsutgàngsdeskriptor 7OOBe som är giltig för paket fràn ursprungssidan A när de kommer till utgangsenheten 200Be hos avslutningsgränssnittsenheten lO6B. o - » - .a 14 3. En avslutningsingangsdeskriptor 700Bi som är giltig för paket från avslutningssidan B när de kommer till ingangsenheten 200Bi hos avslutningsgränssnittsenheten lO6B. 4. En ursprungsutgangsdeskriptor 70OAe som är giltig for paket fran avslutningssidan B när de kommer till utgangsenheten 200Ae hos ursprungsgränssnittsenheten 106A.In another embodiment, reverse context descriptors may be denoted for packets to be transmitted in the opposite direction in the same session based on the first packet received. Thus, a total of the following four different context descriptors can be defined with reference to Figure 6: 1. An origin input descriptor 700Ai which is valid for packets from the origin side A when they reach the input unit 200AAi of the origin interface unit 106A. 2. A termination output descriptor 7OOBe which is valid for packets from the origin side A when they reach the output unit 200Be of the termination interface unit 106B. o - »- .a 14 3. A termination input descriptor 700Bi which is valid for packets from termination side B when they reach the input unit 200Bi of the termination interface unit 106B. An origin output descriptor 70OAe which is valid for packets from the termination side B when they reach the output unit 200Ae of the origin interface unit 106A.

Pa detta sätt definieras en kontextdeskriptor för paket i bada riktningarna och pà bada sidor om routern. Var och en av dessa lcontextdeskriptorer kan innefatta en huvudmall, ett vidarebefordringsbeslut och ett valt översättningsschema, sasom nämnts ovan. När alla fyra kontextdeskriptorer har deñnierats lagras dessa som ett sessionskontext tillsammans med ett tilldelat kontext-ID. Därmed kan efterföljande paket i nagon av riktningarna kännas igen som att det tillhör det lagrade sessionskontextet och pakethuvudet kan översättas och reduceras väsentligt i storlek vid ingàngsenheten och aterskapas vid utgängsenheten i enlighet med det sasom beskrivits ovan för effektiv överföring genom routern.In this way, a context descriptor is defined for packets in both directions and on both sides of the router. Each of these context descriptors may include a master template, a forwarding decision and a selected translation scheme, as mentioned above. Once all four context descriptors have been denigrated, they are stored as a session context along with an assigned context ID. Thus, subsequent packets in any of the directions can be recognized as belonging to the stored session context and the packet header can be translated and significantly reduced in size at the input unit and recreated at the output unit as described above for efficient transmission through the router.

Genom att använda den beskrivna uppfinningen reduceras behandlingsarbete och fördröjningar i routern när datapaket överförs och därmed möjliggörs en hög clatakalaacitet och funktionalitetsresurser frigörs. Uppfinningsförfarandet kan implementeras i en mjukvarukod som körs i en dator i routern 100. Även om uppfinningen har beskrivits med referens till specifika utiöringsformer givna som exempel år beskrivningen endast avsedd att illustrera uppfinningskonceptet och ska inte tas som begränsande uppfinningens omfång.By using the described invention, processing work and delays in the router are reduced when data packets are transmitted and thus a high clata capacity is enabled and functionality resources are freed up. The inventive method can be implemented in a software code running in a computer in the router 100. Although the invention has been described with reference to specific embodiments given by way of example, the description is only intended to illustrate the concept of invention and should not be construed as limiting the scope of the invention.

Olika alternativ, modifikationer och ekvivalenter kan användas utan att gå ifran uppfinningens tanke som definieras av de bifogade kraven. .... .-Various alternatives, modifications, and equivalents may be used without departing from the scope of the invention as defined by the appended claims. .... .-

Claims (21)

523 862 15 NYA KRAV 2003-12-23523 862 15 NEW REQUIREMENTS 2003-12-23 1. Ett förfarande för att överföra datapaket över en router mellan en sändande ändstation och en mottagande ändstation, innefattande stegen: A) ta emot ett datapaket från den sändande ändstationen vid en ingángsenhet B) extrahera information frán ett huvud i paketet C) bestämma om det mottagna datapaketet tillhör ett existerande sessionskontext, som beskriver interna aktiviteter i routern, genom att jämföra huvudinformationen som extraherades i steg B) med existerande sessionskontext lagrade i routern kännetecknat av de ytterligare stegen: D) applicera en huvudöversättning för paketet under överföring genom routern fran ingangsenhetcn till en utgängsenhet enligt ett valt översättningsschema om paketet identifierades i steg C) som tillhörande ett existerande sessionskontext där huvudet ersätts med ett modifierat och väsentligen reducerat huvud innefattande ett kontext-ID tilldelat det existerande sessionskontextet eller E) skapa ett nytt sessionskontext om paketet identifierades i steg C) som inte tillhörande nagot existerande sessionskontext innefattande att välja ett översättningsschema som ska användas för att applicera en huvudöversättning för ytterligare paket för den nya sessionen och F) lagra det nya sessionskontextet skapat i steg E) i routern tillsammans med ett kontext-ID tilldelat det nya sessionskontextet som en nyckel.A method of transmitting data packets over a router between a transmitting terminal and a receiving terminal, comprising the steps of: A) receiving a data packet from the transmitting terminal at an input device B) extracting information from a header in the packet C) determining whether received data packet belongs to an existing session context, describing internal activities in the router, by comparing the main information extracted in step B) with existing session context stored in the router characterized by the additional steps: D) apply a main translation for the packet during transmission through the router from the input device to an output device according to a selected translation schedule if the packet was identified in step C) as belonging to an existing session context where the header is replaced with a modified and substantially reduced header including a context ID assigned to the existing session context or E) creating a new session context if the packet was identified in step C ) which does not belong to any existing session context including selecting a translation schedule to be used to apply a master translation for additional packets for the new session and F) storing the new session context created in step E) in the router together with a context ID assigned to the new session the session context as a key. 2. Förfarande enligt krav 1 kännetecknat av att det modifierade huvudet som applicerades i steg D) vidare innefattar dynamiska huvudfält och ett TTL-(Time T o Live = tid att leva)-fált.Method according to claim 1, characterized in that the modified head applied in step D) further comprises dynamic main fields and a TTL (Time T o Live = field to live) field. 3. Förfarande enligt krav l eller 2 kännetecknat av det ytterligare steget att aterskapa huvudet vid utgängsenheten efter steg D) genom att använda det valda översättningsschemat och genom att hämta det lagrade sessionskontextet som » . . . .- 523 862 . . . _ u n. .. a» . f' '” ' z - -.- . .. _ , _' ' . . 16 ~ - .. . . . . . .- matchar paketet baserat på nämnda tilldelade kontext-ID innan paketet sänds ut mot den mottagande ändstationen.Method according to claim 1 or 2, characterized by the further step of recreating the head at the output unit after step D) by using the selected translation scheme and by retrieving the stored session context as ». . . .- 523 862. . . _ u n ... a ». f '' ”'z - -.-. .. _, _ ''. . 16 ~ - ... . . . . .- matches the packet based on said assigned context ID before the packet is transmitted to the receiving terminal. 4. Förfarande enligt nagot av kraven 1 - 3 kännetecknat av att steg E), att skapa ett nytt sessionskontext, innefattar att bestämma sessionskarakteristika fran det mottagna paketet baserat på information extraherad från pakethuvudet och på förutbestämda regler eller policys innefattande någon eller några av: en käll-IP- adress, en destinations-IP-adress, ett kommunikationsprotokoll, en krävd QoS, ett källportsnummer och ett destinationsportsnummer.A method according to any one of claims 1 to 3, characterized in that step E), creating a new session context, comprises determining session characteristics from the received packet based on information extracted from the packet header and on predetermined rules or policies comprising one or more of: a source IP address, a destination IP address, a communication protocol, a required QoS, a source port number and a destination port number. 5. F örfarande enligt något av kraven 1 - 4 kännetecknat av att steg E), att skapa ett nytt sessionskontext, innefattar att ta ett vidarebefordringsbeslut genom att kontrollera om paketet tillåts att överföras baserat på fórdefinierade policys och om nagon väg till dess destination existerar från routern.Method according to any one of claims 1 to 4, characterized in that step E), to create a new session context, comprises making a forwarding decision by checking whether the packet is allowed to be transferred based on preferred policies and whether any path to its destination exists from routers. 6. Förfaranden enligt nagot av kraven l - 5 kännetecknat av att det nya sessionskontextet är skapat i steg E) genom att definiera kontextdeskriptorer som beskriver karakteristikan för datasessioner.Methods according to any one of claims 1 - 5, characterized in that the new session context is created in step E) by defining context descriptors that describe the characteristics of data sessions. 7. Förfarande enligt krav 6 kännetecknat av att kontextdeskriptorerna innefattar det valda huvudöversättningsschemat och någon eller några av: huvudmallar, ett vidarebefordringsbeslut och identifikationer av ingångs- och utgångsenheter i routern som ska användas under sessionen.Method according to claim 6, characterized in that the context descriptors comprise the selected main translation scheme and one or more of: main templates, a forwarding decision and identifications of input and output units in the router to be used during the session. 8. Förfarande enligt krav 6 eller 7 kännetecknat av att kontextdeskriptorerna är definierade separat för ursprungs- och avslutningsgränssnittsenheter hos routern.Method according to claim 6 or 7, characterized in that the context descriptors are defined separately for origin and termination interface units of the router. 9. Förfarande enligt krav 8 kännetecknat av att kontextdeskriptorerna är definierade separat för ingångs- och utgångsenheter i var och en av ursprungs- respektive avslutningsgränssnittsenheterna.Method according to claim 8, characterized in that the context descriptors are defined separately for input and output units in each of the origin and end interface units, respectively. 10. Förfarande enligt något av kraven 1 - 9 kännctecknat av att steg B), att extrahera huvudinformation, innefattar att beräkna en haschnyckel från data i huvudfälten såsom en kontrollsumma som jämförs med en motsvarande haschnyckel av något lagrat sessionskontext. . . « - .- , 523 862 _¿ 17 "' ~nn n . - ; , ..,Method according to any one of claims 1 to 9, characterized in that step B), extracting master information, comprises calculating a hash key from data in the main fields as a checksum which is compared with a corresponding hash key of some stored session context. . . «- .-, 523 862 _¿ 17" '~ nn n. -;, .., 11. Förfarande enligt något av kraven 1 - 10 kännetecknat av att huvudinformatíonen som extraherades i steg B) innefattar verkligt data i huvudfälten.Method according to one of Claims 1 to 10, characterized in that the main information extracted in step B) comprises actual data in the main fields. 12. En router för att överföra datapaket mellan en sändande ändstation och mottagande ändstation innefattande: - en första gränssnittsenhet innefattande en íngangsenhet för att ta emot datapaket fran den sändande ändstationen, - en andra gränssnittsenhet innefattande en utgàngsenhet för att sända datapaket till den mottagande ändstationen, - en omkopplingsenhet för att överföra paket mellan de första och andra gränssnittsenheterna, - medel för att extrahera information från ett huvud i ett mottaget datapaket, - medel för att bestämma om det mottagna paketet tillhör ett existerande sessionskontext, som beskriver interna aktiviteter i routern, genom att jämföra extraherad huvudinformation med existerande sessionskontext lagrade i routern kännetecknad av: - medel i ingångsenheten för att applicera en huvudöversättning för det mottagna paketet under överföring genom routern fran ingangsenheten till utgängsenheten enligt ett valt översättningsschema om paketet tillhör ett existerande sessionskontext innefattande medel för att ersätta huvudet med ett modiñerat och väsentligen reducerat huvud innefattande ett kontext-ID tilldelat det existerande sessionskontextet, - medel för att skapa ett nytt sessionskontext om det mottagna paketet inte tillhör nagot existerande sessionskontext innefattande medel för att välja ett översättningsschema som ska användas för att applicera en huvudöversättning för ytterligare paket hos den nya sessionen och ~~~~ e» 523 862 18 - medel för att lagra det skapade nya sessionskontextet i routern tillsammans med ett kontext ID tilldelat det nya sessionskontextet som en nyckel.A router for transmitting data packets between a transmitting terminal and receiving terminal comprising: - a first interface unit comprising an input unit for receiving data packets from the transmitting terminal, - a second interface unit comprising an output unit for transmitting data packets to the receiving terminal, - a switching unit for transmitting packets between the first and second interface units, - means for extracting information from a header in a received data packet, - means for determining whether the received packet belongs to an existing session context, describing internal activities in the router, by comparing extracted master information with existing session context stored in the router characterized by: - means in the input unit for applying a master translation of the received packet during transmission through the router from the input unit to the output unit according to a selected translation schedule if the packet belongs to an existing session means for replacing the header with a modified and substantially reduced header including a context ID assigned to the existing session context, - means for creating a new session context if the received packet does not belong to any existing session context including means for selecting a translation schedule to be used to apply a master translation for additional packets of the new session and ~ ~~~~ e »523 862 18 - means for storing the created new session context in the router together with a context ID assigned to the new session context as a key. 13. Router enligt krav 12 kännetecknad av medel i utgångsenheten för att återskapa ett huvud genom att använda det valda översättningsschemat och genom att hämta det lagrade sessionskontextet som matchar paketet baserat på nämnda tilldelade kontext-ID innan paketet sänds ut mot den mottagande ändstationen.Router according to claim 12, characterized by means in the output unit for recreating a header by using the selected translation scheme and by retrieving the stored session context that matches the packet based on said assigned context ID before the packet is transmitted to the receiving terminal. 14. Router enligt krav 12 eller 13 kännetecknad av att medlet för att skapa ett nytt sessionskontext innefattar medel för att bestämma sessionskarakteristika från det mottagna paketet innefattande någon eller några av: en käll-IP-adress, en destinations-IP-adress, ett kommunikationsprotokoll, en krävd QOS, ett källportsnummer och ett destinationsportsnummer.Router according to claim 12 or 13, characterized in that the means for creating a new session context comprises means for determining session characteristics from the received packet comprising one or more of: a source IP address, a destination IP address, a communication protocol , a required QOS, a source port number and a destination port number. 15. Router enligt något av kraven 12 -14 kännetecknar! av att medlet för att skapa ett nytt sessionskontext innefattar medel för att ta ett vidarebefordringsbeslut genom att kontrollera om paketet tillåts att överföras baserat på fördefinierades policys och om någon väg till dess destination existerar från routern.Router according to one of Claims 12 to 14, characterized! that the means for creating a new session context includes means for making a forwarding decision by checking whether the packet is allowed to be transmitted based on predefined policies and whether any path to its destination exists from the router. 16. Router enligt något av kraven 12 -15 kännetecknad av att medlet för att skapa ett nytt sessionskontext innefattar medel för att definiera kontextdeskriptorer som beskriver karakteristikan hos datasessionen.Router according to one of Claims 12 to 15, characterized in that the means for creating a new session context comprises means for defining context descriptors which describe the characteristics of the data session. 17. Router enligt krav 16 kännetecknar! av medlet för att definiera kontextdeskriptorer innefattar medel för att välja huvudöversättningsschema och någon eller nägra av: huvudmallar, ett vidarebefordringsbeslut och identifikationer av ingängs- och utgångsenheter i routern som ska användas under sessionen.17. Router according to claim 16 characterized! of the means for defining context descriptors includes means for selecting the main translation schedule and any or some of: main templates, a forwarding decision and identifications of input and output devices in the router to be used during the session. 18. Router enligt krav 16 eller 17 kännetecknar! av medel för att definiera kontextdeskriptorer separat för ursprungs- och avslutningsgränssnittsenheter hos routern.Router according to claim 16 or 17! of means for defining context descriptors separately for origin and termination interface units of the router. 19. Router enligt krav 18 kännetecknat av medel för att definiera kontextdeskriptorer separat för ingangs- och utgàngsenheter i var och en av ursprungs- respektive avslutningsgränssnittsenheterna. 523 862 19Router according to claim 18, characterized by means for defining context descriptors separately for input and output units in each of the origin and end interface units, respectively. 523 862 19 20. Router enligt något av kraven 12 - 19 kännetecknad av att medlet för att extrahera information fran ett huvud innefattar medel för att beräkna en haschnyckel fràn data i huvudfälten, sasom en Kontrollsumma som jämförs med en motsvarande haschnyckel av något lagrat sessionskontext.Router according to one of Claims 12 to 19, characterized in that the means for extracting information from a header comprises means for calculating a hash key from data in the main fields, such as a checksum which is compared with a corresponding hash key of some stored session context. 21. Ett dataprogram innefattande en mjukvarakod som anpassad att utföra förfarandet i nagot av kraven 1 - 1 l i en router. - » . . .-A computer program comprising a software code adapted to perform the method in any of claims 1 - 1 l in a router. - ». . .-
SE0201346A 2001-10-19 2002-05-03 A method and apparatus for transmitting data packets in IP routers SE523862C2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
SE0201346A SE523862C2 (en) 2001-10-19 2002-05-03 A method and apparatus for transmitting data packets in IP routers
PCT/SE2002/001889 WO2003034670A1 (en) 2001-10-19 2002-10-16 A method and apparatus for transferring data packets in ip routers
EP02778157A EP1444812A1 (en) 2001-10-19 2002-10-16 A method and apparatus for transferring data packets in ip routers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE0103495A SE0103495D0 (en) 2001-10-19 2001-10-19 Packet forwarding with protocol translation
SE0201346A SE523862C2 (en) 2001-10-19 2002-05-03 A method and apparatus for transmitting data packets in IP routers

Publications (3)

Publication Number Publication Date
SE0201346D0 SE0201346D0 (en) 2002-05-03
SE0201346L SE0201346L (en) 2003-12-23
SE523862C2 true SE523862C2 (en) 2004-05-25

Family

ID=26655570

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0201346A SE523862C2 (en) 2001-10-19 2002-05-03 A method and apparatus for transmitting data packets in IP routers

Country Status (3)

Country Link
EP (1) EP1444812A1 (en)
SE (1) SE523862C2 (en)
WO (1) WO2003034670A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4196732B2 (en) * 2003-05-26 2008-12-17 日本電気株式会社 Data transfer device and program
US20050078704A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Method and apparatus for translating data packets from one network protocol to another
US20050144311A1 (en) * 2003-12-09 2005-06-30 International Business Machines Corporation Communications network for transmitting packets of data via a plurality of sequential routers from a transmitting station to a receiving station with packet header coding for maximizing transmission efficiency
WO2006080898A1 (en) * 2005-01-26 2006-08-03 Infineon Technologies Ag Improvements in and relating to data processing
WO2020192630A1 (en) * 2019-03-22 2020-10-01 Huawei Technologies Co., Ltd. Method and apparatus for providing transport context and on-path meta data to support 5g enabled networks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243667B1 (en) * 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
GB2340701B (en) * 1998-08-15 2003-06-25 Roke Manor Research Programmable packet header processor
US6804237B1 (en) * 1999-06-23 2004-10-12 Nortel Networks Limited Method, devices and signals for multiplexing payload data for transport in a data network
US6791982B2 (en) * 1999-09-29 2004-09-14 Telefonaktiebolaget Lm Ericsson Segmentation protocol that supports compressed segmentation headers
US7061936B2 (en) * 2000-03-03 2006-06-13 Ntt Docomo, Inc. Method and apparatus for packet transmission with header compression
WO2002025822A2 (en) * 2000-09-20 2002-03-28 Main.Net Communication Ltd. Multimedia communications over power lines
JP2002141931A (en) * 2000-10-30 2002-05-17 Sharp Corp Router and route control method

Also Published As

Publication number Publication date
SE0201346L (en) 2003-12-23
EP1444812A1 (en) 2004-08-11
WO2003034670A1 (en) 2003-04-24
SE0201346D0 (en) 2002-05-03

Similar Documents

Publication Publication Date Title
US7362763B2 (en) Apparatus and method for classifying traffic in a distributed architecture router
US9647954B2 (en) Method and system for optimizing a network by independently scaling control segments and data flow
US7653075B2 (en) Processing communication flows in asymmetrically routed networks
US7707301B2 (en) Method and apparatus for equalizing load of streaming media server
US8611350B2 (en) Apparatus and method for layer-2 to 7 search engine for high speed network application
EP1718011B1 (en) System for multi-layer provisioning in computer networks
US6553028B1 (en) Method and apparatus for multicast switching using a centralized switching engine
US7406709B2 (en) Apparatus and method for allowing peer-to-peer network traffic across enterprise firewalls
US6466976B1 (en) System and method for providing desired service policies to subscribers accessing the internet
US9654303B2 (en) Method and apparatus for emulating network devices
US7738452B1 (en) Techniques for load balancing subscriber-aware application proxies
US20130254365A1 (en) Routing and service performance management in an application acceleration environment
US20080310416A1 (en) Vlan server
JPH1141272A (en) Lan internet connection
CN109547354B (en) Load balancing method, device, system, core layer switch and storage medium
CA2317460C (en) Providing desired service policies to subscribers accessing internet
CN114422432A (en) Reliable coverage based on reliable transport layer
US10805202B1 (en) Control plane compression of next hop information
KR100891208B1 (en) A method of processing a packet data flow in a packet data network, an apparatus thereof, a system thereof and a computer readable recording medium having a computer program for performing the method
US20090106436A1 (en) Methods and systems for offload processing
CN111262762B (en) vCPE tenant-based SFC service chain multi-WAN service realization method and system
CN110336796B (en) Communication method and communication device
SE523862C2 (en) A method and apparatus for transmitting data packets in IP routers
Cisco Bridging and IBM Networking Overview
Karrakchou et al. EP4: An application-aware network architecture with a customizable data plane