數(shù)據(jù)鏈路層負責(zé)在相鄰的節(jié)點之間傳送一組位信息。通常,這些位組被稱為幀或包。網(wǎng)絡(luò)層將數(shù)據(jù)單元傳送給數(shù)據(jù)鏈路層。在這個階段,數(shù)據(jù)鏈路層為其添加報頭和尾部信息,接下來它就是要傳送給物理層的數(shù)據(jù)單元。報頭包括地址和其他控制信息。這一級的地址指的是網(wǎng)絡(luò)中接收幀的相鄰節(jié)點的物理地址。因此,這些地址隨著幀在從源節(jié)點到目的地節(jié)點的路由上經(jīng)過不同的節(jié)點而發(fā)生變化。終端節(jié)點的地址,也就是源節(jié)點和目的地節(jié)點的地址已經(jīng)是網(wǎng)絡(luò)層傳送到數(shù)據(jù)鏈路層的數(shù)據(jù)單位的組成部分。所以,它們并不是在數(shù)據(jù)鏈路層添加或刪除的報頭和報尾的內(nèi)容。因而,它們并不隨包在源和目的地之間的不同節(jié)點上移動而變化。數(shù)據(jù)鏈路層還要進行流量控制。它會根據(jù)cpu的處理速度、傳輸速度、緩沖區(qū)大小以及擁塞情況確定是否可以將幀/包發(fā)送給相鄰的節(jié)點,如果可以發(fā)送,以什么樣的速度發(fā)送幀/包。當然,一定要確認介質(zhì)空閑才可以傳送幀/包。
如果連接是多點連接(也就是傳輸介質(zhì)是共享的),那么就要解決誰在什么時間可以發(fā)送多大數(shù)據(jù)量的問題。這是局域網(wǎng)環(huán)境中常出現(xiàn)的典型問題,通常由媒介存取控制(media access control,mac)協(xié)議解決。因此,在局域網(wǎng)中,數(shù)據(jù)鏈路層被分為兩個子層。其中,llc執(zhí)行常用的數(shù)據(jù)鏈路層功能,如錯誤控制和流量控制等。
概而言之,數(shù)據(jù)鏈路層具有以下功能。
尋址:添加包含相鄰節(jié)點物理地址的報頭和報尾,并在成功傳送消息后將其刪除。
流量控制:通過調(diào)整發(fā)送的數(shù)據(jù)量,來避免在接收方的緩沖區(qū)中寫入過多的內(nèi)容。
媒介存取控制:在局域網(wǎng)中,它可以決定由誰在什么時間發(fā)送多大的數(shù)據(jù)量。
同步:報頭包含指明幀到達接收方的時間的位。它還包括時序同步位,為了正確認出該位,它必須知道位的發(fā)送時間間隔。報尾除了包含錯誤控制位,還標識幀結(jié)束。
差錯控制:它會進行循環(huán)冗余碼(crc)校驗,以確保幀的正確性。如果出現(xiàn)幀錯誤,它就要求重新傳輸該幀。這里包含了多種方案(積極應(yīng)答、消極應(yīng)答、回退n步、滑動窗口等)。
節(jié)點之間的傳送:它最終負責(zé)整個幀/包可以無錯地傳送到下一個相鄰的節(jié)點(節(jié)點之間的傳送)。