Anda di halaman 1dari 19

Pemrograman

Socket
Semester Genap 19/20
Socket Address

BEST FOR You 2


O R G A N I C S C O M PA N Y
Connectionless vs Connection Oriented

Connectionless Connection Oriented


» paket dikirim dari satu pihak ke pihak lain tanpa perlu » Paket dikirim setelah koneksi antara pengirim dan
membuat koneksi atau memutus koneksi. penerima dibuat.
» Paket tidak diberi nomor; Sehingga paket tersebut » Setelah data dikirim, koneksi akan diputuskan.
mungkin tertunda atau hilang atau mungkin sampai
ditujuan tidak berurutan.
» Tidak ada acknoledgment.

BEST FOR You 3


O R G A N I C S C O M PA N Y
User Datagram Protocol (1)
» Merupakan protocol pengiriman data yang berbasis Internet Protocol (IP)
» Karakteristik komunikasi jaringan berdasarkan UDP:
• Tidak ada jaminan pengiriman paket sampai di tujuan
• UDP datagram dapat hilang dan keluar dari urutan pengiriman (tidak berurutan)
• UDP datagram dapat di copy berkali-kali dan dapat dikirim lebih cepat daripada node penerima dapat memprosesnya
» Contoh komunikasi berdasarkan UDP:
• Domain Name Service (DNS)
• Network Time Protocol (NTP)
• Trivial File Transfer Protocol (TFTP)
» Aplikasi yang menggunakan UDP bertanggung jawab penuh untuk mengendalikan pesan yang hilang
» Checksum harus digunakan karena IP tidak menghitung checksum pada bagian data dari datagram-nya sendiri
» Maka tanpa checksum UDP, tidak ada cara lain untuk memeriksa integritas header pada node penerima
» Untuk menghitung checksum, UDP menggunakan pseudo-header, yang ditambahkan di datagram
» Seluruh obyek, pseudo-header dan semuanya, digunakan untuk menghitung checksum

BEST FOR You 4


O R G A N I C S C O M PA N Y
Format Datagram UDP

BEST FOR You 5


O R G A N I C S C O M PA N Y
Layanan UDP Terkenal
Port Name
7 echo
13 daytime
37 time
43 Whois
53 Domain (DNS)
69 Tftp
161 snmp

BEST FOR You 6


O R G A N I C S C O M PA N Y
Fungsi pada socket UDP
Server Client » Socket creation dan destroy

socket () socket() •
int sockid=socket(family, type, protocol);
status=close(sockid);
» Specifying Addresses
bind () bind() • udpServer.sin_family = AF_INET;
udpServer.sin_addr.s_addr =
htonl(INADDR_ANY);
• udpServer.sin_port = htons(atoi(argv[1]));
» Assign address to socket : bind()
recvfrom() sendto() • int status = bind(sockid, &addrport, size);
» Exchanging data
• int count = sendto(sockid, msg, msgLen,
sendto() recvfrom() flags,
&foreignAddr, addrlen);

close() write()
close() int count = recvfrom(sockid, recvBuf,
bufLen,
flags, &clientAddr, addrlen);
BEST FOR You 7
O R G A N I C S C O M PA N Y
PROGRAM UDP SERVER
» Untuk dapat menggunakan socket, maka yang pertama kali dilakukan adalah menambahkan file include

» Menentukan ukuran buffer dari message yang akan diterima

» Mendeklarasikan variable-variable yang diperlukan

/*socket*/
/*menyimpan return status*/
/*Panjang alamat*/
/*local address dan client address*/
BEST
/*Buffer untuk FOR
pesan yangYouditerima*/
8
O R G A N I C S C O M PA N Y
PROGRAM UDP SERVER
» Memeriksa jumlah argument yang diberikan user

» Membuat socket

BEST FOR You 9


O R G A N I C S C O M PA N Y
PROGRAM UDP SERVER
» Setup alamat server

» Bind to socket

BEST FOR You 10


O R G A N I C S C O M PA N Y
PROGRAM UDP SERVER
» Menerima message yang dikirim client

BEST FOR You 11


O R G A N I C S C O M PA N Y
PROGRAM UDP SERVER

BEST FOR You 12


O R G A N I C S C O M PA N Y
Transmission Control Protocol (1)
» TCP, di sisi lain, menyediakan cara yang dikenal sebagai reliable stream delivery atau pengiriman aliran terpercaya
» Reliable stream delivery menjamin pengiriman aliran informasi dari satu node jaringan ke yang lain tanpa
penggandaan atau tanpa kehilangan data
» TCP mempunyai sejumlah fitur yang menggambarkan antarmuka antara TCP dan program aplikasi yang
menggunakan TCP: virtual circuit, buffered transfer, stream orientation, full duplex, dan unstructured stream
• Virtual circuit: menggunakan TCP sangat mirip seperti melakukan panggilan telepon
• Pengirim meminta sambungan dengan penerima
• Keduanya menegosiasikan parameter sambungan dan menyepakati berbagai rincian dalam mendefinisikan sambungan
• Setelah sambungan selesai, aplikasi diperbolehkan untuk melakukannya
• Buffered transfer
• Untuk meningkatkan efisiensi dan menurunkan lalu lintas jaringan, TCP biasanya menunggu, jika mungkin, hingga mempunyai data yang
relatif besar untuk dikirim sebelum mengirim paket
• Stream orientation
• Node penerima memberikan data ke aplikasi penerima dengan urutan yang sama persis seperti saat dikirim

