      
 !#"$%'&)(+*-,+.
/103234 57698;:
óF,0*-ô Ã;,ZõXo g3rí\s îDï1[;ðD] ËF8« T¤p riwFñ1%y ò1,ó3Eô qQq R Û Û#5Ì5¶l¶QNnN R t
< =7>3?A@BD` CFL;EHa;GJbdc\I;e;KDfDLD]JMOgiN /QhJPDjlRJknmpSHoFTHUFq VTZriNXs;WZtY\[;b#]u;vx^1wp_Ay N )¤¾¨[i] « î)o3q Tu Æ ñ1ò Ã3©õxEDÛ# 5J¶{N b vw
T1{ z}|ci~enJ'F %  EEi p¡|Z}¢p}b¤'£1 ¥QDE ¦¨U3§xV©iªNo3WYiq [3T]xr1sb *-= x , u! Æx Ãñ3ñ1òpòR .g yHT¨Cr [iËp] T{r x| Ã¬ ñ1R òx Ãw3ñ1Û ò·5JR¶{}·NT¤= '#r ~ zt $b'²Du\[HvF]lw ^#¨_«xN ¬\` ­ LH[3a ]Qb¨W#J¡³DZMH¢F´g\µ#®#¶ ¯/·°¨P m;±;o;biqHw1±HE·q W r lÓHÔQWpMO¶3QN wÕQ ¶1ñ;'ò\íDóDî\ô[;Ã\]lõ Wp¨¶3íDQî ÕJR#¶pï;©Hð Ei° íD îDT [;[H])]Ìa" ³\M1´JµZ¶¨b¨¸i¹»º½¼i]x bH¾#¿\b «F¬H­ [1]QªÀ;ÁDÂ¤c S¤û Ëpa UJTr üý  ÕH´JW\=¶µdF¶ ÕFV KF¶ þ'E MHñ1W\ò1¶+ó3FôÕpW\¶ªw;¶ xy ÕFT¤ri¶nñ1E òúewdER ± $T¤²Hr [i«F])¬H^d­ _Ì[iN ] ` LiÃFaiÄdb¤Å1ciÆ eQ©XÇ\Í1ÈFÎ § RZR1ËFÉ¤TÊ;r ËxT b ó;ô a1Ó;Ô·MAN w  _z*3¾\Û 5Ì¶ÌN R t  ËQT'ñ
ò K·b þ1óHM\ô a3 ÓHú ÔQ¨MO± N w [i]ñ\= ò;óDlô Exba  UJTü ý qJÕ\ ´JµZ ¶ ËV"Ï _Ìu3N vi` ÐFLiwa1ai¤ÑÕ3j1ÖZ×DÒ3jxM¨ØF^#Ù'_ÌÓFN Ú'` ÛdLiYÝa1b3ÜßÞ;adàZÓiEâÔpáäMÌãæå$N ç /·z På z}^ è Tr áäãæå$ç z å z w  E# p¡Z¢J ¬  R qdm\odE ñ1òióHô
n` é3LiêÌa1aiªo3Õ3qÖ¨×DTrM¨ØFáëãæÙå$ç ÜßÞ;z å à'z Eì å$Exç z aZå Óiè ÔpXí1Mlî N /xRï1P ð\^#ËF_ÌT N T©¤a\UQ©'nüø3ý ù)Õ3´Qªo3µ'q ¶ TV r KFþZM3iaZÓ1ÔFMÌN©io  Ë
ñ1òióHò1ó3ô ô Ã1õ í3b¤ö3î1÷l[1]H©iE ñ1o'øHòióHù ô;Ëpú·Tr S¤í3û î a R¤UJï3üð\ý ËxÕ\´JTªñ µ  +3-MLNGPR@@UWY-E [B\áäãæcå$ç $+z då z ¾ rdz}" |$~  ²;[3]Ì ^d _+ N |` }L1}a  R w EH GpEdå$IHç K;z Lå¶ V KFÃ3þ'õxMib3 aZÓiÔFMÌNÿwZc Q°ªm\o3q Tráä®dãæ¯å$ç °z mDå oHz wq3¤±3«Fq ¬Hr áë­¤ãæÆ å$ç 1z WDå ¶z p ÕF$¶\²;©i[3ª]Ìo^d_l DN `©ngL bZM+c;N /xeÌP   7 © q3R o å$#ç 3z å cH¨e{cX$f\]+'o3ªE o;" q $T¤²xr [\ ]|}^1}_A NaR ÕF\ËÚiFb T©E H«F[3¬3] ­ R [iÇD]FÈxgF§ WdRH³\"É'M1ÊF´JËpµZT ¶c3¸3eO¹»©º ± ¼iT'] r à` LHa3©¨b'b cH e,*Bªf\,¨]  Ë·ú T¨'r_± " m$.·²F [3H]lE ^#" _+$²DN [H` ]lL3a^i_+ N`S¤ûLia1xb\´ZWdÓ1³\×M11´JwZµdc ¶mQ°3ªmExT_ r V Õ pb3¾#¿;b  ú«F¬3­¤Æ 3W\¶ FÕF¶H©iXo  Ë  wHy Tr
å$ÏwHç u;y z v·Tå rzb· áä¦#ãæXå$§ é3ç  z ê+Eå nz}«x E¬D n­'é1Æ ê HËFÄdWFÆT ¶ \R·!©nÕ·wdq3¶DE'o3©3å$®#ç ¨" z o å·ËpcT ·$ Dáë© ã 8¡" $²D¢[H£]l¤¦^i¥_+§N¨¦` © L3ª a3« b¬ ­\[3]\E·Wi³DM3´{µd¶db ®
R «F¬3­¤Æ 1W\¶ FÕF¶H©iXo %\©ng1w #Tr ¬ È#ËFE·T WdÚZÛ³\1dMi[i´Q]Fµ'g ¶'«x3b ¯¬3y­ <[i]F> ú·wHyS¤ûT°r ± Ú'<Û>1D b32² ïR3E#ÉÊ*,4)  3[i] R1ÉZËpT GFI1KHL1MÌN R ÇDÈD§ R1É
Ï u1v  Þ;àHb S  R ¥F¿ TrÊ;ËFT¤r «F¬H­ [1]Dg#Ç\ÈF§ R3ÉÊ;ËpT ³ ©io ­ JÚ& áäãæå$ç z å z  ' 1¾ " $²[D] ^H_ N ` LDaDb Û 1F ³pR  ´ T hÜ µ ·% ¶¸ èrå$ç$²Hz ål[ib¤])c^Z$ _ÌN ` Liaib)å$ç z )å (k E [i]«F¬H­& "+ *-,/.HmD¾)áäãæå$ç z å z} bé1ê& áäãæå$ç z å z} b  # ÄZÆ R ! qio1®"¹»º½¼¿¾»À»ÁÃÂÅÄ¹»º½¼¿¾»À»ÁhÆÈÇÊÉÌËÏ ¤u1¾ v;r w  E «F[1]¬3­ [ií3]Qî R'+ *ï1ð;,0%ËFTDñ1áäãæò1å$ó3ç z ô å z} X©3é1Xêo«F¬H­ Û 1\3b 2 ï  *-,/4)  Û 5J¶QÃ3N õ b  6 w
%bdw#E·Ú'ÍÏÎÏÐ»Ñ»ÒÔÓÏÕÏÖÔ×ÅØúM¨Øp¨)±Ù'w  r Eáäãæå$ç z å [1z}A]Q8R 17aZÓ1+© 9;ÔFq3MlodNªc ©1$+Xo¨:D¾Ha1KÕH;1ÖiÕ¨Y×'ÙÜÚÛ3
Ý·Þ
ß=àá3âäã åæäßà¢;w #T ;©'«p= <¬3>)­ ¤¾ rèz ç ç }Ã é}Ã êjëÃ ë å ~  M 1ì3MÓ ì# Ó8©1{ª´3o\ÓFq × T¤Fr#g zíç  å Õ·~ïÚDî ~ ãpËTTbFq¬? @BADCFEHGIKJMLDNOGQPSR%@T@VUXWBYZEMìdÓ   J´iÓH
× = 3'g z *J#¾´#Ó\× b  (ÌT  ·k <qF> i M[B\ AB]_^_`badcfehgjiklgmkon
ð å ~ 6J²+)
¨
x¾ª©
q
áäa\ãæå$ÕFç Ö3z ×·å z M# ØJí3ÙFî 'R¨c ï1$ ð;ËQËFT T¤xñ1©1ò1¤ó3øDô ùOÃ1¨õ oFbqöH÷ÌTZri©3ñDXòo ì'ÓQ©1XoHq T¤r a Uüý Õ3´Qµ'¶ V ¬KFþZM R «F¬H­ []DgZÇ\ÈD§ R1É¤Ê;ËFT \©'= <>)¤¾ r
SndBuffAction

