TCP/IP SOCKET

22
TCP/IP SOCKET TCP/IP SOCKET Sujoko Sujoko

description

TCP/IP SOCKET. Sujoko. Pengertian Socket. Socket adalah piranti lunak yantg digunakan untuk mengadakan hubungan secara lengkap Socket merupakan kombinasi alamat IP dan nomor port. Sebuah socket bersifat unik pada suatu jaringan - PowerPoint PPT Presentation

Transcript of TCP/IP SOCKET

Page 1: TCP/IP SOCKET

TCP/IP SOCKETTCP/IP SOCKET

SujokoSujoko

Page 2: TCP/IP SOCKET

Pengertian SocketPengertian Socket

SocketSocket adalah piranti lunak yantg digunakan adalah piranti lunak yantg digunakan untuk mengadakan hubungan secara lengkapuntuk mengadakan hubungan secara lengkapSocketSocket merupakan kombinasi alamat IP dan merupakan kombinasi alamat IP dan nomor port. nomor port. Sebuah socket bersifat unik pada Sebuah socket bersifat unik pada suatu jaringansuatu jaringanSebuah socket mewakili sebuah hubungan Sebuah socket mewakili sebuah hubungan khusus antara dua komputer pada jaringan khusus antara dua komputer pada jaringan menggunakan sebuah layanan (service) khususmenggunakan sebuah layanan (service) khususSuatu contoh layanan FTP, sebuah komputer Suatu contoh layanan FTP, sebuah komputer menawarkan kemampuan pada yang lain untuk menawarkan kemampuan pada yang lain untuk menghubungi dan mentransfer file dengan menghubungi dan mentransfer file dengan mendengarkan ke port 21 untuk hubungan mendengarkan ke port 21 untuk hubungan tersebut. tersebut.

Page 3: TCP/IP SOCKET

Arsitektur Protokol MicrosoftArsitektur Protokol MicrosoftAplikasi Windows (API)Aplikasi Windows (API) Aplikasi TCP/IP Aplikasi TCP/IP

(FTP,HTTP,…)(FTP,HTTP,…)

NetBIOSNetBIOS

WINSOCKWINSOCKNetBiosNetBios NetBios over NetBios over

TCP/IPTCP/IP

TDI InterfaceTDI Interface

NWLInkNWLInk NetBEUINetBEUI

(NBF)(NBF)

TCP/IPTCP/IP

NDISNDIS

Network AdapterNetwork Adapter

(mis: NE2000,dll)(mis: NE2000,dll)

Network AdapterNetwork Adapter

(Ethernet, TokenRing, dll)(Ethernet, TokenRing, dll)

Page 4: TCP/IP SOCKET

Nomor Port Pada ServerNomor Port Pada Server

21 23 80 ... 69

ProtocolID = 6

ProtocolID = 17

FTP Telnet

TCP UDP

IP

110

HTTP

53

DNS TFTP POP3

...

... SNMPApplication

Layer

Transportlayer

Port Number

IP Address

Page 5: TCP/IP SOCKET

Multiple Host ConnectingMultiple Host ConnectingT

CP

(23

)

TC

P (

23)

TC

P (

23) Server

128.66.12.1

128.66.12.1TCP (9811)

Peanut

128.66.12.4TCP (2001)

Walnut

128.66.12.5TCP (5123)

Pecant

Almond

Page 6: TCP/IP SOCKET

Sebuah service dapat membuka Sebuah service dapat membuka lebih dari satu socketlebih dari satu socket

Soket_1 Soket_4Soket_3Soket_2

Port 21

Page 7: TCP/IP SOCKET

Aliran fungsi Aliran fungsi Winsock Winsock client/server client/server dengan TCP dengan TCP ConnectionConnection

OrientedOriented

Listen()Mendengar hubungan dari client

Accept()Penerimaan hubungan menyebabkan

diciptakannya soket baru ketika soket asli melanjutakan menanti hubungan baru

SERVER CLIENT

Socket()Menciptakan soket

Bind()Memberi nama soket

Socket()Menciptakan soket

Connect()Menghubungi server

Send()/Recv()Mengirim dan menerima data

Closesocket()Memutus hubungan

Menunggu hubungandari Client

Send()/Recv()Mengirim dan menerima data

Closesocket()Memutus hubungan

Page 8: TCP/IP SOCKET

Nomor Port Pada ServerNomor Port Pada Server

21 23 80 ... 69

ProtocolID = 6

ProtocolID = 17

FTP Telnet

TCP UDP

IP

110

HTTP

53

DNS TFTP POP3

...

... SNMPApplication

Layer

Transportlayer

Port Number

IP Address

Page 9: TCP/IP SOCKET

Aliran fungsi Winsock client/server Aliran fungsi Winsock client/server dengan UDP (Connectionless) dengan UDP (Connectionless)

Closesocket()Memutus hubungan

Socket()Menciptakan soketSocket()

Menciptakan soket

Bind()Memberi nama soket

Sendto()/Recvfrom()Mengirim dan menerima data

Sendto()/Recvfrom()Mengirim dan menerima data

Closesocket()Memutus hubungan

SERVER CLIENT

Page 10: TCP/IP SOCKET

WINSOCK APIWINSOCK API

WINSOCK (WINdows SOCKet) merupakan WINSOCK (WINdows SOCKet) merupakan program API (Application Programming Interface). program API (Application Programming Interface). Winsock API berupa sekumpulan fungsi-fungsi Winsock API berupa sekumpulan fungsi-fungsi yang dapat digunakan untuk antarmuka program yang dapat digunakan untuk antarmuka program aplikasi dengan suatu Socket.aplikasi dengan suatu Socket.Dua diantara program Socket adalah: Socket Dua diantara program Socket adalah: Socket Barkeley (dari Barkeley Software Distribution of Barkeley (dari Barkeley Software Distribution of UNIX) dan WINSOCK (dari Microsoft Windows). UNIX) dan WINSOCK (dari Microsoft Windows). Winsock memiliki beberapa fungsi tambahan dari Winsock memiliki beberapa fungsi tambahan dari Socket Barkeley yang digunakan untuk Socket Barkeley yang digunakan untuk mendukung Sistem Operasi Windows yang mendukung Sistem Operasi Windows yang menggunakan konsep arsitektur menggunakan konsep arsitektur Massage DrivenMassage Driven -nya. -nya.

Page 11: TCP/IP SOCKET

Pemrograman pada Pemrograman pada WINdows SOCKet WINdows SOCKet

(WINSOCK)(WINSOCK)

Page 12: TCP/IP SOCKET

Struktur Winsock pada MS WindowsStruktur Winsock pada MS WindowsAplikasi

WinSock 2Aplikasi

WinSock 1.1

WinSock. DLL (16 bit)WinSock32.DLL (32)

WS2_32.DLL (32 bit)

TCP/IP TransportProtocol Driver

WinSock 1.1 API

WinSock 2 API

Page 13: TCP/IP SOCKET

Tipe SocketTipe Socket(Windows Socket Menyediakan tiga (Windows Socket Menyediakan tiga jenis layanan)jenis layanan)

Stream SocketStream Socket

Datagram Socket, danDatagram Socket, dan

Raw SocketRaw Socket

Page 14: TCP/IP SOCKET

Layanan Stream SocketLayanan Stream Socket

Layanan yang berorientasi pada hubungan Layanan yang berorientasi pada hubungan ((Connection Oriented Stream ServiceConnection Oriented Stream Service), maka ), maka dapat memberikan jaminan layanan yang handal dapat memberikan jaminan layanan yang handal

Layanan Stream Socket didasarkan pada Layanan Stream Socket didasarkan pada protokol kendali transmisi TCP. Sebelum dua protokol kendali transmisi TCP. Sebelum dua proses dapat kirim/terima data, suatu hubungan proses dapat kirim/terima data, suatu hubungan harus sudah terbentuk. Socket stream membaca harus sudah terbentuk. Socket stream membaca aliran data secara kontinyu, aliran dua arah aliran data secara kontinyu, aliran dua arah tanpa batas rekaman (record) tanpa batas rekaman (record)

Page 15: TCP/IP SOCKET

Datagram SocketDatagram Socket

Layanan yang berorientasi tanpa hubungan Layanan yang berorientasi tanpa hubungan ((Connectionless Datagram ServiceConnectionless Datagram Service), maka ), maka kehandalan kurang diperhatikan.kehandalan kurang diperhatikan.Layanan ini didasarkan pada protokol UDP. Layanan ini didasarkan pada protokol UDP. Sebelum dua proses saling bertukar pesan, Sebelum dua proses saling bertukar pesan, tidak memerlukan pembentukan hubungan tidak memerlukan pembentukan hubungan terlebih dahulu. Socket datagram membaca terlebih dahulu. Socket datagram membaca aliran data sebagai deretan paket dengan aliran data sebagai deretan paket dengan memperhatikan batas rekaman. Pengirim memperhatikan batas rekaman. Pengirim mengirim paket dan penerima menerima seluruh mengirim paket dan penerima menerima seluruh paket. Tipe data ini dapat dengan mudah paket. Tipe data ini dapat dengan mudah digunakan untuk mengirim rekaman oleh karena digunakan untuk mengirim rekaman oleh karena tidak diperlukan pengaturan header.tidak diperlukan pengaturan header.

Page 16: TCP/IP SOCKET

Raw SocketRaw Socket

Layanan ini dugunakan untuk pengiriman Layanan ini dugunakan untuk pengiriman pesan ICMP (pada lapisan internet / IP)pesan ICMP (pada lapisan internet / IP)

Page 17: TCP/IP SOCKET

Contoh: Contoh: Mengilustrasikan perbedaan antara Mengilustrasikan perbedaan antara aliran data stream dan datagramaliran data stream dan datagram

Anggap dua pesan string berikut Anggap dua pesan string berikut dikirimkan ke socket penerima, yaitu dikirimkan ke socket penerima, yaitu pesan “PENGIRIMAN PESAN DENGAN pesan “PENGIRIMAN PESAN DENGAN TCP/IP” dan pesan “KONSEP PORT DAN TCP/IP” dan pesan “KONSEP PORT DAN SOCKET” SOCKET”

Page 18: TCP/IP SOCKET

Pengiriman dengan Socket StreamPengiriman dengan Socket Stream

Aplikasi tidak membacanya sebagai dua Aplikasi tidak membacanya sebagai dua rekaman yang terpisah (batas rekaman tidak rekaman yang terpisah (batas rekaman tidak diperhatikan).diperhatikan).

Jika socket penerima ditetapkan menerima Jika socket penerima ditetapkan menerima pesan dengan ukuran pesan dengan ukuran bufferbuffer 10 byte, maka 10 byte, maka pembacaan pesan pertama adalah : pembacaan pesan pertama adalah : “PENGIRIMAN”, kedua “PESAN DENG”, ketiga “PENGIRIMAN”, kedua “PESAN DENG”, ketiga “AN TCP/IP “, keempat “KONSEP POR”, dan “AN TCP/IP “, keempat “KONSEP POR”, dan kelima “T DAN SOCK”, dan keenam “ET” kelima “T DAN SOCK”, dan keenam “ET”

Page 19: TCP/IP SOCKET

Pengiriman dengan Socket Pengiriman dengan Socket DatagramDatagram

Aplikasi membaca dua string tersebut Aplikasi membaca dua string tersebut sebagai dua rekamam yang terpisah sebagai dua rekamam yang terpisah (batas rekaman diperhatikan).(batas rekaman diperhatikan).Jika socket penerima ditetapkan Jika socket penerima ditetapkan menerima pesan dengan ukuran menerima pesan dengan ukuran bufferbuffer 10 10 byte, maka pembacaan pesan pertama byte, maka pembacaan pesan pertama adalah : “PENGIRIMAN” dan kedua adalah : “PENGIRIMAN” dan kedua “KONSEP POR”.“KONSEP POR”.Aakibatnya ada sisa string yang hilang. Aakibatnya ada sisa string yang hilang.

Page 20: TCP/IP SOCKET

Blocking dan Non-BlockingBlocking dan Non-BlockingOperasi pada suatu socket, ada dua operasi Operasi pada suatu socket, ada dua operasi yng dimungkinkan dapat dilakukan, yaitu:yng dimungkinkan dapat dilakukan, yaitu:

Operasi pemblokiran (Operasi pemblokiran (Blocking OperationBlocking Operation), ), dandan

Operasi tanpa Operasi tanpa pemblokiran(Non-Blocking pemblokiran(Non-Blocking OperationOperation))

Page 21: TCP/IP SOCKET

Operasi BlockingOperasi Blocking

Yaitu operasi yang memanfaatkan socket Yaitu operasi yang memanfaatkan socket pemblokiran (pemblokiran (Blocking SocketBlocking Socket), program diblokir ), program diblokir sampai syarat permintaan dipenuhi. sampai syarat permintaan dipenuhi. Suatu operasi yang menerapkan socket blocking Suatu operasi yang menerapkan socket blocking akan menyebabkan waktu tunda yang lebih akan menyebabkan waktu tunda yang lebih lama, karena OS harus menunggu untuk lama, karena OS harus menunggu untuk menangani data jaringan, tetapi aplikasi tersebut menangani data jaringan, tetapi aplikasi tersebut juga memblokir dirinya sendiri sampai sistem juga memblokir dirinya sendiri sampai sistem operasi WINSOCK kembali dari operasi yang operasi WINSOCK kembali dari operasi yang diberikan. Metode operasi ini baik diterapkan diberikan. Metode operasi ini baik diterapkan pada aplikasi yang kecil. pada aplikasi yang kecil.

Page 22: TCP/IP SOCKET

Operasi Non-BlockingOperasi Non-Blocking

Pada operasinon blocking memerintahkan Pada operasinon blocking memerintahkan WINSOCK.DLL untuk mengirim balik sebuah pesan, WINSOCK.DLL untuk mengirim balik sebuah pesan, apabila operasi jaringan telah terpenuhi. Aplikasi apabila operasi jaringan telah terpenuhi. Aplikasi tersebut kemudian bebas untuk melanjutkan tersebut kemudian bebas untuk melanjutkan pemrosesan selama aktifitas jaringan terjadi dalam slot pemrosesan selama aktifitas jaringan terjadi dalam slot waktu WINSOCK.DLL pada prosesor. waktu WINSOCK.DLL pada prosesor. Program yang menfaatkan socket non-blocking, kirim Program yang menfaatkan socket non-blocking, kirim dan terima pesan dapat dilakukan dengan dua metode:dan terima pesan dapat dilakukan dengan dua metode:- - Metode pertama, disebut Metode pertama, disebut pooling,pooling, secara berkala secara berkala

berusaha untuk membaca atau menulis data pada berusaha untuk membaca atau menulis data pada socket menggunakan timer.socket menggunakan timer.

- - Metode kedua menggunakan pemberitahuan tak-Metode kedua menggunakan pemberitahuan tak-sinkron (asynchronous notification), dimana sinkron (asynchronous notification), dimana

program program diberitahu jika sustu kejadian pada socket diberitahu jika sustu kejadian pada socket muncul muncul dan kemudian menanggapi kejadian dan kemudian menanggapi kejadian tersebut tersebut (konsep event-driven). (konsep event-driven).