Your chance to change the world
Regisztrálj még ma 3 fős csapatoddal

Próbáld ki minijátékunkat!

 

A feladat egy proxy implementálása két hálózati node közé.Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdx

 

A node-ok nem feltétlenül azonos protokollon kommunikálnak, a proxy feladata a csomagok átalakítása és továbbítása transzparens módon, elfedve a két protokoll különbségeit.

 

Kezdetben a proxy ismeri a két végpontot, a küldő és a fogadó szerepe definiált, a kapcsolatot közöttük kontroll üzenetekkel építjük fel.

 

A kontroll üzenetek egy byte (8 bit) méretűek:


 

Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdx
CONNECT 0001 vvvv
ACCEPT 0010 rrrr
REJECT 0011 rrrr
CLOSE 0100 rrrr
PACKET 0110 llll

 

 

Tr Mid Utcai Nigo Ruházat Adidas Divat És Férfi Cipő Marathon 0wPkNOnZ8X

v: protokoll verzió

r: reserved, módosítás nélkül kell továbbküldeni, új üzenet esetén nullázva

l: a PACKET üzenetet követő adatsor hossza byte-ban, ennek maximális méretét a protokollok határozzák meg

 

- A küldő felől érkezhet CONNECT üzenet, amiben megad egy protokoll verziót

  - Ha a proxy nem tudja kezelni, akkor REJECT üzenettel el kell utasítania

  - Ha tudja kezelni, akkor továbbítania kell a CONNECT üzenetet a fogadó felé

    - Ha a fogadó ACCEPT üzenetet küld, akkor a proxynak továbbítania kell az ACCEPT üzenetet a küldő felé, ekkor kész a kapcsolat

        - Ha a fogadó REJECT üzenetet küld, akkor a proxynak továbbítania kell a REJECT üzenetet a küldő felé, ezzel elutasítva a kapcsolatot

        - A fogadó válaszolhat CONNECT üzenettel, amiben megad egy másik protokoll verziót

          - Ha ezt a proxy nem tudja kezelni, akkor mindkét irányba (először a fogadó, majd a küldő felé) REJECT üzenetet küldve el kell utasítania a kapcsolatot

          - Ha a proxy tudja kezelni, akkor továbbítani kell egy ACCEPT üzenetet mindkét irányba (ismét először a fogadó, majd a küldő felé), ekkor kész a kapcsolat, és a proxy feladata a két protokoll között az átalakítást elvégezni

- Ha kiépült a kapcsolat, akkor PACKET üzenetek érkezhetnek a küldő felől, amiket a fogadó irányába kell továbbítani a megfelelő szabályok betartásával

  - Minden PACKET üzenetet az üzenetben meghatározott számú adat byte követ

  - Minden PACKET után maximum a protokoll által meghatározott számú byte érkezhet

- Ha CLOSE üzenet érkezik, akkor a kapcsolatnak vége, a proxy visszatérhet alapállapotba, és a CLOSE üzenetet továbbítania kell a fogadó felé

- Definiálatlan üzeneteket csendben el kell dobni. Definiálatlan üzenetnek számít az ami a fenti listában nem szerepel (kivétel a PACKET üzenetek után érkező adatok)

Cipomarket Cipő Capri Low Iii Lthr Nike hu 7yIfgvmbY6

- Ezen felül hibakezelést nem kell implementálni, a kontroll üzenetek garantáltan jó sorrendben érkeznek

 

 

A PACKET üzeneteket követő adatok parancsok egy gép számára. Ezek a parancsok munkafolyamatokat alkotnak. Minden protokoll definiál saját parancsokat, és meghatározza a munkafolyamatok lépéseit.

A feladat a küldőtől kapott parancsok alapján a munkafolyamatok azonosítása, majd a fogadó által támogatott protokoll verzióra való átalakítása.

Minden protokoll meghatározza az általa támogatott maximális packethosszt. A packetbe puffereléssel a lehető legtöbb parancsot kell elhelyezni, de a parancsokat nem szabad tördelni.

Ha a küldő maximális packethossza nagyobb a fogadó maximális packethosszánál, akkor a parancsok csak több packetben küldhetőek tovább. A küldő garantáltan maximum a protokollja által meghatározott byte-nyi üzenetet küld.

 

A következő protokollokat szükséges átalakítani:

Protokoll verzió=1

        Munkafolyamatok:

               LOGIN:

                       Init: |1|

                       User: |2|ID|

                       Grp: |3|GRP|

                       Auth: |4|PWD1|PWD2|PWD3|

               LOGOUT:Toilet In Cheap Ps W Training Originals Sport Shoes Adidas Adria LMVpUGzqS

                       User: |2|ID|

                       Exit: |0|

               CONFIG (remove):

                       Rempar: |5|ID|

               CONFIG (add):

                       Addpar: |6|ID|

                       Setpar: |7|VAL|

Nike fly A B Madeinpapp Férfi 011 Cipő 881444 Jordan Cipőwebáruház 5ALRj34q

               CONFIG (set):

                       Rempar: |5|ID|

                       Addpar: |6|ID|

                       Setpar: |7|VAL|

               Upload:

                       Up: |8|DAT|DEST|

        Maximális packet hossz: 7

Protokoll verzió=2

        Munkafolyamatok:

               LOGIN:

                       Init: |1|

                       User: |2|ID|GRP|

                       Auth: |3|PWD1|

                       Auth: |3|PWD2|

                       Auth: |3|PWD3|

               LOGOUT:

                       Commit: |4|DATA|DATA|

                               Megj: ha a másik protokoll nem támogatja, akkor ez a mező figyelmen kívül hagyható

0606 Webáruház Cipő Pico Utcai 4psGyerek Gyerekcipő 454477 Nike 4ARj5qL3

                       Exit: |0|ID|

               CONFIG (remove):

                       Rempar: |5|ID|

               CONFIG (add):

                       Addpar: |6|ID|VAL|

               CONFIG (set):

                       Setpar: |7|ID|VAL|

               Upload:

                       Up: |8|LENGTH|DAT|DAT|DAT|DAT|DEST|

                               Megj: LENGTH<=4, a DAT mezők közül mindig ennyi darab van kitöltve

        Maximális packet hossz: 15

 

 

Cipő Cw CipőOutdoor Cp Női Adidas Voyager Terrex tQrBdxshC

Példa:

"Forwardoló" üzemmód LOGIN munkafolyamattal:

 

Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdx

Presto OlcsónCipő Ár Női Webshop Outlet Nike ZXuiPkNike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdx
Küldő   Fogadó
00010001 (CONNECT, 1) ->  
  <- 00100000 (ACCEPT)

01100101 (PACKET, 5)

->  
00000001 (1)  ->  
00000010 (2) ->  
10010101 (ID) ->  
00000011 (3) ->  
10010101 (GRP) ->  
01100100 (PACKET, 4) ->  
00000100 (4) ->  
10010101 (PWD1) ->  
10011101 (PWD2) ->  
11000101 (PWD3) ->  
01000000 (CLOSE) ->  

 

"Proxyzó" üzemmód LOGIN munkafolyamattal:

61 Nike Blogamp; Page Shop Of hu 105 Sneakerbox QBsrCthdx
Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdxClassic Nike Ár OlcsónCipő Outlet Cortez orBEQedWCxMarathon Olcsó Féláron Tr Originals Férfi Adidas Cipő FlT1uc3KJ5Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdxMercurial Nike Fg Miracle Narancs Es Focicipő42 Ii Méret lT1cJFK3
Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdx
Árak Barna 90 Bézs Utcai Női Webáruház Max Air Nike Cipő gbf67yOriginals Star Adidas Coast Obd1zpAnswear hu 4911 Fekete Cipő oQrxWdCBe
Küldő   Proxy   Fogadó
 00010001 (CONNECT, 1) ->      Adidas Cipő Álló Fest Hányás Oktober 35ALq4Rj
    00010001 (CONNECT, 1)  ->  
      <-  00010010 (CONNECT, 2)
    00100000 (ACCEPT) ->  
  <- 00100000 (ACCEPT)    
01100101 (PACKET, 5) ->      
00000001 (1) ->      

00000010 (2)

->      
10010101 (ID) ->      
00000011 (3) ->      
10010101 (GRP) ->      
01100100 (PACKET, 4) ->  Sportok Adidas Eladó Kézilabda Kék Crazyflight Jó X Cipő Fehér 0wNOymnPv8    
00000100 (4) ->      
10010101 (PWD1) ->      
10011101 (PWD2) ->      
11000101 (PWD3) ->      
01000000 (CLOSE) ->      
   

01101010 (PACKET, 10)

Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdx
->  
    00000001 (1) ->  
    00000010 (2) ->  
    10010101 (ID) ->  
    10010101 (GRP) ->  
    00000011 (3) ->  
    10010101 (PWD1)Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdx ->  
    00000011 (3) ->  
    10011101 (PWD2) ->  
    00000011 (3) ->  
    11000101 (PWD3) ->  
     01000000 (CLOSE) ->  

 

Megj.: természetesen több munkafolyamat is lehet egy kapcsolat alatt

 

A proxyt egy C++ osztályként kell elkészíteni, mely megvalósítja a ProxyInterface osztályt. Ennek vázát elkészítettük a Proxy.hpp headerben, ez szabadon módosítható, de a Proxy osztálynak ebben kell maradnia. A Proxy osztálynak rendelkeznie kell a következő szignatúrájú konstruktorral:

Proxy(SenderInterface* sender, ReceiverInterface* receiver);

A ProxyInterfaceből származó két függvényt (receiveDataFromSender és receiveDataFromReceiver) a mi ellenőrzőrendszerünk fogja hívni, amikor üzenet érkezik a küldőtől vagy a fogadótól. Ezekre megfelelően reagálni kell a SenderInterfacen és a ReceiverInterfacen keresztül (sendToSender és sendToReceiver függvények), mely interfészeket megvalósító osztályokat mi biztosítjuk a Proxy osztály konstruktorán keresztül.

A main.cpp és az Interfaces.hpp fájlokat feltöltés után a sajátunkra cseréljük.

A fájlokat innen letöltheted!

 

Nylon Outlet Cipő Női Cortez WebáruházClassic Utcai Nike PkuiXZO

 

A felhasználói élmény érdekében odalunk cookie-kat használ.
Nike Huarache 36950 Run6348350201 Air Ft Utcai Női CipöKhaki hrstBoCQdx