PDA

View Full Version : Hỏi về CSMA/CD của Ethernet?



nqminh79
17-05-2004, 10:54 AM
Cho mình hoi 1 số câu hỏi như sau:

1. Nếu host1 đang truyền data bình thường, thì host2 có biết điều đó để tránh không, hay là host2 phải đợi đến khi Collision xảy ra thì mới biết (nghĩa là host2 cứ truyền để cho Col xảy ra) ? Nếu host2 cứ truyền để cho Col xảy ra (khả năng là vậy) thì nó tự phát hiện ra Col này, hay nó phát hiện ra Col nhờ vào Busy Signal gửi đến từ host1 ? Nếu nó tự phát hiện ra Col thì bằng cách nào, loopback ở host2 đóng vai trò gì, và Busy Signal của host1 (nếu có) trong trường hợp này vô nghĩa à ?
Nếu host2 cố truyền 15 lần nhưng đều thất bại (do Col) thì nó sẽ time out, và giao thông sẽ Pretty Clean (theo Sybex), vậy time out và pretty clean là gì ? Host2 khi đó sẽ phải tiếp tục chờ đợi ntn?Khi host1 đang truyền data thì nó vẫn tiếp tục nghe ngóng (examine the wire) xem có host khác nào bắt đầu truyền không (theo sách), vậy nó nghe ngóng bằng cách nào ? Nếu host2 bắt đầu truyền thì host1 sẽ phát hiện ra Col, vậy điều này ảnh hưởng gì đến việc truyền data của host1 ?
Khi đó host1 sẽ truyền Busy signal đến tất cả các hosts để thông báo về Col (theo sách), vậy trong trường hợp này chỉ có host1 là tự mình phát hiện ra Col (dùng loopback) phải không ? còn host2 biết Col dựa vào Busy signal của host1, vậy nó không dùng loopback để phát hiện Col à, tại sao ?
Việc host1 liên tục phải gửi Busy signal (vì các hosts khác cứ sau 1 khoảng thời gian lại thử truyền xem sao, dùng Backoff để xác định Delay) như thế ảnh hưởng thế nào đến giao thông mạng ?
2. Nếu vô tình cả host 1 và 2 cùng bắt đầu truyền data 1 lúc, thì chả nhẽ cả 2 cùng gửi Busy signal à ? Hay chỉ 1 host gửi, hay không host nào gửi (dùng loopback để tự phát hiện Col) ? Và
sau đó ai sẽ được phép truyền, hay cả hai đều nghỉ khoẻ (khả năng là vậy) ?
Thank you in advance for answering

VoThanhDuy
18-05-2004, 12:04 AM
Ý kiến của Duy như sau:

- Host 2 không có cách gì biết được là host 1 đang truyền. Host 2 sẽ cố gằng dò đường truyền (sense). Nếu host 1 đang truyền, collision sẽ xảy ra.
Loopback thông thường không liên quan đến hoạt động của CSMA/CD. Loopback tín hiệu thường chỉ được dùng cho mục đích kiểm tra.

- Nếu có collision xảy ra, cả hai host đêu tự động lùi lại một khoảng thời gian ngẫu nhiên (interframe gap).

cam on

ninhhn
18-05-2004, 10:21 AM
Chào anh Minh! Ý kiến của em là thế này:
Với giao thức CSMA/CD (hay còn gọi là loại giao thức điều khiển truy nhập đường truyền nondeterministic - đến trước phục vụ trước). Các phương tiện luôn luôn làm việc trong chế độ lắng nghe trước khi truyền (listen-before-transmit). Điều này đồng nghĩa với việc các thiết bị khi muốn gửi dữ liệu, phải tự check xem môi truờng truyền có bận không, nếu không bận, nó mới bắt đầu truyền dữ liệu. Thực chất của việc check này là dùng các tín hiệu sóng mang (carrier sense). Trong khi truyền dữ liệu nó sẽ detect xung đột (nhớ rằng chỉ trong khoảng thời gian đầu thôi nhé). Nếu hai trạm gửi dữ liệu tại cùng một thời điểm thì xung đột xảy ra. “Khi xung đột xảy ra mỗi thiết bị vẫn tiếp tục truyền trong một thời gian ngắn nữa để đảm bảo tất cả các thiết bị đều nhận biết được xung đột. Khi tất cả các thiết bị đã nhận biết được xung đột đang xảy ra, những thiết bị đang truyền sẽ gọi tới giải thuật backoff. Giải thuật này sinh ra cho mỗi thiết bị đang truyền một số ngẫu nhiên về mặt thời gian để có thể tiếp tục”, chính vì vậy trong cơ chế này không có bất cứ ưu tiên nào đối với từng loại thiết bị.

