1. TCP
Pengertian TCP
Transmission Control Protocol (TCP) adalah salah satu jenis protokol yang memungkinkan kumpulan
komputer untuk berkomunikasi dan bertukar data didalam suatu network (jaringan). TCP merupakan
suatu protokol yang berada di lapisan transpor (baik itu dalam tujuh lapis model referensi OSI atau
model DARPA) yang berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable).
Konsep TCP/IP berawal dari kebutuhan DoD (Departement of Defense) AS akan suatu komunikasi di
antara berbagai variasi komputer yg telah ada. Komputer-komputer DoD ini seringkali harus
berhubungan antara satu organisasi peneliti dg organisasi peneliti lainnya, dan harus tetap
berhubungan sehingga pertahanan negara tetap berjalan selama terjadi bencana, seperti ledakan
nuklir. Oleh karenanya pada tahun 1969 dimulailah penelitian terhadap serangkaian protokol TCP/IP. Di
3. Dapat dipadukan dengan teknologi WAN (Wide Area Network) yg telah ada.
4. Mudah dikonfigurasikan.
Karakteristik TCP
host, dua proses yang berjalan pada lapisan aplikasi harus melakukan negosiasi untuk membuat
sesi koneksi terlebih dahulu. Koneksi TCP ditutup dengan menggunakan proses terminasi
3. Full-duplex: Untuk setiap host TCP, koneksi yang terjadi antara dua host terdiri atas dua buah
jalur, yakni jalur keluar dan jalur masuk. Dengan menggunakan teknologi lapisan yang lebih
rendah yang mendukung full-duplex, maka data pun dapat secara simultan diterima dan
dikirim. Header TCP berisi nomor urut (TCP sequence number) dari data yang ditransmisikan
4. Memiliki layanan flow control: Untuk mencegah data terlalu banyak dikirimkan pada satu
waktu, yang akhirnya membuat “macet” jaringan internetwork IP, TCP mengimplementasikan
layanan flow control yang dimiliki oleh pihak pengirim yang secara terus menerus memantau
dan membatasi jumlah data yang dikirimkan pada satu waktu. Untuk mencegah pihak penerima
untuk memperoleh data yang tidak dapat disangganya (buffer), TCP juga mengimplementasikan
flow control dalam pihak penerima, yang mengindikasikan jumlah buffer yang masih tersedia
5. Melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference
Model)
6. Mengirimkan paket secara “one-to-one“: hal ini karena memang TCP harus membuat sebuah
sirkuit logis antara dua buah protokol lapisan aplikasi agar saling dapat berkomunikasi. TCP
1. Pertama, datagram dibagi-bagi ke dalam bagian-bagian kecil yang sesuai dengan ukuran bandwith
Misalnya seperti cara mengarahkan data tersebut ke tujuannya, cara merangkai kembali
kebagian-bagian data tersebut jika sudah sampai pada tujuannya, dan sebagainya.
3. Setelah datagram dibungkus dengan header TCP, datagram tersebut dikirim kepada lapisan IP.
4. IP menerima datagram dari TCP dan menambahkan headernya sendiri pada datagram tersebut.
7. Jika kedua perhitungan tersebut tidak cocok berarti ada error sewaktu pengiriman dan datagram
Kelebihan TCP/IP
1. TCP/IP adalah protokol yang bisa diarahkan. Artinya ia bisa mengirimkan datagram melalui
rute-rute yang telah ditentukan sebelumnya. Hal ini dapat mengurangi kepadatan lalu lintas
pada jaringan, serta dapat membantu jika jaringan mengalami kegagalan, TCP/IP dapat
3. Bersifat open platform atau platform independent yaitu tidak terikat oleh jenis perangkat keras
4. Karena sifatnya yang terbuka, TCP/IP bisa mengirimkan data antara sistem-sistem komputer
yang berbeda yang menjalankan pada sistem-sistem operasi yang berbeda pula.
5. TCP/IP terpisah dari perangkat keras yang mendasarinya. Protokol ini dapat dijalankan pada
jaringan Ethernet, Token ring, X.25, dan bahkan melalui sambungan telepon.
6. TCP/IP menggunakan skema pengalamatan yang umum, maka semua sistem dapat mengirimkan
1. Menyediakan komunikasi logika antar proses aplikasi yang berjalan pada host yang berbeda
3. Pengiriman file (file transfer). File Transfer Protokol (FTP) memungkinkan pengguna komputer
yg satu untuk dapat mengirim ataupun menerima file ke komputer jaringan. Karena masalah
keamanan data, maka FTP seringkali memerlukan nama pengguna (username) dan password,
meskipun banyak juga FTP yg dapat diakses melalui anonymous, lias tidak berpassword. (lihat
4. Remote login. Network terminal Protokol (telnet) memungkinkan pengguna komputer dapat
melakukan log in ke dalam suatu komputer didalam suatu jaringan. Jadi hal ini berarti bahwa
tersebut.( lihat RFC 854 dan 855 untuk spesifikasi telnet lebih lanjut)
6. Network File System (NFS). Pelayanan akses file-file jarak jauh yg memungkinkan klien-klien
untuk mengakses file-file pada komputer jaringan jarak jauh walaupun file tersebut disimpan
secara lokal. (lihat RFC 1001 dan 1002 untuk keterangan lebih lanjut)
terbatas, sedangkan ia memerlukan sumber yg banyak dalam suatu system komputer. Ada
beberapa jenis remote execution, ada yg berupa perintah-perintah dasar saja, yaitu yg dapat
dijalankan dalam system komputer yg sama dan ada pula yg menggunakan “prosedure remote
system komputer yg berbeda. (sebagai contoh dalam Berkeley UNIX ada perintah “rsh” dan
“rexec”)
8. name servers. Nama database alamat yg digunakan pada internet (lihat RFC 822 dan 823 yg
menjelaskan mengenai penggunaan protokol name server yg bertujuan untuk menentukan nama
host di internet.)
Manajemen Koneksi TCP :
1. Client mengirimkan kontrol TCP SYN ke server, dengan memberikan sequence number inisial.
o Mengalokasikan buffer.
2. Server menerima FIN, dan membalas dengan ACK. Menutup koneksi dan mengirimkan FIN ke
client.
Header TCP
Ukuran dari header TCP adalah bervariasi, yang terdiri atas beberapa field yang ditunjukkan dalam
gambar dan tabel berikut. Ukuran TCP header paling kecil (ketika tidak ada tambahan opsi TCP) adalah
20 byte. headerTCP-2
Port TCP
Port TCP mampu mengindikasikan sebuah lokasi tertentu untuk menyampaikan segmen-segmen TCP
yang dikirimkan yang diidentifikasi dengan TCP Port Number. Nomor-nomor di bawah angka 1024
merupakan port yang umum digunakan dan ditetapkan oleh IANA (Internet Assigned Number Authority).
Tabel berikut ini menyebutkan beberapa port TCP yang telah umum digunakan.
Port TCP merupakan hal yang berbeda dibandingkan dengan port UDP, meskipun mereka memiliki
nomor port yang sama. Port TCP merepresentasikan satu sisi dari sebuah koneksi TCP untuk protokol
lapisan aplikasi, sementara port UDP merepresentasikan sebuah antrean pesan UDP untuk protokol
lapisan aplikasi. Selain itu, protokol lapisan aplikasi yang menggunakan port TCP dan port UDP dalam
nomor yang sama juga tidak harus sama. Sebagai contoh protokol Extended Filename Server (EFS)
menggunakan port TCP dengan nomor 520, dan protokol Routing Information Protocol (RIP)
menggunakan port UDP juga dengan nomor 520. Jelas, dua protokol tersebut sangatlah berbeda!
Karenanya, untuk menyebutkan sebuah nomor port, sebutkan juga jenis port yang digunakannya,
Aplikasi ini pada prinsipnya mirip dengan aplikasi gopher, yakni penyediaan database yang dapat
diakses tidak hanya berupa text, namun dapat berupa gambar/image, suara, video. penyajiannya pun
dapat dilakukan secara live. Dengan demikian, jenis informasi yang dapat disediakan sangat banyak dan
dapat dibuat dengan tampilan yang lebih menarik. Hal ini dimungkinkan karena Web menggunakan
teknologi hypertext. Karena itu, protokol yang digunakan untuk aplikasi ini dikenal dengan nama
Hypertext-transfer-protocol (HTTP).
2. Archie
Aplikasi FTP memungkinkan kita mentransfer file dari manapun di seluruh dunia. Hal itu dengan
anggapan bahwa kita telah mengetahui lokasi di mana file yang kita cari berada. Namun jika kita belum
mengetahui di mana file yang kita cari berada, kita memerlukan aplikasi untuk membantu kita mencari
Cara kerja Archie dapat dijelaskan sebagai berikut. Server Archie secara berkala melakukan anonymous
ftp ke sejumlah FTP Server dan mengambil informasi daftar seluruh file yang ada pada FTP Server
tersebut. Daftar ini disusun berdasarkan letak file dalam direktori/sub direktori, sehingga mudah untuk
menemukan file tersebut. File-file yang berisi daftar file tiap FTP Server ini merupakan database dari
Archie Server. Jika ada query ke Archie Server yang menanyakan suatu file, server mencari dalam
daftar tadi dan mengirimkan seluruh jawaban yang berkaitan dengan file tersebut. Informasi yang
diberikan adalah alamat FTP Server yang memiliki file tersebut dan letak file tersebut dalam struktur
direktori.
WAIS merupakan salah satu servis pada internet yang memungkinkan kita mencari melalaui materi yang
terindeks dan menemukan dokumen/artikel berdasarkan isi artikel tersebut. Jadi pada dasarnya, WAIS
memberikan layanan untuk mencari artikel yang berisi kata-kata kunci yang kita ajukan sebagai dasar
pencarian.
Aplikasi WAIS biasanya berbasis text. Untuk membuat suatu dokumen dapat dicari melalaui WAIS
Server, harus dibuat terlebih dahulu index dari dokumen tersebut. Setiap kata dalam dokumen tersebut
diurut dan dihitung jumlahnya. Jika ada query dari client, index akan diperiksa dan hasilnya, yakni
dokumen yang memiliki kata-kata tersebut ditampilkan. Karena kemungkinan ada banyak dokumen
yang memiliki kata-kata yang kita ajukan, maka beberapa dokumen yang memiliki kata kunci tersebut
diberi skor/nilai. Dokumen yang paling banyak mengandung kata-kata kunci akan mendapat skor
tertinggi. Dengan demikian, user mendapatkan informasi kemungkinan terbesar dari bebarapa dokumen
4. FAX di Internet
Mesin FAX sebagai pengirim dan penerima berita tertulis melalaui telepon saat ini hampir dimiliki oleh
semua kantor. Melalaui gateway Internet FAX, pengiriman FAX dapat dilakukan melalaui e-mail.
Gateway akan menerjemahkan pesan e-mail tersebut dan menghubungi mesin FAX tujuan melalui jalur
telepon secara otomatis. Tentu saja, akses untuk ini terbatas (private).
2. UDP
Pengertian UDP
UDP, singkatan dari User Datagram Protocol, adalah salah satu protokol lapisan transpor TCP/IP yang
mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host
Karakteristik UDP
1. Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses
2. Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya
nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berjalan di atas UDP
harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya,
protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan
mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu
3. UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi
atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan TCP/IP.
HeaderUDP berisi field Source Process Identification dan Destination Process Identification.
4. UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan UDP.
Kegunaan UDP:
1. Protokol yang “ringan” (lightweight): Untuk menghemat sumber daya memori dan prosesor,
beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat
melakukan fungsi-fungsi spesifik dengan saling bertukar pesan. Contoh dari protokol yang
ringan adalah fungsi query nama dalam protokol lapisan aplikasi Domain Name System.
2. Protokol lapisan aplikasi yang mengimplementasikan layanan keandalan: Jika protokol lapisan
aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan
yang ditawarkan oleh TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah
Trivial File Transfer Protocol (TFTP) dan Network File System (NFS)
3. Protokol yang tidak membutuhkan keandalan. Contoh protokol ini adalah protokol Routing
4. Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu membuat koneksi
terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan.
Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan
menggunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya
dapat mengirimkan transmisi one-to-one. Contoh: query nama dalam protokol NetBIOS Name
Service.
Kelemahan UDP
1. UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun
data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol
2. UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen-segmen data,
seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan
di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum
Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim.
Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data
yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim
dengan benar.
3. UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.
Header UDP
Header UDP diwujudkan sebagai sebuah header dengan 4 buah field memiliki ukuran yang tetap.
Port UDP
Seperti halnya TCP, UDP juga memiliki saluran untuk mengirimkan informasi antar host, yang disebut
dengan UDP Port. Untuk menggunakan protokol UDP, sebuah aplikasi harus menyediakan alamat IP dan
nomor UDP Port dari host yang dituju. Sebuah UDP port berfungsi sebagai sebuah multiplexed message
queue, yang berarti bahwa UDP port tersebut dapat menerima beberapa pesan secara sekaligus. Setiap
port diidentifikasi dengan nomor yang unik, seperti halnya TCP, tetapi meskipun begitu, UDP Port
berbeda dengan TCP Port meskipun memiliki nomor port yang sama. Tabel di bawah ini mendaftarkan
Kelemahan UDP
1. UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun
data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol
2. UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen-segmen data,
seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan
di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum
Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim.
Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data
yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim
dengan benar.
3. UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.
baik dan yang sangat tidak sensitive terhadap kerusakan atau kehilangan segment
untuk memastikan data diterima dengan benar. Namun, UDP juga menyediakan fungsi yang sama
dengan TCP, seperti transfer data dan multiplexing, tetapi ia melakukannya dengan byte tambahan
UDP melakukan multiplexing UDP menggunakan cara yang sama seperti TCP. Satu-satunya perbedaan
adalah transport protocol yang digunakan, yaitu UDP. Suatu aplikasi dapat membuka nomor port yang
sama pada satu host, tetapi satu menggunakan TCP dan yang satu lagi menggunakan UDP—hal ini tidak
biasa, tetapi diperbolehkan. Jika suatu layanan mendukung TCP dan UDP, ia menggunakan nilai yang
UDP mempunyai keuntungan dibandingkan TCP dengan tidak menggunakan field sequence dan
acknowledgement. Keuntungan UDP yang paling jelas dari TCP adalah byte tambahan yang lebih
sedikit. Di samping itu, UDP tidak perlu menunggu penerimaan atau menyimpan data dalam memory
sampai data tersebut diterima. Ini berarti, aplikasi UDP tidak diperlambat oleh proses penerimaan dan
memory dapat dibebaskan lebih cepat. Pada tabel, Anda dapat melihat fungsi yang dilakukan (atau
Tidak akan mengirimkan data terlalu Harus membuat kepastian mengenai proses transfer data
4. cepat sehingga memberikan jaminan agar tidak terlalu cepat sehingga internet masih dapat
koneksi internet dapat menanganinya. menanganinya.
No TCP UDP
Berurutan Ketika mengrimkan dua pesan secara Tidak berurutan Ketika mengrimkan dua
2.
berurutan / satu demi satu. TCP akan pesan secara berurutan / satu demi satu.
mengirimkannya secara berurutan. Tidak perlu Tidak dapat dipastikan data mana yang akan
khawatir data tiba dengan urutan yang salah. datang terlebih dahulu.
Streaming Data /paket dibaca sebagai satu alur Datagrams Paket dikirim secara individu
5. data. tanpa mengetahui batas setiap data berakhir dan dijamin utuh ketika tiba. Satu paket
dan data yang lain mulai. Ada kemungkinan dibaca per satu panggilan.
beberapa paket data dibaca per satu panggilan data.
Contoh
Contoh Domain Name System (DNS UDP port 53),
World Wide Web (Apache TCP port 80), e-mail streaming media applications such as IPTV
5.
(SMTP TCP port 25 Postfix MTA), File Transfer or movies, Voice over IP (VoIP), Trivial File
Protocol (FTP port 21) and Secure Shell (OpenSSH Transfer Protocol (TFTP) and online
port 22) etc. multiplayer games etc
Internet memiliki 2 protokol utama dalam transpot layer, yaitu connectionless protocol dan
connection-oriented.Keduanya saling melengkapi satu sama lain.Connectionless protocol adalah
UDP. UDP tidak mengirimkan paket antar aplikasi, melainkan membiarkan aplikasi membangun
protokolnya sendiri sesuai dengan kebutuhannya.Connection oriented protocol adalah TCP. TCP
membuat koneks dan menambah keandalan dengan re-transmisi, bersama dengan flow control
dan congestion control.
1. UDP (User Datagram Protokol)
Internet protocol yang mendukung sebuah connectionless transport protocol disebut dengan
UDP. UDP menyediakan jalan untuk aplikasi untuk mengemas IP datagram tanpa membuat
sebuah koneksi.
UDP mentransmisikan segmen yang terdiri dari header 8-byte diikuti oleh payload. Header
ditunjukkan pada Gambar 6-27. Kedua port berfungsi untuk mengidentifikasi titik akhir dalam
mesin sumber dan tujuan. Ketika paket UDP tiba, payloadnya diserahkan ke proses yang
terhubung ke port tujuan. Lampiran ini terjadi ketika BIND primitif atau sesuatu yang serupa
digunakan, seperti yang kita lihat pada Gambar 6-6
Source Port diperlukan saat balasan harus dikirim kembali ke source. Dengan meng-copy field source port
dari segment yang datang ke destination port field dari segmen yang keluar, proses pengiriman balasan
dapat menentukan proses mana dalam mesin pengirim untuk didapatkan. Panjang UDP mencangkup 8
byte header dan data. The minimum length is 8 bytes, to cover the header. The maximum length is
65,515 bytes, which is lower than the largest number that will fit in 16 bits because of the size limit
on IP packets.
Untuk keandalan yang ekstra, tersedia juga optional checksum. Checksum memeriksa header,
data, dan conceptual IP pseudoheader. Saat melakukan perhitungan, field checksum diset ke nol dan
field data diisi dengan byte nol jika panjangnya ganjil. Algoritma checksum hanya untuk
menambahkan semua kata 16-bit dalam satu komplemen dan untuk mengambil satu
komplemen dari jumlah tersebut. Sebagai akibatnya, ketika penerima melakukan perhitungan
pada seluruh segmen, termasuk bidang Checksum, hasilnya harus 0. Jika checksum tidak
dihitung, itu disimpan sebagai 0, karena oleh kebetulan bahagia dari salah satu pelengkap
aritmatika benar dihitung 0 disimpan sebagai semua 1s. Namun, mematikannya adalah hal
yang bodoh kecuali kualitas datanya tidak penting (mis., Untuk pidato digital).Pseudoheader
untuk kasus IPv4 ditunjukkan pada Gambar 6-28. Ini berisi alamat IPv4 32-bit dari mesin
sumber dan tujuan, nomor protokol untuk UDP (17), dan jumlah byte untuk segmen UDP
(termasuk header). itu berbeda tetapi analog untuk IPv6. Termasuk pseudoheader dalam
perhitungan UDP checksum membantu mendeteksi paket yang salah pengiriman, tetapi
memasukkannya juga melanggar hierarki protokol karena alamat IP di dalamnya
termasuk dalam lapisan IP, bukan ke lapisan UDP. TCP menggunakan pseudoheader
yang sama untuk checksumnya.
Mungkin perlu disebutkan secara eksplisit beberapa hal yang tidak dilakukan UDP. Itu tidak melakukan
kontrol aliran, kontrol kemacetan, atau retransmisi setelah menerima segmen yang buruk. Semua itu
terserah pada proses pengguna. Apa yang dilakukannya adalah menyediakan antarmuka ke protokol IP
dengan fitur tambahan demultiplexing beberapa proses menggunakan port dan deteksi kesalahan end-
to-end opsional. Hanya itu saja. Untuk aplikasi yang perlu memiliki kontrol yang tepat atas alur paket,
kontrol kesalahan, atau pengaturan waktu, UDP hanya menyediakan apa yang diperintahkan dokter. Satu
area yang sangat berguna adalah dalam situasi server klien. Seringkali, klien mengirim permintaan singkat
ke server dan mengharapkan balasan singkat kembali. Jika salah satu permintaan atau balasan hilang,
klien hanya dapat waktu dan mencoba lagi. Tidak hanya kode sederhana, tetapi lebih sedikit pesan yang
diperlukan (satu di setiap arah) daripada dengan protokol yang membutuhkan pengaturan awal seperti
TCP.
Aplikasi yang menggunakan UDP dengan cara ini adalah DNS (Domain Name System), yang akan kita
pelajari di Chap. 7. Singkatnya, sebuah program yang perlu mencari alamat IP dari beberapa nama host,
misalnya, www.cs.berkeley.edu, dapat mengirim paket UDP yang berisi nama host ke server DNS. Server
membalas dengan paket UDP yang berisi alamat IP host. Tidak diperlukan pengaturan terlebih dahulu dan
tidak diperlukan rilis sesudahnya. Hanya dua pesan melewati jaringan.
782/5000
Masalah kedua adalah bahwa dalam bahasa yang diketik lemah, seperti C, sangat legal untuk menulis
prosedur yang menghitung produk dalam dari dua vektor (array), tanpa menentukan seberapa besar salah
satunya. Masing-masing dapat diakhiri oleh nilai khusus yang hanya diketahui oleh pemanggilan dan
prosedur yang disebut. Dalam keadaan ini, pada dasarnya tidak mungkin bagi klien untuk mem-parsing
parameter: ia tidak memiliki cara untuk menentukan seberapa besar mereka.
Masalah ketiga adalah bahwa tidak selalu mungkin untuk menyimpulkan jenis-jenis parameter, bahkan
tidak dari spesifikasi formal atau kode itu sendiri. Contohnya adalah printf, yang mungkin memiliki
sejumlah parameter (setidaknya satu), dan parameter dapat berupa campuran bilangan bulat, celana
pendek, panjang, karakter, string, nomor floating-point berbagai panjang, dan jenis lainnya. Mencoba
memanggil printf sebagai prosedur jarak jauh praktis mustahil karena C begitu permisif. Namun, aturan
yang mengatakan bahwa RPC dapat digunakan asalkan Anda tidak memprogram dalam C (atau C ++) tidak
akan populer dengan banyak programmer.
Masalah keempat berkaitan dengan penggunaan variabel global. Biasanya, memanggil dan memanggil
prosedur dapat berkomunikasi dengan menggunakan variabel global, selain berkomunikasi melalui
parameter. Tetapi jika prosedur yang dipanggil dipindahkan ke mesin jarak jauh, kode akan gagal karena
variabel global tidak lagi dibagikan. Masalah-masalah ini tidak dimaksudkan untuk menunjukkan bahwa
RPC tidak ada harapan. Sebenarnya, itu banyak digunakan, tetapi beberapa pembatasan diperlukan untuk
membuatnya bekerja dengan baik dalam praktek. Dalam hal protokol lapisan transport, UDP adalah basis
yang bagus untuk mengimplementasikan RPC. Kedua permintaan dan balasan dapat dikirim sebagai paket
UDP tunggal dalam kasus yang paling sederhana dan operasi bisa cepat. Namun, implementasi harus
menyertakan mesin lain juga. Karena permintaan atau balasan mungkin hilang, klien harus menyimpan
pengatur waktu untuk mengirim ulang permintaan. Perhatikan bahwa balasan berfungsi sebagai
pengakuan implisit untuk permintaan, sehingga permintaan tidak perlu diakui secara terpisah. Terkadang
parameter atau hasilnya mungkin lebih besar dari maksimum
Ukuran paket UDP, dalam hal ini beberapa protokol diperlukan untuk menyampaikan pesan besar. Jika
beberapa permintaan dan balasan dapat tumpang tindih (seperti dalam kasus pemrograman bersamaan),
pengenal diperlukan untuk mencocokkan permintaan dengan balasan. Perhatian pada tingkat yang lebih
tinggi adalah bahwa operasi tidak boleh idempoten (yaitu, aman untuk diulangi). Itu
kasus sederhana adalah operasi idempoten seperti permintaan DNS dan balasan. Klien dapat dengan
aman mengirim ulang permintaan ini lagi dan lagi jika tidak ada balasan yang akan datang. Tidak masalah
apakah server tidak pernah menerima permintaan, atau itu adalah balasan yang hilang. Jawabannya,
ketika akhirnya tiba, akan sama (dengan asumsi database DNS tidak diperbarui untuk sementara). Namun,
tidak semua operasi idempoten, misalnya, karena mereka memiliki efek samping yang penting seperti
menambah penghitung. RPC untuk operasi ini membutuhkan semantik yang lebih kuat sehingga ketika
programmer memanggil suatu prosedur, itu tidak dijalankan beberapa kali. Dalam hal ini, mungkin perlu
untuk mengatur koneksi TCP dan mengirim permintaan di atasnya daripada menggunakan UDP.
1010/5000
Sebagai konsekuensi dari desain ini, agak sulit untuk mengatakan lapisan RTP mana yang masuk. Karena
berjalan di ruang pengguna dan terkait dengan program aplikasi, tentu saja terlihat seperti protokol
aplikasi. Di sisi lain, itu adalah protokol, generik aplikasi dependen yang hanya menyediakan fasilitas
transportasi, sehingga juga terlihat seperti protokol transportasi. Mungkin deskripsi terbaik adalah bahwa
itu adalah protokol transport yang kebetulan diterapkan di lapisan aplikasi, itulah sebabnya mengapa kita
mengetahuinya di bab ini
Fungsi dasar RTP adalah mengalikan beberapa aliran data real-time ke dalam satu aliran paket UDP. Aliran
UDP dapat dikirim ke satu tujuan (unicasting) atau ke beberapa tujuan (multicasting). Karena RTP hanya
menggunakan UDP normal, paketnya tidak diperlakukan secara khusus oleh router kecuali beberapa fitur
kualitas-layanan IP normal diaktifkan. Secara khusus, tidak ada jaminan khusus tentang pengiriman, dan
paket mungkin hilang, tertunda, rusak, dll. Format RTP berisi beberapa fitur untuk membantu penerima
bekerja dengan informasi multimedia. Setiap paket yang dikirim dalam aliran RTP diberi nomor satu ebih
tinggi dari pendahulunya. Penomoran ini memungkinkan tujuan untuk menentukan apakah ada paket
yang hilang. Jika paket hilang, tindakan terbaik untuk tujuan yang akan diambil adalah hingga ke aplikasi.
Ini mungkin melewatkan frame video jika paket membawa data video, atau untuk memperkirakan nilai
yang hilang dengan interpolasi jika paket membawa data audio. Pengiriman ulang bukanlah pilihan praktis
karena paket retransmisi mungkin akan tiba terlambat untuk menjadi berguna. Sebagai akibatnya, RTP
tidak memiliki ucapan terima kasih, dan tidak ada mekanisme untuk meminta transmisi ulang. Setiap
muatan RTP dapat berisi beberapa sampel, dan mereka mungkin dikodekan dengan cara apa pun yang
diinginkan oleh aplikasi. Untuk memungkinkan interworking, RTP menentukan beberapa profil (misalnya,
satu aliran audio), dan untuk setiap profil, beberapa format pengkodean dapat diizinkan. Sebagai contoh,
satu aliran audio dapat dikodekan sebagai sampel PCM 8 bit pada 8 kHz menggunakan penyandian delta,
pengkodean prediktif, pengkodean GSM, pengkodean MP3, dan sebagainya. RTP menyediakan kolom
header di mana sumber dapat menentukan pengkodean tetapi tidak terlibat dalam bagaimana
pengkodean dilakukan.
Fasilitas lain yang dibutuhkan banyak aplikasi waktu nyata adalah timestamping. Idenya di sini adalah
untuk memungkinkan sumber untuk mengasosiasikan timestamp dengan sampel pertama di setiap paket.
Stempel waktu relatif terhadap awal aliran, jadi hanya perbedaan antara stempel waktu yang signifikan.
Nilai absolut tidak memiliki arti. Seperti yang akan kami jelaskan secara singkat, mekanisme ini
memungkinkan tujuan untuk melakukan sejumlah kecil buffering dan memainkan setiap sampel jumlah
milidetik yang tepat setelah dimulainya aliran, terlepas dari kapan paket yang berisi sampel tiba.
Tidak hanya timestamping mengurangi efek variasi dalam penundaan jaringan, tetapi juga memungkinkan
beberapa aliran untuk disinkronkan satu sama lain. Misalnya, program televisi digital mungkin memiliki
aliran video dan dua aliran audio. Dua stream audio bisa untuk siaran stereo atau untuk menangani film
dengan soundtrack bahasa asli dan soundtrack dijuluki ke bahasa lokal, memberi pemirsa pilihan. Setiap
aliran berasal dari perangkat fisik yang berbeda, tetapi jika mereka stempel waktu dari satu penghitung,
mereka dapat diputar secara serentak, bahkan jika aliran ditransmisikan dan / atau diterima secara tidak
teratur.
Header RTP diilustrasikan pada Gambar 6-31. Ini terdiri dari tiga kata 32-bit dan berpotensi beberapa
ekstensi. Kata pertama berisi bidang Versi, yang sudah ada di 2. Mari kita berharap versi ini sangat dekat
dengan versi pamungkas sejak itu
hanya ada satu titik kode yang tersisa (walaupun 3 dapat didefinisikan sebagai berarti bahwa versi
sebenarnya adalah kata perpanjangan).
Bit P menunjukkan bahwa paket telah dipasangkan ke kelipatan 4 byte. Persen padding terakhir
menceritakan berapa banyak byte yang ditambahkan. Bit X menunjukkan bahwa ada header ekstensi.
Format dan arti dari header ekstensi tidak didefinisikan. Satu-satunya hal yang didefinisikan adalah bahwa
kata pertama dari ekstensi memberikan panjang. Ini adalah pintu keluar darurat untuk semua persyaratan
yang tidak terduga.
Bidang CC memberi tahu berapa banyak sumber yang berkontribusi, dari 0 hingga 15 (lihat di bawah). Bit
M adalah bit penanda aplikasi khusus. Ini dapat digunakan untuk menandai awal dari frame video, awal
kata di saluran audio, atau sesuatu yang lain yang dipahami aplikasi. Bidang Jenis muatan menunjukkan
algoritme pengkodean mana yang telah digunakan (mis., Audio 8-bit yang tidak terkompresi, MP3, dll.).
Karena setiap paket membawa bidang ini, pengkodean dapat berubah selama transmisi.
Nomor Urutan hanyalah sebuah penghitung yang bertambah pada setiap paket RTP yang dikirim. Ini
digunakan untuk mendeteksi paket yang hilang. Stempel Waktu dihasilkan oleh sumber streaming untuk
diperhatikan saat sampel pertama dalam paket dibuat. Nilai ini dapat membantu mengurangi variasi
waktu yang disebut jitter pada penerima dengan memisahkan pemutaran dari waktu kedatangan paket.
Pengidentifikasi sumber sinkronisasi memberitahu aliran mana paket itu milik. Ini adalah metode yang
digunakan untuk multipleks dan demultipleks beberapa aliran data ke dalam aliran tunggal paket UDP.
Akhirnya, pengidentifikasi sumber Berkontribusi, jika ada, digunakan ketika mixer hadir di studio. Dalam
hal ini, mixer adalah sumber sinkronisasi, dan aliran yang dicampur tercantum di sini.
RTP memiliki protokol adik kecil (protokol saudara kecil?) Disebut RTCP (Realtime Transport Control
Protocol). Ini didefinisikan bersama dengan RTP di RFC 3550 dan menangani umpan balik, sinkronisasi,
dan antarmuka pengguna. Itu tidak mengangkut sampel media. Fungsi pertama dapat digunakan untuk
memberikan umpan balik tentang keterlambatan, variasi dalam penundaan atau jitter, bandwidth,
kemacetan, dan properti jaringan lainnya ke sumber. Informasi ini dapat digunakan oleh proses encoding
untuk meningkatkan laju data (dan memberikan kualitas yang lebih baik) ketika jaringan berfungsi dengan
baik dan untuk memotong kembali data menilai ketika ada masalah dalam jaringan. Dengan memberikan
umpan balik yang berkelanjutan, algoritma pengkodean dapat secara terus menerus disesuaikan untuk
memberikan kualitas terbaik yang mungkin dalam situasi saat ini. Sebagai contoh, jika bandwidth
meningkat atau menurun selama transmisi, pengkodean dapat beralih dari MP3 ke 8-bit PCM ke delta
encoding sesuai kebutuhan. Bidang Tipe muatan digunakan untuk memberi tahu tujuan apa yang
digunakan oleh algoritma pengkodean untuk paket saat ini, sehingga memungkinkan untuk
memvariasikannya sesuai permintaan.
Masalah dengan memberikan umpan balik adalah bahwa laporan RTCP dikirim ke semua peserta. Untuk
aplikasi multicast dengan grup besar, bandwidth yang digunakan oleh RTCP akan cepat tumbuh besar.
Untuk mencegah hal ini terjadi, pengirim RTCP mengurangi tingkat laporan mereka untuk secara kolektif
mengkonsumsi tidak lebih dari, katakanlah, 5% dari bandwidth media. Untuk melakukan ini, setiap
peserta perlu mengetahui bandwidth media, yang dipelajari dari pengirim, dan jumlah peserta, yang
diperkirakan dengan mendengarkan laporan RTCP lainnya.
RTCP juga menangani sinkronisasi interstream. Masalahnya adalah bahwa aliran yang berbeda dapat
menggunakan jam yang berbeda, dengan perincian yang berbeda dan tingkat penyimpangan yang
berbeda. RTCP dapat digunakan untuk menjaga mereka tetap sinkron. Akhirnya, RTCP menyediakan cara
untuk menamai berbagai sumber (misalnya, dalam teks ASCII). Informasi ini dapat ditampilkan di layar
penerima untuk menunjukkan siapa
waktu yang tepat. Secara umum, ini tidak akan menjadi waktu di mana paket RTP tiba
penerima karena paket akan membutuhkan waktu yang sedikit berbeda untuk transit
mereka di pengirim, mereka akan mencapai penerima dengan kerabat yang berbeda
waktu. Variasi penundaan ini disebut jitter. Bahkan sejumlah kecil paket jitter
dapat menyebabkan artifak media yang mengganggu, seperti frame video yang tidak bagus dan tidak
dapat dipahami
Solusi untuk masalah ini adalah menyangga paket-paket di receiver sebelum mereka
dimainkan untuk mengurangi jitter. Sebagai contoh, pada Gambar 6-32 kita melihat aliran
paket yang dikirimkan dengan sejumlah besar jitter. Paket 1 dikirim dari
server pada t = 0 detik dan tiba di klien pada t = 1 detik. Paket 2 mengalami
lebih banyak penundaan dan membutuhkan waktu 2 detik untuk tiba. Ketika paket tiba, mereka buffered
mesin klien.
Pada t = 10 detik, pemutaran dimulai. Saat ini, paket 1 hingga 6 telah
buffered sehingga mereka dapat dihapus dari buffer pada interval seragam untuk
bermain halus. Dalam kasus umum, tidak perlu menggunakan interval yang seragam karena
cap waktu RTP memberitahu kapan media harus dimainkan. Sayangnya, kita dapat melihat bahwa paket
8 telah tertunda begitu banyak
tidak tersedia ketika slot bermainnya muncul. Ada dua opsi. Paket 8 bisa
dapat berhenti sampai paket 8 tiba, menciptakan celah yang mengganggu dalam musik atau
film. Dalam aplikasi media langsung seperti panggilan voice-over-IP, paket biasanya akan
dilewati. Aplikasi langsung tidak berfungsi dengan baik saat ditahan. Dalam media streaming
aplikasi, pemain mungkin berhenti sebentar. Masalah ini dapat diatasi dengan menunda
waktu mulai bahkan lebih, dengan menggunakan buffer yang lebih besar. Untuk audio streaming atau
pemutar video, buffer sekitar 10 detik sering digunakan untuk memastikan bahwa pemain
menerima semua paket (yang tidak terjatuh di jaringan) pada waktunya. Untuk hidup
Pertimbangan utama untuk kelancaran bermain adalah titik pemutaran, atau berapa lama
tunggu di penerima untuk media sebelum memainkannya. Memutuskan berapa lama menunggu
ditunjukkan pada Gambar 6-33. Penundaan rata-rata mungkin tidak berbeda jauh antara
keduanya, tetapi jika ada jitter tinggi, titik pemutaran mungkin perlu lebih jauh
Untuk memilih titik pemutaran yang bagus, aplikasi dapat mengukur jitter dengan melihat
pada perbedaan antara timestamps RTP dan waktu kedatangan. Setiap perbedaan
penundaan dapat berubah seiring waktu karena lalu lintas lain yang bersaing dan rute yang berubah.
Untuk mengakomodasi perubahan ini, aplikasi dapat menyesuaikan titik pemutarannya sementara
mereka berlari. Namun, jika tidak dilakukan dengan baik, mengubah titik pemutaran dapat menghasilkan
kesalahan yang dapat diamati kepada pengguna. Salah satu cara untuk menghindari masalah ini untuk
audio adalah
untuk menyesuaikan titik pemutaran antara pembicaraan, di celah dalam percakapan. Tidak
orang akan melihat perbedaan antara keheningan pendek dan sedikit lebih lama. RTP
memungkinkan aplikasi mengatur bit penanda M untuk menunjukkan awal dari suatu pembicaraan baru
untuk
tujuan ini.
Jika penundaan mutlak hingga media dimainkan terlalu lama, aplikasi langsung
akan menderita. Tidak ada yang bisa dilakukan untuk mengurangi delay propagasi jika jalur langsung
sudah digunakan. Titik pemutaran dapat ditarik dengan hanya menerima itu
sebagian besar paket akan tiba terlambat untuk dimainkan. Jika ini tidak dapat diterima,
satu-satunya cara untuk menarik titik pemutaran adalah mengurangi jitter dengan menggunakan
kualitas layanan yang lebih baik, misalnya, penyampaian yang dipercepat dibedakan