Senin, 21 Desember 2009

Carrier Sense Multiple Access with Collision Detection (CSMA/CD)

CSMA/CD merupakan teknik medium access control (MAC) yang paling banyak digunakan pada topologi bus dan star dewasa ini. Versi orisinil baseband dari teknik ini pertama kali dirancang dan dipatenkan oleh Xerox sebagai bagian dari Ethernet LAN yang dikembangkannya.. Sedangkan versi broadband –nya dirancang dan dipatenkan oleh MITRE sebagai bagian dari MITREnet LAN yang dikembangkannya. Semua pengembangan ini menjadi dasar bagi standar IEEE 802.3 untuk CSMA/CD. Sebelum melihat lebih detail mengenai CSMA/CD ada baiknya kita melihat terlebih dahulu beberapa teknik sebelumnya sebagai dasar pengembangan CSMA/CD.


Beberapa teknik pendahulu

CSMA/CD dan beberapa teknik pendahulunya dapat dikategorikan sebagai teknik random access. Random access disini dalam arti bahwa: tidak terdapat prediksi atau rencana (schedule) bahwa suatu station akan melakukan transmit data, dengan kata lain transmisi data dari suatu station dilakukan secara acak (tidak terduga).

Versi paling awal dari teknik ini, disebut sebagai ALOHA, dikembangkan untuk jaringan paket radio. Bagaimanapun juga, teknik ini dapat dipakai juga pada setiap media transmisi yang dipakai bersama. ALOHA, atau pure ALOHA, sebagaimana sering disebut, merupakan teknik yang benar-benar bebas (a true free for all). Kapan saja sebuah station akan melakukan transmit, maka ia akan langsung melakukannya. Station tersebut kemudian menunggu sebanyak waktu propagasi round-trip maksimum di dalam network (dua kali waktu untuk mengirim sebuah frame antara dua station yang terpisah paling jauh) ditambah penambahan sedikit waktu tertentu yang tetap. Jika station tersebut menerima acknowledgement selama waktu tersebut, maka transmit data sukses. Jika tidak, maka ia akan mengulang transmit data. Jika station tersebut tetap gagal menerima acknowledgement setelah beberapa kali pengulangan transmit, maka ia akan menyerah. Station penerima akan menentukan kebenaran frame yang datang melalui pemeriksaan field frame-check-sequence (FCS). Jika hasil pemeriksaan benar, maka ia akan segera mengirimkan acknowledgement. Suatu frame bisa saja cacat yang disebabkan adanya noise atau pada saat yang bersamaan station lain juga melakukan transmit data. Untuk sebab kedua, kedua frame akan saling merusak di penerima, hal ini disebut collision (tubrukan). Jika station penerima mengetahui bahwa sebuah frame telah cacat, maka ia kan membuangnya.

ALOHA dibuat semudah mungkin, sehingga banyak kelemahan yang ditimbulkan sebagai akibatnya. Karena jumlah tubrukan meningkat tajam seiring meningkatnya traffic, maka utilisasi maksimum dari sebuah channel hanya sekitar 18 persen.

Untuk meningkatkan efisiensi, dikembangkanlah slotted ALOHA. Pada teknik ini, waktu di dalam channel di organisasikan dalam slot-slot yang seragam, dimana panjang slot sama dengan waktu transmisi frame. Beberapa central clock diperlukan untuk melakukan sinkronisasi semua station. Dengan cara ini, transmisi data diijinkan jika dilakukan pada batas-batas slot. Hal ini meningkatkan utilisasi channel menjadi sekitar 37 persen.

Observasi lebih lanjut adalah dengan dikembangkannya teknik carrier sense multiple access (CSMA). Dengan CSMA, sebuah station yang ingin melakukan transmit data, memeriksa media transmisi untuk menentukan apakah sedang terjadi suatu transmisi data lain (carrier sense). Jika media transmisi sedang digunakan, station tersebut harus menunggu. Jika media sedang idle, maka ia akan melakukan transmit data. Dapat saja terjadi dua atau lebih station akan melakukan transmit data secara bersamaan pada waktu yang sama. Jika hal ini terjadi, maka akan mengakibatkan terjadinya tubrukan, sehingga data akan rusak dan tidak dapat diterima dengan sempurna. Untuk mengatasi hal ini, sebuah station setelah melakukan transmit akan menunggu selama waktu tertentu untuk menerima acknowledgement. Waktu tertentu ini adalah waktu propagasi round-trip maksimum ditambah fakta bahwa station penerima harus menunggu waktu channel idle untuk mengirimkan acknowledgement. Jika station pengirim tidak menerima acknowledgement, maka ia berpikir bahwa telah terjadi tubrukan, dan akan melakukan transmisi data kembali (retransmit).