Trở lại với các câu hỏi của anh:
- Nếu host 1 đang truyền dữ liệu, lúc đó môi trường truyền sẽ bận, điều này đồng nghĩa với việc nếu host 2 muốn truyền, nó gửi tín hiệu sóng mang và nhận ra môi trường truyền đang bận, nên nó vẫn phải lắng nghe cho đến khi môi trường truyền rỗi thì mới đến lượt nó truyền. Xung đột xảy ra trong câu hỏi thứ 2 của anh.
- Trong câu hỏi thứ 2 anh cứ tưởng tượng, lúc này đường truyền đang rỗi, cả hai host 1 và 2 đều gửi các tín hiệu sóng mang để xác định trạng thái của môi trường và đều báo về môi trường đang rỗi. Và như vậy cả hai host đều sẵn sàng cho việc truyền dữ liệu và cùng truyền dữ liệu tại một thời điểm. Lúc này xung đột đã xảy ra. Đối với phương thức truy nhập đường truyền này nó sẽ có khả năng detect được xung đột (collision detect - CD) do tại điểm xung đột xảy ra biên độ của tín hiệu tăng cao. Qui trình tiếp theo như phần in nghiêng nằm trong cặp dấu “”ở trên.

Để hiểu rõ thêm anh xem thêm phần file ảnh kèm theo nói về qui trình đối với giao thức CSMA/CD.

http://vnpro.org/forum/download.php?id=652

dangquangminh
25-05-2006, 05:05 AM
Đặc tả Ethernet ban đầu có đề cập đến vấn đề collision có thể xảy ra trên LAN. Khi hạ tầng mạng là dùng chung, bất kỳ một tín hiệu điện này cũng được truyền dẫn trên đường dây cũng có thể xung đột với một tín hiệu của một thiết bị khác. Khi hai hoặc nhiều Ethernet frame chồng lấp lên đường truyền ở một thời điểm nào đó, collision xảy ra. Collision sẽ dẫn đến các lỗi bit và mất frame (bit error). Đặc tả của Ethernet định nghĩa thuật toán CSMA/CD (Carrier Sense Multiple Access with Collision Detection) để giải quyết collisions. CSMA/CD sẽ giúp giảm thiểu số collisions nhưng khi nó xảy ra, CSMA/CD sẽ chỉ ra việc các máy gửi dữ liệu sẽ nhận ra collision và truyền lại frame như thế nào. Các bước được liệt kê như dưới đây:

1. Một thiết bị có frame cần truyền sẽ lắng nghe đường truyền cho đến khi nào đường truyền Ethernet không còn bị chiếm.
2. Khi đường truyền Ethernet không còn bị chiếm, máy gửi bắt đầu gửi frame.
3. Máy gửi cũng bắt đầu lắng nghe để đảm bảo rằng không có xung đột xảy ra.
4. Nếu có xung đột, tất cả các máy trạm đã từng gửi ra frame sẽ gửi ra một tín hiệu nghẽn để đảm bảo tất cả các máy trạm đều nhận ra collision.
5. Sau khi tín hiệu nghẽn là hoàn tất, mỗi máy gửi của của những frame bị xung đột sẽ khởi động một bộ định thờI timer và chờ hết khoản thời gian này sẽ cố gắng truyền lại. Những máy không tạo ra collision sẽ không phải chờ.
6. Sau khi các thời gian định thời là hết, máy gửi có thể bắt đầu một lần nữa với bước 1.

wlansecu
25-05-2006, 08:09 AM
1. Một thiết bị có frame cần truyền sẽ lắng nghe đường truyền cho đến khi nào đường truyền Ethernet không còn bị chiếm.
1.

Thanks anh Minh
Thực ra mọi người đang phân vân ở đây là B1: Lắng nghe, Lắng nghe bằng cách nào, làm sao nó cảm nhận được có tín hiệu đang truyền, và làm sao nó biết được đó là tín hiệu của một nút khác đang truyền chứ không phải là tín hiệu nhiễu (nhiễu chứ không phải colision). Nó phân biệt bằng điện áp trên đường dây, hay bằng một gói tin thử...........
Anh có thể giải thích kỹ hơn giùm anh em không
Huy Bắc

saudoi
18-07-2006, 10:38 AM
Theo SD nghĩ thì nó dựa trên sự khác nhau giữa các mức điện áp để biết tình trạng của đường truyền.

quochoang2405
27-08-2006, 08:22 AM
Thực ra mọi người đang phân vân ở đây là B1: Lắng nghe, Lắng nghe bằng cách nào, làm sao nó cảm nhận được có tín hiệu đang truyền, và làm sao nó biết được đó là tín hiệu của một nút khác đang truyền chứ không phải là tín hiệu nhiễu (nhiễu chứ không phải colision). Nó phân biệt bằng điện áp trên đường dây, hay bằng một gói tin thử...........


:confused: em cũng đang thắc mắc đây.Ai giải thích giùm em đi.

hienrom
03-01-2008, 09:24 AM
"Để hiểu rõ thêm anh xem thêm phần file ảnh kèm theo nói về qui trình đối với giao thức CSMA/CD.

http://vnpro.org/forum/download.php?id=652"
tại sao minh truy cập địa chỉ này của bạn cho mà không được. Mình cũng đang muốn tìm tài liệu về CSMA/CD mà không tìm thấy, có ai có giúp mình với. Cảm ơn nhiều!

hienrom
03-01-2008, 09:33 AM
[QUOTE=dangquangminh;51722]Đặc tả Ethernet ban đầu có đề cập đến vấn đề collision có thể xảy ra trên LAN. Khi hạ tầng mạng là dùng chung, bất kỳ một tín hiệu điện này cũng được truyền dẫn trên đường dây cũng có thể xung đột với một tín hiệu của một thiết bị khác. Khi hai hoặc nhiều Ethernet frame chồng lấp lên đường truyền ở một thời điểm nào đó, collision xảy ra. Collision sẽ dẫn đến các lỗi bit và mất frame (bit error). Đặc tả của Ethernet định nghĩa thuật toán CSMA/CD (Carrier Sense Multiple Access with Collision Detection) để giải quyết collisions. CSMA/CD sẽ giúp giảm thiểu số collisions nhưng khi nó xảy ra, CSMA/CD sẽ chỉ ra việc các máy gửi dữ liệu sẽ nhận ra collision và truyền lại frame như thế nào. Các bước được liệt kê như dưới đây:
Em đã đọc một số bài của anh về CSMA/CD trên một số diễn đàn, nhưng đường link anh cho để loads tài liệu thì em vào không đc. Anh có thể giúp post lại lên blog tài liệu này được không? Cảm ơn anh nhiều

socolak50
26-03-2009, 09:00 AM
khi phát hiện xung đột thì tất cả các máy đang truyền sẽ dừng lại việc truyền tín hiệu 1 khoảng thời gian backoff.thế lúc đó 1 máy chuẩn bị truyền nó lắng nghe thì sẽ nghĩ là dg truyền rỗi vậy nó có truyền hoik ???

luancb
26-03-2009, 10:08 AM
khi phát hiện xung đột thì tất cả các máy đang truyền sẽ dừng lại việc truyền tín hiệu 1 khoảng thời gian backoff.thế lúc đó 1 máy chuẩn bị truyền nó lắng nghe thì sẽ nghĩ là dg truyền rỗi vậy nó có truyền hoik ???

Phải sau thời gian timer, thì các máy mới bắt đầu truyền bạn. Dù nó đang chuẩn bị hay ko, vì tín hiệu jam truyền đến tất cả các host.