Network [CHAP-06]Link layer(tầng liên kết) và LANs(phần 1)

Mục lục​
I. Giới thiệu
1. Các dịch vụ cung cấp bởi tầng liên kết
2. Tầng liên kết được triển khai ở đâu?
II. Kĩ thuật phát hiện lỗi và sữa lỗi
1. Kiểm tra Parity
2. Kiểm tra checksum
3. Cyclic Redundancy Check (CRC)
III. Multiple Access Links và Protocol
1. Các giao thức chia kênh
2. Các giao thức truy cập ngẫu nhiên
3. Các giao thức luân phiên
4. DOCSIS: Giao thức tầng liên kết cho truy cập Internet bằng cáp
IV. Local Area Networks
1. MAC Address
2. ARP
3. Gửi một datagram khác subnet
4. Ethernet
5. Link-layer Switches
V. Virtual Local Area Networks(VLANs)
VI. Tổng kết


Khi nói về tầng liên kết, sẽ có hai loại kênh liên kết cơ bản khác nhau. Loại đầu tiên là kênh broadcast, kết nối nhiều host trong mạng LAN không dây, mạng vệ tinh và hybrid fiber-coaxial cable (HFC). Vì nhiều host kết nối với cùng một kênh broadcast, nên cần một giao thức truy cập để điều phối việc truyền frame(gói tin ở tầng liên kết). Loại kênh thứ hai là point-to-point, thường được thấy ở giữa hai router được kết nối bằng một liên kết đường dài, hoặc giữa máy tính văn phòng và Ethernet switch được kết nối gần đó. Do chapter này khá dài nên mình sẽ chia thành các phần khác nhau.​

I. Giới thiệu


Bắt đầu với một số thuật ngữ quan trọng. Các thiết bị chạy giao thức tầng liên kết được gọi là node(Router, switches, Wifi access point). Kênh truyền thông và kết nối các node lại với nhau được gọi là link(liên kết), có thể là liên kết có dây, không dây, LANs. Để các datagram(gói tin của tầng network) được vận chuyển từ host A sang host B, nó cần được di chuyển qua các liên kết riêng lẻ trong đường dẫn end-to-end. Trên một liên kết, một node đóng gói datagram trong một frame(gói tin của tầng liên kết) và truyền frame vào liên kết đến node tiếp theo.​

1. Các dịch vụ cung cấp bởi tầng liên kết



Mặc dù dịch vụ cơ bản của tầng liên kết là di chuyển các datagram từ một node đến một node liền kề trên một liên kết, nhưng chi tiết của dịch vụ có thể khác nhau dựa vào các giao thức của tầng liên kết. Bao gồm:​
  • Framing(Đóng khung) Có nhiệm vụ là đóng khung các datagram tầng mạng trong một frame trước khi truyền qua liên kết. Một frame bao gồm một trường dữ liệu, trong đó datagram được chèn vào, kết hợp với một header của tầng liên kết. Cấu trúc của frame được xác định dựa trên giao thức ở tầng liên kết sử dụng.​
  • Link access medium access control(MAC) là giao thức chỉ định các quy tắc mà một frame được truyền trên một liên kết. Đối với các liên kết point-to-point, sender(bên phát) duy nhất ở một đầu liên kết và receiver(bên thu) ở đầu kia của liên kết, các giao thức MAC rất đơn giản(hoặc không tồn tại), bên phát có thể gửi một frame bất cứ khi nào khi liên kết rảnh rỗi. Trong trường hợp, nhiều node chia sẻ một liên kết broadcast duy nhất(truy cập đa điểm-multiple access), giao thức MAC dùng để điều phối việc truyền frame trên nhiều node.​
  • Reliable delivery(truyền tin cậy) Với mục đích chính là đảm bảo mỗi datagram đi qua liên kết không có lỗi. Giao thức TCP ở tầng vận chuyển cũng cung cấp tính năng truyền tin cậy bằng cách xác nhận và gửi lại, ở tầng liên kết tính năng truyền tin cậy này là phát hiện lỗi và sửa lỗi. Tuy nhiên, truyền tin cậy ở tầng liên kết có thể được coi là không cần thiết cho các liên kết có tỉ lệ lỗi bit thấp(sợi quang, đồng trục), vì vậy một số liên kết có dây không cung cấp dịch vụ này.​
  • Error detection and correction(Phát hiện lỗi và sửa lỗi) Như đã nói ở trên, tầng liên kết sử dụng phần cứng để có thể quyết định bit nào sai. Các lỗi bit, thường là do các kết nối không dây khi có thể bị giảm tín hiệu hoặc nhiễu điện từ. Các giao thức tầng liên kết cung cấp cơ chế để phát hiện các lỗi bit như vậy. Bằng cách thêm vào frame các bit kiểm tra. Sửa lỗi tương tự như phát hiện lỗi, trừ việc một bộ thu không chỉ phát hiện khi có lỗi bit xảy ra trong frame mà còn xác định chính xác vị trí lỗi xảy ra trong frame (và sau đó sửa chữa các lỗi này).​

2. Tầng liên kết được triển khai ở đâu?



Ở một số Ethernet cũng có tích hợp vào trong motherboard hoặc chip chuyên dụng cho Ethernet giá rẻ. Tầng liên kết chủ yếu được triển khai trong một chip chuyên dụng gọi Network adapter (đôi khi gọi là network interface controller-NIC) hoặc bộ điều khiển interface mạng. NIC chịu trách nhiệm thực hiện các chức năng chính của tầng liên kết như đóng gói frame, truy cập liên kết và phát hiện lỗi.
1723918107471.png

