Bộ điều hợp mạng có đọc các bit đến trong một luồng không?


9

Khi một bộ điều hợp mạng Gigabit đang nhận dữ liệu, làm thế nào để nhận được các bit? Có phải nó đang nhìn thấy tất cả trong một luồng 0 và 1 không? Hoặc bằng cách nào đó có nhiều luồng 0 và 1 đến cùng một lúc?

Ví dụ ... giả sử có hai thiết bị gửi và một thiết bị nhận.

Thiết bị 1 và 2 bắt đầu gửi dữ liệu mạng đến Thiết bị 3 cùng một lúc.

Giả định của tôi là theo quan điểm của Bộ điều hợp mạng của Thiết bị 3, tất cả 0 và 1 đều xuất hiện trong một luồng dữ liệu. Nó có thể tìm ra dữ liệu nào từ Thiết bị 1 hoặc 2, nhưng dữ liệu vẫn chỉ là một luồng hàng triệu / tỷ bit.

Tôi hoàn toàn sai sao? :)


1
Bạn có nghĩa là cho một kết nối bán song công, hoặc sử dụng toàn bộ song công? Không bao giờ có bất kỳ thiết bị bán song công nào cho 1000Base-T, mặc dù nó vẫn nằm trong tiêu chuẩn đó. Với kết nối song công hoàn toàn, sẽ không có khung từ hai thiết bị tranh giành thiết bị thứ ba cùng một lúc trên liên kết.
Ron Maupin

song công hoàn toàn. OK, vì vậy, vẫn sẽ có một luồng 0 và 1 (ví dụ: 01010101010001010010101001010100001101011010) và từ quan điểm của Thiết bị 3 (máy thu), trong khi Thiết bị 1 và 2 có thể thay đổi luồng đó, đang gửi 0 và 1 cùng một lúc, phải không?
shihku7

Có câu trả lời nào giúp bạn không? Nếu vậy, bạn nên chấp nhận câu trả lời để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời. Ngoài ra, bạn có thể cung cấp và chấp nhận câu trả lời của riêng bạn.
Ron Maupin

Câu trả lời:


14

Nó phụ thuộc.

Trong khi nhiều PHY Ethernet truyền dữ liệu theo kiểu hoàn toàn nối tiếp (ví dụ 100BASE-TX, 1000BASE-SX, 10GBASE-SR), một số phân chia luồng dữ liệu thành nhiều làn được truyền song song.

Thông thường nhất, 1000BASE-T - biến thể gigabit-over-Copper phổ biến - chia luồng dữ liệu được mã hóa thành bốn làn và truyền riêng rẽ trên một trong bốn cặp xoắn trong cáp Cat-5. Tất cả các biến thể cặp xoắn từ gigabit trở lên đều sử dụng bốn làn này.

Một số PHY sợi tốc độ cao (10G +) cũng sử dụng nhiều làn trên tối đa mười sáu sợi (với sợi đa chế độ và phạm vi ngắn) hoặc bước sóng (với sợi đơn chế độ và tầm xa).

Tuy nhiên, mọi thứ được truyền trong các khung mà mỗi khung chạy từ một nguồn đến một đích duy nhất. Khung nói chung là nguyên tử, tức là. chúng luôn được truyền đi trong một mảnh Mỗi khung chỉ vận chuyển dữ liệu từ một kết nối / ứng dụng cụ thể. Tiêu đề của nó chứa địa chỉ nguồn và đích, vì vậy nó có thể tìm đường đi qua mạng.

Khi mạng nhận được hai khung hình từ các nguồn khác nhau cho cùng một cổng đích cùng một lúc, một trong các khung cần được xếp hàng cho đến khi cổng chuyển đổi về đích đã truyền xong khung đầu tiên.

Điều này giả định rằng các nguồn và đích chạy ở cùng một tốc độ không nhất thiết là đúng. Bạn có thể có một máy chủ tệp được kết nối bởi liên kết 1 Gbit / s và mười máy khách mỗi máy chủ gửi tốc độ tối đa trên các liên kết 100 Mbit / s của chúng mà không có hàng đợi (đáng kể). Điều này hơi gần với đề xuất "nhiều luồng" của bạn, chỉ có điều các luồng này được xen kẽ ở mức khung hình, không phải mức bit.