Kita dapat melihat bahwa strategi ini cukup efektif untuk jaringan-jaringan dimana waktu transmisi frame rata-rata jauh lebih panjang daripada waktu propagasi. Tubrukan dapat terjadi hanya ketika lebih dari satu station melakukan transmit di dalam waktu yang pendek (periode dari delay propagasi). Jika sebuah station mulai transmit sebuah frame dan tidak terjadi tubrukan selama pengiriman sampai station terjauh, maka tidak akan terjadi sebuah tubrukan-pun terhadap frame ini karena semua station waspada terhadap transmisi ini.

Utilisasi maksimum yang dapat dicapai dengan menggunakan teknik CSMA jauh melampaui ALOHA, ataupun slotted ALOHA. Utilisasi maksimum tergantung pada panjang frame dan waktu propagasi, semakin panjang frame dan semakin pendek waktu propagasi, semakin tinggi tingkat utilisasinya.


CSMA/CD

CSMA, meskipun lebih efisien dibandingkan ALOHA, atau slotted ALOHA, tetap saja memiliki satu kelemahan. Ketika dua frame tubrukan, media transmisi tetap tak dapat terpakai selama waktu transmisi dari kedua frame yang rusak tersebut. Untuk frame-frame yang panjang, dibandingkan waktu propagasi, jumlah kapasitas yang terbuang cukup besar. Kapasitas yang terbuang ini dapat dikurangi jika sebuah station tetap mendengarkan (listen) media transmisi selama pengiriman data. Hal inilah yang membawa beberapa aturan baru dalam CSMA/CD, sebagai berikut:

1. Jika media transmisi dalam keadaan idle, lakukan transmit, jika tidak lakukan step 2.
2. Jika media transmisi sibuk, tetap mendengarkan sampai media idle, kemudian segera transmit.
3. Jika tubrukan terdeteksi selama transmisi data, transmit sebuah sinyal jamming singkat untuk meyakinkan bahwa semua station mengetahui bahwa telah terjadi tubrukan, dan menghentikan transmisi.
4. Setelah melakukan transmit sinyal jamming, tunggu selama beberapa waktu, kemudian coba untuk melakukan transmit kembali (ulangi dari step 1).

Gambar berikut menunjukkan mekanisme tersebut untuk baseband bus.





Gambar 1. Mekanisme pengoperasian CSMA/CD



Pada waktu T0, station A mulai melakukan transmit sebuah packet yang ditujukan ke station D. Pada saat T1, station B dan C keduanya siap melakukan transmit. B mengecek media dan menemukan bahwa media sedang terpakai, selanjutnya ia menunda pengiriman. Pada sisi lain, station C tidak mengetahui adanya transmisi data milik station A, dan melakukan transmisi. Pada saat T2, packet milik A sampai di station C dan bertubrukan dengan packet milik C, saat itu station C mengetahui adanya tubrukan dan menghentikan transmisi. Akibat dari tubrukan dipropagasikan kembali ke station A, dimana A mendeteksinya pada saat T3, dan menghentikan transmisi.

Dengan CSMA/CD, jumlah kapasitas yang terbuang dikurangi dengan jumlah waktu yang diperlukan untuk mendeteksi adanya tubrukan. Pertanyaannya adalah: Berapa lama hal itu terjadi ? Untuk menjawabnya, pertimbangkan sebuah kasus untuk baseband bus dimana kita melihat pada dua station yang berjarak terjauh satu dengan lainnya. Lihat gambar 1, misalnya station A melakukan transmit. Sebelum packet itu sampai di station D, D telah siap untuk melakukan transmisi. Karena D tidak mengetahui adanya packet milik A, maka D transmit. Tubrukan terjadi hampir seketika, dan terdeteksi oleh D. Bagaimanapun juga hasil tubrukan tersebut harus dipropagasikan kembali ke A, sebelum A menyadari bahwa telah terjadi tubrukan. Dengan alasan ini, dapat ditarik kesimpulan bahwa waktu yang diperlukan untuk mendeteksi adanya tubrukan adalah tidak lebih besar dari dua kali end-to-end waktu propagasi. Untuk broadband bus, delay ini bahkan lebih lama. Gambar 2 menunjukan untuk dual-cable system. Delay ini, untuk kejadian terburuk terjadi pada dua station yang paling berdekatan dan paling berjauhan dari headend. Pada kasus ini, jumlah waktu yang dibutuhkan untuk mendeteksi adanya tubrukan adalah empat kali waktu propagasi dari ujung (akhir) kabel ke headend.



Gambar 2. Mekanisme pendeteksian tubrukan pada broadband system




Sebuah aturan penting yang diterapkan pada sistem CSMA/CD, termasuk standar IEEE, adalah bahwa frame harus cukup panjang untuk memungkinkan terjadinya deteksi tubrukan sebelum berakhirnya transmisi data. Jika panjang frame yang dipakai pendek, maka deteksi tubrukan tidak akan terjadi, mengakibatkan unjuk kerja CSMA/CD sama dengan teknik CSMA sebelumnya.

