Frame Ethernet

Một packet data (gói dữ liệu) trên một link Ethernet được gọi là một packet Ethernet. Frame Ethernet là payload (phần tải mang theo) do packet này vận chuyển.

Một frame Ethernet có một preamble và một start frame delimiter (SFD) đi đầu, cả hai đều là một phần của packet Ethernet ở tầng vật lý. Mỗi frame Ethernet bắt đầu bởi một header Ethernet. Header này chứa địa chỉ MAC nguồn và đích ở hai trường đầu tiên. Phần ở giữa frame là data payload chứa các header bất kì của các protocol khác (ví dụ, Internet Protocol) được mang trong frame này. Frame kết thúc bởi một frame check sequence (FCS, chuỗi kiểm tra frame). Đây là một cyclic redundancy check 32 bit được dùng để phát hiện bất kì hư hỏng dữ liệu nào trong lúc truyền.

Cấu trúc

Ethernet truyền dữ liệu với most-significant octet (byte) đầu tiên; tuy nhiên bên trong mỗi octet, least-significant bit lại được truyền đầu tiên.}}

Cấu trúc bên trong của một frame Ethernet frame được xác định trong IEEE 802.3. bởi vì các bit được truyền với thứ tự từ trái sang phải, biểu diễn hexadecimal tương ứng là 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAB.

SFD là giá trị 8-bit (một byte) đánh dấu kết thúc của preamble, trường đầu tiên của một packet Ethernet, và chỉ ra điểm bắt đầu của một frame Ethernet. SFD được thiết kế để phá vỡ pattern bit của preamble và đánh tín hiệu sự bắt đầu của một frame thực sự.

End of frame – tầng vật lý
End of a frame (kết thúc frame) thường được biểu thị bằng một symbol (kí hiệu) end-of-data-stream ở tầng vật lý hoặc bởi sự mất mát của tín hiệu mang (carrier signal); một ví dụ là 10BASE-T, trong đó station nhận phát hiện được kết thúc của một frame đã gửi. Sau đó tầng vật lý sử dụng một symbol end of data rõ ràng hoặc một symbol/chuỗi end of stream để tránh sự mơ hồ về nghĩa, đặc biệt khi carrier được gửi liên tục giữa các frame; một ví dụ là Gigabit Ethernet với sơ đồ mã (encoding scheme) 8b/10b, các sơ đồ này sử dụng các symbol đặc biệt được truyền đi trước và sau khi một frame được truyền.
Interpacket gap – tầng vật lý
Interpacket gap là khoảng thời gian nhàn rỗi giữa hai packet. Sau khi một packet đã được gửi đi, các transmitter cần phải truyền ít nhất 96 bit (12 octet) của idle line state (trạng thái dây rảnh) trước khi truyền packet tiếp theo.

Các kiểu frame Ethernet

Có nhiều kiểu frame Ethernet:

Frame Ethernet II, hoặc Ethernet Version 2, hoặc frame DIX là một kiểu thông dụng nhất hiện nay vì nó thường được dùng trực tiếp bởi Internet Protocol.
Frame biến hóa phi tiêu chuẩn IEEE 802.3 thô của công ty Novell
Frame Logical Link Control (LLC) IEEE 802.2
Frame Subnetwork Access Protocol (SNAP) IEEE 802.2

Các kiểu frame khác nhau có các định dạng và các giá trị MTU khác nhau, nhưng có thể cùng tồn tại trên cùng một medium vật lý. Sự khác biệt giữa các kiểu frame có thể dựa trên bảng bên phải.

Ngoài ra, bốn loại frame Ethernet có thể chứa một tag IEEE 802.1Q (tùy chọn) để xác định nó thuộc về mạng VLAN nào và độ ưu tiên của nó (quality of service). Việc đóng gói này được định nghĩa trong specification IEEE 802.3ac và tăng frame maximum frame lên 4 octet.

Tag IEEE 802.1Q, nếu có, nằm giữa các trường Source Address (Địa chỉ Nguồn) và EtherType hoặc Length (Chiều dài). Hai octet đầu tiên của tag là giá trị Tag Protocol Identifier (TPID) bằng 0x8100. Cái này nằm ở cùng vị trí với trường EtherType/Length trong các frame không có tag, vì thế giá trị EtherType 0x8100 nghĩa là frame có tag, và EtherType/Length chính xác nằm sau Q-tag. TPID được theo bởi hai octet chứa Tag Control Information (TCI) ((quality of service) ưu tiên IEEE 802.1p và VLAN id). Q-tag được theo bởi phần còn lại của frame, sử dụng một trong số kiểu được mô tả ở trên.