SBOutputDataAct

SBAckRcvAct+do_it(TCB*)+do_it(TCB*)

void do_it(TCB* tcb){.
RetransmitTEvent ev(RetransmitTEvent::set)
RetransmitTSTM* ret_stm= RetransmitTSTM::getInstance();
ret_stm->put(ev);.
}void do_it(TCB* tcb){.
RetransmitTEvent ev(RetransmitTEvent::cancel)
RetransmitTSTM* ret_stm= RetransmitTSTM::getInstance();
ret_stm->put(ev);.
}ñ3òóoñ ¥ô#õö¢lÚ#$Ûn²DE11 [H" [\]l$]Ì²D^# [3_+«·]+N ¬F^#` ­ _lLH[;a3N ]b;` a3L1Ú#Ó\aHÛÔJbl1 MOå$çí3NZz î©Håâ'R'oïHH­ :·ðFc KËp+$ ;\T¤¨ñ\Õ#¾ òY r"óDô ÃDõ ©\¨o*T,äBF ©¨gDw  H Tdr «Q¬F­ [\])aÓiý ÔpÕ3´JMÌµ'N ¶ VWZ³;KFMiþ'MF´Q©µ'É ¶+÷H Xo3EqT x Ühµ ´dÓ1×; èb3r a UJü·¶¸ýÿþøúùüû <<hook>>