Seperti halnya CSMA, CSMA/CD menerapkan salah satu dari tiga algoritma persistence. Yang paling banyak digunakan adalah 1-persistent. Hal ini dipakai pada Ethernet dan MITREnet, dan merupakan standar IEEE 802. Seperti sebelumnya diutarakan, masalah yang diakibatkan oleh penggunaan teknik nonpersistent adalah pemborosan waktu idle. Meskipun lebih efisien, teknik p-persistent juga mengakibatkan pemborosan yang banyak. Dengan teknik 1-persistent, pemborosan dieliminasi dengan waktu tubrukan.

Meskipun pengimplementasian CSMA/CD pada dasarnya sama untuk baseband dan broadband, tetap ada perbedaan diantara keduanya. Pertama adalah pada carrier sense, untuk baseband systems, hal ini dilakukan dengan mendeteksi adanya voltage pulse train. Untuk broadband, RF carrier yang dideteksi.

Kedua, collision detection juga berbeda untuk kedua sistem. Pada baseband, sebuah tubrukan akan menghasilkan swing tegangan yang cukup tinggi, jika dibandingkan dengan yang dapat dihasilkan oleh sebuah single transmitter. Sesuai dengan hal tersebut, IEEE membuat standar bahwa transmitter akan mendeteksi adanya tubrukan, jika terdapat sinyal di kabel pada tap-point transmitter yang melebihi sinyal maksimum yang dapat dihasilkan oleh transmitter itu sendiri. Karena sebuah sinyal akan menguat jika dipropagasikan, maka akan menimbulkan masalah potensial, yaitu: Jika dua station yang berjauhan, setiap station akan menerima sinyal dengan kekuatan yang cukup besar, yang berasal dari station lawannya. Kekuatan sinyal dapat menjadi begitu kecil, ketika sinyal tersebut ditambahkan kepada sinyal yang ditransmisikan pada tap-point transmitter, dimana kombinasi sinyal tersebut tidak akan melebihi CD threshold. Untuk alasan inilah, IEEE membuat standar yang membatasi panjang kabel coaxial maksimum 500 meter untuk 10BASE5 dan 200 meter untuk 10BASE2.

Sebuah mekanisme pendeteksian tubrukan yang lebih mudah dapat dilihat pada pendekatan topologi star dengan menggunakan twisted pair. Pada kasus ini, pendeteksian tubrukan berdasarkan pada pertimbangan logika, daripada mengukur tegangan sinyal. Untuk setiap hub, jika terdapat sinyal pada lebih dari satu input, diasumsikan terjadi tubrukan. Sebuah sinyal khusus collision presence akan dibangkitkan. Sinyal ini dibangkitkan terus dan dikirim keluar sepanjang terdapat sinyal pada setiap input portnya. Sinyal ini akan diinterpretasikan oleh setiap hub sebagai terjadinya tubrukan. Gambar 3 menunjukkan contoh-contoh pengoperasian star-wired system dengan dan tanpa tubrukan. Pada contoh pertama, sebuah frame ditransmisikan dari station A dipropagasikan ke HHUB dan pada akhirnya diterima oleh semua station yang berada pada jaringan. Pada contoh kedua, sebuah tubrukan dideteksi oleh IHUB A. Sebuah sinyal collision presence dipropagasikan ke HHUB dan di-broadcast ke semua hub dan station. Contoh ketiga menunjukkan akibat dari tubrukan tiga arah.

Terdapat beberapa pendekatan untuk pendeteksian tubrukan pada sistem-sistem broadband. Yang paling banyak dipakai adalah melakukan pembandingan bit demi bit antara data yang ditransmisikan dan data yang diterima. Ketika sebuah station melakukan transmit pada inbound channel, ia kemudian akan menerima transmisi miliknya pada outbound channel setelah delay propagasi dari awal hingga akhir.



Gambar 3. Pengoperasian konfigurasi sebuah two-level star-wired CSMA/CD

Kamis, 29 Oktober 2009

TCP dan UDP

Umum

