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 tujuh
lapisan dimana masing-masing lapisan memiliki fungsi jaringan yang spesifik.
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 ringkasnya, model tersebut disebut sebagai model OSI.
Prinsip-prinsip
yang digunakan bagi ketujuh layer OSI
tersebut
yaitu :
1) Sebuah
layer harus dibuat bila diperlukan tingkat abstraksi yang berbeda.
2) Setiap
layer harus memiliki fungsi-fungsi tertentu.
3) Fungsi
setiap layer harus dipilih dengan teliti sesuai dengan ketentuan standar
protocol internasional.
4) Batas-batas
layer diusahakan agar meminimalkan aliran informasi yang melewati interface.
5) 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.
Perlu dicatat
bahwa model OSI itu sendiri bukanlah merupakan arsitektur jaringan, karena
model ini tidak menjelaskan secara pasti layanan dan protokolnya untuk
digunakan pada setiap layernya. Model OSI hanya menjelaskan tentang apa yang
harus dikerjakan oleh sebuah layer. Akan tetapi ISO juga telah membuat standard
untuk semua layer, walaupun standard-standard ini bukan merupakan model
referensi itu sendiri. Setiap layer telah dinyatakan sebagai standard
internasional yang terpisah.
Lapisan OSI terdiri dari
Application, Presentation, Session, Transport, Network, Data Link, dan
Physical. Pada bab ini akan membahas seluruh lapisan-lapisan OSI dari lapisan
(layer) paling bawah hingga paling atas.
1.
Physical Layer
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.
2.
Data Link 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 memecag-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 batas-batas 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.
3.
Network Layer
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.
4.
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.
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.
5.
Session Layer
Session
layer mengizinkan
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 diizinkan 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.
6.
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 sperti 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.
7.
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 sebagainya.
Suatu
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.