- Bên gửi: Đóng gói datagram vào frame, thêm các bit kiểm tra lỗi. Bên nhận: Tìm lỗi, trích xuất datagram và chuyển lên tầng network.
- Tuy nhiên, một phần của tầng liên kết cũng được triển khai bằng phần mềm chạy trên CPU của máy host. Phần mềm này quản lý các chức năng cấp cao hơn của tầng liên kết như lắp ráp thông tin địa chỉ tầng liên kết và kích hoạt phần cứng điều khiển.
1723918114627.png

II. Kĩ thuật phát hiện lỗi và sữa lỗi


Mặc dù tầng vận chuyển cũng có cơ chế tương tự, nhưng tầng liên kết thường sử dụng các kỹ thuật đơn giản hơn để phát hiện lỗi. Các kỹ thuật phát hiện lỗi có thể không phát hiện được tất cả các lỗi, do đó, xác suất lỗi không được phát hiện cần được giảm thiểu. các kĩ thuật bao gồm kiểm tra Parity, kiểm tra checksum, Cyclic Redundancy Check (CRC).​

1. Kiểm tra Parity(chẵn lẻ)



1723918157931.png

- Cách đơn giản nhất phát hiện lỗi là sử dụng một bit chẵn lẻ. Giả sử cần gửi một gói tin D, có d bit dữ liệu và một bit chẵn lẻ. Tổng bit trong D phải là số chẵn(bao gồm d bit dữ liệu và một bit chẵn lẻ ) thì gói tin D không lỗi. Cách này còn được gọi là kiểm tra 1 chiều.
- Nhưng cách này có thể quá đơn giản và chỉ có thể phát hiện được lỗi, nếu có số lẻ bit trong d lỗi. ví dụ: khi có chẵn bit lỗi như 2 bit lỗi thì tổng vẫn là số chẵn và gói tin D tuy lỗi nhưng được phát hiện là không lỗi.
1723918207565.png

- Để khắc phục được lỗi này người ta làm ra kiểm tra bit chẵn lẻ hai chiều. Cách này vừa có thể phát hiện lỗi vừa có thể sửa lỗi.
1723918226158.png

- Tương tự với kiểm tra 1 chiều, kiểm tra 2 chiều cũng kiểm tra xem tổng của một hàng và một cột có phải là chẳn hay không. Trong trường hợp, tổng 1 cột là chẳn nhưng tổng 1 hàng là lẻ thì gói tin D bị lỗi.
- Tuy nhiên cách kiểm tra chẵn lẻ này, có thể gây ra lỗi trong kiểm tra nhưng rất là hiếm hầu như là lỗi hết cả gói thì mới check không ra.​

2. Kiểm tra checksum



- Mục tiêu của phương pháp này là phát hiện lỗi trong các segment(đoạn dữ liệu được phân ra) được truyền đi.
- Cách hoạt động chính là bên gửi xử lý nội dung của segment(bao gồm header và IP) dưới dạng các chuỗi số nguyên 16 bit. Checksum cộng( tổng bù 1) các đoạn nội dung của segment lại, giá trị checksum sẽ được ghi vào trường checksum của UDP.
- Bên nhận tính toán checksum của segment nhận được, kiểm tra checksum tính toán được có bằng giá trị của segment trong checksum hay không. Nếu bằng có thể không có lỗi, nếu không bằng chắc chắn có lỗi.
1723918379568.png

3. Cyclic Redundancy Check (CRC)


- Đây là phương pháp phát hiện lỗi tốt, được sử dụng trong các mạng máy tính ngày nay. Do phương pháp này khá phức tạp mình sẽ giải thích theo sự hiểu của mình.
- Đầu tiên về thành phần trong gói tin mình sẽ chia ra 3 phần:​
  • D: là dữ liệu muốn gửi(có sẵn).​
  • CRC: là dữ liệu dùng để check(chúng ta tính).​
  • PR: là loại CRC chúng ta sử dụng được xác định dựa trên D(có sẵn các bạn có thể tham khảo kiểu các công nghệ sử dụng crc qua link này mục polynomial representations Cyclic redundancy check - Wikipedia).​
- Tiếp theo, để tính CRC:​
  • Bước 1: thêm vào D một chuỗi r-bit 0 (với r là số lượng bit PR – 1 đây cũng là số lượng bit của CRC).​
  • Ví dụ: D là chuỗi 101001. PR là 1011 thì r là 3 bit và gọi D sau khi thêm r-bit 0 là D’ có dữ liệu 101001000.​
  • Bước 2: ta bắt đầu tính D’ XOR PR, nếu tính từ bit đầu tiên đến bit cuối cùng nếu có bao nhiêu bit không thì hạ xuống bấy nhiêu bit D’.​
  • Bước 3: lặp lại bước 2, kết thúc khi đến bit D’ cuối cùng và lựa chọn số bit bằng bit của CRC.​
  • Bước 4: gắn CRC và PR vào D rồi gửi đi đến node tiếp theo.​
1723918512200.png

- Bên nhận, dùng D XOR PR nếu dư 0 thì gói tin không có lỗi, có lỗi khi số dư khác 0.
1723918558428.png
 

Attachments

  • 1723918480115.png
    1723918480115.png
    124.6 KB · Views: 0
Last edited:

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu