Paralelizace datových přenosů přes rozlehlé vysokorychlostní sítě Martin Čížek Vedoucí: Ing. Antonín Král Katedra počítačů FEL ČVUT Zimní semestr 2005 Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 1 / 13
Přehled 1 Cíle práce 2 Klasifikace možností paralelizace 3 Architektura systému 4 Ověření funkce Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 2 / 13
Cíle práce Zlepšení End to End performance. Logický přenos pomocí více TCP spojení. Současné využití několika fyzických tras. Zlepšení charakteristik TCP přenosů přes jednu fyzickou trasu. Možnost snadné modifikace existujících aplikací. Univerzálnost a rozšiřitelnost řešení. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 3 / 13
Cíle práce Zlepšení End to End performance. Logický přenos pomocí více TCP spojení. Současné využití několika fyzických tras. Zlepšení charakteristik TCP přenosů přes jednu fyzickou trasu. Možnost snadné modifikace existujících aplikací. Univerzálnost a rozšiřitelnost řešení. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 3 / 13
Cíle práce Zlepšení End to End performance. Logický přenos pomocí více TCP spojení. Současné využití několika fyzických tras. Zlepšení charakteristik TCP přenosů přes jednu fyzickou trasu. Možnost snadné modifikace existujících aplikací. Univerzálnost a rozšiřitelnost řešení. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 3 / 13
Cíle práce Zlepšení End to End performance. Logický přenos pomocí více TCP spojení. Současné využití několika fyzických tras. Zlepšení charakteristik TCP přenosů přes jednu fyzickou trasu. Možnost snadné modifikace existujících aplikací. Univerzálnost a rozšiřitelnost řešení. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 3 / 13
Cíle práce Zlepšení End to End performance. Logický přenos pomocí více TCP spojení. Současné využití několika fyzických tras. Zlepšení charakteristik TCP přenosů přes jednu fyzickou trasu. Možnost snadné modifikace existujících aplikací. Univerzálnost a rozšiřitelnost řešení. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 3 / 13
Cíle práce Zlepšení End to End performance. Logický přenos pomocí více TCP spojení. Současné využití několika fyzických tras. Zlepšení charakteristik TCP přenosů přes jednu fyzickou trasu. Možnost snadné modifikace existujících aplikací. Univerzálnost a rozšiřitelnost řešení. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 3 / 13
Klasifikace paralelizace přenosů Podle místa vzniku: řízený sítí, řízený koncovými stanicemi. Podle vrstvy sít ového modelu: paralelizace na sít ové vrstvě, paralelizace na transportní vrstvě: nový transportní protokol nad sít ovou vrstvou ( na ), využití existujícího transportního protokolu ( nad ), paralelizace na aplikační vrstvě. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 4 / 13
Klasifikace paralelizace přenosů Podle místa vzniku: řízený sítí, řízený koncovými stanicemi. Podle vrstvy sít ového modelu: paralelizace na sít ové vrstvě, paralelizace na transportní vrstvě: nový transportní protokol nad sít ovou vrstvou ( na ), využití existujícího transportního protokolu ( nad ), paralelizace na aplikační vrstvě. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 4 / 13
Klasifikace paralelizace přenosů Podle místa vzniku: řízený sítí, řízený koncovými stanicemi. Podle vrstvy sít ového modelu: paralelizace na sít ové vrstvě, paralelizace na transportní vrstvě: nový transportní protokol nad sít ovou vrstvou ( na ), využití existujícího transportního protokolu ( nad ), paralelizace na aplikační vrstvě. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 4 / 13
Klasifikace paralelizace přenosů Podle místa vzniku: řízený sítí, řízený koncovými stanicemi. Podle vrstvy sít ového modelu: paralelizace na sít ové vrstvě, paralelizace na transportní vrstvě: nový transportní protokol nad sít ovou vrstvou ( na ), využití existujícího transportního protokolu ( nad ), paralelizace na aplikační vrstvě. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 4 / 13
Architektura systému Library Space Asynchronní provádění protokolu. User API Komunikační rozhraní PSCIF (4, 5, 6). Protocol Thread Association Association Distribution Distribution Sdílení soketů (2, 3). Nezávislost Library Space rozvrh paralelního přenosu. Ovladač paralelního přenosu různé strategie dělení dat do dílčích přenosů. Řídicí komunikace s protistranou (1). Dispatching Dispatching Scheduling Scheduling (7) (8) Control Control Engine Engine (1) Operating System Operating System (allocated (allocated control sockets) control sockets) (6) (5) (4) (2) Dispatching Dispatching Execution Execution (3) Operating Operating System System (allocated (allocated data sockets) data sockets) (9) (10) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 5 / 13
Architektura systému Library Space Asynchronní provádění protokolu. User API Komunikační rozhraní PSCIF (4, 5, 6). Protocol Thread Association Association Distribution Distribution Sdílení soketů (2, 3). Nezávislost Library Space rozvrh paralelního přenosu. Ovladač paralelního přenosu různé strategie dělení dat do dílčích přenosů. Řídicí komunikace s protistranou (1). Dispatching Dispatching Scheduling Scheduling (7) (8) Control Control Engine Engine (1) Operating System Operating System (allocated (allocated control sockets) control sockets) (6) (5) (4) (2) Dispatching Dispatching Execution Execution (3) Operating Operating System System (allocated (allocated data sockets) data sockets) (9) (10) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 5 / 13
Architektura systému Library Space Asynchronní provádění protokolu. User API Komunikační rozhraní PSCIF (4, 5, 6). Protocol Thread Association Association Distribution Distribution Sdílení soketů (2, 3). Nezávislost Library Space rozvrh paralelního přenosu. Ovladač paralelního přenosu různé strategie dělení dat do dílčích přenosů. Řídicí komunikace s protistranou (1). Dispatching Dispatching Scheduling Scheduling (7) (8) Control Control Engine Engine (1) Operating System Operating System (allocated (allocated control sockets) control sockets) (6) (5) (4) (2) Dispatching Dispatching Execution Execution (3) Operating Operating System System (allocated (allocated data sockets) data sockets) (9) (10) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 5 / 13
Architektura systému Library Space Asynchronní provádění protokolu. User API Komunikační rozhraní PSCIF (4, 5, 6). Protocol Thread Association Association Distribution Distribution Sdílení soketů (2, 3). Nezávislost Library Space rozvrh paralelního přenosu. Ovladač paralelního přenosu různé strategie dělení dat do dílčích přenosů. Řídicí komunikace s protistranou (1). Dispatching Dispatching Scheduling Scheduling (7) (8) Control Control Engine Engine (1) Operating System Operating System (allocated (allocated control sockets) control sockets) (6) (5) (4) (2) Dispatching Dispatching Execution Execution (3) Operating Operating System System (allocated (allocated data sockets) data sockets) (9) (10) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 5 / 13
Architektura systému Library Space Asynchronní provádění protokolu. User API Komunikační rozhraní PSCIF (4, 5, 6). Protocol Thread Association Association Distribution Distribution Sdílení soketů (2, 3). Nezávislost Library Space rozvrh paralelního přenosu. Ovladač paralelního přenosu různé strategie dělení dat do dílčích přenosů. Řídicí komunikace s protistranou (1). Dispatching Dispatching Scheduling Scheduling (7) (8) Control Control Engine Engine (1) Operating System Operating System (allocated (allocated control sockets) control sockets) (6) (5) (4) (2) Dispatching Dispatching Execution Execution (3) Operating Operating System System (allocated (allocated data sockets) data sockets) (9) (10) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 5 / 13
Architektura systému Library Space Asynchronní provádění protokolu. User API Komunikační rozhraní PSCIF (4, 5, 6). Protocol Thread Association Association Distribution Distribution Sdílení soketů (2, 3). Nezávislost Library Space rozvrh paralelního přenosu. Ovladač paralelního přenosu různé strategie dělení dat do dílčích přenosů. Řídicí komunikace s protistranou (1). Dispatching Dispatching Scheduling Scheduling (7) (8) Control Control Engine Engine (1) Operating System Operating System (allocated (allocated control sockets) control sockets) (6) (5) (4) (2) Dispatching Dispatching Execution Execution (3) Operating Operating System System (allocated (allocated data sockets) data sockets) (9) (10) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 5 / 13
Životní cyklus paralelního spojení Kostra přechodového diagramu CONNECTING active open / connect control stream control stream connected / send hello CLOSED passive open LISTEN Navázání řídicího spojení HELLO_WAIT accept on control stream / duplicate pcb, send hello recv hello / send stream announce STREAM_ANNOUNCE_WAIT Vyjednání parametrů paralelního spojení recv stream announce ESTABLISHING establishment of a pstream Navázání dílčích přenosů recv shutdown / send ack ESTABLISHED establishment of the last pstream shutdown / send shutdown Přenos recv shutdown ack SHUTDOWN_SENT recv shutdown / (ptransfer driver specific) flush_end SHUTDOWN_RECEIVED shutdown SHUTDOWN_APPROVED Uzavření spojení flush_end flush_end SHUTDOWN_WAIT shutdown recv shutdown ack SHUTDOWN_ACK_WAIT CLOSED recv shutdown / (ptransfer driver specific) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 6 / 13
Životní cyklus paralelního spojení Navázání a ukončení paralelního spojení CLOSED CONNECTING Control stream SYN Control stream SYN+ACK Control stream ACK LISTEN ESTABLISHED Shutdown by user SHUTDOWN REQUEST ESTABLISHED HELLO WAIT STREAM ANNOUNCE WAIT ESTABLISHING HELLO(2,4) STREAM ANNOUNCE pstream 1 SYN pstream 2 SYN pstream 3 SYN HELLO(3,5) STREAM ANNOUNCE pstream 1 SYN+ACK pstream 2 SYN+ACK HELLO WAIT STREAM ANNOUNCE WAIT SHUTDOWN SHUTDOWN SEND APPROVED Flushing pstream 1 Flushing pstream 2 Flushing pstream 3 pstream 1 FIN pstream 3 FIN pstream 2 FIN SHUTDOWN REPLY pstream 2 FIN pstream 1 FIN pstream 3 FIN Flushing pstream 1 Flushing pstream 2 Flushing pstream 3 SHUTDOWN RECIEVED pstream 1 ACK pstream 3 SYN+ACK ESTABLISHING pstream 2 ACK pstream 3 ACK CLOSED Control stream FIN SHUTDOWN WAIT ESTABLISHED Shutdown by user ESTABLISHED CLOSED Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 7 / 13
Realizace Vztahy objektů v Library Space psock file and socket descriptors 0 1 2 3 struct psock_file Standard file and socket operations psock operations psock object Library Space ptransfer driver B (Library space part) ptransfer driver A (Library space part) psock s PSCIF interface PSCIF communication driver 2 PSCIF communication driver 1 Protocol Thread(s) (cut) PCB s PSCIF interface 4... psock object psock s PSCIF interface PCB s PSCIF interface System file and socket references (via fd) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 8 / 13
Realizace Vztahy objektů v Protocol Space Library Space (cut) PSCIF communication driver 2 Protocol Thread(s) Protocol instance, running state machine ptransfer driver B (Protocol space part) Control stream and control block psock s PSCIF interface PSCIF communication driver 1 PCB s PSCIF interface PCB pstream 1 pstream 2 pstream n psock s PSCIF interface Protocol instance, running state machine PCB s PSCIF interface PCB Control stream and control block pstream 1 pstream 2 pstream n ptransfer driver A (Protocol space part) Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 9 / 13
Dělení dat do dílčích přenosů Určeno ovladačem paralelního přenosu. Cyklické round robin přizpůsobení nejpomalejšímu dílčímu přenosu jednoduchá implementace Dle připravenosti dílčích přenosů pollall využití kapacit dílčích přenosů s různými parametry přizpůsobení se změnám parametrů synchronizace rychlosti přenosů přes protistranu při nesplnění podmínky pro kapacity soketových ( bufferů: ) wj r i = c i max j 1,n c j + t j t i nutné ošetřit bloky předběhlé o více, než je kapacita rozvrhu pstream 1 pstream 1 Input flow pstream 2 Internet pstream 2 Output flow pstream n pstream n Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 10 / 13
Dělení dat do dílčích přenosů Určeno ovladačem paralelního přenosu. Cyklické round robin přizpůsobení nejpomalejšímu dílčímu přenosu jednoduchá implementace Dle připravenosti dílčích přenosů pollall využití kapacit dílčích přenosů s různými parametry přizpůsobení se změnám parametrů synchronizace rychlosti přenosů přes protistranu při nesplnění podmínky pro kapacity soketových ( bufferů: ) wj r i = c i max j 1,n c j + t j t i nutné ošetřit bloky předběhlé o více, než je kapacita rozvrhu pstream 1 pstream 1 Input flow pstream 2 Internet pstream 2 Output flow pstream n pstream n Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 10 / 13
Dělení dat do dílčích přenosů Určeno ovladačem paralelního přenosu. Cyklické round robin přizpůsobení nejpomalejšímu dílčímu přenosu jednoduchá implementace Dle připravenosti dílčích přenosů pollall využití kapacit dílčích přenosů s různými parametry přizpůsobení se změnám parametrů synchronizace rychlosti přenosů přes protistranu při nesplnění podmínky pro kapacity soketových ( bufferů: ) wj r i = c i max j 1,n c j + t j t i nutné ošetřit bloky předběhlé o více, než je kapacita rozvrhu pstream 1 pstream 1 Input flow pstream 2 Internet pstream 2 Output flow pstream n pstream n Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 10 / 13
Dělení dat do dílčích přenosů Určeno ovladačem paralelního přenosu. Cyklické round robin přizpůsobení nejpomalejšímu dílčímu přenosu jednoduchá implementace Dle připravenosti dílčích přenosů pollall využití kapacit dílčích přenosů s různými parametry přizpůsobení se změnám parametrů synchronizace rychlosti přenosů přes protistranu při nesplnění podmínky pro kapacity soketových ( bufferů: ) wj r i = c i max j 1,n c j + t j t i nutné ošetřit bloky předběhlé o více, než je kapacita rozvrhu pstream 1 pstream 1 Input flow pstream 2 Internet pstream 2 Output flow pstream n pstream n Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 10 / 13
Paralelní přenos přes jednu fyzickou trasu Zvětšení propustnosti, není-li možnost měnit soketové buffery. Zvětšení propustnosti při ztrátách nezpůsobených zahlcením nárůst virtuální MSS. 100 80 Throughput [Mb/s] 60 40 20 Throughput 0 1 2 3 4 5 6 7 8 9 10 Flows [-] Šířka pásma 100Mb/s, ztrátovost 0,01% Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 11 / 13
Paralelní přenos přes jednu fyzickou trasu Zvětšení propustnosti, není-li možnost měnit soketové buffery. Zvětšení propustnosti při ztrátách nezpůsobených zahlcením nárůst virtuální MSS. 100 80 Throughput [Mb/s] 60 40 20 Throughput 0 1 2 3 4 5 6 7 8 9 10 Flows [-] Šířka pásma 100Mb/s, ztrátovost 0,01% Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 11 / 13
Paralelní přenos přes více fyzických tras Rozložení zátěže generované náročným logickým přenosem. Zvětšení sumární propustnosti. 100 90 80 Throughput [Mb/s] 70 60 50 40 30 20 10 single stream round robin dispatching pollall dispatching 0 0 0.2 0.4 0.6 0.8 1 Bandwidth of the 1st path / bandwidth sum [-] Sumární propustnost při přenosu přes dvě trasy Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 12 / 13
Paralelní přenos přes více fyzických tras Rozložení zátěže generované náročným logickým přenosem. Zvětšení sumární propustnosti. 100 90 80 Throughput [Mb/s] 70 60 50 40 30 20 10 single stream round robin dispatching pollall dispatching 0 0 0.2 0.4 0.6 0.8 1 Bandwidth of the 1st path / bandwidth sum [-] Sumární propustnost při přenosu přes dvě trasy Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 12 / 13
Závěr Logické přenosy realizované několika dílčími TCP spojeními umožňují dosahovat větších propustností sítě a rovnomějšího využití linek. Paralelní streamy umožnují překonat omezení TCP při přenosech přes rozlehlé vysokorychlostní sítě. Díky zvětšení virtuální MSS mohou přenosy přes rozlehlou sít lépe soupeřit s přenosy na menší vzdálenost. API knihovny psock umožňuje snadné zavedení podpory paralelních přenosů do sít ových aplikací. Martin Čížek (FEL ČVUT) Paralelizace datových přenosů Diplomová práce 13 / 13