Jae Woo Lee, Roberto Francescangeli, Wonsang Song, Jan Janak, Suman Srinivasan, Michael S. Kester, Salman Baset, Eric Liu and Henning Schulzrinne Internet Real-Time Lab, Columbia University In collaboration with Volker Hilt at Bell Labs/Alcatel-Lucent and Zoran Despotovic and Wolfgang Kellerer at DOCOMO Euro-Labs
What is NetServ? In‐network service container Java‐programmable, signal‐driven router “GENI Lite” – deploy modules, not VMs Active networking 2.0
Bridging two worlds 10+ interfaces 0 GB disk 1 low‐end processor 1 interface TB disk 1‐32 multi‐core processors
NetServ node architecture Module download Signaling message Signaling message to install module forwarded to next hop NetServ controller Module install Service modules Service modules Service modules Building block layer Building block layer Building block layer Virtual execution Virtual execution Virtual execution environment environment environment Data packets processed by service modules NetServ packet transport
Current prototype $"%&"%' 5770195#1./' <.=20"6' 4/-+',-*.%(/-+./5%(/66'-73% !$+$'61A/501/A'=5"<./6' !"#$"%&' !$()' :5&5';$*1' -01"/#>' 1*+#*.?%4/-+./5% )594"#' $"%&"%' $"%&19"' ,%5/67.%#'058"%' @*33'A*3% 7%.9"661/A' !"#$"%&' -./#51/"%' =5#5' 01"2% 5770195#1./' 3/()*+% -./#%.00"%' 7594"#6' <.=20"6' *+$,' :5&5';$*1' :5&5';$*1' $"%&19"' $"%&19"' -./#51/"%' -./#51/"%' ,&+'85*3% !"#$%&'()*+% (/66'-7% ?.%@5%="= ,-+*.(*&+,/-% =5#5' 19:0;0;%<>% 19:0;0;%<=% 7594"#6' !"#B10#"%' $1A/501/A' (1/23'4"%/"0' 7594"#6'
Service container in detail B10'(;& B10'(;& 4()6() & @)/0(>>"#- & @)/0(>>"#- & 1@@*"01;"/# & 1@@*"01;"/#& 1@@*"01;"/#& :*"(#;5>()6()& =/,$*(&C & =/,$*(&C & =/,$*(&O & ,1;1&@10'(;> & !"#$%&'()*+%!!,-&,*.')##.*/&("#012 4()6*(;&KBL & M$--*() & &B10'(;&,">@1;0I() & M8!5NB: & J & J & J & '())*+,& 42>;(=&=/,$*(> & !".)1)2&=/,$*(> & ?)1@@()>&A/)"6(& & -.()& A$#0;"/#> & !/01/.2& +$"*,"#-&.*/0'&*12() & 3(+0.(44/. & D78&E&34F"& !"#$%&'"!&%()*+%+%, 345*(6(*&78&9&*%0&!"#$%&:/#;1"#()&<& G/)H1),(,& ,1;1& & @10'(;> & !"#$%$%& !"#$%&'()#(* &
The grand vision NetServ everywhere Common service API on router, PC, set‐top box, ... Storage and computation on network nodes Enabling platform for NGI Internet is a multi‐user computer Code modules run anywhere Secure and extensible Active networking redux!
Not‐so‐grand initial focus Activate the network edge Eyeball ISPs sell router resources to content publishers Content publishers install servers and packet processors on edge routers Economic incentives New revenue source for ISPs Alternative to CDN for content publishers
Overview of operation 12'34"#'5"6/"4+' ./09%4?"#'1 72'8*4+,99':);/9"' ="+!"#$'5)/+"#' ="+!"#$'()*+#)99"#' @*;'34"#4' <2'=!8!'!%>*,9' !"#$%&"'()*+,%*"#'-)#'./0'1' <2'=!8!'!%>*,9' !"#$%&"'()*+,%*"#'-)#'./0'<' ./09%4?"#'< 72'8*4+,99':);/9"' @*;'34"#4' 12'34"#'5"6/"4+'
NSIS Signaling !$(#$') !$(#$') !$(#$') ! *+*'$ 6$0$/)$' 483617($' 617($' 617($' ,--./0*(/1% !" !" !" 4>?8 =*;( @/:$17( #$%&$' !1&$ !" 239*(*3:$;;*<$; 23!#4#3"%(/(5 23#/<%*./%<3:$;;*<$;
Application: ActiveCDN )$ )$ !"#$%&'($ )'*+'(,$ )'*+'(,$ .'/%01($ .'/%01($ 2-"*'"*$ (-%*'($ (-%*'($ (-%*'($ (-%*'($ 3%405&6'( 789$:&'($(';%'&*&$,5#'-<$6**3<==>-"*'"*?3%405&6'(@>-A=BC50'DC--$ 7E9$2-"*'"*$3%405&6'($&'"#&$,5#'-$C50'$ 7H9$2-"*'"*$3%405&6'($&'"#&$-"?31*6$&5/"10$*-$#'30-I$J>*5,'2K)$A-#%0'$ 7F9$)'*+'(,$(-%*'(&$#-G"0-1#$*6'$A-#%0'$ 7R9$2-"*'"*$3%405&6'($3(-4'&$C-($5"&*100'#$J>*5,'2K)$A-#%0'&$ 7L9$)'*+'(,$(-%*'(&$G5*6$J>*5,'2K)$('30I$*-$3(-4'$ 7M9$J"-*6'($%&'($(';%'&*&$6**3<==>-"*'"*?3%405&6'(@>-A=BC50'DC--$ 7N9$2-"*'"*$3%405&6'($C5"#&$"'1(4I$J>*5,'2K)$"-#'O$&'"#&$('#5('>*$A'&&1/'$ 7P9$:&'($(';%'&*&$6**3<=="'*&'(,8@&'(,5>'?3(-,5#'(@>-A=BC50'DC--$ 78Q9$J>*5,'2K)$#-G"0-1#&$*6'$,5#'-O$&5A%0*1"'-%&0I$&'(,5"/$1"#$>1>65"/$5*$ 7889$J>*5,'2K)$>1"$10&-$3(->'&&$>-"*'"*$
Application: Media relay • Standard media relay • NetServ media relay – Required due to NAT – Closer to users – Out‐of‐path – Improved call quality – Inefficient and Costly – Reduced cost for ITSP
Application: Keep‐alive responder • NAT Keep‐alive responder off – UA behind NAT must send keep‐alive messages – Major boJleneck for SIP server • NAT Keep‐alive responder on – Module responds on behalf of SIP server – No traffic to server
Application: Overload control NetServ Module SIP Server Controlled by SIP server • Installs NetServ module on demand • ThroJles incoming traffic • Controls all NetServ modules • Randomized traffic rejecLon • Real‐Lme feedback to modules •
Evaluation Java packet processing overhead: +(,-().&/0#,1"#() & 500 Conf 1: Plain Linux Conf 2: Linux with packet filser Conf 3: NetServ Container with Java removed +(,20#",0)& '((34*".(& Conf 4: NetServ Container with no module Conf 5: NetServ Container with NetMonitor 400 Conf 6: NetServ Container with KeepAlive 5-6" & 782 & Forwarding rate [kpps] 300 200 /0#9&?& +(,9"*,()& /0#9&>& /0#9&=& 100 /0#9&<& /0#9&;& 0 /0#9&:& 0 100 200 300 400 500 !"#$%&'()#(*& Input rate [kpps] • Overhead significant, but not prohibitive • Handles typical edge router traffic on modest PC hardware
So what’s new? Three design goals: 1. Wide‐area deployment Signaling for deployment w/o precise target 2. Multi‐user execution environment Packet processing in user space Multiple layers of resource control & isolation Module authentication & filter authorization 3. Clear economic benefit Compelling use cases
Future work OpenFlow integration NetServ node as a side‐car NetServ on commercial router JUNOS SDK Internet multicast using NetServ Hybrid of ALM and IP multicast Authentication and authorization using RPKI
NetServ project roadmap Nov 2010: Demo at GEC9 plenary session Video available at http://vimeo.com/16474575 June 2011: Presentation at FutureNet IV Full conference paper in the works Current status available in tech report: http://www.cs.columbia.edu/~jae/papers/netserv‐ tech‐report‐1.0.pdf July 2011: NetServ tutorial at GEC11 NetServ as GENI Lite Open‐source release shortly afterwards
Recommend
More recommend