Tốc độ trên một cổng mạng có thể là hàng ngàn hoặc thậm chí hàng triệu khung hình trong một giây, do đó, từ góc độ con người, không thể phân biệt nhiều luồng - tất cả dường như là 'đồng thời'.


Vui lòng kết hợp với người trả lời khác @jonathanjo và tìm ra mô tả nào về 1000Base-T là chính xác.
davidbak

1
"cùng một phương tiện" của jonathanjo đang mô tả một miền va chạm đa lõi không (thực tế) tồn tại với Gigabit Ethernet và cũng đã lỗi thời với 10/100 Mbit.
Zac67

2
@davidbak dường như tất cả đều đúng ở đây với tôi - Zac thường là vậy! - chỉ nhấn mạnh khác nhau. Tôi đã sửa một vài điều trong câu trả lời của mình, bao gồm cả việc làm rõ các va chạm không xảy ra trong 1000baseT thực tế.
jonathanjo

2
Do đó, bạn cũng phải thêm PAM16 và các bảng mã tương tự làm cho nhiều bit cơ bản đến một.
PlasmaHH

1
@PlasmaHH 1000BASE-T đã sử dụng bốn làn và PAM5, do đó, có khoảng 9,3 bit thô trong mỗi bước đồng hồ (và tất nhiên là 8 bit "người dùng" ở mức 125 MBd cho L1).
Zac67

13

Bây giờ chúng ta hãy bỏ qua phần Gigabit và tập trung vào phần "2 thiết bị đang gửi cùng lúc" một chút.

Trên phương tiện truyền thông chia sẻ , điều này thực sự có thể xảy ra và là một vấn đề. Hầu hết các truyền dẫn không dây là phương tiện được chia sẻ và Ethernet, trước đây, được sử dụng là:

  • 10base2 (dỗ) đã sử dụng những gì nhiều hơn hoặc ít hơn một cáp với mỗi cáp trên đó. Rõ ràng, hai (hoặc nhiều) trạm có thể truyền cùng một lúc;
  • 10baseT100baseT (dựa trên cặp xoắn), với các hub (thay vì các công tắc) cũng có nghĩa là hai (hoặc nhiều) trạm có thể truyền cùng một lúc, vì tín hiệu nhận được từ bất kỳ thiết bị được kết nối nào chỉ được lặp lại cho tất cả các thiết bị khác.

Bây giờ, nếu hai thiết bị đang gửi cùng một lúc, hai điều có thể xảy ra:

  • bạn sử dụng một số hình thức ghép kênh (phân chia thời gian, phân chia tần số ...) cho phép các "kênh" riêng biệt để người ta có thể nghe một kênh cụ thể và không bị làm phiền bởi những kênh khác. Điều này được sử dụng rất nhiều cho truyền dẫn không dây, ít hơn nhiều cho truyền có dây (WDM / DWDM trên các sợi là một ngoại lệ).

  • hoặc nếu hai hoặc nhiều thiết bị gửi cùng một lúc trên cùng một kênh, thì bạn sẽ nhận được cái được gọi là xung đột : như khi hai người nói cùng một lúc, bạn không thể hiểu những gì nói, thiết bị nhận không phải là có thể giải mã dữ liệu được gửi bởi bất kỳ thiết bị nào (hoặc thường xuyên hơn, họ có thể giải mã nó, nhưng nó không có ý nghĩa và sẽ không vượt qua kiểm tra CRC).

