Thứ Năm, 11 tháng 4, 2013

Link layer

Như đã biết, lớp mạng cung cấp dịch vụ giao tiếp giữa 2 hosts, con đường giao tiếp tồn tại các chuỗi communication links, bắt đầu tại source host, đi qua một series các router, và kết thúc tại destination host. Chúng ta tiếp tục đi sâu xuống trong protocol stack, từ network layer đến link layer. Chúng ta tự hỏi rằng làm thế nào các packets có thể gửi thông qua individual links  những thứ tạo nên end-to-end communication path. Làm thế nào để network-layer datagrams được đóng gói trong link-layer frames với mục đích vận chuyển thông qua single link ? Hay là các link-layer protocols có thể cung cấp router-router reliable data transfer ? Có thể có các link-layer protocols khác nhau được sử dụng trong các links khác nhau dọc theo communication path ?

Khi thảo luận về link-layer, chúng ta sẽ tìm ra hai kiểu link-layer channels cơ bản khác nhau. Kiểu đầu tiên bao gồm broadcast channels, những gì dễ dàng nhìn thấy trong local area networks (LANs), wireless LANs, các mạng vệ tinh, và hybrid-coaxial cable (HFC) access networks. Đối với broadcast channel, nhiều hosts được kết nối tới cùng một communication channel, và medium access protocol là cần thiết để phối hợp transmissions và tránh collisions giữa các transmited frames. Kiểu thứ hai của link-layer channel đó là point-to-point communication link, giống như là giữa 2 routers hay là giưa residential dial-up modem và ISP router. 

Link Layer : Introduction and Services

Đầu tiên chúng ta sẽ định nghĩa một vài thuật ngữ. Ta gọi các hosts và các routers như là các nodes. Chúng ta còn refer đến communication channels những gì kết nối các nodes liền kề dọc theo communication path là các links. Để cho datagram được transfered trừ source tới des, nó phải được moved trên mỗi individial links trong end-to-end path. Trên một given link, transmiting node đóng gói datagram trong link-layer frame và transmits frame trong link, receiving node sau đó nhận frames và extracts datagram.

Các dịch vụ cung cấp bởi Link Layer
link-layer protocol được dùng để move datagram trên một individial link. link-layer protocol định nghĩa format của packets trao đổi giữa các nodes tại hai đầu của link, cung như là các actions tạo bởi các nodes khi packets được gửi đi và nhận về. Đơn vị của dữ liệu trao đổi bởi link-layer protocol được gọi là frames, mỗi link-layer frame đóng gói network-layer datagram. Chúng ta sẽ xem xét sơ lược về các hành động diễn ra bởi link-layer protocol khi sending và receiving frames bao gồm : phát hiện lỗi, truyền lại, điều khiển luồng, và truy cập ngẫu nhiên. Các ví dụ của link-layer protocols bao gồm Ethernet, 802.11, wireless LANs, token ring, và PPP. 

Trái ngược với network layer có một end-to-end job của việc moving transport-layer segments từ source host đến destination host, link-layer protocol đơn giản hơn, node-to-node job của việc di chuyển network-layer datagrams thông qua một single link trong path. Một đặc điểm quan trọng của link-layer đó là một datagram có thể được carried bởi các link-layer protocols khác nhau trên các links khác nhau trong path. Cho ví dụ, một datagram có thể được carried bởi Ethernet trên first link, PPP trên last link, và link-layer WAN protocol trong intermediate links. Điều quan trọng để note là services cung cấp bởi các link-layer protocols khác nhau along end-to-end path có thể là khác nhau. Cho ví dụ một vài link-layer protocols cung cấp vận chuyển tin cậy trong khi một số khác lại không cung cấp. Do đó network-layer phải có thể hoàn thành end-to-end job của nó khi có sự hiện diện của tập hợp individial link-layer service không đồng nhất.

Để có thể có được insight về link layer  và cách nó liên quan với network layer. Hãy suy ngẫm về transporation analogy. Một travel agen tổ chức một trip cho khách du lịch đi từ Princeton, New Jersey, đi đên Lausanne và Switzerland. Hãng du lịch này quyết đinh chở khách đi từ Princeton đên JFK aiport bằng xe limousine, sau đó từ JFK airport đi máy bay tới Geneva's airport và dùng train để đi tới Lausanne. travel agent sẽ make 3 reservations, một cái chịu trách nhiệm để đưa tourist từ Princeton đến JFK, một airplane company chịu trách nhiệm trong chặng đường từ JFK đến Geneva, và Swiss train chịu trách nhiệm cho việc đưa tourist từ Geneva đến Laussane. Mỗi trong 3 segments của trip là "direct " giữa  2 "adjacent " locations. Chú ý rằng 3 transporation segment được quản lý bởi các công ty khác nhau và sử dụng các transporation modes khác nhau (limousine, plane, train). Mặc dù transporation modes là khác nhau nhưng nhiệm vụ chính của chúng vẫn là vận chuyển tourist từ một location đến location hàng xóm. Trong transporation analogy, tourist là datagram, transporation segment là communication link, transporation mode là link-layer protocol và travel agent là routing protocol.

