Điều gì xảy ra khi 2 máy tính truyền cùng lúc với máy thứ 3 trong một công tắc song công hoàn toàn?


14

Hãy xem xét kịch bản sau đây:

Tôi có 2 PC (PC1 và PC2) muốn truyền cùng lúc tới PC3 trong một công tắc ethernet song công hoàn toàn. Chúng ta hãy xem xét rằng tất cả các cổng nằm trong cùng một Vlan, vậy điều gì xảy ra trong nội bộ chuyển đổi? Ai truyền đầu tiên cho PC3?

Tôi đã đọc trước đó rằng CSMA / CD đã được sử dụng, nhưng chỉ nó được sử dụng trong các phiên bản Ethernet trước đó hoạt động ở chế độ bán song công và mỗi cổng của công tắc là một miền va chạm và nếu 2 máy cố truyền cùng lúc thì một thuật toán được thực hiện để đưa ra thời gian ngẫu nhiên cho mỗi máy tính để truyền và giải quyết vấn đề va chạm. Tuy nhiên, trong một công tắc song công hoàn toàn tôi đọc được rằng khả năng va chạm đã được loại bỏ vì vậy, nếu 2 PC cố gắng truyền tải cùng một lúc, điều gì xảy ra bên trong công tắc? Công tắc có thực hiện một thuật toán để chọn ai truyền trước không?

Câu trả lời:


14

Công tắc sẽ tải đầy đủ các khung dữ liệu đến, từ hai hệ thống gửi, vào (các) bộ đệm của nó. Tôi không chắc chắn làm thế nào nó xác định khung hình nào sẽ là đầu tiên trong hàng đợi để chuyển tiếp tiếp theo; nhưng nó có thể dựa trên thời gian nhận ban đầu của đầu khung. Sau đó, công tắc hoạt động thông qua hàng đợi bộ đệm truyền gửi từng khung hình một đến cổng / phân đoạn đích.

Không có vấn đề gì với các khung "chạy vào nhau". Vấn đề thực sự là cổng / phân đoạn cuối cùng có thể chấp nhận các khung đủ nhanh không. (Và, tất nhiên, công tắc có thể xử lý bộ đệm / hàng đợi của nó đủ nhanh không.)


9
Vâng, có cắt qua và phân đoạn miễn phí chuyển đổi. Chủ yếu được sử dụng trong môi trường giao dịch tốc độ cao. Cắt qua sẽ bắt đầu truyền ngay khi biết DST MAC. Phân đoạn miễn phí đảm bảo rằng khung không phải là một mảnh va chạm vì vậy nó cần nhận 64 byte trước khi truyền.
Daniel Dib

2
Vâng, tôi nghĩ rằng điều đó sẽ được một số người gọi là chuyển tiếp cắt ngang, trái ngược với lưu trữ và chuyển tiếp. Theo cách tiếp cận, một công tắc có thể bắt đầu chuyển tiếp ngay khi nhận được và tra cứu MAC đích, nhưng các phương pháp lai tồn tại trong đó nó chờ thêm một chút nữa, ví dụ để có thể nhìn vào IP để kiểm tra ACL bên ngoài . (Trường Ethertype sẽ cho nó biết địa chỉ IP có trong khung).
Gerben

1
^^ ^ Cái này. Đây là lý do tại sao đá NE.
Craig Constantine

4
Vì không ai đề cập đến nó, nhược điểm để cắt qua là trường hợp kỳ lạ của lỗi khung. Mặc dù cắt giảm sẽ làm giảm độ trễ một chút trên khung ban đầu (khung càng lớn thì tác động này càng lớn), nó chuyển tiếp khung bất kể nếu khung có hợp lệ hay không vì không nhận được khung đầy đủ và có thể xác minh FCS . Lưu trữ và chuyển tiếp chuyển tiếp sẽ nhận được khung đầy đủ và có thể kiểm tra FCS trước khi chuyển tiếp, cho phép chúng thả các khung không hợp lệ.
YLearn

2
Hầu hết các thiết bị chuyển mạch chỉ dành cho cửa hàng và chuyển tiếp, việc cắt giảm đã quay trở lại vài năm trước, bởi vì nó dễ bán cho thế giới tài chính. lưu trữ và chuyển tiếp trên 10G gây ra độ trễ 1,2us, tức là 235m. Ngoài ra, đi vào và đi ra không thể khác tốc độ trên đường cắt.
ytti

6

Câu hỏi rất thú vị mà không may không có câu trả lời đúng duy nhất, vì giải pháp chính xác thay đổi từ phần cứng sang phần cứng.

Tuy nhiên, vấn đề này được thảo luận rõ ràng trong Mạng máy tính - Hệ thống hiển thị ở trang 232-232.

Điểm chính của giải pháp cho thiết kế có tên là 'Công tắc nắng' là bạn có đầu vào sơ đồ - bộ trộn - bẫy - bộ chọn == banyan === và có hộp trì hoãn kết nối bộ chọn với bộ trộn. Và tôi trích dẫn:

Khi có nhiều hơn l (kích thước ed của banyan) các gói được dành cho một đầu ra trong cùng một chu kỳ, chúng sẽ được tuần hoàn qua hộp trì hoãn và gửi lại cho công tắc trong chu kỳ tiếp theo.

Và xa hơn:

Mạng bẫy xác định các gói đó sẽ có thể thoát khỏi công tắc thông qua các banyans (tối đa l trong số chúng trên mỗi cổng đầu ra) và đánh dấu phần còn lại để tuần hoàn.


3

Sẽ luôn có một số khác biệt khi hai máy tính gửi đến máy thứ ba, trừ khi bạn đang làm bất cứ điều gì đặc biệt trên công tắc, nó sẽ được truyền trên cơ sở FIFO để khung hình nào đến trước sẽ được truyền trước.


1
Vì PC [23] nằm trên dây riêng của chúng, không có gì ngăn khung hình đến chính xác cùng lúc với độ chính xác của 'khoảnh khắc' (tần số) CTNH đang chạy. Tôi đoán đó là do nhà thiết kế ASIC chuyển đổi để quyết định điều gì để làm trong trường hợp đó, nhưng tôi đoán nó sẽ đọc khung của các cổng theo kiểu vòng tròn.
ytti

2
Điểm tốt, tôi đã được nhiều ý nghĩa rằng cơ hội của hai khung khi đến đúng thời đã khá thấp. Như bạn đã đề cập, nó có thể sẽ thuộc về thiết kế ASIC và tôi khá chắc chắn rằng nó sẽ không được ghi lại ở bất cứ đâu trừ khi bạn nhảy qua một loạt các vòng với nhóm tài khoản của bạn.
David Rothera

Người nào can thiệp trước sẽ thắng, giả sử tất cả những người khác bằng nhau.
generalnetworkerror

0

Chuyển tiếp một gói tại một thời điểm khi chúng vào chuyển đổi để không va chạm. Sau đó, PC3 sẽ xử lý các gói từ PC1 & PC2 chia thời gian cpu của nó. Cửa sổ và bộ đệm sẽ kiểm soát lưu lượng truyền thông.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.