Đây là nơi các chương trình như CSMA-CD (Carrier-Sense Nhiều quyền truy cập, Phát hiện va chạm) xuất hiện:

  • Trước khi thử truyền, một thiết bị sẽ kiểm tra xem có ai khác đang gửi không (ý nghĩa của nhà mạng)
  • Nếu kênh miễn phí, nó bắt đầu truyền.
  • Nhưng ngay cả với điều đó, hai thiết bị có thể khởi động cùng một lúc, do đó bạn vẫn có thể xảy ra va chạm.
  • Để tránh lãng phí quá nhiều thời gian trên kênh, các thiết bị sẽ phát hiện các xung đột (bằng cách so sánh những gì họ gửi với những gì họ nhận được: nếu nó không khớp, thì có nghĩa là người khác đang gửi cùng lúc), hủy bỏ việc truyền, và thử lại sau một độ trễ ngẫu nhiên (để cố gắng tránh va chạm mới).

Điều này khá thú vị và trên các mạng được tải nhẹ, nó hoạt động khá tốt, nhưng ngay khi lưu lượng truy cập trở nên đáng kể, bạn sẽ kết thúc với hàng tấn va chạm, từ đó làm tăng việc sử dụng phương tiện được chia sẻ, từ đó dẫn đến va chạm nhiều hơn, vì vậy nó có thể trở nên khá tệ

Câu trả lời cho điều này là chuyển sang các mạng chuyển đổi song công hoàn toàn . Hub chỉ lặp lại tín hiệu mà không cần suy nghĩ. Mặt khác, các công tắc thực sự nhận được một khung, và sau đó gửi lại nó trên liên kết đích (phần thưởng bổ sung: khung không được gửi cho tất cả mọi người, chỉ đến đích trong hầu hết các trường hợp).

Nếu hai thiết bị gửi đến cùng một thiết bị đích, thì công tắc sẽ xếp hàng một trong các khung, do đó hai khung được gửi cùng lúc thực sự đến từng khung hình tại điểm đến khác.

Ngoài ra, ở cấp độ vật lý, dữ liệu hoàn toàn có thể được trao đổi qua nhiều cặp hoặc thậm chí một số cáp song song. Việc này được thực hiện ở cấp độ bit hay toàn bộ khung được gửi trên mỗi cặp / cáp tùy thuộc vào công nghệ chính xác được sử dụng. Nhưng tôi nghĩ đó không thực sự là câu hỏi của bạn.


1
Đây là một điểm tuyệt vời - có lẽ là câu trả lời thích hợp nhất cho câu hỏi. Tôi có thể thêm rằng khi bạn đạt tốc độ rất cao (sợi), chúng thường bị giới hạn ở một người gửi và một người nhận duy nhất trên một dòng để tránh va chạm. Nếu một đầu vào khác cần được thêm vào, nó được đưa vào một kênh khác và kết hợp với luồng đến sau đó được gửi đến một luồng đi. Ngày nay, ngay cả ethernet cũng có xu hướng "Chuyển đổi" để tránh va chạm - nơi chính bạn thấy va chạm (2 thiết bị nói chuyện với nhau như trong câu hỏi) ngày nay là wifi - hầu hết mọi thứ khác là 1 người gửi đến 1 người nhận
Bill K

12

Trường hợp cụ thể này là một trường hợp phức tạp.

Về 1000baseT.

Đầu tiên: khi chúng ta nói chung rằng hai thiết bị đang truyền cùng một lúc, chúng thường không thực sự gửi các bit cùng một lúc trên cùng một phương tiện. Nếu họ làm như vậy, sẽ có một vụ va chạm và tất cả các thiết bị nghe đều xử lý được điều này (cuối cùng, thông qua các sơ đồ phát hiện va chạm khác nhau.) Vì vậy, hai thiết bị truyền sẽ có quyền truy cập vào phương tiện vào những thời điểm hơi khác nhau. Nhưng trong 1000baseT chỉ có hai thiết bị trên một cặp các cặp nhất định; thông thường một thiết bị là một công tắc và thiết bị kia là một máy chủ.

Thứ hai, 1000baseT truyền hai bit dữ liệu cùng một lúc trên một cặp, được mã hóa theo cách phức tạp ở năm cấp điện áp. Vì vậy, đó là một chuỗi gồm 4 chữ số cơ bản trên dây, không phải là một chuỗi gồm 2 chữ số cơ bản.