BEST FOR You 13


O R G A N I C S C O M PA N Y
Transmission Control Protocol (2)
• Full duplex
• Data dapat dikirimkan dalam dua arah secara bersamaan menggunakan dua aliran paket yang terpisah
• Unstructured stream
• TCP tidak menjamin struktur aliran data walaupun pengiriman dijamin
• Contohnya, TCP tidak peduli penanda yang mungkin ada dalam satu set record yang dikirim atau dari database
• Terserah aplikasi untuk menentukan isi aliran dan merakit atau membongkar aliran yang sesuai pada setiap ujung sambungan
» Metode yang menggunakan TCP untuk menjamin pengiriman yang handal dapat digambarkan sebagai konfirmasi
(confirmation) dan pengiriman ulang (retransmission)
» Pengirim melacak setiap paket yang dikirim dan menunggu konfirmasi bahwa pengiriman berhasil dari penerima
sebelum mengirim paket berikutnya
» Pengirim juga menetapkan timer internal ketika setiap paket dikirimkan dan secara otomatis mengirim ulang paket
jika timer berakhir sebelum mendapatkan konfirmasi dari penerima
» TCP menggunakan nomer urut untuk menentukan apakah setiap paket telah diterima

BEST FOR You 14


O R G A N I C S C O M PA N Y
Transmission Control Protocol (3)
» Nomer urut ini dikirim pada pesan konfirmasi dan paket itu sendiri yang memungkinkan pengirim untuk
mencocokkan konfirmasi ke paket yang dikirim.
» Dalam kasus penundaan jaringan menyebabkan pengiriman ganda yang tidak perlu
» Menunggu konfirmasi pada setiap paket sebelum mengirim paket berikutnya dapat sangat lambat
» TCP memecahkan masalah ini dengan menggunakan cara yang disebut sliding window: jumlah paket yang perlu
dikirim
• Contohnya, jika window size adalah 8, maka paket 1 sampai 8 akan dikirim
• Jika konfirmasi untuk paket 1 diterima, window akan “digeser” sehingga meliputi paket 2 sampai 9, dan paket kesembilan akan
dikirim
» Paket yang telah dikirim tanpa konfirmasi disebut paket unacknowledged
• Maka, jumlah total paket unacknowledged yang diperbolehkan sama dengan ukuran window
» Hubungan TCP menggunakan virtual circuit
» TCP mendefinisikan hubungan sebagai sepasang titik akhir, masing-masing titik akhir yang terdiri dari sepasang
bilangan bulat, yang terdiri dari 32-bit bilangan bulat alamat IP dan 16-bit bilangan bulat nomer port
» Sebuah layanan TCP dengan nomer port yang diberikan dapat digunakan oleh beberapa sambungan pada saat yang
sama
BEST FOR You 15
O R G A N I C S C O M PA N Y
Transmission Control Protocol (4)
» Datagram TCP dikenal sebagai segment
» Segment melakukan semua pekerjaan membangun dan menutup hubungan, mengumumkan ukuran window,
mengirim data, dan mengirim acknowledgment
» Sequence number: posisi data dalam segment tertentu dalam aliran byte keseluruhan yang dikirim

BEST FOR You 16


O R G A N I C S C O M PA N Y
Format Segment
TCP

BEST FOR You 17


O R G A N I C S C O M PA N Y
» Socket creation dan destroy
Fungsi Pada Socket TCP • int sockid=socket(family, type, protocol);
• status=close(sockid);
Server Client » Specifying Addresses
• udpServer.sin_family = AF_INET;
udpServer.sin_addr.s_addr = htonl(INADDR_ANY);
socket () socket() • udpServer.sin_port = htons(atoi(argv[1]));
» Assign address to socket : bind()
bind () bind() • int status = bind(sockid, &addrport, size);
» Handling incoming connection
listen() • int status = listen(sockid, queueLimit);
» Establish Connection : connect()  client
accept () connect() • int status = connect(sockid, &foreignAddr, addrlen);
» Accept Incoming conection: accept ()  server
recv() send() • int s = accept(sockid, &clientAddr, &addrLen);
» Exchanging data
send() recv() • int count = send(sockid, msg, msgLen, flags);
int count = recv(sockid, recvBuf, bufLen, flags);
close() close()
BEST FOR You 18
O R G A N I C S C O M PA N Y
BEST FOR You
O R G A N I C S C O M PA N Y

Anda mungkin juga menyukai