Pada dasarnya jika dua komputer akan melakukan pertukaran data/informasi memerlukan sebuah protokol yang bertugas untuk mengatur bagaimana komunikasi antar komputer tersebut. Sekelompok komputer yang terhubung satu sama lain dengan network interface (antar-muka jaringan) yang kemudian disebut computer network (jaringan komputer) dapat menggunakan banyak macam protokol, agar dua buah komputer dapat berkomunikasi maka diperlukan protokol yang sama. Protokol berfungsi mirip bahasa manusia, dimana untuk dapat berbicara dan mengerti satu sama lain diperlukan bahasa yang sama.
TCP/IP Suite (Transport Control Protocol/Intenet Protocol) merupakan sekelompok protokol yang mengatur komunikasi data komputer dan memungkinkan komputer berbagai jenis dan berbagai vendor serta berbeda sistem operasi untuk berkomunikasi bersama dengan baik. TCP/IP ini dikembangkan pertama kali oleh lembaga riset Departemen Pertahanan Amerika, DARPA (Defense Advance Research Project Agency) pada akhir 1960-an dengan berlanjut pada keberhasilan ARPANET pada tahun 1972. Pada tahun 1982 DARPA mendanai pembuatan protokol komunikasi yang lebih umum yang kemudian dinamakan TCP/IP. Berikutnya pada tahun 1986 lembaga ilmu pengetahuan nasional Amerika Serikat U.S. National Science Foundation (NSF) mendanai pembuatan jaringan TCP/IP yang dinamai NSFNET, jaringan inilah yang menjadi embrio berkembangnya Internet. Perkembangan pun tidak berhenti begitu saja dan terus berlanjut pada tahun-tahun berikutnya. Hingga akhirnya pada awal tahun 1990-an TCP IP menjadi protokol yang paling banyak dan luas digunakan. Dengan perkembangan dan fungsi yang sedemikian kemudian TCP/IP digunakan secara luas dalam dunia Internet yang sekarang ini telah kita gunakan bersama.
Perkembangan TCP/IP yang cepat dan diterima secara luas tidak hanya dikarenakan rekomendasi DARPA, melainkan fitur-fitur penting yang ada pada TCP/IP, diantaranya:
  • TCP/IP dikembangkan menggunakan standar protokol yang terbuka. Tersedia secara bebas dan dikembangkan tanpa bergantung pada perangkat keras ataupun sistem operasi tertentu.
  • Tidak tergantung pada spesifik perangkat jaringan tertentu. Hal ini memungkinkan TCP/IP untuk mengintegrasikan berbagai macam jaringan.
  • TCP/IP menggunakan pengalamatan yang unik dalam skala global. Dengan demikian memungkinkan komputer dapat saling berhubungan walaupun jaringannya seluas Internet sekarng ini.
  • Standarisasi protokol TCP/IP dilakukan secara konsisten dan tersedia secara luas untuk siapapun tanpa biaya. Hal ini diwujudkan dalam RFC (Request For Comment).
TCP/IP terdiri atas sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dalam komunikasi data dan didesain untuk melakukan fungsi-fungsi komunikasi data pada LAN (Local Area Network) maupun WAN (Wide Area Network). Dengan prinsip pembagian tersebut TCP/IP menjdai protokol komunikasi data yang fleksibel dan dapat diterapkan dengan mudah di setiap jenis komputer dan antar-muka jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap satu komputer atau peralatan jaraingan tertentu. Agar TCP/IP dapat berjalan pada antar-muka jaringan tertentu, hanya diperlukan perubahan pada bagian protokol yang berhubungan dengan antar-muka jaringan saja.
Sekumpulan protokol TCP/IP ini dimodelkan dalam empat lapisan/layer yang bertingkat. Keempat layer tersebut ialah:
  1. Application Layer, merupakan layer program aplikasi yang menggunakan protokol TCP/IP. Beberapa diantaranya adalah: Telnet, FTP (File Transfer Protocol), SMTP (Simple Mail Transport Protocol), SNMP (Simple Network Management Protocol), HTTP (Hypertext Transfer Protocol).
  2. Transport Layer, berisi protokol yang bertanggung jawab untuk mengadakan komunikasi antar dua komputer. Pada layer ini terdiri atas dua protokol, yaitu: TCP (Transport Control Protocol) dan UDP (User Datagram Protocol).
  3. Internet Layer, berfungsi untuk menangani pergerakan paket data dalam jaringan dari komputer pengirim ke komputer tujuan. Protokol yang berada dalam fungsi ini antara lain: IP (Internet Protocol), ICMP (Internet Control Message Protocol), dan IGMP (Internet Group Management Protocol).
  4. Network Layer, merupakan layer paling bawah yang bertanggung jawab mengirim dan menerima data dari dan ke media fisik.
Model sekumpulan protokol TCP/IP tersebut dapat digambarkan sebagaimana terlihat pada gambar 1.1.


Pada TCP/IP terjadi penyampaian data dari protokol di satu layer ke protokol di layer lain. Setiap layer memiliki stuktur data yang tidak saling bergantung. Secara konseptual sebuah layer tidak memperhatikan stuktur data yang digunakan oleh layer-layer di atas dan di bawahnya. Pada kenyataannya struktur data didesain untuk kompatibel antar layer dengan tujuan efisiensi transmisi data. Setiap protokol pada masing-masing layer memperlakukan semua informasi yang diterimanya dari protokol lain sebagai data.
Setiap protokol pada masing-masing layer akan menambahkan informasi tambahan miliknya pada data, jika protokol tersebut menerima data dari protokol lain di layer atasnya. Tambahan informasi tersebut disebut header, yang berfungsi sebagai kontrol informasi protokol tersebut. Proses penambahan informasi tersebut dinamakan encapsulation. Proses tersebut ditunjukkan pada gambar 1.2. Proses sebaliknya akan terjadi jika sebuah protokol menerima data dari protokol lain pada layer di bawahnya. Jika data tersebut dianggap benar, protokol tersebut akan membuang header-nya dan meneruskan data tersebut ke protokol lain di layer atasnya.