Thứ ba, 1000baseT có thể truyền theo cả hai hướng cùng một lúc, trên cùng một cặp. Nó có thể tách tín hiệu đi ra khỏi tín hiệu đến bằng một mạch gọi là lai.

Gigabit ethernet trên các phương tiện truyền thông khác hành xử khác nhau. Tốc độ chậm hơn, ví dụ 10baseT và 100baseT có các sơ đồ đơn giản hơn. 10baseT trên một trung tâm thực sự có va chạm thực tế; qua các công tắc, nó thường được tổ chức bởi công tắc để các khung gửi đi được xếp hàng; nếu nó là song công hoàn toàn thì không có va chạm nào cả.


Vui lòng kết hợp với người trả lời khác @ Zac67 và tìm ra mô tả nào về 1000Base-T là chính xác.
davidbak

@jonathanjo Bạn nói đúng về các ký hiệu ba bit nhưng chỉ có năm cấp độ PAM. Một cách thô bạo, đó là một ký hiệu 8 bit đến 4 bit cộng với mã hóa xáo trộn trong đó các ký hiệu 3 bit được ánh xạ tới (dịch chuyển) các mức PAM.
Zac67

@davidbak cảm ơn vì đã chọn nó. Tôi đã đơn giản hóa mô tả để bao quát điểm chính (phức tạp và không nhị phân) và thoát khỏi sai lầm. Cảm ơn Zac đã làm rõ.
jonathanjo

7

Giả sử tất cả các liên kết ethernet có dây ở đây.

Khi hai thiết bị trên cùng một phân đoạn mạng gửi cùng một lúc, bất kể chúng gửi cho ai, đó được gọi là xung đột . Không có tin nhắn được thông qua khi một vụ va chạm xảy ra. May mắn thay, người gửi có khả năng phát hiện va chạm. Khi điều đó xảy ra, mỗi người gửi sẽ chọn một lượng thời gian ngẫu nhiên (các phân số nhỏ của một giây) để chờ và thử lại, và lặp lại quy trình cho đến khi cuối cùng chỉ có một người gửi được kích hoạt.

Nhưng điều này hầu như không bao giờ xảy ra nữa.

Thay vào đó, ngày nay hầu hết các kết nối có dây được thực hiện qua các mạng chuyển mạch , trong đó mỗi thiết bị (cả người gửi và người nhận) đều được kết nối với cổng riêng của họ trên một công tắc. Dữ liệu được chia thành các gói (thực sự: khung ) và công tắc sẽ đảm bảo chỉ có một gói được kích hoạt trên mỗi cổng tại một thời điểm. Nếu một liên kết bận, công tắc sẽ lưu trữ và chuyển tiếp các khung khác đến người nhận khi liên kết có sẵn một lần nữa.

Với sơ đồ này, cách duy nhất để có xung đột là khi có nhiều hơn một thiết bị được kết nối với công tắc hoặc với nhau thông qua một trung tâm không được kết nối (các cổng trên một số kiểu "bộ định tuyến" wifi gia đình vẫn không được kết nối) hoặc khi liên kết giữa công tắc và thiết bị hoạt động ở chế độ bán song công .

Những gì chúng ta đối phó với thay vì là tắc nghẽn . Chúng tôi có thể không có xung đột, nhưng một máy chủ phổ biến trên mạng có thể có các thiết bị muốn gửi nhiều dữ liệu và gói hơn liên kết sẽ hỗ trợ, để bộ đệm lấp đầy. Nhưng đó là một vấn đề hoàn toàn khác.


1
Nitpicking, nhưng ở cấp độ Ethernet, nó sẽ là khung chứ không phải là gói .
jcaron