TransportProtocol

NetworkController<<hook>>=ÐÒÑÔÓÕÈÖ9×ÈØÚÙ¸Û?Ü=Ý;Þ

¼Æ~ÇÌá 
<<hook>>äãûüýþªÿ

SndBuffAction

TCPSTM

SBOutputAct

TCPState

SBInputDataAct

TCPAction

<<hook>><<hook>>

RcvBuffController <<hook>>$%&

<<hook>>Timer

SndBuffController <<hook>>

RcvBuffSTM

 éênëìFíîïñð

SndBuffState
SndBuffAction<<hook>>''' +.)<<hook>>Ç<<hook>>Ù ÜÛ Ý Þ·ß=à-cfehgjiklgmk
å$áä«Ìãæç å$¬Qz ç å7­ z å[· z}]A7 #© ª*ZRé3Eê ,«)J.Ëp¬xmÌT¤r ­3¾ ÚdÆ " Û$·;1²WQb [x¶2 ]âÌï ^DÕ{E_ ¶J*©pN ,/`#Ì4 oLp Ta·Ûb Q]Q5 ¶N b [i6 ]·w aZú Ói¨ ÔF±)MÌ r Nÿwáëãæ%å$ç { z ÜÃå µ z E8w µ  E·ÚZÛèr i1 [«F¬3­¶¸32G^`_`acb<<hook>>±n² ¦¨<<aspect>><<hook>>«¬Ù­®¯°<<aspect>><<hook>>«¬<<hook>>³´<<hook>>³´Zc<<aspect>>c Y¡n¢<<hook>>

<<hook>>

£ <<aspect>>y¤¥§¦©¨<<hook>> ªª«¬<<hook>> nÙÙ«;a ¬3` ­ N [i[1]·]Qa'#ÓiadÔDÓiMÌÔpMÌN  N Ú'­ Û1\Dbw 2 ú ï ¤ E ±3*qZ,Ex4{a UJEÿÚ¨ü ýÛ#Õw´µi«F¶ ¬3V ­¨KJÆ þd M'E1 íHW\î\¶[3F]ÕF)( ¶Hkm©i ª o'*-¾ ,0r %áäãæå$r ç z å z}
Aµ¶©@CBEDF@D¸·º¹¼»¾½A¿ÁÀáäå$ãæç å$z ç å z zå  z}  b qp o  B Ä)1Æ ¾ _R $! ²{ql[Fo+] ®_^\" _ Ë N TJ` r LFáëa ãbV N«FWªY¬H­ [1b)]xáäãæb å$ç z « å #R z} ! q1b o1" ® " ¨Ëp® Tr Tr ¾¨E pb U
Â

Ã9ÄPÉ

¼ÆÈÇÅ

ÅºÆ~Ç

<<hook>>~}Y@CBEDF@DÌËÈÊå

Å]\<<hook>>
zC{7|;acb¼ÆÍÎ<<hook>> d`egf7h<<hook>>i`jlknmEo7plq;rtsguwvyx

y·~Ë

YX

[Zòªóªôõñö÷ùøúl»ºÆ~Ç

¾á

547698;:=<?>A@CBEDF@NMPORQTSVUVWHJILKadvice timer_set() : after(){FinWait2Timer* timer;= FinWait2Timer::getInstance();timer->set();
}
.
.
};

Å<<hook>>''' ()*+-, /01

