1.  Framming
Untuk melayani network layer, data link layer harus menggunakan layanan yang disediakan oleh physical layer. Apa yang dilakukan phisical layer adalah menerima aliran raw bit dan berusaha mengirimkannya ke tujuan. Aliran bit ini tidak di jamin bebas dari error. Jumlah bit yang diterima mungkin bisa lebih sedikit, sama atau lebih banyak dari jumlah bit yang di transmisikan dan juga bit-bit itu memiliki nilai yang berbeda-beda. Bila diperlukan, data link layer bertanggung jawab untuk mendeteksi dan mengoreksi error.
Pendekatan yang umum dipakai adalah data link layer memecahkan aliran bit menjadi frame-frame dan menghitung checksum setiap frame-nya. Memecahkan-mecahkan aliran bit menjadi frame-frame lebih sulit dibanding dengan apa yang di bayangkan. Untuk memecah-mecahkan aliran bit ini, digunakan metode-metode khusus. Ada empat buah metode yang dipakai dalam pemecahan bit menjadi frame, yaitu:
a. Karakter penghitung.
b. Pemberian karakter awal dan akhir, dengan pengisian karakter.
c. Pemberian flag awal dan akhir, dengan pengisian bit.
d. Pelanggaran pengkodean physical layer.

Setiap metode yang dipakai dalam pemecahan bit menjadi frame akan dibahas satu persatu.
a.  Karakter penghitung
Metode ini menggunakan sebuah field pada header untuk menspesifikasikan jumlah karakter di dalam frame. ketika data link layer pada komputer yang dituju melihat k arakter penghitung, maka data link layer akan mengetahui jumlah karakter yang mengikutinya dan kemudian juga akan mengetahui posisi ujung frame-nya.
 Teknik ini bisa dilihat pada Gambar 3 di bawah ini, dimana ada empat buah frame yang masing-masing berukuran 5,5,8 dan 8 karakter.

Masalah yang akan timbul pada aliran karakter ini apabila terjadi error transmisi. Misalnya, bila hitungan karakter 5 pada frame kedua menjadi 7 (Gambar 4), maka tempat yang dituju tidak sinkron dan tidak akan dapat mengetahui awal frame berikutnya. Oleh karena permasalahan ini, metode hitungan karakter sudah jarang dilakukan.

b.  Pemberian karakter awal dan akhir
Metode yang kedua ini mengatasi masalah resinkronisasi setelah terjadi suatu error dengan membuat masing-masing frame diawali dengan deretan karakter DLE, STX, ASCII, dan ETX.
Masalah yang akan terjadi pada metode ini adalah ketika data biner ditransmisikan. Karakter-karakter DLE, STK, DLE dan ETX yang terdapat pada data akan mudah sekali mengganggu framming. Salah satu cara untuk mengatasi masalah ini adalah dengan membuat data link layer, yaitu pengirim menyisipkan sebuah karakter DLE ASCII tepat

sebelum karakter DLE pada data. Teknik ini disebut character stuffing (pengisian karakter) dan cara pengisiannya dapat dilihat pada gambar 5

c. Pemberian flag awal dan akhir
Teknik baru memungkinkan frame data berisi sejumlah bit dan mengijinkan kode karakter dengan sejumlah bit per karakter. Setiap frame diawali dan diakhiri oleh pola bit khusus, 01111110, yang disebut byte flag. Kapanpun data link layer pada pengirim menemukan lima buah flag yang berurutan pada data, maka data link layer secara otomatis mengisikan sebuah bit 0 ke aliran bit keluar. Pengisian bit ini analog dengan pengisian karakter, dimana sebuah DLE diisikan ke aliran karakter keluar sebelum DLE pada data (Gambar 6)

Ketika penerima melihat lima buah bit 1 masuk yang berurutan, yang diikuti oleh sebuah bit 0, maka penerima secara otomatis menghapus bit 0 tersebut. Bila data pengguna berisi pola flag, 01111110, maka flag ini akan ditransmisikan kembali sebagai 0111111010 tapi akan disimpan di memori penerima sebagai 01111110.

d. pelanggaran pengkodean physical layer
Metode yang terakhir hanya bisa digunakan bagi jaringan yang encoding pada medium fisiknya mengandung pengulangan. Misalnya, sebagian LAN melakukan encode bit 1 data dengan menggunakan 2 bit fisik. Umumnya, bit 1 merupakan pasangan tinggi rendah dan bit 0 adalah pasangan rendah-tinggi. Kombinasi pasangan tinggi-tinggi dan rendah-rendah tidak digunakan bagi data.