1
@jcaron Chọn nit-nit: Tất nhiên, thông thường chúng ta sử dụng 'gói' để có nghĩa là 'gói IP', được tổ chức theo RFC 791 và là 'Dữ liệu máy khách MAC' của Khung Ethernet. Nhưng một "gói Ethernet" được định nghĩa là mọi thứ được truyền đi, bao gồm cả phần đầu của phần mở đầu đến phần cuối của các bit mở rộng; và 'khung' là phần của địa chỉ đích đến kiểm tra khung. (802.3-2015 Mục 3.1.1 "Định dạng gói"). Tôi đã nói rằng công tắc đảm bảo một gói Ether được gửi cùng một lúc, lưu trữ và chuyển tiếp các khung Ether .
jonathanjo

5

Tôi nghĩ rằng bạn cần có được một số hiểu biết cơ bản về cách thức hoạt động của ethernet. Ví dụ, máy chủ gửi sẽ gửi một đoạn đầu của các số 0 và số xen kẽ để thu hút sự chú ý của máy chủ nhận. Khi máy chủ nhận thấy hai cái liên tiếp, nó biết rằng khung tiếp theo. Khi khung được truyền đi, thì phải có khoảng im lặng trên 96 bit trước khi khung khác được gửi.

Các tiêu chuẩn ethernet khác nhau sẽ sử dụng mã hóa khác nhau. Ví dụ: 100Base-T sử dụng 4B5B gửi năm bit cho mỗi bốn bit dữ liệu.


1

(Đối với câu hỏi này, tôi giả sử một mạng chia sẻ Hub.)

Bộ điều hợp mạng có đọc các bit đến trong một luồng không?

Đúng. Bất kể việc triển khai PHY là gì, nó là một luồng đầu vào duy nhất. Các liên lạc từ nhiều thiết bị không thể đến thành công tại một NIC (Địa chỉ MAC) cùng một lúc.

Giả định của tôi là theo quan điểm của Bộ điều hợp mạng của Thiết bị 3, tất cả 0 và 1 đều xuất hiện trong một luồng dữ liệu "

"một luồng" có, nhưng trong ví dụ của bạn về hai thiết bị gửi đồng thời, sẽ không có luồng dữ liệu nào đến để xử lý thêm; "khung" của 1 và 0 sẽ va chạm.

Nó có thể tìm ra dữ liệu nào từ Thiết bị 1 hoặc 2, nhưng dữ liệu vẫn chỉ là một luồng hàng triệu / tỷ bit.

Không phải nó không thể. Khi các tín hiệu kết hợp một sự va chạm được phát hiện và khung bị loại bỏ.

Tôi hoàn toàn sai sao?

Tiêu đề câu hỏi của bạn là một tuyên bố chính xác, nhưng cuộc thảo luận của bạn trong bài đăng Q của bạn gợi ý rằng sự hiểu biết và giả thuyết của bạn là sai.

Thêm nữa

  • Bất kể loại "Bộ điều hợp mạng", họ chỉ nhận được một luồng bit duy nhất.
  • Các phương tiện vật lý để truyền tín hiệu có thể bao gồm nhiều luồng dữ liệu, nhưng các luồng đó và xử lý vật lý như vậy không được coi là "Bộ điều hợp mạng"; những trạm biến áp đó là mật mã, chúng cần được kết hợp để có ý nghĩa; và, các trạm biến áp đó phải bắt nguồn từ một nguồn duy nhất.
  • Nếu bạn không chắc chắn về câu trả lời này (và các câu trả lời khác ở đây), bạn cần tìm hiểu các nguyên tắc cơ bản của mạng ethernet / IP gói chuyển đổi.

Đối với câu hỏi này, tôi giả sử một mạng chia sẻ Hub - OP được gọi là Gigabit Gigabit và chế độ bán song công không tồn tại (thực tế) cho GbE. ;-)
Zac67

@ Zac67 Tôi giống như một người quản lý hào phóng và hữu ích. Tôi cho rằng OP đã chọn "Gigabit" một cách tùy tiện và họ không nhận ra rằng sẽ có mâu thuẫn. Điều này cho phép tôi cuối cùng trả lời tiêu đề của câu hỏi trực tiếp và đơn giản. OP có thể đọc các câu trả lời khác để tìm hiểu thêm về mâu thuẫn.
Todd
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.