I. Pengertian TCP
TCP (Transmission Control Protocol) adalah bagian inti penting dari Internet Protocol (IP) yang
kemudian sering disebut sebagai TCP/IP.
TCP adalah suatu protokol yang berada di lapisan Transport yang berorientasi sambungan
(connection oriented) dan dapat diandalkan (reliable) dengan mengirimkan paket datagrams per
kelompok antar server dan client dengan pemeriksaan.
II. Karakteristik TCP
Berorientasi sambungan (connection oriented)
Sebelum data dapat ditransmisikan antara dua host, dua proses yang berjalan pada lapisan
aplikasi harus melakukan negosiasi untuk membuat sesi koneksi terlebih dulu.
Full Duplex
Koneksi yang terjadi antara dua host terdiri dari dua jalur yaitu jalur masuk dan keluar. Header
TCP berisi nomor urut dari data yang ditransmisikan dan sebuah acknowledgment dari data yang
masuk.
Reliable
Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan sebuah nomor urut paket
dan akan mengharapkan paket positive acknowledgment dari penerima. Jika tidak ada paket
acknowledgment dari penerima, maka segmen TCP akan ditransmisikan ulang.
Memiliki layanan flow control
Untuk mencegah data yang terlalu banyak dikirimkan pada satu waktu yang akhirnya membuat
“macet” jaringan internetwork IP maka TCP mengimplementasikan flow control yang dimiliki
oleh pihak pengirim yang secara terus menerus memantau dan membatasi jumlah data yang
dikirim.
III. Kelebihan TCP
Mampu menangani paket yang hilang
Kedatangan paket yang ganda
Dapat mengatasi penerimaan paket secara bersamaan
Menyediakan alur penerimaan paket
Data yang diterima dapat dipercaya atau diandalkan
IV. Kekurangan TCP
Waktu pengiriman paket lebih lama
Paket yang dikirimkan relatif berjumlah besar
V. Contoh pemrograman socket dengan TCP
Hal berikut dapat dianalogikan seperti dalam komunikasi telepon. Jika sambungan telepon di
salah satu titik putus, maka komunikasi tidak dapat terjadi. Koneksi model seperti ini akan
menjamin data dapat dipertukarkan dengan baik, namun memiliki kelemahan dalam hal
penggunaan jalur data yang relatif besar dan tidak boleh terputus.
VI. Socket Protocol TCP
Fungsi socket protocol TCP
socket(AF_INET, SOCK_STREAM, 0)
Berfungsi untuk membuat socket dan parameter family yang digunakan adalah AF_INET yaitu
internet protocol dan socket yang digunakan adalah SOCK_STREAM yang berfungsi untuk
membuka socket pada TCP.
htonl()
meng-convert unsigned integer ke network byte order.
inet_ntoa()
ntoa singkatan 'network to ascii', nilai return-nya berupa string dari alamat yang dilewatkan.
inet_addr()
meng-convert string menjadi network byte order.
bind()
digunakan pada pihak server, untuk membuka 'port' komunikasi.
write(), send()
bertugas mengirimkan data.
read(), recv()
bertugas menerima data.
connect()
digunakan pada pihak client, untuk mengadakan koneksi ke server.
listen()
menunggu koneksi socket.
accept()
menerima koneksi socket.
close() dan shutdown()
digunakan untuk menutup atau mengakhiri koneksi.
if(argc != 3){
fprintf (stderr, "Gunakan: %s <alamat server> <nomor port>\n",
argv[0]);
exit(1);
/* fprintf berfungsi untuk menginput string kedalam sebuah
file,
baik berupa tulisan normal ataupun kode format.
bentuk umum: fprintf(pointerfile, "statement"); */
}
no_port = atoi(argv[2]);
bzero(&tujuan, sizeof(tujuan));
tujuan.sin_family = AF_INET;
tujuan.sin_port = htons(no_port);
memcpy((char *)&tujuan.sin_addr.s_addr, host_server->h_addr_list[0],
host_server->h_length);
close(socketfd);
return 0;
}
#define KONEKSI_MAKSIMAL 10
if(argc != 2){
fprintf (stderr, "Gunakan: %s <nomor port>\n", argv[0]);
exit(1);
}
no_port = atoi(argv[1]);
while(1){
int client_size = sizeof(struct sockaddr_in);
int newfd;