Gambar1.2. Pergerakan data dalam layer TCP/IP
(Sumber: Craig Hunt. 1992: 10)

Transport Control Protocol (TCP)
TCP (Transport Control Protocol) merupakan protokol yang berada pada layer transport dari layer TCP/IP. TCP adalah protokol yang bersifat byte stream, connection-oriented dan reliable dalam pengiriman data. TCP menggunakan komunikasi byte-stream, yang berarti bahwa data dinyatakan sebagai suatu urutan-urutan byte. Connection-oriented berarti sebelum terjadi proses pertukaran data antar komputer terlebih dahulu harus dibentuk suatu hubungan. Hal ini dapat dianalogikan dengan proses pendialan nomor telepon dan akhirnya terbentuk suatu
hubungan.
Keandalan TCP dalam megirimkan data didukung oleh mekanisme yang disebut Positive Acknowledgement with Re-transmission (PAR) [Craig Hunt. 1992: 20]. Data yang dikirim dari layer aplikasi akan dipecah-pecah dalam bagian-bagian yang lebih kecil dan diberi nomor urut (sequence number) sebelum dikirimkan ke layer berikutnya. Unit data yang sudah dipecah-pecah tadi disebut segmen (segment). TCP selalu meminta konfirmasi setiap kali selesai mengirimkan data, apakah data tersebut sampai pada komputer tujuan dan tidak rusak. Jika data berhasil sampai mencapai tujuan, TCP akan mengirimkan data urutan berikutnya. Jika tidak berhasil, maka TCP akan melakukan pengiriman ulang urutan data yang hilang atau rusak tersebut. Dalam kenyataannya TCP menggunakan sebuah acknowledgement (ACK) sebagai suatu pemberitahuan antara komputer pengirim dan penerima. Format segmen TCP diperlihatkan pada gambar 2.1.


Gambar 2.1. Format header TCP
(Sumber: Steven, W. Richard. 1994: 225)
Data yang diterima pada sisi penerima akan disusun berdasarkan nomor urut yang diberikan oleh sisi pengirim. Untuk mengatasi kerusakan data yang diterima, TCP menggunakan sebuah checksum untuk memastikan bahwa data tersebut tidak rusak.
Model komunikasi dua arah antara komputer sisi kirim dan sisi terima sebelum terjadi proses pengiriman data disebut handshake. Tipe handshake yang digunakan TCP adalah three- way handshake, karena menggunakan tiga segmen. Tujuan three-way handshake ini adalah untuk pembentukan koneksi, sinkronisasi segmen, dan pemberitahuan besar data yang bisa diterima pada suatu saat antara sisi kirim dan sisi terima. Proses sederhana three-way handshake tersebut dapat ditunjukkan pada gambar 2.2.


Gambar 2.2. Three-way Handshake
(Sumber: Craig Hunt. 1992: 21)
Komputer A memulai hubungan dengan mengirimkan segmen sinkronisasi nomor urut (SYN) pada komputer B. Segmen tersebut merupakan pemberitahuan pada komputer B bahwa komputer A ingin melakukan sebuah hubungan dan menanyakan nomor urut berapa yang akan digunakan sebagai awal urutan segmen yang akan dikirim. (Nomor urut tersebut digunakan agar data tetap berada pada urutan yang benar). Komputer B memberikan respon pada komputer A dengan sebuah segmen yang memberikan ACK dan SYN. Dengan demikian komputer A akan tahu informasi nomor urut yang digunakan untuk komputer B. Akhirnya, komputer A pun mengirimkan sebuah segmen sebagai balasan dari segmen yang dikirim komputer B, sekaligus melakukan pengiriman data yang sebenarnya pertama kali. Setelah terjadi proses tersebut komputer A mendapati bahwa komputer B siap menerima data dan segera setelah hubungan dipastikan dapat terjadi data pun dikirim sepenhnya ke komputer B. Pada saat seluruh data telah selesai dikirim, proses three-way handshake untuk mengakhiri hubungan pun terjadi untuk memastikan bahwa tidak ada lagi data yang dikirim.

User Datagram Protocol (UDP)

UDP (User Datagram Protocol) merupakan protokol yang juga berada pada layer transport selain TCP. Protokol ini bersifat connectionless dan unreliable dalam pengiriman data. Connectionless berarti tidak diperlukannya suatu bentuk hubungan terlebih dahulu untuk mengirimkan data. Unreliable berarti pada protokol ini data tidak dijamin akan sampai pada tujuan yang benar dan dalam kondisi yang benar pula. Keandalan pengiriman data pada protokol ini menjadi tanggung jawab dari program aplikasi pada layer di atasnya. Gambar 3.1. menunjukkan format header UDP.

