Model referensi
OSI (Open System Interconnection) menggambarkan bagaimana informasi dari
suatu software aplikasi di sebuah komputer berpindah melewati sebuah media
jaringan ke suatu software aplikasi di komputer lain. Model referensi OSI secara
konseptual terbagi ke dalam 7 lapisan dimana masing-masing lapisan memiliki fungsi
jaringan yang spesifik. Model ini diciptakan berdasarkan sebuah proposal yang
dibuat oleh the International Standards Organization (ISO) sebagai langkah awal
menuju standarisasi protokol internasional yang digunakan pada berbagai layer .
Model ini disebut ISO OSI (Open System Interconnection) Reference Model karena
model ini ditujukan bagi pengkoneksian open system. Open System dapat diartikan
sebagai suatu sistem yang terbuka untuk berkomunikasi dengan sistem-sistem
lainnya. Untuk ringkas-nya, kita akan menyebut model tersebut sebagai model OSI
saja.
Model OSI
memiliki tujuh layer. Prinsip-prinsip yang digunakan bagi ketujuh layer tersebut adalah
:
- Sebuah layer
harus dibuat bila diperlukan tingkat abstraksi yang berbeda.
- Setiap layer
harus memiliki fungsi-fungsi tertentu.Fungsi setiap layer harus dipilih dengan
teliti sesuai dengan ketentuan standar protocol internasional.
- Batas-batas
layer diusahakan agar meminimalkan aliran informasi yang melewati interface.
- Jumlah layer
harus cukup banyak, sehingga fungsi-fungsi yang berbeda tidak perlu disatukan
dalam satu layer diluar keperluannya. Akan tetapi
- Jumlah layer juga
harus diusahakan sesedikit mungkin sehingga arsitektur jaringan tidak menjadi
sulit dipakai.
Karakteristik Lapisan
OSI
Ke tujuh lapisan
dari model referensi OSI dapat dibagi ke dalam dua kategori, yaitu lapisan atas
dan lapisan bawah. Lapisan atas dari model OSI berurusan dengan persoalan
aplikasi dan pada umumnya diimplementasi hanya pada software. Lapisan tertinggi
(lapisan applikasi) adalah lapisan penutup sebelum ke pengguna (user),
keduanya, pengguna dan lapisan aplikasi saling berinteraksi proses dengan software
aplikasi yang berisi sebuah komponen komunikasi. Istilah lapisan atas
kadang-kadang digunakan untuk menunjuk ke beberapa lapisan atas dari lapisan
lapisan yang lain di model OSI. Lapisan bawah dari model OSI mengendalikan
persoalan transport data. Lapisan fisik dan lapisan data link diimplementasikan
ke dalam hardware dan software.
Lapisan-lapisan
bawah yang lain pada umumnya hanya diimplementasikan dalam software.
Lapisan terbawah, yaitu lapisan fisik adalah lapisan penutup bagi media jaringan fisik
(misalnya jaringan kabel), dan sebagai penanggung jawab bagi penempatan
informasi pada media jaringan. Berikut ini menampilkan pemisahan kedua lapisan
tersebut pada lapisan-lapisan model OSI.
Lapisan-lapisan Model
OSI
|
Model OSI |
Physical Layer berfungsi
dalam pengiriman raw bit ke channel komunikasi. Masalah desain yang harus
diperhatikan disini adalah memastikan bahwa bila satu sisi mengirim data 1 bit,
data tersebut harus diterima oleh sisi lainnya sebagai 1 bit pula, dan bukan 0
bit. Pertanyaan yang timbul dalam hal ini adalah : berapa volt yang perlu
digunakan untuk menyatakan nilai 1? dan berapa volt pula yang diperlukan untuk
angka 0?. Diperlukan berapa mikrosekon suatu bit akan habis? Apakah transmisi
dapat diproses secara simultan pada kedua arahnya? Berapa jumlah pin yang
dimiliki jaringan dan apa kegunaan masing-masing pin? Secara umum masalah-masalah
desain yang ditemukan di sini berhubungan secara mekanik, elektrik dan
interface prosedural, dan media fisik yang berada di bawah physical layer.
Tugas utama data
link layer adalah sebagai fasilitas transmisi raw data dan mentransformasi
data tersebut ke saluran yang bebas dari kesalahan transmisi. Sebelum
diteruskan kenetwork layer, data link layer melaksanakan tugas ini dengan memungkinkan
pengirim memecah-mecah data input menjadi sejumlah data frame (biasanya
berjumlah ratusan atau ribuan byte). Kemudian data link layer mentransmisikan
frame tersebut secara berurutan, dan memproses acknowledgement
frame yang dikirim kembali oleh penerima. Karena physical layer menerima dan
mengirim aliran bit tanpa mengindahkan arti atau arsitektur frame, maka
tergantung pada data link layer-lah untuk membuat dan mengenali batasbatas frame
itu. Hal ini bisa dilakukan dengan cara membubuhkan bit khusus ke awal dan
akhir frame. Bila secara insidental pola-pola bit ini bisa ditemui pada data, maka
diperlukan perhatian khusus untuk menyakinkan bahwa pola tersebut tidak secara
salah dianggap sebagai batas-batas frame. Terjadinya noise pada saluran dapat
merusak frame. Dalam hal ini, perangkat lunak data link layer pada mesin sumber
dapat mengirim kembali frame yang rusak tersebut. Akan tetapi transmisi frame
sama secara berulang-ulang bisa menimbulkan duplikasi frame. Frame duplikat
perlu dikirim apabila acknowledgement frame dari penerima yang dikembalikan ke
pengirim telah hilang. Tergantung pada layer inilah untuk mengatasi
masalah-masalah yang disebabkan rusaknya, hilangnya dan duplikasi frame. Data
link layer menyediakan beberapa kelas layanan bagi network layer. Kelas layanan
ini dapat dibedakan dalam hal kualitas dan harganya. Masalah-masalah lainnya
yang timbul pada data link layer (dan juga sebagian besar layer-layer di
atasnya) adalah mengusahakan kelancaran proses pengiriman data dari pengirim
yang cepat ke penerima yang lambat. Mekanisme pengaturan lalu lintas data harus
memungkinkan pengirim mengetahui jumlah ruang buffer yang dimiliki
penerima pada suatu saat tertentu. Seringkali pengaturan aliran dan penanganan error
ini dilakukan secara terintegrasi. Saluran yang dapat mengirim data pada kedua
arahnya juga bisa menimbulkan masalah. Sehingga dengan demikian perlu dijadikan
bahan pertimbangan bagi software data link layer. Masalah yang dapat timbul di
sini adalah bahwa frame frame acknoeledgement yang mengalir dari A ke B
bersaing saling mendahului dengan aliran dari B ke A. Penyelesaian yang terbaik
(piggy backing) telah bisa digunakan; nanti kita akan membahasnya secara
mendalam. Jaringan broadcast memiliki masalah tambahan pada data link layer.
Masalah tersebut adalah dalam hal mengontrol akses ke saluran yang dipakai
bersama. Untuk mengatasinya dapat digunakan sublayer khusus data link layer,
yang disebut medium access sublayer.
Network layer
berfungsi untuk pengendalian operasi subnet. Masalah desain yang penting adalah
bagaimana caranya menentukan route pengiriman paket dari sumber ke tujuannya.
Route dapat didasarkan pada table statik yang “dihubungkan ke network. Route
juga dapat ditentukan pada saat awal percakapan misalnya session terminal.
Terakhir, route dapat juga sangat dinamik, dapat berbeda bagi setiap paketnya.
Oleh karena itu, route pengiriman sebuah paket tergantung beban jaringan saat
itu. Bila pada saat yang sama dalam sebuah subnet terdapat terlalu banyak
paket, maka ada kemungkinan paket-paket tersebut tiba pada saat yang bersamaan.
Hal ini dapat menyebabkan terjadinya bottleneck. Pengendalian kemacetan seperti
itu juga merupakan tugas network layer. Karena operator
subnet mengharap bayaran yang baik atas tugas pekerjaannya. seringkali
terdapat beberapa fungsi accounting yang dibuat pada network layer. Untuk membuat
informasi tagihan, setidaknya software mesti menghitung jumlah
paket atau
karakter atau bit yang dikirimkan oleh setiap pelanggannya. Accounting menjadi lebih
rumit, bilamana sebuah paket melintasi batas negara yang memiliki tarip yang
berbeda. Perpindahan paket dari satu jaringan ke jaringan lainnya juga dapat
menimbulkan masalah yang tidak sedikit. Cara pengalamatan yang digunakan oleh
sebuah jaringan dapat berbeda dengan cara yang dipakai oleh jaringan lainnya.
Suatu jaringan mungkin tidak dapat menerima paket sama sekali karena ukuran
paket yang terlalu besar. Protokolnyapun bisa berbeda pula, demikian juga
dengan yang lainnya. Network layer telah mendapat tugas untuk mengatasi semua
masalah seperti ini, sehingga memungkinkan jaringan-jaringan yang berbeda untuk
saling terinterkoneksi.
Transport Layer
Fungsi dasar
transport layer adalah menerima data dari session layer, memecah
data menjadi
bagian-bagian yang lebih kecil bila perlu, meneruskan data ke network layer,
dan menjamin bahwa semua potongan data tersebut bisa tiba di sisi lainnya dengan
benar. Selain itu, semua hal tersebut harus dilaksanakan secara efisien, dan bertujuan
dapat melindungi layer-layer bagian atas dari perubahan teknologi hardware yang
tidak dapat dihindari. Dalam keadaan normal, transport layer membuat koneksi
jaringan yang berbeda bagi setiap koneksi transport yang diperlukan oleh
session layer. Bila koneksi transport memerlukan throughput yang tinggi, maka
transport layer dapat membuat koneksi jaringan yang banyak. Transport layer
membagi-bagi pengiriman data ke sejumlah jaringan untuk meningkatkan
throughput. Di lain pihak, bila pembuatan atau pemeliharaan koneksi jaringan
cukup mahal, transport layer dapat menggabungkan beberapa koneksi transport ke
koneksi jaringan yang sama. Hal tersebut dilakukan untuk membuat penggabungan
ini tidak terlihat oleh session layer.
Transport layer
juga menentukan jenis layanan untuk session layer, dan pada gilirannya jenis
layanan bagi para pengguna jaringan. Jenis transport layer yang paling populer
adalah saluran error-free point to point yang meneruskan pesan atau byte sesuai
dengan urutan pengirimannya. Akan tetapi, terdapat pula jenis layanan transport
lainnya. Layanan tersebut adalah transport pesan terisolasi yang tidak menjamin urutan
pengiriman, dan membroadcast pesan-pesan ke sejumlah tujuan. Jenis layanan
ditentukan pada saat koneksi dimulai.
Transport layer
merupakan layer end to end sebenarnya, dari sumber ke tujuan. Dengan kata
lain, sebuah program pada mesin sumber membawa percakapan dengan program
yang sama dengan pada mesin yang dituju. Pada layer-layer bawah, protokol
terdapat di antara kedua mesin dan mesin-mesin lain yang berada didekatnya.
Protokol tidak terdapat pada mesin sumber terluar atau mesin tujuan terluar, yang
mungkin dipisahkan oleh sejumlah router. Perbedaan antara layer 1 sampai 3 yang
terjalin, dan layer 4 sampai 7 yang end to end. Sebagai tambahan
bagi penggabungan beberapa aliran pesan ke satu channel, transport layer
harus hati-hati dalam menetapkan dan memutuskan koneksi pada jaringan. Proses
ini memerlukan mekanisma penamaan, sehingga suatu proses pada sebuah
mesin mempunyai cara untuk menerangkan dengan siapa mesin itu
ingin
bercakap-cakap. Juga harus ada mekanisme untuk mengatur arus informasi, sehingga arus
informasi dari host yang cepat tidak membanjiri host yang lambat. Mekanisme
seperti itu disebut pengendalian aliran dan memainkan peranan penting pada transport
layer (juga pada layer-layer lainnya). Pengendalian aliran antara host dengan
host berbeda dengan pengendalian aliran router dengan router. Kita akan mengetahui
nanti bahwa prinsip-prinsip yang sama digunakan untuk kedua jenis pengendalian
tersebut.
Session Layer
Session layer
mengijinkan para pengguna untuk menetapkan session dengan pengguna
lainnya. Sebuah session selain memungkinkan transport data biasa, seperti yang
dilakukan oleh transport layer, juga menyediakan layanan yang istimewa untuk
aplikasi-aplikasi tertentu. Sebuah session digunakan untuk memungkinkan
seseorang pengguna log ke remote timesharing system atau untuk memindahkan file
dari satu mesin kemesin lainnya. Sebuah layanan session layer adalah untuk
melaksanakan pengendalian dialog. Session dapat memungkinkan lalu lintas
bergerak dalam bentuk dua arah pada suatu saat, atau hanya satu arah saja. Jika
pada satu saat lalu lintas hanya satu arah saja (analog dengan rel kereta api
tunggal), session layer membantu untuk menentukan giliran yang berhak
menggunakan saluran pada suatu saat.
Layanan session
di atas disebut manajemen token. Untuk sebagian protokol, adalah penting untuk
memastikan bahwa kedua pihak yang bersangkutan tidak melakukan operasi pada
saat yang sama. Untuk mengatur aktivitas ini, session layer menyediakan
token-token yang dapat digilirkan. Hanya pihak yang memegang token yang
diijinkan melakukan operasi kritis. Layanan session lainnya adalah
sinkronisasi. Ambil contoh yang dapat terjadi ketika mencoba transfer file yang
berdurasi 2 jam dari mesin yang satu ke mesin lainnya dengan kemungkinan
mempunyai selang waktu 1 jam antara dua crash yang dapat terjadi. Setelah
masing-masing transfer dibatalkan, seluruh transfer mungkin perlu diulangi lagi
dari awal, dan mungkin saja mengalami kegagalan lain. Untuk mengurangi
kemungkinan terjadinya masalah ini, session layer dapat menyisipkan tanda
tertentu ke aliran data. Karena itu bila terjadi crash, hanya data yang berada sesudah
tanda tersebut yang akan ditransfer ulang.
Pressentation
Layer
Pressentation
layer melakukan fungsi-fungsi tertentu yang diminta untuk menjamin penemuan sebuah
penyelesaian umum bagi masalah tertentu. Pressentation Layer tidak
mengijinkan pengguna untuk menyelesaikan sendiri suatu masalah. Tidak seperti
layer-layer di bawahnya yang hanya melakukan pemindahan bit dari satu tempat ke tempat
lainnya, presentation layer memperhatikan syntax dan semantik informasi yang
dikirimkan. Satu contoh layanan pressentation adalah encoding data. Kebanyakan
pengguna tidak memindahkan string bit biner yang random. Para pengguna saling
bertukar data seperti nama orang, tanggal, jumlah uang, dan tagihan. Item-item
tersebut dinyatakan dalam bentuk string karakter, bilangan interger, bilangan
floating point, struktur data yang dibentuk dari beberapa item yang lebih
sederhana. Terdapat perbedaan antara satu komputer dengan komputer lainnya
dalam memberi kode untuk menyatakan string karakter (misalnya, ASCII dan
Unicode), integer (misalnya komplemen satu dan komplemen dua), dan sebagainya.
Untuk memungkinkan dua buah komputer yang memiliki presentation yang berbeda
untuk dapat berkomunikasi, struktur data yang akan dipertukarkan dapat
dinyatakan dengan cara abstrak, sesuai dengan encoding standard yang akan
digunakan “pada saluran”. Presentation layer mengatur data-struktur abstrak ini
dan mengkonversi dari representation yang digunakan pada sebuah komputer
menjadi representation standard jaringan, dan sebaliknya.
Application
Layer
Application
layer terdiri dari bermacam-macam protokol. Misalnya terdapat ratusan jenis
terminal yang tidak kompatibel di seluruh dunia. Ambil keadaan dimana editor layar
penuh yang diharapkan bekerja pada jaringan dengan bermacam-macam terminal,
yang masing-masing memiliki layout layar yang berlainan, mempunyai cara urutan
penekanan tombol yang berbeda untuk penyisipan dan penghapusan teks, memindahkan
sensor dan sebagainyaSuatu cara untuk
mengatasi masalah seperti di atas, adalah dengan . menentukan terminal virtual
jaringan abstrak, serhingga editor dan program-program lainnya dapat ditulis
agar saling bersesuaian. Untuk menangani setiap jenis terminal, satu
bagian software
harus ditulis untuk memetakan fungsi terminal virtual jaringan ke terminal
sebenarnya. Misalnya, saat editor menggerakkan cursor terminal virtual ke sudut
layar kiri, software tersebut harus mengeluarkan urutan perintah yang sesuai untuk
mencapai cursor tersebut. Seluruh software terminal virtual berada pada application
layer.
Fungsi application
layer lainnya adalah pemindahan file. Sistem file yang satu dengan yang
lainnya memiliki konvensi penamaan yang berbeda, cara menyatakan baris-baris teks
yang berbeda, dan sebagainya. Perpindahan file dari sebuah sistem ke sistem
lainnya yang berbeda memerlukan penanganan untuk mengatasi adanya ketidak-kompatibelan
ini. Tugas tersebut juga merupakan pekerjaan appication layer, seperti
pada surat elektronik, remote job entry, directory lookup, dan berbagai fasilitas
bertujuan umum dan fasilitas bertujuan khusus lainnya.
Transmisi Data
Pada Model OSI
|
Transmisi Data |
Gambar diatas menjelaskan sebuah contoh tentang bagaimana data dapat ditransmisikan
dengan menggunakan model OSI. Proses pengiriman memiliki data yang akan
dikirimkan ke proses penerima. Proses pengirim menyerahkan data ke application
layer, yang kemudian menambahkan aplication header, AH (yang mungkin juga
kosong), ke ujung depannya dan menyerahkan hasilnya ke presentation
layer.
Pressentation
layer dapat membentuk data ini dalam berbagai cara dan mungkin saja menambahkan
sebuah header di ujung depannya, yang diberikan oleh session layer. Penting
untuk diingat bahwa presentation layer tidak menyadari tentang bagian data yang
mana yang diberi tanda AH oleh application layer yang merupakan data pengguna
yang sebenarnya. Proses pemberian
header ini berulang terus sampai data tersebut mencapai physical layer, dimana
data akan ditransmisikan ke mesin lainnya. Pada mesin tersebut, semua header tadi
dicopoti satu per satu sampai mencapai proses penerimaan. Yang menjadi kunci di
sini adalah bahwa walaupun transmisi data aktual berbentuk vertikal seperti
pada gambar 1-17, setiap layer diprogram seolah-olah sebagai transmisi yang
bersangkutan berlangsung secara horizontal. Misalnya, saat transport layer pengiriman
mendapatkan pesan dari session layer, maka transport layer akan membubuhkan
header transport layer dan mengirimkannya ke transport layer penerima.