Vous êtes sur la page 1sur 2

Căn bản về Ethernet :

trang này đã được đọc lần

Ethernet (bài này viết tắt là Ethe cho dễ) là một trong nhiều dạng network và là dạng được
dùng phổ biến nhất hiện nay. Trong mạng Ethe, các máy được nối trực tiếp với cáp chung
(common media access) theo mô hình sau:

| Máy 1 Máy 2 Máy 3...


| | | |
|---------+--------------+--------------+----... <--- cáp chung
|
|-------------------...

Tầm hoạt động của mạng ethe không lớn. Mỗi máy có thể kết nối vào dây chung ở tầm 400m
(có thể lên tới 2000m hoặc 4000m). Nếu muốn kết nối xa hơn thì phải có những trạm truyền
tiếp (hub, repeater, switch, router, ...). Tốc độ truyền của ethe cũng khá cao. Hiện nay thường
dùng 100Mbps (FastEthernet) và cũng có 1000Mbps (GigaEthernet).

Đó là lý do tại sao ethe là mạng dùng CSMA/CD (carrier sense media access/collision detection)
để hiểu xem mạng có rỗi mà truyền thông tin không. Vì ethe dùng chung cáp nên mỗi máy
trước khi gửi tín hiệu phải xem coi cáp chung có rỗi hay không. Mỗi máy sẽ lắng nghe tín hiệu
của dây chung để biết lúc nào dây chung rỗi hay lúc nào đang bận. Nếu mạng đang bận, máy
đó sẽ phải chờ (thường là vào khoảng 7 đến 10 ms) rồi lắng nghe lại. Giả sử cùng lúc mạng
đang rỗi mà có 2 máy đồng thời gửi tín hiệu, sẽ xảy ra hiện tượng tín hiệu bị chuyển sai lệch
hoặc tín hiệu này chồng lên tín hiệu khác gọi là collision (sự va chạm). Phát hiện ra điều đó, 2
máy sẽ chờ một thời gian ngẫu nhiên. Nếu vô tình thời gian chờ ngẫu nhiên của 2 máy chênh
nhau không nhiều, collision lại xảy ra thì thời gian chờ của 2 máy sẽ gấp đôi thời gian chờ ban
đầu. Lần thứ 3 sẽ gấp 4, lần thứ 4 sẽ gấp 8... Lặp lại như vậy sẽ dẫn tới việc một máy sẽ gửi tín
hiệu đi trước và máy khác đợi tới lượt mình sau. Đó là ý tưởng của carrier sense media access
và collision detection.

Cũng chính vì lý do dùng chung cáp nên mọi thông tin gửi đi từ một máy sẽ chạy khắp nơi trên
mạng. Việc nhận hay bỏ (accept hay discard) sẽ do NIC (network interface card, card giao tiếp
mạng) đảm nhận. Đôi khi, việc này sẽ do chương trình đảm nhận (nhiều card mạng không
discard các tín hiệu không phải dành cho mình mà tin tưởng vào chương trình sẽ không nhận
các tín hiệu đó). Giả sử máy A gửi tín hiệu cho máy B trong cùng mạng. Máy C, nếu ở trong
cùng mạng đó, cũng sẽ nhận được tín hiệu do máy A gửi. Vậy thì làm sao máy 2 máy có thể gửi
thông tin cho nhau?

Vấn đề này được giải quyết ở lớp Data link (không biết dịch ra sao, data link layer). Đọc thêm
về chuẩn ISO OSI để hiểu thêm về 7 lớp OSI. Data link layer có một sublayer gọi là Media
Access Control (MAC) sublayer. Lớp này làm nhiệm vụ nhận và chuyển tín hiệu vào cáp chung
dựa trên địa chỉ card mạng.

Địa chỉ card mạng hay còn được gọi là MAC address là một chuỗi 6 byte, phân ra làm 2 phần.
Phần đầu tiên gồm 3 byte, được quy định bởi IEEE (Institute of Electrical & Electronics
Engineers) cho nhà sản xuất. Mỗi nhà sản xuất sẽ có 3 byte riêng biệt. Ví dụ IBM có 3 byte
khác với 3COM. Phần thứ 2 gồm 3 byte cuối, do nhà sản xuất quyết định. Ví dụ địa chỉ MAC
FF.00.FF.E0.01.56 thì phần xác định nhà sản xuất là FF.00.FF, phần xác định card là E0.01.56.
Với các chia địa chỉ MAC như vậy sẽ không có một card mạng nào có địa chỉ MAC trùng với một
card nào trên thế giới. Do đó, khi một máy trong mạng ethe gửi thông tin đến máy khác, máy
đó dùng địa chỉ MAC của máy kia. Máy nhận so sánh địa chỉ MAC được gửi đi với địa chỉ MAC
của card mình. Nếu là thông tin gửi cho mình thì hai địa chỉ đó sẽ giống nhau và máy nhận
nhận thông tin đó. Nếu không phải, máy nhận sẽ bỏ qua, không xử lý (trên lý thuyết).

Một máy (máy thứ nhất) muốn biết địa chỉ MAC của máy khác (máy thứ hai) sẽ gửi thông điệp
ARP (Address Resolution Protocol, Giao thức tra cứu địa chỉ, từ IP ra MAC, từ MAC ra IP sẽ dùng
RARP, Reverse Address Resolution Protocol) đi khắp subnet nếu máy thứ đó biết máy thứ hai ở
trong cùng subnet. Máy thứ hai sẽ trả lời máy thứ nhất với địa chỉ MAC của mình và cũng lưu
lại địa chỉ MAC của máy thứ nhất để dùng cho sau này. Mô hình như sau (ví dụ cho IP, các giao
thức khác cũng tương tự):

Máy 1: IP 1.1.1.1, MAC: 00.FF.FF.00.00.03


Máy 2: IP 1.1.1.2, MAC: 05.FF.0E.00.05.04

Tôi có địa chỉ MAC 00.FF.FF.00.00.03. Ai có IP 1.1.1.2 thì trả lời.


Máy 1 ----------------------------------------------------------> Toàn subnet (multicast)
Tôi có IP 1.1.1.2 với địa chỉ MAC 05.FF.0E.00.05.04.
Máy 2 ----------------------------------------------------------> Máy 1

Trong khi đó, máy 2 cũng lưu lại địa chỉ MAC 00.FF.FF.00.00.03 của máy 1 để dùng lại sau này.

Sau khi đã biết được địa chỉ MAC của nhau, việc gửi thông tin có thể được tiến hành