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.

Download Report

Transcript 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.

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
Sebuah socket mewakili sebuah hubungan
khusus antara dua komputer pada jaringan
menggunakan sebuah layanan (service) khusus
Suatu contoh layanan FTP, sebuah komputer
menawarkan kemampuan pada yang lain untuk
menghubungi dan mentransfer file dengan
mendengarkan ke port 21 untuk hubungan
tersebut.
Arsitektur Protokol Microsoft
Aplikasi Windows (API)
Aplikasi TCP/IP
(FTP,HTTP,…)
NetBIOS
WINSOCK
NetBios
NetBios over
TCP/IP
TDI Interface
NWLInk
NetBEUI
(NBF)
TCP/IP
NDIS
Network Adapter
(mis: NE2000,dll)
Network Adapter
(Ethernet, TokenRing, dll)
Nomor Port Pada Server
Application
Layer
FTP
Telnet
HTTP
...
DNS
TFTP
POP3
SNMP
21
23
80
...
53
69
110
...
Port Number
Transport
layer
TCP
IP
UDP
Protocol
ID = 6
IP Address
Protocol
ID = 17
TCP (23)
TCP (23)
TCP (23)
Multiple Host Connecting
Server
128.66.12.1
Almond
128.66.12.1
TCP (9811)
128.66.12.4
TCP (2001)
128.66.12.5
TCP (5123)
Peanut
Walnut
Pecant
Sebuah service dapat membuka
lebih dari satu socket
Soket_1
Soket_2
Soket_3
Port 21
Soket_4
SERVER
Aliran fungsi
Winsock
client/server
dengan TCP
Connection
Oriented
CLIENT
Socket()
Menciptakan soket
Bind()
Memberi nama soket
Listen()
Mendengar hubungan dari client
Socket()
Menciptakan soket
Menunggu hubungan
dari Client
Connect()
Menghubungi server
Accept()
Penerimaan hubungan menyebabkan
diciptakannya soket baru ketika soket asli
melanjutakan menanti hubungan baru
Send()/Recv()
Mengirim dan menerima data
Send()/Recv()
Mengirim dan menerima data
Closesocket()
Memutus hubungan
Closesocket()
Memutus hubungan
Nomor Port Pada Server
Application
Layer
FTP
Telnet
HTTP
...
DNS
TFTP
POP3
SNMP
21
23
80
...
53
69
110
...
Port Number
Transport
layer
TCP
IP
UDP
Protocol
ID = 6
IP Address
Protocol
ID = 17
Aliran fungsi Winsock client/server
dengan UDP (Connectionless)
SERVER
Socket()
Menciptakan soket
CLIENT
Socket()
Menciptakan soket
Bind()
Memberi nama soket
Sendto()/Recvfrom()
Mengirim dan menerima data
Sendto()/Recvfrom()
Mengirim dan menerima data
Closesocket()
Memutus hubungan
Closesocket()
Memutus hubungan
WINSOCK API
WINSOCK (WINdows SOCKet) merupakan
program API (Application Programming Interface).
Winsock API berupa sekumpulan fungsi-fungsi
yang dapat digunakan untuk antarmuka program
aplikasi dengan suatu Socket.
Dua diantara program Socket adalah: Socket
Barkeley (dari Barkeley Software Distribution of
UNIX) dan WINSOCK (dari Microsoft Windows).
Winsock memiliki beberapa fungsi tambahan dari
Socket Barkeley yang digunakan untuk
mendukung Sistem Operasi Windows yang
menggunakan konsep arsitektur Massage Driven
-nya.
Pemrograman pada
WINdows SOCKet
(WINSOCK)
Struktur Winsock pada MS Windows
Aplikasi
WinSock 2
Aplikasi
WinSock 1.1
WinSock 1.1
API
WinSock. DLL (16 bit)
WinSock32.DLL (32)
WinSock 2 API
WS2_32.DLL (32 bit)
TCP/IP Transport
Protocol Driver
Tipe Socket
(Windows Socket Menyediakan tiga
jenis layanan)
Stream Socket
Datagram Socket, dan
Raw Socket
Layanan Stream Socket
Layanan yang berorientasi pada hubungan
(Connection Oriented Stream Service), maka
dapat memberikan jaminan layanan yang handal
Layanan Stream Socket didasarkan pada
protokol kendali transmisi TCP. Sebelum dua
proses dapat kirim/terima data, suatu hubungan
harus sudah terbentuk. Socket stream membaca
aliran data secara kontinyu, aliran dua arah
tanpa batas rekaman (record)
Datagram Socket
Layanan yang berorientasi tanpa hubungan
(Connectionless Datagram Service), maka
kehandalan kurang diperhatikan.
Layanan ini didasarkan pada protokol UDP.
Sebelum dua proses saling bertukar pesan,
tidak memerlukan pembentukan hubungan
terlebih dahulu. Socket datagram membaca
aliran data sebagai deretan paket dengan
memperhatikan batas rekaman. Pengirim
mengirim paket dan penerima menerima seluruh
paket. Tipe data ini dapat dengan mudah
digunakan untuk mengirim rekaman oleh karena
tidak diperlukan pengaturan header.
Raw Socket
Layanan ini dugunakan untuk pengiriman
pesan ICMP (pada lapisan internet / IP)
Contoh:
Mengilustrasikan perbedaan antara
aliran data stream dan datagram
Anggap dua pesan string berikut
dikirimkan ke socket penerima, yaitu
pesan “PENGIRIMAN PESAN DENGAN
TCP/IP” dan pesan “KONSEP PORT DAN
SOCKET”
Pengiriman dengan Socket Stream
Aplikasi tidak membacanya sebagai dua
rekaman yang terpisah (batas rekaman tidak
diperhatikan).
Jika socket penerima ditetapkan menerima
pesan dengan ukuran buffer 10 byte, maka
pembacaan pesan pertama adalah :
“PENGIRIMAN”, kedua “PESAN DENG”, ketiga
“AN TCP/IP “, keempat “KONSEP POR”, dan
kelima “T DAN SOCK”, dan keenam “ET”
Pengiriman dengan Socket
Datagram
Aplikasi membaca dua string tersebut
sebagai dua rekamam yang terpisah
(batas rekaman diperhatikan).
Jika socket penerima ditetapkan
menerima pesan dengan ukuran buffer 10
byte, maka pembacaan pesan pertama
adalah : “PENGIRIMAN” dan kedua
“KONSEP POR”.
Aakibatnya ada sisa string yang hilang.
Blocking dan Non-Blocking
Operasi pada suatu socket, ada dua operasi
yng dimungkinkan dapat dilakukan, yaitu:
Operasi pemblokiran (Blocking Operation),
dan
Operasi tanpa pemblokiran(Non-Blocking
Operation)
Operasi Blocking
Yaitu operasi yang memanfaatkan socket
pemblokiran (Blocking Socket), program diblokir
sampai syarat permintaan dipenuhi.
Suatu operasi yang menerapkan socket blocking
akan menyebabkan waktu tunda yang lebih
lama, karena OS harus menunggu untuk
menangani data jaringan, tetapi aplikasi tersebut
juga memblokir dirinya sendiri sampai sistem
operasi WINSOCK kembali dari operasi yang
diberikan. Metode operasi ini baik diterapkan
pada aplikasi yang kecil.
Operasi Non-Blocking
Pada operasinon blocking memerintahkan
WINSOCK.DLL untuk mengirim balik sebuah pesan,
apabila operasi jaringan telah terpenuhi. Aplikasi
tersebut kemudian bebas untuk melanjutkan
pemrosesan selama aktifitas jaringan terjadi dalam slot
waktu WINSOCK.DLL pada prosesor.
Program yang menfaatkan socket non-blocking, kirim
dan terima pesan dapat dilakukan dengan dua metode:
Metode pertama, disebut pooling, secara berkala
berusaha untuk membaca atau menulis data pada
socket menggunakan timer.
Metode kedua menggunakan pemberitahuan taksinkron (asynchronous notification), dimana program
diberitahu jika sustu kejadian pada socket muncul
dan kemudian menanggapi kejadian tersebut
(konsep event-driven).