Molnár Gábor Zalatnay Zsolt
Skype számokban Niklas Zensström és Janus Friis (KaZaa) alapította 2003 augusztus Az legelterjedtebb P2P VoIP alkalmazás Több, mint 200 milliárd perc (2010 vége) A világ távolsági hívásainak 13%-a napjainkban Több mint 1,8 milliárd letöltés Kb. 1200 letöltés percenként Több mint 663 millió regisztrált felhasználó Egy felhasználónak több account Átlagban több mint 20 millió felhasználó egyidejűleg 6 millió 2006-ban 29 millió felhasználó egyidejűleg! (2011.02.21)
Skype on-line felhasználók, letöltések
Földrajzi eloszlás
Skype története 2003. augusztus: az első béta verzió megjelenése 2005. október: az ebay megveszi (2,6 milliárd USD) 2005. december: videotelefonálás 2006. április: a regisztrált felhasználók száma eléri a 100 milliót Skypecasting szolgáltatás megjelenése 2009. őszén az ebay eladja többségi részesedését (70%-át 2,75 milliárd USD-ért) 2010. október: videokonferencia megjelenése (ingyenes tesztidőszak január elejéig, utána fizetős)
Skype előnyei Jobb minőség mint a hagyományos telefon Hagyományos telefonnál: 300 Hz 3 khz Skype: 50 Hz 8 khz Nem igényel tűzfal vagy router konfigurációt P2P alapú NAT és tűzfal átjárás Biztonságos end-to-end encryption Egyszerű user interface Szinte minden platformon fut Windows, Mac OS X, Linux, mobil OS Telefonkonferencia, videotelefon, üzenet/fájlküldés Üzenetrögzítő
Üzleti modell
Szolgáltatások SkypeOut SkypeIn: Online Numbers ~1500 Ft/szám/hó előfizetéssel 50% SMS Magyarország - 33 Ft Voicemail - hangposta Skype Premium: Video Conference Call napijegy: 1080 Ft havidíj: 1850 Ft főleg üzleti előfizetőknek
Skype mobilon Öngól? Skype/mobil - Skype/mobil: ingyenes mobil - vezetékes:? Csak adatcsomag + Skype? nincs teljes 3G lefedettség segélyhívások tiltva Mobil VoIP (Android 2.3) Új irány: bejelentés: 2011. március 9. mint a Twitter: display hirdetések első partnerek: Groupon, Nokia, Visa
VoIP problémák tűzfal A tűzfalak és a NAT megakadályozzák sok VoIP szolgáltatás működését
VoIP problémák NAT
Skype architektúra Skype login szerver supernode peer
Skype protokoll Supernode slot-okba vannak csoportosítva (9-10 supernode egy slotban) A slot-ok block-okba vannak szervezve (8 slot egy blokkban) Jellemző rövidítések SN (Skype Network) Skype hálózat SC (Skype Client) Skype kliens, felhasználó, peer HC (Host Cache)! Egy SC jellemző funkciói Bejelentkezés, regisztráció (login) Keresés (user search) Hívás kezdeményezés, végeztetés Média átvitel video-kép-adat fájlok Szöveges üzenetek, állapot kijelzés
Skype funkciók - Login folyamat 1. start 2. send UDP packet(s) to HC 3. if no response within 5 seconds then 4. attempt TCP connection with HC 5. if not connected then 6. attempt TCP connection with HC on port 80 (HTTP) 7. if not connected then 8. attempt TCP connection with HC on port 443 (HTTPS) 9. if not connected then 10. attempts++ 11. if attempts==5 then 12. fail 13. else 14. wait 6 seconds 15. goto step 2 16. Success
Skype funkciók - Keresés P2P alapú elosztott megoldás A hagyományos fájlmegosztó alkalmazás elegendő lenne, de... a keresés nem determinisztikus, nem ér el minden peer-t 3G P2P megoldás Global Index Többrétegű hálózat, a supernode-ok által bármelyik peer globális képet kaphat az összes elérhető erőforrásról, minimális késleltetéssel Titkos, nem visszafejthető Nem nézhetünk be a csomagokba melyeket az SN küld tovább Valószínűleg hullámokban keres, új és új SN-on
Skype biztonság Vitatéma szakértői körökben A titkos forráskód miatt nehéz megállapítani mennyire biztonságos A teljes forgalom titkosítva van, nem lehet beavatkozni A felhasználó nincs bevonva a kriptografikus folyamatokba Viszonylag kisméretű kulcsok Security through obscurity Ha nyilvánossá tennék a forráskódot, támadhatóvá válna Bármelyik másik Skype-ot beszélő gépben megbízik, nincs hitelesítés Támadási felület A kód számos helyen akarattal össze van zavarva, megnehezítve a visszafejtést Rengeteg checksum az integritás ellenőrzésére
Skype fejlesztőknek http://developer.skype.com/ API-k: szöveg alapú protokoll Tracer.exe segédprogram Skype4COM Component Object Model ActiveX component elavult ennek mintájára: Skype4Py - Python interface SkypeKit zárt beta Skype integrálása más programokba
Szöveges interface (+Tracer) # státusz lekérdezése GET USER x ONLINESTATUS # hívás: CALL x # hívás befejezése: SET CALL 1 STATUS FINISHED # parancs referencia: # http://goo.gl/67oal
Skype4Py Az ActiveX komponenshez hasonló interface + a python nyelv szépsége :) import Skype4Py skype = Skype4Py.Skype() skype.attach() def statuschange(call, status): if (status == u'ringing'): call.answer() skype.oncallstatus = statuschange
Demo - Pontos idő Skype vonal A bejövő hívásokat automatikusan felveszi A felolvasandó szöveget elmenti egy txt-be ESpeak-et használva wav-ot generál A wav-ot input-ként használja Vár amíg a felhasználó le nem teszi Ez összesen 30 sor az egyszerű API miatt! Egyéb alkalmazások: (kezdetleges) ügyfélszolgálat bonyolult átirányítási logika bármi más
Köszönjük a figyelmet! Kérdések?!