Jaringan Komputer Lanjut CS4603 Join Facebook Group: ITTelkom-Jarkomlan Anton Herutomo, ST., M.Eng.
[email protected] Join My Linkedin: http://id.linkedin.com/in/antonherutomo Follow me: @antonherutomo Skype me: herutomo +1 me: anton.herutomo
Presentasi Nilai Mata Kuliah
• UTS: • Paper: • Lab / Implementasi IMS:
30% 35% 35%
(Lab dalam konfirmasi)
Dosen berperan sebagai perseptor: motivator dan fasilitator Mahasiswa dan dosen mendapatkan sumber pengetahuan dari interaksi dalam kelas, komunitas, Internet, perpustakaan, dan sumber-sumber yang lain. 2
Pola Pengajaran CS4603 - 2012
• 14 minggu akan dibagi menjadi 3 big sections: – Section 1: 6 Minggu - Minggu 1-6 • dosen sbg pemberi materi.
– Section 2: 4 Minggu - Minggu 7-10 • mahasiswa sbg pemberi materi, dosen sbg pengarah.
– Section 3: 4 Minggu - Minggu 11-14 • pelaku industri sbg pemberi wawasan, dosen sbg pengarah.
Jadwal Kuliah CS4603 - 2012 • • • • • • • • • • • • • • • •
Minggu 1 – Sabtu 11 Feb: Minggu 2 – Sabtu 18 Feb: Minggu 3 – Sabtu 25 Feb: Minggu 4 – Sabtu 3 Mar: Minggu 5 – Sabtu 10 Mar: Minggu 6 – Sabtu 17 Mar: Minggu 7 – Sabtu 24 Mar: UTS Minggu 8 – Sabtu 7 Apr: Minggu 9 – Sabtu 14 Apr: Minggu 10 – Sabtu 21 Apr: Minggu 11 – Jumat 27 Apr: Minggu 12 – Sabtu 5 Mei: Minggu 13 – Jumat 11 Mei: Minggu 14 – Jumat ,18 Mei: UAS
Internet dan Seluler, Arsitektur IMS Paper 1 Kendali Session - Internet dan IMS IPv4 dan IPv6: Adressing, Routing, Mobility Teknologi GSM, GPRS + Lab IMS Lab IMS Diskusi Mhs: QoS - Internet dan IMS Open Book Diskusi Mhs: AAA - Internet dan IMS Diskusi Mhs: Charging - Internet dan IMS Diskusi Mhs: Security - Internet dan IMS Industrial Approach (Telkom Divisi Access) facebook time Industrial Approach (TelkomVision) facebook time Paper 2
Tugas: Paper Summary - Individual Silakan membuat paper individu dengan tema sbb: Lihat di facebook group: ITTelkom-Jarkomlan pada hari Minggu 12-Feb: Penilaian, Batas waktu pengumpulan, Format paper, Kerangka bahasan paper. Dibuat dalam format .doc (MS Word 97-2003). Maksimum 10 halaman, padat isi namun ringkas pembahasan.
Materi Kuliah Minggu ke-3
• Session Control di Internet (SIP: Session Initiation Protocol) dan IMS
Agenda
• • • • •
Pengenalan SIP Arsitektur SIP Cara kerja SIP, pesan-pesan SIP Keamanan pada SIP Kesimpulan
7
Pengantar SIP SIP adalah • Sebuah protokol kendali untuk membangun, mengubah, dan menghentikan session multimedia dengan satu atau lebih partisipan. • Contoh multimedia session: Internet multimedia conference, Internet telephone calls, multimedia distribution. • Informasi yg dibawa termasuk: IP address dan port, codecs yg dipakai. • Protokol yang berbasis teks, seperti HTTP dan menggunakan client-server model.
8
Fungsi Dasar SIP Menurut RFC3261 Meliputi 5 aspek komunikasi: • User location: penentuan end system yang akan dituju pada suatu komunikasi; • User capabilities: penentuan media dan parameternya yang akan dipakai; • User availability: pencarian informasi tentang tujuan yang akan tersambung dalam komunikasi; • Call setup: kesepakatan call parameters, baik di caller maupun callee; • Call handling: transfer dan terminasi panggilan. 9
Contoh Implementasi Fungsi SIP
• Inisiasi multi-party calls dengan bantuan multipoint control unit (MCU) atau interkoneksi fully-meshed. • Inisiasi calls pada Internet telephony gateways yang tersambung ke PSTN.
10
Rekayasa SIP •
SIP direkayasa pertama kali oleh Handley, Schulzrinne, Schooler, and Rosenberg – – –
•
•
Internet-Draft pada bulan 07/1997 Menjadi RFC 2543 pada bulan 03/1999 Berubah menjadi RFC 3261 pada bulan 06/2002
Tujuan protokol SIP: mengantarkan session description kepada user yang tepat sesuai lokasi user saat ini (lokasi ≠ lokasi geografis); sejauh mungkin menggunakan format dan berinteroperasi dengan protokol yang telah ada. SIP merupakan alternatif IETF untuk standar H.323 dari ITU. 11
Filosofi SIP •
•
•
SIP bukan suatu vertical integrated protocol suite > harus digunakan dengan protokol lain agar dapat menyediakan service lengkap untuk user.
Menggunakan Internet addressing (URLs, DNS, proxies) text based UTF-8 charset, format independent. Tidak ada asumsi khusus untuk protokol di bawahnya. Untuk transport layer misalnya, bisa menggunakan TCP, UDP, atau SCTP. 12
SIP di Dalam “Lautan Protokol”
sumber: http://www.cs.columbia.edu/~hgs/internet/
13
Arsitektur SIP •
SIP menggunakan arsitektur client/server: – – –
•
Disebut juga sebagai offer/answer model - RFC 3264. Client / offerer > sumber pesan. Server / answerer > respon pesan atau forward pesan.
Elemen utama: – SIP User Agents (SIP Phones) • •
–
SIP Servers •
•
–
User agent client (UAC) User agent server (UAS) SIP Proxy Server – menerima pesan dan meneruskan ke arah penerima. SIP Redirect Server – menerima pesan dan meneruskan pesan, tetapi tidak me-relay.
SIP Gateways: • •
Ke PSTN untuk telephony interworking Ke H.323 untuk IP telephony interworking 14
Arsitektur SIP: Elemen •
User Agents – –
•
User Agent Client (UAC): SIP requests User Agent Server (UAS): SIP responses
Network Servers (fungsi di bawah dapat kolokasi) –
–
–
–
Proxy: menentukan next hop dan forward request, merelay call signaling, beroperasi berdasarkan transaksi, dapat menyimpan/tidak menyimpan state suatu sesi. Forking Proxy: proxy yang merutekan pesan ke lebih dari satu tujuan. Redirect: mengirim balik alamat next hop ke client, mengarahkan callers ke server lain. Registrar: menerima REGISTER requests dari client, mengelola keberadaan user di location server. 15
Arsitektur SIP: Proxy Stateful Proxy: memelihara state transaksi selama pemrosesan sebuah request.
Stateless Proxy: forward setiap request downstream dan setiap response upstream.
Downstream: dari user agent client ke user agent server. Upstream: kebalikan downstream
16
Contoh SIP Phone dan Adaptor SIP phone = Internet hosts • Choice of application
1
• Choice of server • IP appliance Implementasi:
• Mediatrix (1)
2
• 3Com (2) • Nortel (3)
• Cisco (4) • Columbia University
4
3
• Pingtel Courtesy: http://engr.smu.edu/~hbaker/40 17
Contoh Skenario Proxy Server
18
Contoh Skenario Redirect Server
19
SIP Protocol Structure
Transaction User
Transaction Layer
Transport Layer
Syntax and Encoding
• Semua entitas SIP kecuali stateless proxy: UAC, UAS, proxy, registrar, adalah transaction user. • Semua entitas SIP mempunyai core yang membedakannya satu dengan yang lain.
• Mendefinisikan request sebuah client dan response dari server. • Mengatur retransmisi dan timeout di application layer dan pencocokan request vs response.
• Mendefinisikan bagaimana client mengirim request dan menerima response, serta bagaimana server menerima request dan mengirim response.
• Menggunakan Backus-Naur Form (BNF) grammar, mendefinisikan bagaimana format pesan dalam SIP. 20
Cara Kerja SIP 1. 2. 3. 4. 5. 6.
Pengalamatan SIP Mengetahui lokasi SIP Server Mengirim SIP Request SIP Method SIP Response Requests and Responses Selanjutnya
21
1 Pengalamatan SIP Menggunakan Internet URL (Uniform Resource Locator) – Dalam SIP dikenal sbg URI (Uniform Resource Identifier), bisa berupa alamat Internet atau PSTN numbering format. – SIP mempunyai fitur personal mobility: user dapat dicapai dgn satu URI/identifier saja di manapun dia berada. URI ini disebut dgn AoR (Address of Record) atau Public URI. – Format umum: nama@domain – Untuk suatu session, resolusi/memperjelas suatu alamat harus sampai dengan level user@host – Contoh SIP/SIPS URI: sip:
[email protected] sips:Anton H.
sip:[email protected];user=phone sip:[email protected] sip:[email protected];phone-context=VNET 22
1 Pengalamatan SIP (2)
23
sumber: camarillo et al., 3G IP Multimedia Subsystem, John Wiley, 2008
1 Mengetahui Registrar By configuration
Menggunakan AoR
Multicast
24
2 Mengetahui Lokasi SIP Server: SIP Trapezoid ............................ .............................. . . . . . +-------+ . . +-------+ . . | | . . | | . . | Proxy |------------- | Proxy | . . | 1 | . . | 2 | . . | | . . | | . . / +-------+ . . +-------+ \ . . / . . \ . . / . . \ . . / . . \ . . / . . \ . . / . . \ . . / . . \ . . / . . \ . . +-------+ . . +-------+ . . | | . . | | . . | | . . | | . . | UA 1 | . . | UA 2 | . . | | . . | | . . +-------+ . . +-------+ . . Domain A . . Domain B . ............................ ..............................
SIP trapezoid adalah suatu konfigurasi paling umum dalam suatu transaksi SIP
25
Sumber: Rosenberg et al., RFC3261, 2002
2 Mengetahui Lokasi SIP Server (2) RFC 3263 mendefinisikan cara client menemukan SIP server dgn 2 langkah: menemukan transport protocol, kemudian menemukan IP addres dan port. LANGKAH 1 Menemukan transport protocol terlebih dahulu: 1. Jika URI menyatakan transport protocol pakai. 2. Jika URI tidak menyatakan transport protocol, tapi target server berbentuk IP address+ ada informasi port: pakai TCP untuk SIPS URI atau UDP untuk SIP URI. 3. Jika target server bukan IP address, tapi ada informasi port: pakai TCP untuk SIPS URI atau UDP untuk SIP URI. 4. Jika target server bukan IP address + tidak ada informasi port: lakukan DNS lookup (NAPTR query). baru kemudian DNS lookup (SRV query). 26
2 Mengetahui Lokasi SIP Server (3) Contoh (dari RFC3263): Client ingin melakukan resolusi thd sip:[email protected]. Client tsb akan melakukan lookup dgn NAPTR query untuk domain example.com, and hasilnya (NAPTR record) adalah sbb: ;
order IN NAPTR 50 IN NAPTR 90 IN NAPTR 100
pref flags service 50 "s" "SIPS+D2T" 50 "s" "SIP+D2T" 50 "s" "SIP+D2U"
regexp replacement "" _sips._tcp.example.com. "" _sip._tcp.example.com "" _sip._udp.example.com.
Info di atas menyatakan bahwa server mendukung TLS over TCP, TCP, dan UDP, sesuai urutan. Client mendukung TCP and UDP, maka yang terbaik dipilih = TCP. Target host ditentukan dengan SRV lookup untuk _sip. _ tcp.example.com. Hasilnya: ;; IN SRV IN SRV
Priority Weight Port 0 1 5060 0 2 5060
Target server1.example.com server2.example.com
27
2 Mengetahui Lokasi SIP Server (4) • Bagaimana jika NAPTR query tidak ada hasilnya? • Bagaimana jika SRV query tidak ada hasilnya?
28
2 Mengetahui Lokasi SIP Server (5) LANGKAH 2 Menemukan SIP Server • Temukan IP address dan port 1. Jika URI menyatakan IP address pakai. Jika ada informasi port pakai. Jika tidak ada informasi port pakai default (port 5060). 2. Jika URI tidak menyatakan IP address, tapi ada informasi port: DNS lookup (SRV query), bersamaan dgn query NAPTR sebelumnya 3. Jika SRV query tidak memberikan hasil: DNS lookup (A atau AAAA query). 29
3 Mengirim SIP Request • Setelah host dapat diterjemahkan ke dalam suatu alamat SIP server, client mengirim 1 atau lebih SIP requests ke server tersebut, dan menerima 1 / lebih respons dari server. • Format SIP Request: <Method> <space> Request-URI <space>SIP-Version <enter> (Method = “INVITE” | “ACK” | “OPTIONS” | “BYE” | “CANCEL” | “REGISTER”) • SIP Request yang paling penting adalah INVITE. • SIP transaction dibagi menjadi 3: INVITE-ACK transactions, CANCEL transactions, regular transactions. • Contoh: INVITE sip:[email protected] SIP/2.0 30
4 SIP Method Method
Maknanya ...
REGISTER
Petakan sebuah public URI dengan lokasi user saat ini
INVITE
Undang untuk suatu sesi
CANCEL
Batalkan request yang sedang berjalan
ACK
Konfirmasi sudah menerima response final dari suatu INVITE
BYE
Akhiri suatu sesi
INFO
Bawa suatu info pensinyalan PSTN
OPTIONS
Tanya ke suatu server ttg kemampuannya
PRACK
Konfirmasi sudah menerima response provisioning
PUBLISH
Upload info ke server
SUBSCRIBE
Minta diberitahu jika ada event tertentu
UPDATE
Ubah karakter/parameter suatu sesi
MESSAGE
Bawa pesan instan
REFER
Perintahkan client utk kontak sebuah resource (lihat di RFC3515)
NOTIFY
Pasangan dari REFER atau beritahu user agent (server) mengenai suatu 31 event yang sudah dilakukan client
Penggunaan SIP Method • • • • • • •
Step1: Caller mengirim INVITE request pertama Step 2: Callee mengirim respons Step 3: Caller menerima respons dari request pertama Step 4: Caller or Callee mengirim request berikutnya Step 5: menerima request selanjutnya Step 6: BYE untuk mengakhiri sesi Step x: CANCEL dapat dikirim di step mana saja
32
5 SIP Response • SIP Response didefinisikan sebagai: SIP-Version<space>Status-Code SP Reason-Phrase <enter> • Contoh: SIP/2.0 404 Not Found • SIP Response konsisten dgn yang diterapkan HTTP/1.1 dengan satu pelebaran yaitu response 6xx. • Digit pertama menunjukkan class of response
33
Class of Response 1xy – Informational request diterima, lanjutkan memproses request. disebut juga sbg provisional/informational response. server akan mengirim 1xx response jika final response diperkirakan diterima > 200 ms. tidak menyebabkan client mengirim ACK.
2xy – Success suatu aksi diterima, dimengerti dan disetujui.
3xy – Redirection harus ada aksi lain untuk menyelesaikan suatu request.
4xy – Client error request memiliki syntax error atau belum dapat diselesaikan di server ini.
5xy – Server error server gagal memenuhi request meskipun valid.
6xy – Global failure request invalid di server manapun.
34
Pengiriman Request Berikutnya • Setelah panggilan terbentuk, caller atau callee dapat mengirim INVITE request untuk mengubah parameter atau BYE request mengakhiri panggilan. • Header diset sebagai berikut : - To header field: remote address. - From header field : local address. • Contact header field dapat berbeda dengan Contact header field yang dikirim pada response sebelumnya. Request URI dapat diset ke nilai Contact header pada request sebelumnya atau response dari remote party, atau nilai remote address. [support mobility]
35
Contoh SIP Request INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP host.wcom.com:5060 From: Alan Johnston <sip:[email protected]> To: Jean Luc Picard <sip:[email protected]> Call-ID: [email protected] CSeq: 1 INVITE Selain To: dan From:, 4 komponen penting dari suatu SIP header adalah: – Via: • rute yang dilewati sebuah request. • Via akan menyimpan info proxy yang dilewati request arah downstream. • Via juga dipakai oleh response pasangannya pada arah upstream. –
–
–
Call-ID: unique identifier yang dibentuk oleh client. CSeq: Command Sequence number • Dibentuk oleh client • Bertambah untuk setiap request yang sukses • Cseq dipakai utk menyesuaikan / mencocokkan request dan response
Max Forward: jumlah hop maksimum, proteksi terhadap routing loops.
36
Via Field pada Request Header • • •
Setiap request header mencantumkan via field. Via field menunjukkan jalur yang dilewati suatu request sampai saat ini. Setiap proxy menambahkan alamatnya sendiri pada Via field untuk: – – – –
memastikan response suatu transaksi nantinya akan menggunakan jalur balik yang sama. Menghindari routing loops. Menghindari kondisi routing yang tidak biasa. Memastikan firewall yang sama akan dilewati saat rute sebaliknya.
37
Via Field dan Routing • •
Via field digunakan untuk routing pesan SIP. Request –
–
•
Request initiator menambahkan alamantnya pada Via field Server memeriksa Via field dengan alamat pengirim, lalu menambahkan alamatnya sendiri, dan forward (jika berbeda, server akan menambahkan “received” field)
Response – –
Response initiator mengkopi Via field. Server memeriksa Via field dengan alamatnya, lalu forward ke alamat berikutnya pada Via field.
• Semua entry pada Via field akan dikopi dari request ke response sesuai urutan. • Response dikirim ke alamat teratas yang ada di Via field. 38
Response Menggunakan Via Field
39
Menerima Request Berikutnya Segera setelah menerima request, server melakukan pemeriksaan: 1.
Jika Call-ID adalah baru, Maka request ini adalah untuk panggilan baru (tidak melihat nilai header field To dan From). 2. Jika Call-ID sudah ada, Maka request ini adalah untuk panggilan yang saat ini berjalan. 3. Jika nilai To, From, Call-ID, dan CSeq sesuai dengan request yang sudah diterima sebelumnya, Maka ini adalah suatu retransmisi. 4. Jika tidak sesuai dengan kondisi di atas, Field To & From dibandingkan dengan panggilan saat ini: local dan remote addresses. Jika cocok, dan CSeq pada request > CSeq terakhir yang diterima pada panggilan saat ini, Maka request ini adalah transaksi baru untuk panggilan saat ini. 40
Keandalan Suatu Request • Jika client menggunakan UDP: SIP client harus retransmit request [BYE, CANCEL, OPTIONS, atau REGISTER], exponential backoff dimulai dari interval T1 detik (eg: di Cisco IOS XR, default 500 ms atau 0.5 detik), doubling interval untuk packet selanjutnya, dibatasi sampai dgn interval T2 detik (eg: di Cisco IOS XR, default 4 detik untuk non INVITE request atau INVITE response). Retransmit request INVITE request dengan interval yang dimulai T1 detik, exponential back off, hentikan retransmit jika response prisional atau definitif diterima atau jika telah mencapai batas cap off. • Jika client menggunakan TCP, tidak perlu retransmit request. 41
Autentikasi dan Enkripsi •
•
•
SIP mendukung enkripsi: – end to end encryption – hop by hop encryption Proxy utk kasus tertentu dapat memerlukan autentikasi: – Response atas suatu INVITE awal dengan <407 ProxyAuthentication Required> – Client akan melakukan re-INVITE dengan menambahkan header . SIP User dapat memerlukan proses autentikasi: – Response atas suatu INVITE dengan <401 Unathorized> – Client akan melakukan re-INVITE dengan menambahkan header . 42
Fitur dan Keuntungan SIP Feature Internet Enabled
Keuntungannya ... SIP-based systems dapat mengambil keuntungan dari perkembangan Internet. Translating gateway mengijinkan SIP-based systems untuk menghubungi PSTN tanpa harus terjebak dalam standar lama PSTN.
Scalability
Arsitektur yang sederhana memungkinkan pengembangan (scaling) yang tidak mahal. Persyaratan H/W dan S/W untuk penambahan user ke SIP-based systems menjadi berkurang signifikan. SIP stack lebih kecil. SIP dapat dianggap seperti suatu toolkit untuk menerapkan smart endpoints, gateways, proses, 43 dan client.
Simplicity
Fitur dan Keuntungan SIP (2) Feature
Keuntungannya ...
Distributed functionality
“kepintaran” terdistribusi memungkinkan pengembangan fungsi dalam tiap komponen. Perubahan pada suatu komponen menimbulkan dampak minor pada komponen lain. Misal: menghubungkan 2 SIP phone dengan kabel ethernet UTPtanpa harus ada server. Komponen lainnya baru diperlukan jika ada lebih dari 2 SIP phones.
44
Kesimpulan SIP •
•
SIP: – Relatif mudah dalam implementasinya. – Sudah diterima luas oleh vendor dan carrier: muncul dalam banyak produk saat ini. – Fleksibel dalam service creation. – Mudah diperluas (extensible) dan mudah diperbesar (scalable) SIP menyediakan mekanisme keandalan sendiri, shg independen thd packet layer dan hanya butuh unreliable datagram services.
45
Kesimpulan SIP (2) •
Akan tetapi SIP bukan ditujukan untuk: – – –
Mempermudah inter-working dengan PSTN. Menyelesaikan isu IP Telephony terutama QoS. Fokus pada keamanan (?)
46
Bonus: Bagaimana Skype Bekerja
• Tidak seperti aplikasi VoIP yang lain, Skype menggunakan peer to peer untuk mendesentralisasi jaringan VoIP dan memastikan persentase uptime tinggi. • Begitu kita terkoneksi dalam jaringan Skype (= login), maka PC kita akan menjadi bagian dari jaringan yang “membantu” merutekan panggilan (= ada CPU time dan bandwidth yang “dipinjam tanpa ijin”), walaupun kita tidak sedang melakukan panggilan. • Skype super nodes = ISP atau university network yang berfungsi sbg koordinator. 47
Referensi 1. Book on “Internetworking Multimedia” by Jon Crowcroft, Mark Handley, Ian Wakeman, UCL Press, 1999 by Morgan Kaufman (USA) and Taylor Francis (UK) 2. RFC 3261: “SIP: Session Initiation Protocol” 3. RFC 3263: “SIP: Locating a SIP Server” 4. RFC 3264: “An Offer/Answer Model with the Session Description Protocol” 5. The IETF SIP Working Group home page http://www.ietf.org/html.charters/sip-charter.html 6. SIP Home Page http://www.cs.columbia.edu/~hgs/sip/ 7. Papers on IP Telephony http://www.cs.columbia.edu/~hgs/sip/papers.html 8. Nishita Vora Pandya. CS 595 Network Routing Talk. <[email protected]> 48