Gambar 3.1. Format Header UDP
(Sumber: Steven, W. Richard. 1994: 144)
Jika dibandingkan dengan TCP, UDP adalah protokol yang lebih sederhana dikarenakan proses yang ada di dalamnya lebih sedikit. Dengan demikian aplikasi yang memanfaatkan UDP sebagai protokol transport dapat mengirimkan data tanpa melalui proses pembentukan koneksi terlebih dulu. Hal ini pun terjadi pada saat mengakhiri suatu koneksi, sehingga dalam banyak hal proses yang terjadi sangatlah sederhana dibanding jika mengirimkan data melalui protokol TCP. Secara teknis protokol UDP memiliki header yang lebih kecil dibanding protokol TCP seperti terlihat pada format header masing-masing.
Bila suatu program aplikasi memanfaatkan protokol UDP untuk mengirimkan informasi, protokol UDP melakukan fungsi multiplexing/demultiplexing seperti yang dilakukan protokol TCP dengan menentukan nomor port pengirim (source port) dan nomor port penerima (destination port), kemudian menambahkan sedikit fungsi koreksi kesalahan lalu meneruskan segmen yang terbentuk ke protokol layer Internet. Pada layer internet segmen tersebut ditambahi informasi dalam bentuk datagram IP dan kemudian ditentukan cara terbaik untuk mengantarkan segmen
tersebut ke sisi penerima. Jika segmen tersebut tiba pada sisi penerima, protokol UDP menggunakan nomor port informasi IP pengirim dan penerima untuk mengantarkan data dalam segmen ke proses program aplikasi yang sesuai.
Beberapa hal yang harus diperhatikan jika suatu program aplikasi akan menggunakan protokol UDP sebagai protokol tansport:
  • Tidak ada pembentukan koneksi. Protokol UDP hanya mengirim informasi begitu saja tanpa melakukan proses awal sebelumnya.
  • Tidak ada pengkondisian koneksi. Protokol UDP tidak melakukan penentuan kondisi koneksi yang berupa parameter-parameter seperti buffer kirim dan terima, kontrol kemacetan, nomor urutan segmen dan acknowledgement.
  • Memiliki header yang kecil. Protokol UDP memiliki 8 byte header dibanding 20 byte header pada TCP.
  • Tidak ada pengaturan laju pengiriman data. Protokol UDP hanya menekankan kecepatan kirim pada laju program aplikasi dalam menghasilkan data, kemampuan sumber kirim data (berdasarkan CPU, laju pewaktuan, dll) dan bandwidth akses menuju Internet. Jika terjadi kemacetan jaringan sisi penerima tidak perlu menerima seluruh data yang dikirim.

Dengan demikian laju penerimaan data dibatasi oleh faktor kemacetan jaringan yang terjadi walaupun pada sisi kirim tidak memperhatikannya. Protokol UDP lebih sering diimplementasikan untuk aplikasi-aplikasi yang mengarah proses real- time seperti aplikasi multimedia, dimana rugi-rugi paket data yang kecil lebih ditoleransi daripadanilai delay yang terjadi [Keith W. Ross and Jim Kurose: 1996].

Senin, 06 Juli 2009

Tugas Prosesor Paralel

Berikut ini Link downoad tugas Prosesor Paralel
Link Download DI SINI

Senin, 22 Juni 2009

Superscalar

Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel. Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis. Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya. Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan. Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada. Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut. Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya.. Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut. Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut. Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor. [1]

Pustaka :
[1] Superscalar

CISC (Complex Instruction Set Computer)

Complex Instruction Set Computing disingkat CISC (baca : “sisk”) merupakan rangkaian instruksi built-in pada processor yang terdiri dari perintah-perintah yang kompleks. Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar.

MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan.
Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.

Pada dasarnya CISC merupakan kebalikan dari RISC, biasanya digunakan pada keluarga processor untuk PC (AMD, Cyrix). Para pesaing Intel seperti Cyrix dan AMD juga telah menggunakan chip RISC tetapi ia telah dilengkapi dengan penukar (converter) CISC.

Para perancang mikroprosesor mencari kinerja lebih bagus di dalam keterbatasan teknologi kontemporer. Pada tahun 1970-an misalnya, memori diukur dengan kilobyte dan sangat mahal saat itu. CISC merupakan pendekatan dominan karena menghemat memori.
Pada arsitektur CISC seperti Intel x86, yang diperkenalkan pada tahun 1978, bisa terdapat ratusan instruksi program - perintah-perintah sederhana yang menyuruh sistem menambah angka, menyimpan nilai dan menampilkan hasilnya. Bila semua instruksi panjangnya sama, instruksi sederhana akan memboroskan memori. Instruksi sederhana membutuhkan ruang penyimpanan 8 bit, sementara instruksi yang paling kompleks mengkonsumsi sebanyak 120 bit.