Ethernet II
Ethernet II framing (còn được gọi là DIX Ethernet, đặt theo tên của DEC, Intel và Xerox, những công ty chủ chốt tham gia quá trình thiết kế nó), định nghĩa trường EtherType dài hai octet trong một frame Ethernet, đứng trước các địa chỉ MAC đích và nguồn, định nghĩa một upper layer protocol (giao thức tầng trên) đóng gói dữ liệu của frame. Ví dụ, giá trị EtherType 0x0800 báo hiệu frame chứa một datagram IPv4. Tương tự, giá trị EtherType 0x0806 biểu thị một frame ARP, 0x8100 biểu thị một frame IEEE 802.1Q và 0x86DD biểu thị một frame IPv6.

Khi tiêu chuẩn được phát triển trong công nghiệp này thông qua quá trình tiêu chuẩn hóa chính thức của IEEE, trường EtherType bị đổi thành một trường chiều dài (dữ liệu) trong tiêu chuẩn 802.3 mới. Vì bên nhận vẫn cần biết cách thuyết giải frame, tiêu chuẩn yêu cầu một header IEEE 802.2 để theo dõi chiều dài và xác định kiểu. Nhiều năm sau đó, tiêu chuẩn 802.3x-1997, và các phiên bản sau đó của tiêu chuẩn 802.3, chính thức phê chuẩn cả hai kiểu framing. Trong thực tế, cả hai định dạng đều được sử dụng rộng rãi, với Ethernet framing nguyên thủy là thông dụng nhất trong các mạng local area network Ethernet, nhờ sự đơn giản và overhead thấp hơn.

Để một số frame sử dụng framing Ethernet v2 và một số frame sử dụng phiên bản nguyên thủy của framing 802.3 được phép sử dụng trong cùng segment Ethernet, các giá trị EtherType phải lớn hơn hoặc bằng 1536 (0x0600). Giá trị đó được chọn bởi vì độ dài lớn nhất của trường payload của một frame Ethernet 802.3 là 1500 octet (0x05DC). Vì vậy, nếu giá trị của trường lớn hơn hoặc bằng 1536, frame sẽ là một frame Ethernet v2, với trường đó là một trường kiểu. Nếu nó nhỏ hơn hoặc bằng 1500, nó sẽ là một frame IEEE 802.3, với trường đó là một trường độ dài. Các giá trị từ 1500 đến 1536 không được định nghĩa. Quy ước này cho phép phần mềm xác định khi nào thì một frame là frame Ethernet II hoặc là một frame IEEE 802.3, cho phép cùng tồn tại cả hai tiêu chuẩn trên cùng một medium vật lý.

IEEE 802.3 thô của công ty Novell
Định dạng frame 802.3 "thô" của công ty Novell dựa trên công trình IEEE 802.3 ban đầu. Novell đã dùng cái này như một điểm bắt đầu để tạo ra implementation đầu tiên của IPX Network Protocol over Ethernet của chính họ. Họ không dùng bất kì header LLC nào nhưng đã khởi đầu packet IPX trực tiếp sau trường độ dài. Điều này không tương thích với tiêu chuẩn IEEE 802.3, nhưng vì IPX luôn có FF là hai octet đầu tiên (trong khi trong IEEE 802.2 LLC pattern đó có thể về mặt lí thuyết nhưng gần như không có khả năng), trong thực tiễn điều này thường cùng tồn tại trên dây với các implementation Ethernet khác, với ngoại lệ nổi bật là một số dạng ban đầu của DECnet có thể gây nhầm lẫn.

Novell NetWare đã sử dụng loại frame này mặc định cho đến giữa thập niên 1990, và vì NetWare lúc đó rất phổ biến, trong khi IP thì không, tại một thời điểm nào đó, phần lớn Ethernet traffic của thế giới chạy trên 802.3 "thô" mang IPX. Từ NetWare 4.10, NetWare mặc định đến IEEE 802.2 với LLC (NetWare Frame Type Ethernet_802.2) khi dùngIPX.

IEEE 802.2 LLC

Một số protocol thiết kế cho OSI stack, hoạt động trực tiếp trên đỉnh của việc đóng gói LLC IEEE 802.2, cung cấp cả hai dịch vụ mạng hướng kết nối và không kết nối.

Việc đóng gói LLC IEEE 802.2 không phổ biến rộng rãi trong các mạng thông thường hiện nay, với ngoại lệ là việc cài đặt NetWare doanh nghiệp lớn chưa được chuyển lên NetWare over IP. Trong quá khứ, nhiều mạng doanh nghiệp đã sử dụng IEEE 802.2 để hỗ trợ các cầu nối dịch trong suốt giữa Ethernet và các mạng Token Ring hoặc FDDI.