2. Flow control
Flow control adalah suatu teknik untuk menjamin bahwa sebuah stasiun pengirim tidak membanjiri stasiun penerima dengan data. Stasiun penerima secara khas akan menyediakan suatu buffer data dengan panjang tertentu. Ketika data diterima, dia harus mengerjakan beberapa poses sebelum dia dapat membersihkan buffer dan mempersiapkan penerimaan data berikutnya.
Bentuk sederhana dari kontrol aliran dikenal sebagai stop and wait, dia bekerja sebagai berikut. Penerima mengindikasikan bahwa dia siap untuk menerima data dengan mengirim sebual poll atau menjawab dengan select. Pengirim kemudian mengirimkan data.
Flow control ini diatur/dikelola oleh Data Link Control (DLC) atau biasa disebut sebagai Line Protocol sehingga pengiriman maupun penerimaan ribuan message dapat terjadi dalam kurun waktu sesingkat mungkin. DLC harus memindahkan data dalam lalu lintas yang efisien. Jalur komunikasi harus digunakan sedatar mungkin, sehingga tidak ada stasiun yang berada dalam kadaan idle sementara stasiun yang lain saturasi dengan lalu lintas yang berkelebihan. Jadi flow control merupakan bagian yang sangat kritis dari suatu jaringan.
Flow control berfungsi Mengatur aliran pengiriman data dari Sender ke Receiver Sehingga penerima tidak dibanjiri dengan data.


Ada 3 Mekanisme Flow Control :

1. Stop And Wait ARQ
Setelah sender mengirimkan frame pertama, frame berikutnya akan dikirimkan setelah menerima konfirmasi (ACK) untuk frame sebelumnya dari receiver. Pada Stop-and-wait ARQ, sender mengirimkan frame satu per satu  kepada receiver, Jika sender tidak menerima ACK (error) untuk frame tertentu dari receiver, frame tersebut dikirimkan kembali  (retransmission).

2. Go Back N ARQ


Beberapa frame dikirimkan sementara menunggu konfirmasi (ACK) receiver. Jika tidak ada konfirmasi, maka frame dikirimkan kembali.
Pada Go-back-N ARQ,beberapa frame dikirimkan oleh sender kepada receiver.Jika sender tidak menerima ACK (error) untuk frame tertentu dari receiver, retransmission secara berurutan dimulai dari frame tersebut.

3. Selective Repeat ARQ

Beberapa frame dikirimkan sementara menunggu konfirmasi (ACK) receiver. Jika ada frame yang error, maka receiver akan mengirimkan  konfirmasi negatif (NAK). Pada Selective Repeat ARQ,beberapa frame dikirimkan oleh sender kepada receiver. Jika sender menerima NAK (ada error)  untuk frame tertentu dari receiver,  hanya frame tersebut yang dikirimkan kembali.

3. Error Control
Error control artinya pengendalian terhadap kesalahan yang berarti data link layer dapat mengendalikan kesalahan yang terjadi pada data melalui error control sehingga data yang dikirimkan dapat diterima dengan baik oleh receiver.
Ada 2 Tipe Error :
1. Single Bit Error

Dalam single bit error hanya ada 1 bit data yang mengalami kesalahan/error, hanya ada 1 bit dari unit data yang berubah nilainya sehingga data menjadi error.

2. Burst Error

Burst error berarti jika ada 2 atau lebih bit data yang nilainya berubah .
Cara Kerja dari error control dalam data link layer adalah dengan melakukan pendektesian ( detection ) terlebih dahulu terhadap data lalu baru melakukan koreksi ( correction ) terhadap data-data yang telah dideteksi.

Error detection menggunakan konsep redudansi, yang berarti menambahkan bit-bit tambahan untuk mendeteksi kesalahan data saat data berada di tujuan.

3 metode error detection :
1. Parity Check
Metode ini menggunakan konsep menambahkan bit parity pada unit data, sehingga jumlah bit 1 adalah bilangan genap.

2. Cyclic redundancy check ( CRC )
Menambahkan CRC remainder pada unit data, sehingga codeword habis dibagi bilangan tertentu.

3. Checksum
Sender mengirimkan checksum field dan data, dimana nilai checksum adalah komplemen dari jumlah data. Receiver menerima dan menjumlahkan data & checksum field , jika komplemen = 0, Data OK! selain itu, Data Rusak!