Walaupun instruksi dengan panjang bervariasi lebih sulit diproses oleh chip, instruksi CISC yang lebih panjang akan lebih kompleks. Bagaimanapun, untuk memelihara kompatibilitas software, chip x86 seperti Intel Pentium III dan AMD Athlon harus bekerja dengan instruksi CISC yang dirancang pada tahun 1980-an, walaupun keuntungan awalnya yaitu menghemat memori tidaklah penting sekarang.

Perbedaan RISC dan CISC[2]

Secara umum perbedaan antara RISC dan CISC dapat terlihat pada tabel di bawah ini:




















Terlihat beberapa perbedaan yang mencolok antara keduanya, pada daya yang dibutuhkan RISC membutuhkan sedikit daya dibandingkan dengan CISC. Kecepatan komputasi CISC jauh lebih unggul, kemudian dengan metode pengalamatan RISC lebih unggul dalam kecepatan dengan menggunakan pengalamatan secara langsung. Harga CISC puluhan kali lipat dari RISC karena kompleksotas dari CISC. Keduanya mengemisikan panas hanya saja pada CISC dibutuhkan sistem pendinginan. Untuk interrupt pada RISC lebih mudah diterapkan dan lebih cepat. Keuntungan dari CISC pada sistem operasi yang lebih mudah pengimplementasiannya dibandingkan dengan RISC.

Secara umum kelebihan dari RISC yaitu kesederhanaan dari instruksinya. Dengan jumlah instruksi yang lebih sedikit maka jumlah transistor yang dibutuhkan semakin sedikit yang tentu saja berujung pada murahnya sistem ini dibandingkan dengan seterunya. Selain itu dengan lebih sedikitnya instruksi hanya pada instruksi yang sering digunakan saja maka waktu komputasi computer akan semakin sedikit. Kelebihan utama dari RISC adalah fasilitas prefatch dan pipe line, untuk CISC sendiri eksekusi dilakukan secara sekuensial. Sedangkan untuk CISC, kelebihannya terdapat dalam pengimplementasian menggunakan software dimana akan lebih memudahkan programmer, dimana untuk RISC software yang dibuat akan jauh lebih kompleks dikarenakan instruksinya yang sedikit.


Pustaka :
[1] Kamus Komputer dan Teknologi Informasi
[2] RISC VS CISC

RISC (Reduced Instruction Set Computer)

RISC (reduced instruction set computer) adalah tipe mikroprosesor yang mengenali sejumlah tertentu instruksi. Salah satu keuntungan teknologi RISC adalah memungkinkan eksekusi instruksi dengan sangat cepat karena instruksi yang digunakan sederhana. Keunggulan lainnya adalah bahwa teknologi RISC membutuhkan lebih sedikit transistor, yang menjadikannya lebih murah. Sebagian besar komputer sekarang adalah complex instruction set computer (CISC). Namun, dalam perkembangannya RISC dan CISC menjadi semakin mirip. Chip RISC sekarang mendukung instruksi yang sama pada chip CISC dan chip CISC juga banyak menggunakan teknik yang sebelumnya digunakan pada chip RISC.

RISC memiliki keunggulan dalam hal kecepatannya sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi secara intensif. Konsep RISC pertama kali dikembangkan oleh IBM pada era 1970-an. Komputer pertama yang menggunakan RISC adalah komputer mini IBM 807 yang diperkenalkan pada tahun 1980. Dewasa ini, RISC digunakan pada keluarga processor buatan Motorola (PowerPC) dan SUN Microsystems (Sparc, UltraSparc).

RISC dikembangkan melalui seorang penelitinya yang bernama John Cocke, beliau menyampaikan bahwa sebenarnya kekhasan dari komputer tidaklah menggunakan banyak instruksi, namun yang dimilikinya adalah instruksi yang kompleks yang dilakukan melalui rangkaian sirkuit.

Ciri - Ciri RISC:
  1. Instruksi berukuran tunggal.
  2. Ukuran yang umum adalah 4 byte.
  3. Jumlah pengalamatan data sediki, biasanya kurang dari 5 buah.
  4. Tidak terdapat pengalamatan tidak langsung yang mengharuskan melakukan sebuah akses memori agar memperoleh alamat operand lainnya dalam memori.
  5. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika, seperti penambahan ke memori dan penambahan dari memori.
  6. Tidak terdapat lebih dari satu operand beralamat memori per instruksi.
  7. Tidak mendukung perataan sembarang bagi data untuk operasi load/store.
  8. Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah sebuh instruksi.
  9. Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih, artinya sedikitnya 32 buah register integer dapat direferensikan sekaligus secara eksplisit.
  10. Jumlah bit floating point register spesifier sama dengan 4 atau lebih, artinya sedikitnya 16 register floating point dapat direferensikan sekaligus secara eksplisit.

Pada desain chip mikroprosesor jenis ini, pemroses diharapkan dapat melaksanakan perintah-perintah yang dijalankannya secara cepat dan efisien melalui penyediaan himpunan instruksi yang jumlahnya relatif sedikit, dengan mengambil perintah-perintah yang sangat sederhana, akibatnya arsitektur RISC membatasi jumlah instruksinya yang dipasang ke dalam mikroprosesor tetapi mengoptimasi setiap instruksi sehingga dapat dilaksanakan dengan cepat.

