HAL Id: inria-00071591
https://hal.inria.fr/inria-00071591
Submitted on 23 May 2006
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Dynamic Streams for Efficient Communications Between Migrating Processes in a Cluster
Pascal Gallard, Christine Morin
To cite this version:
Pascal Gallard, Christine Morin. Dynamic Streams for Efficient Communications Between Migrating Processes in a Cluster. [Research Report] RR-4987, INRIA. 2003. �inria-00071591�
ISRN INRIA/RR--4987--FR+ENG
a p p o r t
d e r e c h e r c h e
INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE
Dynamic Streams for Efficient Communications Between Migrating Processes in a Cluster
Pascal Gallard and Christine Morin
N˚4987
Novembre 2003
THÈME 1
12 3*+ 43!56) 478#%9'(:+;
<>=@?BAC=@DFEG=@DHDH=@IBJK=0LJ6MNOIBPH?4QRPSLTVUXWYIZPHL
[;\^]4_a`abdcfegZhi`Zjlknmo`pFhiqnhrps]4_a`Zh
tvuiwlxr`pt:yFez|{
e}jl~~0wu|p}n`us`Z\^`4u\` ClGc8}w`4_^ui`l*cbR~^j`Zh
oOZ4ll [;\h~0j~@`4u~us`Zhi`4Cph jd4wl_a_k^Zjps¡whiqnhrps`4_.`Zhi¡`Zpiw¢jl£¡£w¤¥`¦§4¡`Zp~^uiwn`Bhih
_alujps¡w ¡¨j©4£¡k0hrps`4uBª«[;\`¬~^uiw~0wCh|`B h|qnh|pi`Z_®h(l`Z`4usV`4wkl\¯piw°j££¡w¤±ps\`²_lujps¡w
wl³Fjq²´C^µw³Fh|pius`Zj_·¶§hiwn´l`pB¸~¡~@`l¸"\^jun`4®`ZhZªº¹"w_a_k®4jpiG~uswn`Bhihi`Zhk^h|¬z»t%wlu
¼F¡m·hiwn´l`phjus`*piuj^hi~^jlui`Zps£¡qo_lujps`Z(¤¡pi\Gwku}_a`Z\^jl®h|_h}jl^pi\`Zq(ZjGh|pi£¡£+`¦§`4Cpi£q
4wl_a_k^Zjps`j³½pi`Zu_alujpiwlª¾[;\`vn`Bh|l`Bw__k®4jpiwlh|qnh|pi`Z_¯®h¾_~^£¡`Z_`ZCpi`Zjh¾~^jlu|p¾wl³
¿*`Zuiusl\`B:¸j>hi¡^l£`)hiqnhrps`4_ _ajll`)wl~@`4ujps¡dh|qnh|pi`Z_ ³Àwlu jd£k^hrps`4u^jh|`B¢wlÁ¾knm:ª+tus`4£_^jluiq
~@`4ui³Àwlus_j^4`>us`Zhik£¡pshjlui`*~us`Zhi`4Cpi`B:ª
ÂÄÃCÅYÆsÇÈ ÉOl F`pr¤)wlus´§w__k®4jpiwl^hZ¸{Cpius`Zjl_«_a¡usjpiwl¾¸ntuswn`Bhih)_a¡usjpiwl¾¸nÊÄtvz˸@¹"£¡k0hrÌ
ps`4u}4wl_a~knps¡
Í®Î:ÏiÐÒÑZÓ;ÏÔOÕÐÒÖH×Ø
Unité de recherche INRIA Rennes
)&'( a'(¢¢' |'( 3¢O¬( )¢9)'(9*+'O
¹"`p(jlu|ps4£¡`¬~uswl~@whi`Gk¯hiqnhrps]4_a`¬n`ºw_a_k®4jpiwl 4wl}kXj^¯`V~@`4us_`4p|Ì
psui`£jo_a¡usjpiwlÄ`¦§Zjl`n`~^uiwn`Bhihik^h}4wl_a_k^Ck^jlCpdjk¬h|`Z¡Vk^`usjl~~0`n`Zj£®k£®jps`4kuh4ª
Ájlus\^ps`ZËpskus`>~uswl~@whigd`Zh|phikn¦§hsj_a`4CplgZg4usCk`d~@wlku~@`4us_a`p|psui`*£®j_lujps¡w(`>pswlk^h)prq~@`Zh
`^knm:¶Gh|wn´`pZ¸vpik@`l¸;~@g4us¡~^\g4usCk`Än`·prq~@`Ä4jujlpi]Zui`ª Á`Zh~uswn`Bhihik^haw__k Ck^jCp~^ju
hiwn´l`4pshz»tXwlkV¼FmGhiwlCp>ngZ~£®jlgBh>`_j]4us`psusjl^h|~0jus`4Cpi`"!o£#j®n`n`wpsui`h|qnh|pi]Z_`¸0`4p>£`Zh
4wl_a_k^Zjps¡w^h)ui`Bhrps`4Cp`¦§4j`Zhjl~us]Zh;£®j_alujps¡w¾ª Á$ju\ps`Zpikus`>~^uiw~0wCh|gZ`%!gpsg¢ng4`4£wl~nÌ
~@g4`¢^j^h¿*`Zuius¡\`Z¾¸Ck^·hiqnhrps]4_a`¢&`mn~£wl¡psjpiwl!_j`dk^Ck`~@wlk^u}luj~~@`*n`¢4jl£4k£jpi`Zkush
0jlhig*hiku}Á¡knm:ª ¼}`gZj£k^jps¡w~usg4£g4_a^jus`*`Zh;~@`4ui³Àwlus_ajl^`Bh)`Zh|p}~uigBh|`ZCpig4`ª
'%È B Æ )( ¹"wl_a_k^Zjpiwl©uigBh|`Bjknm:¸vÊG¡usjpiwl©`0knm:¸)ÊÄlujps¡wµn`·~uswn`Zhshik^h4¸"ÊÄtz˸
usjl~~@`dn`¢Zj£®k£®jps`4kuh
? @ ('v+ ¢
¹"£k^h|pi`Zushjlui`(w¤-_awui`Äj0µ_awlus`·¤`4£q¥k^hi`Z°jlhjl jl£ps`4us^jps¡`opsw²~0juj££¡`Z£}wl_a~kpi`4uhjlh
ps\`4u)£¡w¤ ~^ui®`dj^aps\`*~0`Zu|³Àwui_jl^`}wl³_a4uiwlÌH~^uiwn`Bhihiwluh_j´`}pi\^`4_us`Zj££qajp|psusjËpil`}³Àwlu)pi\`
`4mn`Zkpiwl(w³ hi4¡`Zps@djl~~£Zjps¡w^h)wlu}jlh^jpsjahi`4usl`ZushZª
y~^juj££`4£;j~~£®4jps¡w¥®h`4mn`Zkpi`Z¥wl©j¬£k^h|pi`4uajlhaj¬h|`4pwl³}~uiwn4`Zhsh|`Bh¤\®\µjlui`(h|~us`Zj
jl_awlopi\`£k^h|pi`Zuwnn`ZhZªz»ºh|k0\¬j~^~£¡®4jpiwl^hZ¸:~uswn`Zhshi`Zh>_ajRqG4wl_a_k^Zjps`jl^G`4mn\0j`
^jpsja¤¡pi\Ä`Bjl\·wps\`4uBª;z»Gjpiujln¡piwl0j£¼Fm·wl~@`4ujps¡^§h|qnh|pi`4_·¸@wl_a_k®4jps¡w(piwwl£®h}4jlÄ0`
h|pius`Zjl_h¢£¡´`BACDA'EGwluGF1H'IJKE1LV³Àwlu`mj_a~£`lªNM^wlu£¡wCjlÌÒ^jl£jl^·~kus~0wCh|`¸ jG~uswn`Zhsh_jRqº0`
_alujps`Z³Àuiw_w`¢wnn`¢piwojlwps\`4u}^w`lªzÒ³pi\®h>~uiwn4`Zhsh}w__k®4jpi`ZhZ¸^hi~0`B®j£piwwl£®h}_k^hrp
@`k^hi`Z¡·wusn`Zu)piw§j££w¤ \l\·~0`Zu|³Àwui_jl^`*w__k®4jpiwl·j³½pi`Zu;pi\`_alujps¡w¾ª
[;\®h~0j~@`4uv~^ui`Bh|`Zphj`Z¤Kwl_a_k®4jps¡wa£jRq`4u³Àwlu"`¦§`4Cpv_alujps¡wwl³¾wl_a_k®4jps¡^
~^uiwn`Bhihi`ZhZª[;\`}`Zhi¡wl³^pi\^h4wl_a_k^Zjps¡w£®jRql`4u jhihik_a`Zh+pi\0jp~uswn`Zhshi`ZhO_a¡usjpi`)¡^hi®n`;pi\`
4£¡k0hrps`4uj^nwFwlp4wl_a_k^Zjps`v¤¡pi\~^uiwn`Bhihi`Zhuik^>wknpshi®n`ps\`)4£¡k0hrps`4uBª+z»pi\`;¿*`4usuil\^`Z
w~0`Zusjpi·h|qnh|pi`4_PO¡bBn¸bBRQH¸On`4~@`40n¡^Äwl²pi\`£wjÌÒ^j£®j^4¡^~@wl£4ql¸+~uiwn4`Zhsh|`Bh>_jRqG_alujps`
jp}jqpi_a`lª
[;\`"ui`Z_j^n`4uw³pi\®h¾~0j~@`4u®h¾wuiCjTS4`B*jlhY³Àw£¡£w¤}h4ª+e`4£®jps`Z¤)wlus´}®h¾us`4¡`Z¤"`B*¡{n`ZËps¡wnª
{n`ZËps¡w²(n`Bhi4ui0`Bh>pi\`§nq^jl_ahrpsui`Bj_$hi`4us4`~usw¡opi\`§qC0j_ah|pius`Zj_$jl^h|piujlËps¡w
jl^¥¿*`Zuius¡\`Zºhiwn´l`ph4ªº{`Zpiwl¥²h|\^w¤}h¢\w¤ ps\`(qC0j_ahrpsui`Bj_ h|`Zui®`oZj¥@`(k^h|`Bºpiw
_a~£`4_a`4Cp>~^¡~@`Zhdj^Äh|pius¡^knpi`BG¼}¡mGh|wn´`pshZªz»¬{`BËps¡wNUa¤"`~uswC®n`¢jlÄwl`4us¡`Z¤Xwl³ pi\`
£w¤;ÌÒ£¡`Zl`4£w_a_k®4jpiwlºh|`Zui®`wl²¤\®\¬ps\`nq^j_a®ahrpsui`Bj_ hi`4us4`®h*^jlhi`Z¾ª{n`ZËps¡wWV
~^ui`Bh|`Zph¾~@`4ui³Àwlus_j^4`vus`Zhik£phwnpsjl¡^`Z¤¡pi\pi\`;¿*`4usuil\^`Zd~uswpiwlprq~0`ª¹"wl0£k^h|wl0hj0³Àknpskui`
¤)wlus´§jus`d~ui`Bh|`ZCpi`ZÄ{n`ZËps¡wVª
X
,%Y3¢'(
[;\^`~^uiw£¡`Z_w³)_lujps¡^j·w__k®4jpi~^uiwn`Bhih>®hn¦§4k£p¢jl^Gps\®h*`mn~£®j^hd¤\Cq¬h|`ZÌ
`Zusjl£)hiqnhrps`4_hZ¸vh|k0\µjlh§¹"wl0nwluZOQH¸"~uiw®n`o~^uiwn`Bhih_a¡usjpiwl¥w£q¬³Àwuawl wl_a_k®4jps¡^
~^uiwn`Bhihi`ZhZª
[;\`Ê:[*{z>\%hiqnhrps`4_]O¸+bQOk^hi`Zh$^1>_%&o_a`Z\0j®h|_hF¡Gwus`4upswoj££¡w¤¨ps\`_alujpiwl·wl³ j
4wl_a_k^Zjps¡Ä~^uiwn`BhihZª.`K\`4©jÄ~usw4`Zhsh_a¡usjpi`BhGa½³Àuswl_ j:bKc4ÌÒwnn`§pswVj:b'R8»ÌÒwnn`7d¸j
£´h)us`Zjpi`B0`4pr¤"`Z`4opi\®h)~uiwn4`Zhsh"aÀw§ps\`b'R8»ÌÒwnn`7d"j0api\`B^1>_%&;aÀw§pi\^`b'BÌÒwnn`Rd˪
evl`4usq w__k®4jpiwl ³Àuswl_gfBpswGps\h~uswn`Bhihhpiuj0h|_a¡p|pi`B pswVps\`h^ij_k%&2²ps\^jpjlpshjlhpi\`
~^uiwn`BhihZªaz»Vps\®h¤)jRq¸¾_a¡usjpi`BV~uswn`Bhihi`Zh*jus`awp¢jl£¡`apswÄwl_a_k®4jps`n¡us`Zpi£qG¤¡pi\ wps\`4u
~^uiwn`Bhihi`Zhajl^©pi\k^h§4wl_a_k^Zjpiwl ~@`4ui³Àwlus_ajl^`Än`Bus`Zjh|`Bhj³½pi`Zuojº_a¡usjpiwl¾ª [;\`V{n~ui¡pi`
F`pr¤)wlus´Vw~0`ZusjpiGh|qnh|pi`Z_POlUn¸mVRQ;k^h|`Bhhi¡_a£jlu_a`Z\0j®h|_h¥wusn`ZupiwG³Àwlus¤)jlus²´l`Zui^`4£"Zj££h
¤\^whi`dus`Zhik£¡pshjlui`d_jl\`Ì»n`Z~0`Z^n`4CpBª
{`Zl`Zusjl£0wlpi\`Zu;jp|ps`4_a~npsh)psw~^uiw®n`>4wl_a_k^Zjpiwl_a¡usjpiwl§\^jR`>@`4`Znw`jpnon@`Zui`Zp
£`4`4£®h;w³+pi\`[*{zfz|{'[6_awnn`Z£Sª
tdÊ ObR7Q*jl^¯ÊÄtvz-O7Qjl~~£Zjps¡w^hojlui`¬lwwnK`mj_a~£`Zhow³4wl_a_k^Zjps¡µ~uiwluj_hZª
{n`4l`Zusjl£+¤)wlus´nhF£´l`aÊÄt>Ê OQ wlu¹"w¹"\^`Z´hO¡bZQvj££w¤6pi\`a_a¡usjpiwlGwl³"~uswn`Bhihi`ZhZª}w¤)`4`4uB¸
ps\`Zhi`*_a£¡`Z¤)jlui`Bhjus`>wlppiuj^hi~^jlui`Zp)³Àwlu}jl~~£Zjps¡w^h4ª
ÊÄw£¡`4ÌÒ[F¹"trO¡bR7QF~usw`ZhajV_alujps¡wµ_a`Z\^jl®h|_ pi\`Ä[F¹"t ~uswpsw4wl£;£®jRql`4uk^hi¡^ºj
38%'<4_'8;£¡´`Zopiwpi\^`ui`Bj£¾[F¹"tKh|wn´`pZª
ÊÄw£¡¡prqahvwl`}wl³:pi\`F_ajl¡§³À`Zjpskus`Zhwl³:z»t&VGOblb8Q@knp)4wl_a_k^Zjps¡w^hvZj_a¡usjpi`w£¡q¡³
ps\`¢z»t jnus`Zhsh_a¡usjpi`ZhZªvz»·ps\®hF4jh|`¸^w`~usw4`Zhsh_k0hrpF@`jp|psj\`Zpsw§wl`z»tXjlnus`Zhshj0
`Bjl\ \wChrp_k^h|p\^jR`ohi`4l`Zusjl£z»t%jnus`Zhsh|`BhGaÀw`§³Àwu`Zj\ uik^¬4wl_a_k^ZjpiG~^uiwn`Bhihd˪
evl`4(ps\®h}4jh|`¸nwl£q§wl^`d´^(w³wl_a_k®4jps¡wopswwl£®haÀ`pFhiwn´l`ph d)Zj(_lujps`lª
yFwps\`4u4jlhi`§wl³4wl_a_k^Zjps¡w²_alujps¡w hn`pj£¡`Bº¡µÊÄÌÒ[F¹"t ObDVRQ;¤\`Zui`§jÄusk^¡
4£¡`4CpB¸Owknpshi®n`§w³;ps\`4£¡k^h|pi`ZuZ¸4jl¥w__k®4jpi`§¤¡pi\µjVh|`Zui`4u*pi\^uiwkl\ j¥j44`Zhsh~0w¡CpBªGzÒ³
~^uiwn`Bhihi`Zh)w(hi`4usl`Zush"_a¡usjpi`l¸j44`Zhsh"~@wlCpsh}Zj(\®n`*pi\`¢4wl_a_k^Zjps¡w(\^jll`Bh4ª
Fwl`w³"pi\`Bh|`~uswl~@whsj£®h}wnY`4uh*jo`4`Zui®jl^G`4¦§`4Cpd_a`B\^j®hi_±³Àwlu*_a¡usjpih|pius`Zjl_ah
·j4£¡k^h|pi`Zuj££¡w¤j_a¡usjpi~uiwn4`Zhshpswk0h|`*j££:hrpj^jlusw__k®4jpiwl§pswwl£®h"wl³+ja¼}¡m
hiqnhrps`4_·ª
`²`¤;jCp¢psw²jRwl®²_`Bhihsj`³Àwlus¤;jun¡^Ä0`4pr¤"`Z`4µ4£¡k^h|pi`Zu^w`Zh¤\`4¥~^uiwn`Bhihi`Zh_a¡usjpi`lª
`²`*~uswl~@whi`djl`Z`4usdj~^~uiwCjl\§(wlun`4u"piwa~uswn`*h|psj0ju§£wn4j£:4wl_a_k^Zjpiwlopiwwl£®h)£¡´l`
AC7A'E0¸1F1H'IJ&EiLFjl^gbKZÌ»n`ZC®`Bh+4wl_a~£jlCp+¤¡pi\¢~uswn`Bhih_lujps¡wGan`B®n`Z¢³Àwlu+£¡wCjlÌÒ^j£®j0
us`Zjh|w^h>wlu*nk`piwÄw ^kusjpiwlV\0j`Zh>¡¬pi\`4£¡k^h|pi`ZuGjn¡piwlf`4®ËpiwlVw³"^w`Zhd˪[;\^h
jl~~uswj\G\^jlh*@`4`Z¬_a~£`4_a`4Cpi`Bºjlhd~^juipw³"pi\`§¿*`Zuius¡\`ZG~uiwlxr`Zpjp*pi\`awl~@`4ujps¡^(hiqnhrps`4_
£`4`4£¾jl^o(pi\®h¤;jRq~uswC®n`Bhv³Àk^£¡£+_lujps¡w§psusjl^h|~0jus`4^4qapiww__k®4jpij~~£®4jps¡w^hZª
[>k^u+¤)wlus´djl¡_hOjp~uswC®nFh|psjl^ju¢4wl_a_k^ZjpiwlCpi`Zu|³j`ZhOhik^\jh+¼Fmhiwn´l`4psh¾wu+~^¡~@`Zh
psw_alujpi¢~^uiwn`Bhihi`Zh¡(j£k^h|pi`ZuZªÊÄlujpij~usw4`Zhshvhi\wlk^£^wp)jl£ps`4uvpi\`d~0`Zu|³Àwui_jl^`}wl³
¡pshFwl_a_k®4jps¡w^h)¤ps\·wpi\^`4u~uswn`Zhshi`ZhZª
y6w_a_k®4jpiwl(wl_a~us®h|`Bhpr¤)wh|pi^Ëp}jh|~@`ZpshZ¶ 0ush|pi£q§j^¡^jluiq§h|pius`Zjl_ ³Àuiw_«j^w`*y
pswojwnn`>¸@j^Vh|`Bwl0n£¡q(j§hi`pFwl³_`4psjÌÒjpsja~usw¡n³Àwui_jps¡wÄj@wlknp>pi\`h|psjpi`¢wl³ pi\`
h|pius`Zjl_-j0o\w¤¯piwa\^jl^n£`pBª [>ku}ju\¡pi`Zpikus`dh0jlhi`Zwlpi\®h®n`Zj^ª
`²`;~uiw~0wCh|`vpi\`4wl^4`4~npw³0qC0j_a)h|pius`Zj_h+wl¤\\hrpj^^juw_a_k®4jpiwl¢Cpi`Zu|³j`Zh
jlui`Ä^k¡£¡pZª `¬`²4j££}ps\`V`4mpius`4_aps¡`Bh§wl³pi\`Bh|`Vh|pius`Zjl_h¿*`ZusF`pohiwn´l`ph·jl^ pi\^`Zhi`V4jl 0`
_alujps`Z(¡0h|®n`ps\`£k^h|pi`ZuZª>qC0j_ah|pius`Zjl_h}j^Ä¿*`ZusF`pFhiwn´l`ph}jus`_~^£¡`Z_`ZCpi`Z·w·piw~
wl³j¢~@wluipsjl£¡`>\l\§~@`4ui³Àwlus_j^4`Fw__k®4jpiwl§hiqh|pi`Z_ ~uiw®njhi`40fRus`Z4`4l`}Cpi`4ui³jl4`piw
psusjl^h|³À`4ujpj0`4pr¤"`Z`4Änon@`Zui`Zp}^w`Zh;·ja4£¡k^h|pi`ZuZª
[;\`"~uswl~@whi`Zju\¡pi`BËpik^ui`®hOn`4~®Ëps`ZMOlkus`}bª+[;\`"£¡w¤;ÌÒ£¡`Zl`Z£~0w¡CpiÌSpswÌÒ~0w¡Cp+4wl_a_k^Ì
Zjps¡whi`4us4`)®h ^jh|`B`4¡pi\`Zuwln`ZC®`}uil`Zush ahik^\jlhvÊÄqui`p8d˸lpi\``4`Zui®;`pr¤)wlus´¢n`ZC®`
Äps\`Á¡knm·´l`Zui`Z£ a`pn`4®`7d}wludj§\l\nÌÒ£`4l`Z£w_a_k®4jpiwlÄ~uswpswnwl£ ahik^\Vjlh>[F¹"t6fRz»t6d˪
[>§piwl~w³¾ps\`d£¡w¤K£`4`4£@~0w¡Cp|ÌHpiwlÌH~@wlCp"£®jRql`ZuZ¸¤"`d~uswC®n`ps\us`4`F´^h)w³Onq^j_a®Fh|pius`Zj_hZ¶OÌ
FIFO LIFO Direct
Socket Pipe FIFO Char
Low−level Point−to−Point communication system
KerNet
Dynamic stream
TCP/IP Myrinet
Netdevice
MO¡kui`ab¶¿*`4usuil\`B`4pr¤"wui´§h|psj´
us`ZpZ¸4MOzM=[Xj^oÁ¾z M=[Xh|pius`Zjl_ahZª Fq^jl_®}h|pius`Zjl_ah"jus`Fhi~0`B®j£oSZ`ZaqCpi`Zu|³j`ZhZª=`¬`>k^h|`Fpi\`Bh|`
qC0j_ah|pius`Zj_hZ¸Y¡_a~£`4_a`4Cps`Z¬Cq·ps\`$ )<o1Fpiw·wnY`4u*nq^jl_®l`4uhi¡w^hFwl³"h|psj0ju
¼F¡m(h|pius`Zj_Cpi`Zu|³j`Zha¡^`p8fk¡m(hiwn´l`ph4¸~~@`l¸¾ªZª4ª dª
[;\`¿*`4u}`p¢£®jRql`Zu¡_a~£`4_a`Zphps\`oj0hrpsusjËpiwl²w³}nq^jl_ah|pius`Zjl_ j0²¿*`ZusF`phiwn´l`ph4ª
zÒp¢®hjÄh|pius¡^knpi`B²hi`4us4`¤\®\²~^uiw®n`Zh*£¡w^j£h|pius`Zjl_ _j^jll`Z_`ZCp4£¡k0hrps`4u¢¤®n`lªz»ºpi\`
us`4_jl¡^`4u w³@pi\^hv~^j~@`4uB¸¤)`;³Àw4k^h wps\`Fn`Bh|ljl^¡_a~£`4_a`4Cpjpiwlawl³0ps\`F¿*`4u}`4p£jRq`4u j0
wl³ps\`¢¼}¡m(hiwn´l`4p;Cpi`Zu|³j`j^~~0`Bh4ª"[;\`*£¡w¤;ÌÒ£¡`Zl`Z£@~@wlCp|ÌHpiwlÌH~@wlCp4wl_a_k^Zjps¡w(hiqnhrps`4_
®h;wl^£¡q§^ui`^q(n`Zhsus0`B:ª
!"#
yF£¡£hiqh|pi`Z_h¾³Àwu+£k^h|pi`Zushui`Z£¡q*wl¢jF£¡w¤;ÌÒ£`4l`Z£~@wlpiÌSpswÌÒ~0w¡Cpwl_a_k®4jps¡w¢h|qnh|pi`Z_(ªOÊÄwh|p+wl³npi\`
ps¡_a`¸+hik^\¬j·hiqh|pi`Z_$~uswn`Bhd~uiw~0`Zu|ps¡`Bh*h|k^\ºjlhdus`4£jl£¡¡prql¸¾\^¡\nÌH~@`4ui³Àwlus_j^4`jl^V_a`Bhihsj`
wus`4us¡0ª{w0¸:¤\`4²w·_a¡usjpiwlGwn44kuh4¸¾jl~~£Zjpiwl0hdhi\wk£V0`§jl£`pswpj´`jnjCpsjll`wl³
ps\`Zhi`*~uswl~@`4uipi`ZhZª
z»(¿*`4usuil\`B:¸C¤"`dn`Zhi¡`Zj¢£w¤;ÌH£`4`4£@wl_a_k®4jps¡wohiqh|pi`Z_¤\®\§h)us`4£jl£`>j0§´l`Z`4~^h
ps\`_a`Zhshijll`*h|`Z^nawlun`4u;@`pr¤)`4`Zpr¤)wwnn`ZhZª[;\®h}h|qnh|pi`Z_«h`Zhsus¡@`Z(·{`BËps¡w;Uª
`²`(`^`(jG¿*`4u}`4pnq^jl_ahrpsui`Bj_ jlhjlµj0hrpsusjËph|pius`Zjl_ ¤¡pi\ pr¤)wGwu_awlus`n` ^`B
¿*`ZusF`p>hiwn´l`4pshFjl^Ĥ¡pi\G^wownn`h|~@`Z4^`B:ª"`K\^`4V^`4`Z`Z:¸Yjo¿*`ZusF`p>hiwn´l`p>hFpi`Z_~@wlujus£¡q
jp|pjl\`Bdpiw>j}wnn`lª=Mwlu+`mj_a~£`l¸R¡³npr¤"w>¿*`4u}`ph|wn´`pshjus`vjpipsjl\^`Z:¸hi`4^fui`B`Z¡`Ow~0`Zusjpiwl^h
Zj(wn4k^uZª
y ¿*`ZusF`p}nq^j_a®hrpsui`Bj_®h_j£qon`0`Z(qohi`4l`Zusjl£Y~^juj_a`ps`4uh4¶
$&%
Å('"éÈ*) Z4 à ¶¢zÒphi~@`Z^`Bh\w¤ jpj·h*psusjl^h|³À`4us`Z¬k^h|·ps\`onq^jl_®h|pius`Zj_·ªoy
hrpsui`Bj_-Zj(0`¶
+-,/.10325476
³Àwuwl`dpiwaw`wl_a_k®4jps¡w¾¸hik^\(jhh|wn´`p^jlhi`Z(w_a_k®4jpiwl¾¸
+-89.189:
wlu;
.<8:
³Àwu}hrpsui`Bj_h)¤ps\·hi`4`4uj£Yus`Zjl`4uh)jl^¤ui¡pi`ZushZª
$&=
¬ à È*) È ?> à Z ¶+zÒp;h|~@`Z4^`Bhpi\^`piwlpsj£0k_@`4uwl³¾jRRjl¡£®j^£¡`hiw´`phO³Àwlups\`Fh|pius`Zjl_(ª
F`Z~0`Z^nwl(ps\`¢hrpsui`Bj_ prq~@`l¸nps\h}Rjl£¡k^`_ajRq^4ui`Bjlhi`l¸n`Bus`Zjlhi`dwlu;0`¢4wl^h|psjlCpZª
$&=
¬
à È*)
È*@A@OÃ
Ã
ɵ
È
B>
Ã
B
¶OzÒp"hi~0`B^`Zh pi\`F4kusui`Zpk_0`Zuvwl³Yjp|psj\`Zahiwn´l`ph4ª
$
Z (À à ¶zÒpdj££¡w¤}h_awnn04jpiwl·w³jl£¡£^jpsjpsusjl^hi_¡p|ps`Z·¤¡pi\·ps\`h|pius`Zj_ aÀÄwlun`4u
piw\^jR`d4uiq~npswlusjl~\ql¸C^jl´k~¾ªZª4ªd˪
{Cpsui`Bj_h}jlui`*_j^jll`Bq(jh|`4p}w³ hrpsui`Bj_-_jl^j`4uh4¸wl^``mn`Z4knpiwl·`Bjl\Ä£k^h|pi`4uFwnn`lª
¿*`Zui^`4£ jpj·hrpsuik^pikus`Zhdus`4£®jps`ZÄpswÄnq^j_a®h|pius`Zjl_hdjlui`´l`Z~np¡ jl£wl^jl£ n¡us`ZpiwuiqĤ\®\²h
h|pius¡^knpi`Bw4£¡k^h|pi`Zu wnn`ZhZª djpj*h|k^\ajlh+ps\`7^1"<o7 2 §w³Yj*¿*`4u}`p hiw´`pB¸jus`"k~Yjpi`Z
w(jl£¡£Yps\`wnn`Bh}jlpiawlpi\`¢h|pius`Zjl_(ª
( 9 (
[;\^`>¿*`4u}`4p)hi`4us4`F~uswn`Bhvjh|_a~£¡`dps`4ui³jl4`}piwj££¡w¤Kk^~~0`Zu)hiw³½pr¤;jus`}£®jRql`Zushv¡_a~£`4_a`4Cps¡
jah|psjl^juo4wl_a_k^Zjps¡wCpi`4ui³jl4`dpiwa_j^jll`¿*`4u}`4phiwn´l`4pshZ¶
$
I&EiLKE&f&E'FRLKHjahrpsui`Bj_·¸
$
iL L'I:¶O[+wal`p}jl·jRjl¡£®j£`*¿*`4u}`p}hiwn´l`paÀ¡³ ~0wChihi£¡`Rd˸
$
FFRA'E0¶ [+wk^jp|psj\(pi`4_a~@wlujus¡£qjhiwn´l`4paSj^(pswll`¢ja\^jl^n£`¡Äwus`4u;piw@`jl£¡`
piwus`Z4£jl¡_ps\`¿*`4u}`4pFh|wn´l`4p)£®jps`4u8d˸
$
1JKE4A:¶O[+waui`BjlËps¡jpi`j~ui`Z¡wk^h|£q§hik^h|~@`40n`Z·¿*`4u}`4p}h|wn´l`4pZ¸
$
iL4L'I:¶O[waus`4£`Zjlhi`*jÄjpipsjl\^`Zo¿*`ZusF`p}hiw´`pB¸
$
'CRLY¶}[+w¤;j¡pF³ÀwuFps\`h|pius`Zjl_±piw0`ui`Bjlnq(psw@`k0h|`B ajl£¡£us`Ckui`BGjpipsj\_a`4Cpshdw_Ì
~£`pi`B'd˪
¿*`ZusF`p~uswC®n`Bhvpr¤)wawps\`4u;³Àk0Ëpiwl0h a>F1E0¸KE'I&dv³Àwuzf1[¨w~0`Zusjpiwl^hZª
[;\`·nq^jl_®oh|pius`Zjl_h|`Zui®`§®h¡µ\0jusl`§wl³>j££¡wnZjpiV¿*`ZusF`pah|wn´l`4psh¤\`4µpi\`Zui`(jus`
^`4`Z`Z:¸nj0§w³¾´`4`Z~¡^¢piujl´awl³¾pi\`Bh|`d¿*`4u}`4p;hiwn´l`ph4ª=`K\`Z§pi\^`dh|psjpi`dw³¾wl^`d¿*`ZusF`p)hiwn´l`4p
\0j`ZhZ¸Rpi\`}h|pius`Zjl_h_j^jll`Zu+pj´`Zh~^jlu|p ps\®h\^j^l`j^k~Yjpi`Zh pi\`wlpi\`Zu¿*`4u}`phiwn´Ì
`4psh;us`4£®jps`Zopiwpi\`¢h|pius`Zjl_·ª=`K¡pi\·ps\®h;_`B\^j^hi_·¸n`Zjl\·¿*`4u}`4p}h|wn´l`4p)\0jlh;lwlp;pi\`¢jnus`Zhsh"wl³
`Bjl\4wlusui`Bh|~@wl0n¡^Fh|wn´`ph+wnn`"j>_j~¾ª+z»¢ps\h¤;jRql¸Bpr¤)w>hiwn´l`ph+Zjj£¤)jRqnh4wl_a_k^Zjps`
(pi\`_awChrp`¦§4¡`Zp}¤;jRq-aÀk0h|pi\®h_j~d˪
y)pps\``4^w³ jaw`Zpiwl¾¸j~uswn`Zhsh;®h;k^jpipsj\`Zo³Àuiw_pi\^`¢hrpsui`Bj_·ª F`Z~0`Z^nwlpi\`
h|pius`Zjl_prq~0`¸pi\`¢h|pius`Zjl_«_jRq§@`¢£whi`Z:ª
! #" $ &%(')"+*(A+ , &%-. (/1032 -54
Á`pdk^h>4wl^hi®n`4uFpr¤"w´l`4us`Z£~uswn`Zhshi`Zhaj576²j^W598kdd4wl_a_k^Zjpi§¤¡pi\¬`Zj\Äwpi\^`4udk^h|oj
:<;=>@?A
nq^j_a®¢hrpsui`Bj_·ªÁjpi`4u>¤"`¢h|psjlu|pdjapi\uÄ~usw4`Zhsh a57Bd}³Àwlu}_alujps¡wÄ~kus~0wCh|`ª;[;\^`4q
`4mn`Zkpi`dpi\`~^uiwluj_«n`Z~pi`B.M+lk^ui`¢nª
!"$#&%('*)
,+ -/.(10234/5678'*) 9-.(%:34567 *'*)
<; =44> $78'*) =4>$7 *'*)
@? 5A34BC7-.410'*) D4E$79-.(%#F5G'*)
,H III III
<J 4%3/KLM(DE$7-/.(4%('G)
,N OQPRTS
U
<V 9-.(WAX=4.4KM67 Y#
949%('*)
<Z 9DE$7-/.(10G#F51'*) /5[\B$7-.(W('*)
MOlkus`¢n¶me mj_a~£`w³ ¿*`4u}`4p;£`4`4£¾4w`
] @Y^ ^ (^,_ n ^SÈ @KÈ*) ÂÄÃ = Ã §4Z Ã Ka`cb us`Zjpi`Zhpi\`h|pius`Zjl_ aÀpi\`hrpsui`Bj_hprqC~@`jl^(pi\`
k_0`Zuw³h|wn´`p¡ ps\`Ghrpsui`Bj_ jlui`·¡`4 ¡°~^jlusjl_`4pi`Zushdj^©ui` Ck`Zh|pshj ¿*`ZusF`p§h|wn´`pZª
F`mp `cb ¤;j¡psh³Àwu¡pshh|pius`Zj_ piw¬0`ui`Bjlnq¸Opi\^jp®hpsw¬hsjRqVps\`§pr¤)w¬hiwn´l`ph*piw¬0`·jpipsj\`Z:ª
y>hihik_a `ed ®h}usk^¡§j³½pi`Zu}pi\^`hrpsui`Bj_ us`Zjps¡wÄj^(\^jh;pi\`hrpsui`Bj_n`ZCpi^`4uB¸^¡p>4jl·l`p
j¿*`ZusF`pFhiwn´l`pB¸j^(ps\`4¸^¤;j¡p³Àwlups\`wuius`Zp}hrpjpi`wl³+ps\`h|pius`Zjl_(ª)[;\`¢h|pius`Zj_h_j^jll`Zu
hi`40hps\`*jl´w¤£`Zn`4_a`4Cppswjl£¡£@¤)jlps¡^¿*`4u}`4p)hiwn´l`ph"jl^~usw`Zh ps\`d~\qhi®4j£Yjl^nui`Bhih
wl³pi\`wpi\^`4u>hiwn´l`4pZª `K¡pi\Vhik^\Än³Àwlus_jpiwl¸@¿*`ZusF`p>hiwn´l`ph}4jlGw__k®4jpi`nus`ZËps£¡q·j0
^'f&
¢4wl_a_k^Zjpiwl(4jlwn44ku`¦§4¡`Zps£¡qª
'f^,g R ^@hg ' È Ã ZO ^@Yg¨ÂÄà = à º4Z à ¥l `K\`Z©jG~^uiwn`Bhih_a¡usjpiwl ®h^`4`Z`Z:¸
ps\`¿*`4u}`4p;hiwn´l`p;®h)hik^hi~0`Z^n`Bowops\`n`4~^jlu|pskus`>wnn`*j0ous`Ì»jpipsjl\^`Zwops\`jusuij£@wnn`lª
z»¯wlku`mj_a~£`l¸
`ed
hik^h|~@`40h§ps\`¬hiwn´l`4pZ¸¤\®\ ®ho£®jps`4u(ui`4ÌÒjp|psj\`Z ¤\`Z
`ji
`mn`Z4knpi`Bh4ª
[;\^`nq^j_a®¢h|pius`Zj_±hi`4usC®`®h>¡G\^jlui`w³ `40h|kuspi\0jp>^w§_a`Zhshijll`GaÀwu}_a`Zhshijll`~`Z4`7d}h
4wlusuik^~npi`B¬wu¢£wh|p¢0`4pr¤"`Z`4ºpi\^`hik^h|~@`40 j^ºus`Ì»jpipsjl\¬pi_a`lªÄ[;\`oh|pius`Zjl_ _jl^j`4uk~Yjps`Zh
ps\`Fwlpi\`Zuv¿*`4u}`4p"hiw´`p"hiw*pi\0jp"¡p)h|piw~^h¡psh"w__k®4jpiwlkCpi£@pvus`Z4`4l`Bh `4¤Kn³Àwui_jps¡w
³Àuswl_%pi\`>hrpsui`Bj_%_jl^j`4uBª `K\`Zapi\`Fhik^hi~0`Z^n`Bh|wn´l`4p h"jlËps¡jpi`Zajlj¾¸ph `4¤°£wn4jps¡wah
hi`4Cp)piwpi\^`>wlpi\`Zu;¿*`ZusF`ph|wn´`pj^n¡us`Zp}wl_a_k®4jps¡w§@`pr¤)`4`4pi\^`>pr¤)w¿*`ZusF`ph|wn´`psh
®hus`Zh|psjlu|ps`Z:ªzÒ³ ja_lujps¡w(h|psjlu|ph;¡(ps\`¢hijl_a`>ps¡_a`ps\^jpFj_a`Zhshsjl`*®h}hi`4CpZ¸ps\`^uhrp}hi`4^¡
jp|ps`4_a~nphhs4jlusn`Bojl^o¤)`*ui`Z£¡qwops\`*£¡w¤;ÌÒ£`4l`Z£:wl_a_k®4jps¡wo£®jRql`Zu"·wlun`4u"piwa´l`Z`4~pi\`
_a`Bhihsj`kCpi£vj`4¤ n`Zh|pi^jpiwl²hn` ^`B:ª`K\^`4¬pi\`£wn4jps¡wV®h*k~Yjps`Z:¸:ps\`_a`Zhshijll`h
hi`4Cp;piwaps\``Z¤Xwuius`Zp)^w`lª
@ ·9}+*O ¢ ¢+( #%&'(( "+ ¢ @ +;¢)
'+ (3& 4O
[>wlk^hi£¡q¸hrpj^^ju(h|pius¡^knpi`BÄj~~£®4jps¡w^hnw§^wp}k^hi`¿*`4u}`4pFh|wn´`pshZªz»Äwusn`Zu;piwo4ui`Bjps`
jhrpj^jlus`ZCuiw_a`4Cp^jh|`Bawl§nq^jl_®Fh|pius`Zjl_hj^¿*`ZusF`p"hiwn´l`4pshZ¸jCpi`Zu|³j`£®jRql`4uvh
_a~£`4_a`4Cpi`B§jp)´l`Zui`Z££`4l`Z£=aSh|`Z`"MO¡kus`Fidª=e"jl\§_awnnk£`Fwl³@ps\`FCpi`Zu|³j`}£®jRql`Zu¡_a~£`4_a`Zph"j
h|psjl^jluswl_a_k®4jps¡woCpi`4ui³jl4`>us`4£q¡^w§pi\^`dCpi`Zu|³j`dw³ps\`¿*`4u}`4phi`4us4`lª[;\`*_j
wjl£¾w³`Bjl\GCpi`4ui³jl4`¢_awnnk£`®h}pswo_j^jll`ps\`h|psjl^jlusÄ4wl_a_k^ZjpiwlÄCpi`Zu|³j`¢~uswpswnwl£
a³`Z`Zn`B'd˪
Socket Open IOctl Receive
Send User mode
sys_Open sys_IOctl sys_Socket
KerNet system Point−to−Point KerNet Interface
SysCall
communication system
Kernel mode
Create Attach
sys_Send sys_Receive
Network User process
M+lk^ui`¶{Cpj^^juo`ZCuiw_a`4Cp^jlhi`Zwl·¿*`4u}`4p}h|wn´l`4psh
c 3j 1*jlui`pi\^`£¡´nh@`pr¤)`4`4²ps\`oh|psj0ju¬Á¡knm²wl~@`4ujps¡Ähiqnhrps`4_ jl^¬pi\`
¿*`Zuiusl\`Bonq^jl_®*w__k®4jpiwl·h|`Zui®`lª
[;\`¿*`4usuil\`Bow~0`Zusjpi§hiqh|pi`Z_-®h}^jh|`B(wl(piw~Äw³ja£¡l\Cps£¡qCÌÒ_wnn^`BÄÁ¾Ckm´l`Zui^`4£Hª"y}££
ps\`nonY`4us`4Cpdhi`4us4`ZhZ¸¡0£k^n§ps\`w_a_k®4jpiwlÄ£®jRql`ZuZ¸^jlui`_a~£`4_a`4Cpi`BGjlh>Á¾knm(´`4us`4£
_awnnk£`ZhZª
z»G¿*`Zuius¡\`Zowl~@`4ujps¡hiqnhrps`4_·¸npi\^`w__k®4jpiwl(£jRq`4u;h}_ajn`w³Opr¤)w~^juipshZªvy h|psjps
\^¡\nÌH~@`4ui³Àwlus_j^4`Äwl_a_k®4jps¡w h|qnh|pi`Z_ ps\^jpo~^uiw®n`Zh§j¥wnn`Äpiw©wnn`Vhi`4us4`lª [>°piw~
wl³vps\hhiqnhrps`4_·¸Ypi\^`§nq^j_a®h|pius`Zjl_$h|`Zui®`_ajl^j`Zh>pi\^`_alujps¡wGw³;hrpsui`Bj_h hd¡Cps`4ui³jl`Bh4ª
MO^j££ql¸ps\`¡Cps`4ui³jl`hi`4us4`)us`4~^£j`Zh+ps\`}hrpj^^ju¢³Àk0Ëpiwl0hO³Àwluj*ll`Z4wl_a_k^Zjpiwlpiww£Sª
z»pi\^`ui`Z_ajl¡0n`4u wl³^pi\^hhi`Zpiwl¾¸¤"`n`Bhi4ui@`"pr¤)wnon@`Zui`Zp´^hwl³Y¿*`ZusF`p ¡Cps`4ui³jl`Bh4¶pi\`
~^¡~@`j0ops\`¼FmÄhiw´`p7O¡bRUQO¡Cps`4ui³jl`Bh;wl·pswl~·w³Opi\`¿*`4u}`pFhiwn´l`4pshZª#`¬`j_jp}~^uiw®n¡^
psusjl^hi~^jus`4Cpi£qapiwps\`¢j~~^£¡®4jpiwl^hZ¸janh|piusknpi`B(l`4uhi¡wow³+pi\`Bh|`¢4wl_a_k^Zjps¡w§piww£hZª
0 53 7#
C7A'E'F*@`4£wl^apiwpi\`_awChrp}w_a_w(jl^(wl£®n`Zh|p}w__k®4jpiwlpiwwl£®h4ªt~@`ZhFjlui`*j·`Bjlhiq¤)jRq
pswwl^`Zp jd~uswn`Bhihpiwj*\£~usw4`Zhsh4ªO[;\` _ _'Fhiqnhrps`4_%Zj££us`Zjpi`Zhjd~^jl¡uw³ ^£`;`Zhsus¡~npswluh4¸
w`*h)³Àwuui`Bjlnj0§ps\`wps\`4uw`*h;³Àwu¤ui¡pi0ª
z»WM+lk^ui`^¸Ywl`~usw4`Zhsh
`cb
4ui`Bjpi`BhFjo~¡~@`j^Gl`ph}pr¤)w0£¡`an`Zhsus~npiwusha0^6¥j^G^ 8kdª
`K\^`4 `cb ~0`Zu|³Àwui_h}j&H4JY¸npi\`\£·~uswn`Bhih `ed \`4us¡pshps\`"0£¡``Zhsus¡~npswluh;³Àuswl_ `cb ª `cb
jl^ `ed _jRqo£whi`>w` ^£`n`Zhsus¡~piwlu}jl^k^h|`dps\`wps\`4uw`dpiw§w_a_k®4jpi`ª
fork() fd1 fd2
close(fd1)
close(fd2) fd1
fd2 pipe()
P1
P2
M+lk^ui`d^¶[+usjn¡piwl^jl£@~^¡~@`k^hsjl`
{^4`ps\`(pr¤"w²`mpsui`Z_¡pi`Zhwl³>jV~^¡~@`Gjus`4ui`Bjpi`Bµjpps\`Ähijl_`pi_a`l¸vpi\`Zui`·®h^w²hi~0`B®j£
~^uiwlpiwnw£piwd_~^£¡`Z_`ZCp¿*`Zuiusl\`B:ª¾z»wus`4u¾psw>_a~£`4_a`4Cp~¡~@`Zhwku¿*`4u}`pju\¡pi`Zpikus`l¸
¤)`}xrk0hrpd\^jRl`psw4ui`Bjpi`j§h|pius`Zj_±¤¡pi\Äpr¤)w¿*`ZusF`p*h|wn´l`4pshZª)evj\V¿*`4u}`4p>h|wn´`p>®hdjp|pjl\`B
pswa`Zjl\^£`¢n`Zhsus~npiwu aSjlhhi\w¤(¡;MO¡kus`Uid˪
M>M(C E%L'
/ AC( 4!"C#F%4'*)
+9 E0::5678'G)
; E%::5678'G)
,+ -99.6Q'
<; -9CE4%(' -C E109'
@? =(>CE10G#III ' EC E4%#III '
MO¡kus`U¶ )jh|®d~~0`_a~£¡`Z_a`4Cpsjpiwl
' 9 @
z»opi\`h|psjl^ju§Á¡knmo´`4us`4£H¸C F1H'IJ&EiLFjus`>jlh;hi¡_a~£`*jlh)k Ck`Zk¡^hiwl_a`d~^jl´`pshv³Àuswl_
ps\`hi`40n¡^¬hiw´`pjl^ Ck`Zk¡^Gpi\^`4_ ¡¥pi\`(ui`B`Z¡Vhiw´`pBªGz» pi\^ha4jh|`§pi\`WaÀ~\qnh|®4jl£d
hi\^jlui`B¬_a`Z_wuiq¬~uswC®n`Bh*pi\`owl~@`4ujpiGhiqnhrps`4_ jl44`Zhsh*piwGpi\`ohiqnhrps`4_ hrpsuik0Ëpik^ui`Bhw³;pi\^`§pr¤)w
hiwn´l`4pshZª>z»Vpi\`ahijl_a`¤;jRql¸0pi\`~uswpiwn4wl£O_ajl^j`4_a`4Cp>Zj¬0`anwl^``Zjh|£qlª[>Cwlk0h|£ql¸@¡¬wlku
jlus\^ps`ZËpskus`l¸Ypi\^`w~0`Zusjpi·h|qnh|pi`4_wl³"w`awnn`a_ajRqÄ^wp\^jRl`jlZ`Zhsh>piw(pi\^`a^jpsj·h|piusk^Ëpskus`
wl³+ps\`¢wlpi\`ZuFh|wn´`pZª )jh|`B(wl(pi\`¿*`4u}`p}hi`4us4`ZhZ¸npi\`¢¿*`ZusF`pF¼FmÄhiw´`ph;¡Cpi`Zu|³j`_k^hrp
_jl^j`Fps\`¢hrpj^^ju¼Fm(h|wn´l`4psh4wl_a_k^Zjpiwl~uswpiwn4wl£Hª
`K\`ZµjG^`4¤ ¡Cps`4ui³jl`ohn`^^`Z:¸jG4wlusui`Bh|~@wl0n¡^G£®jlhshw³Fh|pius`Zjl_ah¢hui`Zl®hrps`4us`Z² pi\`
qC0j_a"hrpsui`Bj_ hi`4usC®`ª+y £®jlhshwl³0h|pius`Zj_hhjFhi`pw³@hrpsui`Bj_h¾ps\^jp hi\^jus` pi\^`;hsj_a`"~uiw~0`Zu|ps¡`Bh4ª
[;\^h+ui`Zl®hrps`4us¡^Fhrps`4~`^`Bh`4`Zusjl£l~uswl~@`4uipi`Zh+w³^h|pius`Zjl_hjlhshiw4jpi`Bdpiw}ps\®h+Cpi`Zu|³j`"aShrpsui`Bj_
prq~@`l¸k_0`Zuw³h|wn´l`4pshZ¸:ª4ªZª dj^(us`pik^ui^hjah|pius`Zjl_-£®jlhsh;n`Zhsus¡~piwluBª
listen() accept() socket() bind()
socket() bind()
connect()
Child process
MOlkus`V¶{`4usl`Zuj^·£`4Cp}j£lwlus¡pi\_³Àwu}¼}¡m(hiwn´l`4p)k^hsj`
MOlkus`"Vhi\w¤}hps\`}psusjn¡piwl^jl£^k^hsj`w³j¢¼Fm§hiwn´l`pBª`K\^`4oj~^uiwn`Bhihv_j´l`Bhj 'I4I1E1A4L
wj¼}¡m*hiwn´l`4pZ¸Zpi\`v¼F¡m*hiwn´l`p:Cpi`4ui³jl4`us`Zjpi`Zh:j}`4¤ºhrpsui`Bj_¨j^jp|psj\`Zh@ps\` ^uh|p¿*`4u}`p
hiwn´l`4pjl^·¤;j¡psh;ps\^jp}ps\`h|pius`Zjl_-j££¡wnZjpi`Bh;pi\^`¢wps\`4uF¿*`ZusF`pFhiwn´l`p aSjlh}
`cb
-MO¡kui`id˪
`K\^`4jlwps\`4u"~usw4`Zhsh"a_ajRq@`Fwojwlpi\`Zuvwnn`Rd`4mn`Zkpi`Zh"jBI1HKE'ILwapi\`*¼}^mohiwn´l`pB¸jl
jp|pjl\·jp|ps`4_a~np}®h;_jln`Ga~uiwn4`Zhsh `ed ¡;MO¡kus`id˪+[>Äh|k04`BhihZ¸Cpi\`¢h|pius`Zjl_«®h}w_~^£¡`4pi`Z(j0
ps\`*pr¤)wa¿*`ZusF`p}hiw´`ph9aSj^q§ps\h}¤)jRqaps\`*pr¤"w¼Fm(h|wn´l`4pshd)4j·w_a_k®4jpi`nui`BËps£¡qª
[;\` 'I I1E1A&L'f I1H 'E'IL*`mj_a~£`}®h"jlwwnaui`Z~ui`Bh|`ZCpsjps¡waw³¾\w¤K¤)`}_~^£¡`Z_`ZCp;¼Fm§hiwn´Ì
`4pshZª `K¡pi\ ps\`Ghijl_a`(jl~~uswjl\©¤"`(\^jR`(n`Bh|l^`Z j^©¡_a~£`4_a`Zps`Z©wps\`4u§h|psjl^juµhiwn´l`4p
³Àk^^Ëps¡w^h£¡´`A'HZaÀ·wlun`4u)piwa@`¢j£`*piwak^hi`*pi\^`F1E E'IRL§hiqnhrps`4_-Zj££d¸'CiFLKE:¸jl^(h|wawlª
[;\`)FEFjl^ KE'IECKE"³Àk^piwl^h+jus`n¡us`Zpi£q>_jl~~0`B*wl*pswpi\`)FEFjl^ KEKI1ECKE;¿*`4u}`p
hiwn´l`4p"³Àk0Ëpiwl0h4ª
;jlhi`Z·wÄpi\^hdhrpsui`Bj_ ¡Cps`4ui³jl`¸0¤)`ZjÄ_j´`wlpi\`ZuFps`4ui³jl4`Zh³ÀwuC'EiL F1HKIJKEiL4wl_a_knÌ
^Zjpiwl·j0o`Zl`4·jlZ`Bhih)psw I§n`4®`Bh4ª
`K\`Zj_lujps¡wwn4k^ushan`B®n`ZoCqps\`>£¡w^j£@hi\^`Znk£`4u"wlu)qps\`F~^uiwluj_ ph|`Z£³ d¸pi\`
_alujps¡w§h|`Zui®`>Zj££hpi\`FkF7A'E³Àk0Ëpiwl(j^jpipsjl\^`Zh ps\`*h|wn´l`4p"wpi\`d`Z¤Kwnn`$aSh|k0\
jh `ji ¡;MOlkus`¢1d˪
}/ ¢9 #%&'( )*+ 4¢ F¢;
[;\^`¿*`4u}`4p>ju\¡pi`Zpikus`¢®hFn`Bh|l^`Z(³Àwludj§n®hrpsuiknps`ZÄw~0`Zusjpi§hiqh|pi`Z_h|k^\GjhF¿*`Zuius¡\`Z¾ª
M^wlu)pi\^h)us`Zjlhiwl¸¡p¤)jh"0jpik^usjl£^psw^k¡£®(¿*`4u}`p;wlopiw~ow³+pi\`d£w¤;ÌH£`4`4£Ywl_a_k®4jps¡wo£®jRql`Zu
~^uiw®n`Zaq¿*`4usuil\^`Zj0§4jl£¡£`Zd_a£¡fd£wH¾ªOz»§ps\`}³Àw£¡£w¤¡^^¸C¤"`>\¡\£¡\p;h|w_a`}³À`Zjpikus`Zh
wl³ps\hFwl_a_k®4jps¡w£®jRql`ZuZª
$
^,g-'"à )ÒÈ µ @ Ã@¶§[;\ha4wl_a_k^Zjpiwl¥hiqnhrps`4_~usw`ZhjV£¡w¤£®jps`4^4q j^ \^¡\
^j0n¤ps\Äwl_a_k®4jps¡w(hi`4us4`F³Àwu´l`Zui`Z£Ypiwa´l`Zui^`4£¾w_a_k®4jpiwl^hZª
$&=
à ÇÈ > ^@ É Ã 'và @ É Ã @ Ã@¶[;\`Zui`®h w¢n`Z~0`Z^n`Z^q0`4pr¤"`Z`4pi\®h4wl_a_k^Zjpiwla£®jRql`Zu
j^·hiwl_a`h|~@`Z4jl£:`pr¤)wlus´§n`ZC®`Bh4ª
$
oà (^n ^(^ Ŷmel`Zuiqohi`4Cp_a`Zhshijll`dhFn`4£¡`4us`Zo¤ps\wlknpFjlqo\^j^l`d¡(pi\^`_`Bhihsj`lª
$
^ ' (Ã ^@ Ã ) Ã@¶G[;\h4wl_a_k^Zjps¡w hi`4us4`®ha^jlhi`Z©wl©pi\^`G\^j^`4£®n`Zj^¸"j0
~uswC®n`Bh)ja`4usq^jlhi®F1EKfKE'IECKE*ps`4ui³jl4`lª
¿*`Zuius¡\`Za£w¤°£¡`Zl`Z£^~@wlp"piw~0w¡Cp)4wl_a_k^Zjps¡woh|qnh|pi`Z_.®h"¡®n`Z§pr¤)w¢£®jRql`ZushZ¶d_£
jl^d£wH¾ªd¡_a£0~^uiw®n`Zh"j¢´l`Zui^`4£^£`4`4£Yy}tzvwl§¤\®\jl£¡£Y¿*`4usus¡\`Zahi`4usC®`Bhus`4£ql¸C¡~^juipi®ËÌ
k^£jlu¿*`4u}`pBªd£wHah¡§\^jlui`"wl³Ypi\`}4wl_a_k^Zjpiwlaus`4£jl£¡¡prq¢_j^jll`Z_`ZCp"aÀ`4ususwlu wpsuiw£S¸
~0jl´l`4pshvui`4piuj^hi_ahsh|wld˪MO^j££ql¸d¡_a£0~^uiw®n`Zh"j¢¤;jRq¢piwa£®jlhshi³Àqpi\`>_a`Zhshijll`Zh"jlZwlun*piw
hiwl_a`~uiw)^£`l¸:j§_a`Zhshsjl`0`Z¡·\^jlusjËpi`ZuiTS4`B(CqGj\^j^`4£j^Vj§prq~@`lª*zÒ³"j§_a`Bhihsj`4jlwp
@`¢n`Z£¡l`Zui`B:¸nj·`4usuiwu"®hus`pskui^`Zopiwpi\`¢Zj££¡hi`4usC®`BaS¿*`4u}`p·wlku}Zjlhi`7d˪
`K\£`d_a£¡@h"^n`4~@`40n`4Cpv³Àuswl_ ps\`F`4pr¤"wui´pi`B\w£¡wlql¸d£¡wS§®h"¡Cpi`Zu|³j`Ba¤ps\onon@`Zu|Ì
`ZCpFwl_a_k®4jps¡w(hiqnhrps`4_hZ¶pi\`h|psjl^jlus([F¹"t6fRz»tKh|psj´@¸n^`ps`44`Gaja`4`Zui®*wl_a_k®4jÌ
ps¡wV£®jRql`Zu>wGpiw~¬wl³pi\^`ah|psjl^jlusÄ^`pr¤)wlus´·j44`Zhsh>Cpi`Zu|³j`7dFwlu*n`BnZjps`Z¬\¡\V~@`4ui³Àwlus_j^4`
4wl_a_k^Zjps¡whiqnhrps`4_hhik^\jlh*jl__jcOQÒª >us¡`4uh`4`B^wpv@`_aw^`B:ª }w¤)`4`4uB¸Rpi\`Fjlu|Ì
\^ps`ZËpskus`}\^jlh"@`4`4n`Zhi¡`Zpswjl£¡£w¤ pi\`>`mn~£wl¡psjps¡ww³hi~0`B®j£oSZ`Znusl`4uh ³Àwuv~@`4ui³Àwlus_j^4`
us`Zjh|w^hZªX¿*`4u}`4p§0`Z¡^¥^jlhi`Z°wd¡_a£>®h\`Z^`G~@wluipsjl£`GwlKjq©`pr¤)wlus´¡ºps`Z\^wl£wllq
aSÊÄqui`4pZ¸d¡Cj¡p+e ps\`4us`4pZ¸:ª4ªZª dªOzÒphv~@`4ui³Àwlus_j^4`}®h"nus`ZËps£¡qn`Z~0`Z^n`Zp)wlps\`d£¡wS§nusl`4u
k0h|`Bjl^(wlpi\`~@`4ui³Àwlus_j^4`>wl³+ps\`k^n`Zui£q¡^^`pr¤)wlus´@ª
[;\`¬¡Cps`4ujlËps¡w°0`4pr¤"`Z`4d_a£¡fd£wH j^ ps\`¬¿*`ZusF`phi`4us4`Äh_j£q nw`Gq pi\`
EKE1L4E@o³Àk^piwl¾ª ;jlhiZj££¡q¸¾pi\^h¢³Àk^Ëps¡wºpius¡`Bh*piwGhi`40Vps\`§_a`Zhshsjl`³Àwu¢`4`4u~^jhihi¡^
ps\`Äh|wn´`ph_j~©jhawnn`Än`Zh|pi^jpiwl¥psw²pi\`kC 'CKF1E G³Àk^Ëps¡w ahi`4`.M+lk^ui`V¸"¿*`4u}`p
£®jRql`ZudªB`K\`4²ps\`pi\^`ui`B`4l`Zu*_lujps`ZhZ¸ kC 'CKF1E o³j£¡`B:ª[;\^`!C 'C&F1Eo¤££vh|k04`Bhih
¤\^`4Äps\`_jl~G¤¡££0`k~Yjps`Z¬jpFps\``4^Vw³ pi\^`_alujpiwl a¤ps\Gps\`^`4¤ £wZjps¡wd˪*¼}Cpi£
ps\®h`4`4CpZ¸ps\`~us`4¡wk^h)£¡wnZjpiwl·n®hiZjuh"pi\`k^C¤;jCps`Z_`Bhihsj`ZhZª
"
5 ;) >¢94'*O ¢
t`Zu|³Àwui_j0``Zj£k^jps¡w^h*\^jRl`0`Z`4 4jluius`ZGwknp*piwÄhi\w¤ pi\0jp¡ºjqG~^uiwn`Bhih*4wl ^kujpiwl¸
¿*`ZusF`p}®hFjl£¡`*psw§~uswn`*ps\`¢@`Zh|pF~@`4ui³Àwlus_ajl^`¢jh~@whsh|£`lª;[;\`Zhi`¢~@`4ui³Àwlus_ajl^`Bhh|\^wlk£®·0`
wknpi~@`4ui³Àwlus_a`Z·q(wlku>£¡w¤;ÌÒ£¡`Zl`Z£w__k®4jpiwlÄ£®jRql`4uBªz»Äps\`£®jlh|p>~^jlu|p>w³wlk^uF`4jl£¡k^jpiwl¾¸0¤"`
k0h|`jahrpj^^ju4wl_a_k^Zjpiwl·hiqh|pi`Z_-hik^\(jhÊÄtz)wl·¿*`4u}`4pFju\ps`Zpikus`lª
Gloin driver Native
driver
Error check Resend mechanism Request and message queues while( gimli_send ( &map, message ) );
Network drivers Linux kernel
Network interface Protocol
Interface
Network device API
Netdevice Gamma
TCP
Socket Gimli
Gloin
KerNet_Send KerNet_Recv
Modules
KerNet
Gimli_Send Gimli_Receive
M+lk^ui`¶Áw¤;ÌÒÁ`4`4£Ywl_a_k®4jps¡w^hhi`4usC®`
[>kupi`Zh|pvj~^~£¡®4jpiwlh pi\`FF`pstz»t#e ObZRQ@j~~£®4jps¡w¾ª[;\h0`Z^\_jus´¢®hjd~¡^ÌÒ~0w¢j~nÌ
~^£¡®4jpiwl@`pr¤)`4`4apr¤)w~uswn`Zhshi`ZhZ¸l¤¡pi\ohi`4`4uj£n~^j´l`p)h|TS4`Bh4ªOz»wlun`4upiw¢~£®jl4`pi\^`Zhi`}~usw4`Zhsh|`Bh4¸
¤)`*\^jRl`>pr¤)waZjlhi`ZhZ¶
$
[>(pi\`¢hsj_a`*wnn`l¸
$
[>Äh|`Z~^jujps`>wnn`Bh4ª
`K\^`4(pi\`*pr¤)wa~usw4`Zhsh|`Bh;jus`>wops\`¢hijl_a`d^w`l¸nps\`¡Cps`4uiÌÒ4wl`BËps¡wo`4pr¤"wui´nh;jus`l¶
$
¡^`p}£wCw~^j´¡Cpi`Zu|³j`¶[F¹"t6fRz»tKhiw´`pa
3<3<oÌ»[F¹"t d¸
$
h|\0jus`Z_`Z_awlusq@¶ ¼Fm·h|wn´`pa
' 3<3<TÌ»¼}¡m'd˸
$
£¡w¤;ÌÒ£`4l`Z£Y£¡wwl~^^jl´Y¶ ¿*`4u}`4p[F¹"t aS[F¹"t ÌH£´l`7d¸
$
£¡w¤;ÌÒ£`4l`Z£Y£¡wwl~^^jl´Y¶ ¿*`4u}`4p¼F¡mWah|pius¡^knpi`Bk^m·h|wn´`pdª
`K\^`4pi\`dpr¤)w~uswn`Bhihi`Zh)jus`>w(hi`4~0jujpi`>wnn`ZhZ¸pi\^`dCpi`Zu|Ì»w`Zpiwl§^`pr¤)wlus´h)jus`caÀ¤¡pi\(pi\`
hsj_a`*ps`4ui³jl4`Zhd˶
$
M^jhrpe pi\`Zui^`pZ¸
$
d¡Cj¡p)e ps\`4us`pBª
[;\`>wnn`Zh"owlk^u"£k^h|pi`Zu)jlui`95)2 3%&.a2UllÊ )S¸4UbB¿ ©4j\`7d¤ps\ UnbRÊ ©w³¾_a`4_Ì
wuiqª [;\`¿*`4usuil\`Bohiqnhrps`4_«k^hi`Z(®hj·`4^\^j^4`Z·nªnªbZÁ¾knmo´l`Zui^`4£Hª
z»jln¡piwl¸¤"`)~uswC®n`jl£¡£4jh|`Bh4¸Bps\`;~0`Zu|³Àwui_j0`wl³^wlkuO~@wlpiÌSpswÌÒ~0w¡Cpwl_a_k®4jps¡w
£®jRql`Zua¤ps\wlknpjlq·qC0j_a³Àk^piwl^jl£¡¡prqKd˪`¬`a_k0hrpwlpi®`pi\^jpdps\`Zhi`_`Bjlhikus`Zh>ui`Z~ui`Bh|`ZCp
~@wlCp|ÌHpiwlÌH~@wlCp4wl_a_k^Zjps¡w^ha³Àuswl_ ´`4us`4£psw ´l`Zui`Z£¤ps\Kk&nY`4uh~\qnh|®4jl£¡£qµjl£¡£wn4jps`Z
_a`Z_wuiqª"z»·ps\®hF4jh|`¸k&nY`4uhFjlui`Gj§4wlCpilkwk^h;_a`4_awlusqjlui`Bjj^ps\`4u>hioSZ`¢®h}£w¤"`Zu;pi\^jl
bR¿ >ªz»(jl£¡£:Zjlhi`ZhZ¸ps\`d~0w¡Cp|ÌHpiwlÌH~@wlCp)£w¤;ÌÒ£¡`Zl`4£@~@`4ui³Àwlus_ajl^`>hj_jmn_k_ ³Àwu)wku;¿*`4u}`p
h|pius`Zjl_·ª
`K\`Z§pr¤)ww_a_k®4jpi¢~uswn`Bhihi`Zhjlui`Fwlps\`>hsj_a`F^w`l¸nq^j_a®Fh|pius`Zj_hvwlknps~0`Zu|³Àwui_
ps\`>h|psjl^jlusa[F¹"tµhiwn´l`ph4ªO[;\®hv®h_j£qk`}pswpi\`dh|_jl£¡£0`pr¤)wlus´h|psj´o¿*`4u}`4pZ¶+pi\`}z»t
h|psj´~usw`Zhhiwl_a`}`4pr¤"wui´h|`Zui®`Zh¤\\§jlui`F`4`4uk^hi`Zaoj¢4£¡k0hrps`4uwu"j£us`Zjlq~@`4ui³Àwlus_`B
q·ps\`§¿*`4usuil\^`ZÄ\l\ÌH~@`4ui³Àwlus_j^4`w_a_k®4jpiwl¬£jRq`4uBª}w¤)`4`4ud¤"`anw·wlp*us`Zj\ aÀw²j
hil£`>^w`7dvpi\`*~@`4ui³Àwlus_j^4`>wl³+ja¼}¡mhiw´`pBªO[;\®h;®h;_ajl¡^£¡q§nk^`>pswpi\`n`Bh|lw³ps\`*£¡w¤;Ì
£`4`4£¾4wl_a_k^Zjpiwl(£®jRql`4u;¤\®\·\^jlh}0`Z`4Än`Zhil`B§³Àwu}¡Cps`4uiÌHwnn`4wl_a_k^Zjpiwl0h;¤ps\wlknp
jlq§wl~nps¡_aTSZjpiwl³Àwlu£wZj£¾4wl_a_k^Zjpiwl0h4ª
`K\`Z(pi\`*pr¤)w4wl_a_k^Zjps¡~uswn`Zhshi`Zh;jus`>^wpwlpi\`hsj_a`*wnn`l¸¿*`ZusF`pwlkpi~@`4ui³Àwlus_ah
[F¹"tKhiwn´l`ph;jjl¡ª[;\^`dus`Zjh|w^h;jus`Fps\`¢hsj_a`jlhj@wl`ª
`²`wlpi®`ps\^jp>pi\`¡Cps`4ui³jl`Bh\^jR`j£w¤X_a~^jlp>wl·ps\`qC0j_ahrpsui`Bj_h4¶;¼}^mÄh|wn´`psh
jl^G[F¹"t¯hiwn´l`4psh}\0jRl`¢`Bjus£¡qpi\^`hsj_a`¢us`Zhik£¡pshZª"`K¡pi\¬j 836bK 8 }`4pr¤"wui´Y¸^pi\`¿*`4u}`p
0 100 200 300 400 500 600 700 800 900
1 10 100 1000 10000 100000 1e+06 1e+07 1e+08
Bandwitdh (Mbits/s)
Packet size (bytes)
TCP-like with kernet TCP Vanilla kernel Unix Vanilla kernel Distributed unix socket
0 10 20 30 40 50 60 70 80 90 100
1 10 100 1000 10000 100000 1e+06 1e+07
Bandwitdh (Mbits/s)
Packet size (bytes)
TCP-like with kernet TCP Without kernet TCP Vamilla kernel Point to Point communication Distributed unix socket
q
0 50 100 150 200 250 300 350 400 450
1 10 100 1000 10000 100000 1e+06 1e+07
Bandwitdh (Mbits/s)
Packet size (bytes)
TCP-like with kernet TCP Vanilla kernel Point to Point communication
!#"%$'&($%)(*
q
0 10 20 30 40 50 60 70 80
1 10 100 1000 10000 100000
Bandwitdh (Mbits/s)
Packet size (bytes)
MPI (TCP) FastEthernet MPI (TCP/KerNet) FastEthernet
+,.-
/)(*
q
MOlkus`¶[;\uswlk^l\~kp;wl³Ohi`4`4uj£:w__k®4jpiwl·h|qnh|pi`4_h
qC0j_a(h|pius`Zj_0j^n¤®ps\^hjus`o`Bjus£¡qºps\`Ähijl_a`(jhps\whi`(w³Fps\`·~0w¡CpiÌSpswÌÒ~0w¡Cpa£¡w¤;ÌÒ£¡`Zl`Z£
4wl_a_k^Zjps¡w¬hiqh|pi`Z_·ª`K¡pi\ j
0/i10 3)6bK 8 >`4pr¤"wui´Y¸:¤)`awps4`j·non@`Zui`Z^`a@`pr¤)`4`Z
wku~¡^ÌÒ~0w¬jl~~£Zjpiwl¥jl^ ps\`(~0w¡Cp|ÌHpiwlÌH~@wlCp£w¤;ÌH£`4`4£)wl_a_k®4jps¡wµhiqh|pi`Z_·ªW`K¡pi\
wku}k^uius`4Cp;£¡w¤;ÌÒ£¡`Zl`Z£Y4wl_a_k^Zjps¡w(hiqnhrps`4_·¸n¤"`*\^jR`h|`Zl`4uj£:4wl~`Zh)ps\`¢jpsj~^jps\¾¶
$
[>`*³Àuswl_ps\``pr¤)wlus´§4jlus§piw~^j´l`4p)kKn@`ZuZ¸
$
[>`*³Àuswl_ps\`~^jl´`p;k&nY`4upswpi\`_a`Zhshsjl`caÀÄ´l`Zui^`4£:h|~0jl`Rd˸
$
MO¡^jl£¡£qow`dpiwpi\^`k^h|`Zu|Ì»hi~^jl4`>kKn@`Zu}~uswC®n`B§qpi\^`¢j~~£®4jps¡w¾ª
`K¡pi\¥j·_awui`a`¦§4¡`Zp¢^`pr¤)wlus´Vh|k0\ºjh*pi\^`d¡Cj¡p¢wl`¸¾ps\`§£®jlh|pwl~qG®h`Zwlk\²piwaxrk^h|pi¡³Àq
ps\`}non@`Zui`Z^`F0`4pr¤"`Z`4pi\`F£¡w¤;ÌÒ£¡`Zl`Z£4wl_a_k^Zjps¡w£®jRql`Zu j^ps\`k^hi`4uiÌÒhi~^jl4`wl_a_k®4jps¡w
£®jRql`ZuZª
MO^j££¡q¸"¤)`·_jln`Ähiwl_a`·`4j£k^jps¡w^hw³j¬h|psjl^jlus w__k®4jpiwlµ_a®n£`4¤;jus`Äh|k^\°jlh
ÊGtzaÊÄtzi¹ blªnªlUnªVidOQÒª M+lk^ui`a'd}h|\w¤}hFjwl_a~^jlui®hiwl·0`4pr¤"`Z`4Gjl·ÊGtzl`Zushi¡w·w³pi\`
F`pstz»t#e j~~^£¡®4jpiwl¢uskdwljdh|psj0ju¢Á¾knm¢h|qnh|pi`Z_(¸j^*ps\`hijl_a`"j~^~£¡®4jpiwl¢usk^¡
w²¿*`Zuiusl\`B:ªz»¬pi\^h¢Zjlhi`l¸¾@wps\ ÊÄtzi¹ j0¬F`pitvz»t#e%jus`k_awnn0`Z:ªB`K¡pi\¥¿*`Zuius¡\`Z¾¸
¤)`Fhi`p;ÊÄtz owlun`Zu piwuikw§wl^`}wnn`aÀpi\`>wnn`Zh)w ^kusjpiwl ^£`F^£k^n`Bh"jh|l£`F`ZCpiusq@¶
H'I'H'FLKd¾j0a¤"`}us`4£qwapi\`>¿*`4usuil\`Bl£wl^jl£n~uiwn4`Zhsh _j^jll`4_a`Zpvhi`4us4`1ObZ7Q@¡wusn`Zu piw
~^£j` aSj^V_a¡usjpi`7d}~usw4`Zhsh|`Bh}wVn®hrps¡^pwnn`Zh>¡Vpi\`a£k^h|pi`ZuZª `K¡pi\¬pi\`anq^j_a®h|pius`Zjl_ah
hi`4us4`l¸C¤"`d`40h|kus`}ps\^jp;~uswn`Zhshi`Zh)jus`F´l`Z~npwl^`Zpi`Z¾ª[;\^`>`ZRjl£¡k0jpiwlh|\w¤}hvpi\0jp;pi\`Zui`>h)w
w`4us\`Zj§jl^n`Z(q§wlk^u}wl_a_k®4jps¡wjlus\¡pi`BËpskui`ª
0 50 100 150 200 250 300 350
1 10 100 1000 10000 100000 1e+06 1e+07
Bandwitdh (Mbits/s)
Packet size (bytes)
TCP-like, before migration TCP-like, after migration
MO¡kui`^¶ÊG¡usjpiwl·wh|pwl·j!d¡Cj¡p`pr¤)wlus´
[Fps\`4u¢`4mn~0`Zui_a`4Cpsh\0jRl`a0`Z`4 ~@`4ui³Àwlus_a`Z¬piwÄ`ZRjl£¡k0jpi`aps\`§_a~^jlp¢w³j·_lujps¡wºwl²pi\`
qC0j_a"hrpsui`Bj_¨~0`Zu|³Àwui_jl^`ª[;\`"F`pstz»t#eºj~~£®4jps¡w*³Àwlu[F¹"t aFt ps4~d+\^jlh0`Z`4_wnn^`B
psw²pius¡l`4ujº¿*`4u}`4p§h|wn´l`4p_alujps¡w¾ª M+lk^ui`ĺh|\^w¤}hps\^jpps\`4us`·h§wºwl`4us\`Bjl¥j³½pi`4u§j
_alujps¡wow³ jaw__k®4jpia~uiwn4`Zhsh4ª
#%¢("9'( 4¢
z»°ps\®h§~^jl~0`Zu§¤"`Ä\0jRl`Gn`Bhi4ui0`B©pi\`V`Zhi¡ j^ _~^£¡`Z_`ZCpsjps¡wKw³¢j n®hrpsuiknps`ZKhi`4us4`
jl£¡£w¤F`4¦4¡`ZCpO`4m`Bknps¡wwl³@w_a_k®4jpid~uiwn4`Zhsh|`Bhj³½ps`4u _alujpiwlª `¬`;\^jR`vCpiuswk^`B
ps\`w^`Z~npw³)qC0j_ah|pius`Zj_h*j0V_alujpsjl£`hiw´`ph4ª`¬`a\^jR`hi\w¤VqÄ_a`Zjl^h*w³"pi\`
`4mj_a~£`"wl³@¼}^mhiwn´l`4pshO\w¤µh|psjl^ju4wl_a_k^Zjps¡wps`4ui³jl4`ZhO4jpsjl´l`;jlnjlpj`vw³0pi\`Bh|`
4wl^4`4~nph4ª
[;\`o~uiw~0wCh|`B¬hs\`Z_`\0jlh*@`4`4 _a~£`4_a`4Cpi`Bº¡ºps\`§¿*`4usus¡\`Z¬wl~@`4ujps¡Ähiqnhrps`4_·ªotuswÌ
4`Zhsh|`Bh;w³ ~^jlusjl£¡£`4£¾jl~~£Zjpiwl0h^jlhi`Z(w·pi\`¢_a`Bhihsj`d~0jlhsh|w__k®4jpiwl·~^jujl¡_-h|k0\