aspect FinWait2TimerAspect{
pointcut timer_set()= call("TCPFinWait2State::getInstance()");
pointcut timer_cancel()= call("RBInputDataAct::do_it(...)");
pointcut timeout()= call("FinWait2Timer::timeout(...)");

Ù á+æ  ! #"%$&('*)*+ ¤«F¬H­ [3]·aZÓ1ÔFMlN
\b'ÚDÛ
1 M ì'Ó;b¤TrlÔxM©¤adN¤Ói©3Ôp¤MÌo N ­  x R b  D&,w\',y ),+ g.«F- ¬H+ ­ ¢l[3¤]Qo iú aZ, Ó E«F0/2¬3­ 1 [i4¥ ]x3*b 5769D 8g (« ú :¤ <¥ ± ;i=?>Ao3@Cq BD>ETBGr F¥ HJIK ê ²;[1]+^d_+N ` L1aT¨r KËpê T ²F[1[3]x]Ìb ^i_+{N¨` ® L3Hb+a ¾ R ráëãæE*å$L1çlzù ¤å ­(¾;zM Ú'w(ÛN 1 ý'®#E1þ{"í1N îË Rw1¤ï1Edð;áëãæËFå$ç Tz ñ1å ò1z ó3ô ¦Ã1õ w ©1XH o TZ*-r ,ê %²x [H; ]+©n^igH_Ow i N T` bLawZicb°å$ç ªz m å T r x. ùpi b E+ñ1òx Rdº ú z x KT ´ZÚ'Ó1Û×\1 d bE 2«Fï¬3E­ *-[i] ,)4y T[1r ] à l aZÓ1©j·.ÅÔFM+; N gH­ y  TiRUH- V + N¢)WYi [1E &(])' ^#gP_ÌORN Q\` wL
a R Edáä ãæå$ç z å z}   # ÄZÆ gSFqQ©T*U4VW.XY

SndBuffSTM

 <<hook>> 

Ú·RcvBuffState

RcvBuffAction<<hook>>''' ()*+-,void do_it(TCB* tcb){.
.
SndBuffer* sbuff = tcb->getSBController()->getBuffer();sbuff->popSndData();} !"]è

SBInputDataActvoid do_it(TCB* tcb){.
.
SndBuffer* sbuff = tcb->getSBController()->getBuffer();sbuff->popSndData();}<<hook>>#  !"æåÒçûüýþªÿ

SndBuffAction

SBOutputActàß

¾Æ~Ç

Úâ



<<hook>>SocketController

8¡ ¢£¤¦¥­3c$)¤¾Jå$ç z åJwdE x¾d±DÚ'Û1; ËFT ÷J ³R Ú'Û\1 b iE pb\WdÕ  ËFT Ühµ ¶ ¸ èrÍÎ Ï5ËÆ~Ç[]\_^a`bRc*d VaePfhgjijk,l(m<nhoqprJs(t(uqvxwzyj{#|Dy|,}~f#yj{|Gy}J7Y.( lJm} 4*. J,
XRR}*qf.4Pl*m}%j4<yj{|Gy¡¢*J£} ¤¦¥§©¨hPY.©R l(m}.thªJ«¬7p­J%®¯° ¥,­±(VW.X£v²wzyj{|Gy9|G³´}µ(¶7 Y· ¸(¹Jº¦e fJ©*PlJm]tPª(«©¬7pu»¼#½R¾l(m}¿À,X4¥,­VRÁaXY]ÂÃJÄ4,ÂÃ(Å4tar£p²lJm¦eÆÇ ®(¤¥§ ° Ja±RÁjf.»¿#½(¾l(maV(¤¥§ ° Y
È7ÉbRc*d }%ÊËaXJu(Á,CfhÌÍÎÐÏ*ÑÒ,RÓJÒ4ÔÕÖ×JØJÙRfÛÚ*Üa§RtqÝEÞ4Ã.ª©}¦ßÐÓRàJ¨háhâ©ãäJØ(ÙRfÔ£Õ c(dJå .¾*§©à.æ.uç¡ßÀè(éaÒRPæ .Yêìë¦íîy ÷ ÿ ÷ ôöùï ðñ |GòAóÀôöõø÷0ùGúûýüþ|Dôøÿ?õ ³³¡wzy9ùG÷  ôk ôú %÷ ùDúù öÿ ô(ijôDùG÷ ÿ ÷ ôöù7| w ÷ ÿ û !#"$"$"&%('*)),+.-0/#132345/ '*-7682*92*:;/-=<û>& ÿ ò ð??@ òï Ì ñBA ò A GùD÷ ûCòDEGùG÷FGHùICCò vxùGú ûKJ?yML0 N ô õ ôPOQN ô õkR ô ôøÿ ô |GôSTNR û U÷ ùV$WX'X1,Y&Y$V$Z0[K\]_^3` {ÿò ð??a ûbGòdc ae w5c @? ò