Có một tiêu chuẩn Internet cho việc đóng gói IPv4 traffic trong các frame SAP/SNAP LLC IEEE 802.2. Nó gần như chưa bao giờ được implement trên Ethernet, mặc dù nó được sử dụng trên FDDI, Token Ring, IEEE 802.11 và các mạng LAN IEEE 802 khác. IPv6 có thể được gửi trên Ethernet dùng SAP/SNAP LLC IEEE 802.2, nhưng một lần nữa gần như không bao giờ được sử dụng.

IEEE 802.2 SNAP

Bằng cách kiểm tra header LLC 802.2, có thể xác định có hay không một header SNAP theo sau nó. Header LLC gồm có hai trường địa chỉ 8-bit phụ, được gọi là các service access point (SAP, điểm truy cập dịch vụ) trong thuật ngữ học mô hình OSI; khi cả hai SAP nguồn và đích được gán giá trị 0xAA, dịch vụ SNAP sẽ được yêu cầu. Header SNAP cho phép các giá trị EtherType được sử dụng với tất cả các protocol IEEE 802, cũng như hỗ trợ các không gian ID protocol riêng. Trong IEEE 802.3x-1997, tiêu chuẩn IEEE Ethernet được thay đổi để cho phép trường 16 bit sau các địa chỉ MAC được sử dụng như là trường độ dài hoặc trường kiểu một cách tường minh.

Mac OS sử dụng việc đóng gói SAP/SNAP LLC IEEE 802.2 cho bộ protocol AppleTalk v2 trên Ethernet ("EtherTalk").

Throughput cực đại
Ta có thể tính Chi phí của protocol (protocol overhead) cho Ethernet dưới dạng tỉ lệ phần trăm (kích thước packet bao gồm InterPacket Grap)
:\text{Chi phí của protocol} = \frac{\text{Kích thước packet} - \text{Kích thước payload}}{\text{Kích thước packet}}
Ta có thể tính hiệu suất của protocol (protocol efficiency) cho Ethernet
:\text{Hiệu suất của protocol} = \frac{\text{Kích thước payload}}{\text{Kích thước packet}}
Hiệu suất lớn nhất đạt được với kích thước payload cực đại được phép là:
:\frac{1500}{1538} = 97.53\%
cho các frame không có tag, vì kích thước packet cực đại là 1500 octet cho payload + 8 octet cho preamble + 14 octet cho header + 4 octet cho trailer + interpacket gap nhỏ nhất tương ứng là 12 octet = 1538 octet. Hiệu suất cực đại là:
:\frac{1500}{1542} = 97.28\%
khi tagging 802.1Q VLAN được sử dụng.

Throughput (lưu tốc, lưu lượng) có thể được tính từ hiệu suất như sau:
:\text{Throughput} = \text{Hiệu suất} \times \text{bit rate net}\,\!,
trong đó bit rate net tầng vật lí (bit rate dây dẫn) phụ thuộc vào tiêu chuẩn tầng vật lý Ethernet, và có thể là 10 Mbit/s, 100 Mbit/s, 1 Gbit/s hoặc 10 Gbit/s. Do đó, throughput cực đại cho 100BASE-TX Ethernet là 97.53 Mbit/s nếu không có 802.1Q, và 97.28 Mbit/s với 802.1Q.

Channel utilization là một khái niệm thường bị nhầm lẫn với hiệu suất của protocol. Nó chỉ xem xét việc sử dụng kênh mà không để ý đến bản chất của dữ liệu được gửi đi – cả payload và overhead. Ở tầng vật lý, kênh liên kết và thiết bị không biết được sự khác nhau giữa dữ liệu và các frame điều khiển. Ta có thể tính channel utilization như sau:

:\text{Channel utilization} = \frac{\text{Thời gian đã mất cho việc truyền dữ liệu}}{\text{Tổng thời gian}}

Tổng thời gian có tính đến round trip time (thời gian chuyến khứ hồi) dọc theo kênh truyền, thời gian xử lý ở các host và thời gian truyền dữ liệu và các acknowledgement. Thời gian mất cho việc truyền dữ liệu bao gồm cả dữ liệu và các acknowledgement.

Frame runt
Một frame runt là một frame Ethernet có chiều dài ngắn hơn chiều dài minimum 64 octet của chuẩn IEEE 802.3. Các frame runt thường do xung đột; các nguyên nhân khác có thể là card mạng bị hỏng, tràn bộ đệm hoặc lỗi phần mềm.

Chú thích

Tham khảo