Mặc dù dịch vụ cơ bản của bất cứ link layer là move datagram từ một node này tới node cận kề nó thông qua một single communication link. Các chi tiết của việc cung cấp dịch vụ có thể khác nhau giữa một link layer  protocol với link layer tiếp theo. Các dịch vụ có thể được cung cấp bởi link-layer protocol bao gồm:
* Framing: hầu hết các giao thức link layer đóng gói mỗi network-layer datagram vào trong link-layer frame trước khi transmission trên một link. Frame chứa data field, những gì mà network-layer datagram được chèn vào, và một số lượng header fields. Cấu trúc của một frame được xác định bởi link-layer protocol. (Frame có thể còn chứa trailer fields; tuy nhiên chúng ta refer cả header và trailer fields như header fields).
* Link access: medium access control (MAC) protocol xác định các luật quy định đối với những frame được transmitted trên link. Đối với point to point links chúng ta có single sender tại một bên của link và single receiver phía còn lại. MAC protocol là đơn giản, sender có thể gửi frame bất cứ khi nào link là idle. Điều hấp dẫn hơn đó là khi nhiều nodes chia sẻ chung một single broadcast link thế nên được gọi là mutiple access problem. Lúc này, MAC protocols phục vụ để phối kết hợp frame transmissions của nhiều nódes.

* Reliable delivery: khi một link-layer protocol cung cấp dịch vụ truyền tải đáng tin, nó đảm bảo rằng truyền tải mỗi network-layer datagram thông qua link mà không bị lỗi. Nhắc lại về TCP, TCP cũng cung cấp dịch vụ truyền tải đáng tin cậy. Tương tự dịch vụ truyền tải đáng tin cậy lớp transport, link-layer reliable dilivery service thường có được những sự báo nhận hay truyền lại. link-layer reliable delivery service thường được sử dụng cho các links truyền tải với tỉ lệ lỗi cao, ví dụ như wireless link, với những thành quả của việc correcting error locally- trên một link nơi xảy ra lỗi. hơn là forcing end-to-end retransmission của dữ liệu như bởi các giao thức lớp ứng dụng hay là truyền tải. Tuy nhiên, link-layer reliable delivery có thể tạo ra những chi phí không cần thiết cho các links có tỉ lệ bit lỗi thấp, bao gồm fiber, coax, và nhiều twisted pair cooper links. Chính vì lí do này, nhiều giao thức link-layer cho mạng có đây không cung cấp dịch vụ vận chuyển tin cậy.

*Flow control: Các nodes tại mỗi bên của link có bộ đêm frame giới hạn. Nó liên quan khi receiving node có thể nhận frames ở tốc độ cao hơn với tốc độ xử lý của nó. Nếu không có flow control, receiver's buffer có thể overflow và frames có thể bị mất. Tương tự như transport layer, link-layer protocol có thể cung cấp điều khiển luồng để ngăn node gửi tại một phía của link overwhelming receiving node node phía bên kia.

* Error Detection: link-layer hardware trong receiving node có thể quyết định sai rằng một bit trong frame là 0 trong khi nó được transmitted như bit 1, và ngược lại. bit erros có thể  là do các tín hiệu  và nhiễu điện. Bởi vì không cần để forward một datagram mà có lỗi trong đó, nhiều link-layer protocols cung cấp cơ chế để tìm ra các bit errors như thế. Nó được thực hiện bởi việc có transmitting node bao gồm error-detection bits trong frame và receiving node perform error check.  Nó giống như internet checksum trong lớp mạng. Error detection thường phức tạp hơn và được implemented bởi hardware.

* Error correction : error correction là tương tự với erroe detection, ngoại trừ việc receiver không chỉ detects khi có bit errors xảy ra trong frame mà còn xác định chính xác tại đâu trong frame có lỗi xảy ra (và sau đó correct các lỗi đó.). Một vài protocols cung cấp link-layer correction cho packet header hơn là toàn bộ packet.

* Half-duplex và full duplex. với full-duplex transmission, các nodes ở cả 2 bên của link có thể transmit packets tại cùng một thời điểm. với half-duplex, một node không thể không transmit và receive tại cùng một thời điểm.

Chúng ta có thể nhận thấy rằng nhiều dịch vụ cung cấp bởi link-layer là tương tự như các dịch vụ cung cấp bởi transport-layer. Cho ví dụ, có link-layer và transport-layer đều cung cấp dịch vụ đánh tin cậy. Mặc dù cơ chế sử dụng để cung cấp reliable delivery trong 2 layers là tương tự, 2 dịch vụ truyền tải là không giống nhau. transport protocol cung cấp dịch vụ tin cậy cho các segments giữa 2 processes trên end-to-end basis; còn đối với link-layer protocol đó là truyền tải frames giữa 2 nodes được kết nối trên single link. Tương tự, có link-layer và transport  protocols có thể cung cấp điều khiển luồng và phát hiện lỗi, đối với transport layer thì các dịch vụ này được thực hiện trên end-to-end basis, trái lại link-layer cung cấp các dịch vụ trên node-to-adjacent-nod

Không có nhận xét nào:

Đăng nhận xét