Dengan demikian instruksi yang sederhana dapat dilaksanakan lebih cepat apabila dibandingkan dengan mikroprosesor yang dirancang untuk menangani susunan instruksi yang lebih luas. Chip RISC hanya dapat memproses instruksi dalam jumlah terbatas, tetapi instruksi ini dioptimalkan sehingga cepat dieksekusi. Tetapi, bila harus menangani tugas yang kompleks, instruksi harus dibagi menjadi banyak kode mesin, terutama sebelum chip RISC dapat menanganinya. Karena keterbatasan jumlah instruksi yang ada padanya, apabila terjadi kesalahan dalam pemrosesan akan memudahkan dalam melacak kesalahan tersebut.

Pada tahun 1980-an kapasitas modul memori meningkat dan harganya turun. Penekanan pada desain CPU bergeser ke kinerja, dan RISC menjadi trend baru. Contoh arsitektur RISC meliputi SPARC dari Sun Microsystems; seri MIPS Rxxxx dari MIPS Technologies; Alpha dari Digital Equipment; PowerPC yang dikembangkan bersama oleh IBM dan Motorola; dan RISC dari Hewlett-Packard.

Chip RISC menggunakan sejumlah kecil instruksi dengan panjang-sama yang relatif sederhana, yaitu panjangnya selalu 32 bit. Walaupun hal ini memboroskan memori karena harus dibuat program lebih besar, instruksi lebih mudah dan cepat dieksekusi. Karena chip ini berurusan dengan jenis instruksi lebih sedikit, chip RISC membutuhkan lebih sedikit transistor ketimbang chip CISC dan umumnya berkinerja lebih tinggi pada kecepatan clock yang sama, walaupun chip ini harus mengeksekusi lebih banyak instruksi lebih pendek untuk menyelesaikan sebuah fungsi. Kesederhanaan RISC juga mempermudah merancang prosesor superscalar (Chip yang dapat mengeksekusi lebih dari satu instruksi pada satu saat). Hampir semua prosesor RISC dan CISC modern adalah superscalar; tetapi untuk mencapai kemampuan ini membuat desain lebih rumit.

KELEBIHAN DAN KEKURANGAN TEKNOLOGI RISC

Teknologi RISC relatif masih baru oleh karena itu tidak ada perdebatan dalam menggunakan RISC ataupun CISC, karena tekhnologi terus berkembang dan arsitektur berada dalam sebuah spektrum, bukannya berada dalam dua kategori yang jelas maka penilaian yang tegas akan sangat kecil kemungkinan untuk terjadi.

KEUNGGULAN
  • Berkaitan dengan penyederhanaan kompiler, dimana tugas pembuat kompiler untuk menghasilkan rangkaian instruksi mesin bagi semua pernyataan HLL.
  • Instruksi mesin yang kompleks seringkali sulit digunakan karena kompiler harus menemukan kasus-kasus yang sesuai dengan konsepnya.
  • Pekerjaan mengoptimalkan kode yang dihasilkan untuk meminimalkan ukuran kode, mengurangi hitungan eksekusi instruksi, dan meningkatkan pipelining jauh lebih mudah apabila menggunakan RISC dibanding menggunakan CISC.
  • Arsitektur RISC yang mendasari PowerPC memiliki kecenderungan lebih menekankan pada referensi register dibanding referensi memori, dan referensi register memerlukan bit yang lebih sedikit sehingga memiliki akses eksekusi instruksi lebih cepat.
  • Kecenderungan operasi register ke register akan lebih menyederhanakan set instruksi dan menyederhanakan unit kontrol serta pengoptimasian register akan menyebabkan operand-operand yang sering diakses akan tetap berada dipenyimpan berkecepatan tinggi.
  • Penggunaan mode pengalamatan dan format instruksi yang lebih sederhana.
KEKURANGAN

  • Program yang dihasilkan dalam bahasa simbolik akan lebih panjang (instruksinya lebih banyak).
  • Program berukuran lebih besar sehingga membutuhkan memori yang lebih banyak, ini tentunya kurang menghemat sumber daya.
  • Program yang berukuran lebih besar akan menyebabkan menurunnya kinerja, yaitu instruksi yang lebih banyak artinya akan lebih banyak byte-byte instruksi yang harus diambil. Selain itu,Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page fault lebih besar.



DAFTAR PUSTAKA:
  1. Kamus TI-R
  2. Reduced Instruction Set Computing [RISC]
  3. Arsitektur Reduced Instrustion Set Computer (RISC)

Kamis, 14 Mei 2009

Arsitektur Komputer- Pak S. Wasista

Tugas dari kelompok :
1. Abdul Aziz H.
2. Nanta Fakih P.
3. Siteguh W.
4. Agus S.


Sistem Operasi