PDU (Protocol Data Unit):
PDU یک واحد اطلاعاتی است که در تبادل اطلاعات بین لایههای مختلف مدل OSI (Open Systems Interconnection) استفاده میشود. هر لایه در مدل OSI دارای PDU خود است. برای مثال، در لایه 7 (لایهی کاربردی)، PDU را "داده" یا "پیام" مینامند.
BPDU (Bridge Protocol Data Unit):
BPDU یک نوع خاص از PDU است که در شبکههای کامپیوتری با استفاده از پروتکل Spanning Tree Protocol (STP) به کار میرود. این PDU ها برای تشخیص و جلوگیری از حلقههای لینک (loop) در توپولوژی شبکه مورد استفاده قرار میگیرند. BPDU ها توسط سوئیچها ارسال و دریافت میشوند تا اطمینان حاصل شود که توپولوژی شبکه بدون حلقه است.
PDU (Protocol Data Unit):
مقدار PDU در هر لایه از مدل OSI ممکن است متفاوت باشد:
1. لایهی فیزیکی (Layer 1):
- نام: بیت یا بایت.
- توضیح: داده به صورت بیت در این لایه به صورت فیزیکی ارسال میشود.
- اثرات: هیچ تغییر خاصی در دادهها اعمال نمیشود.
2. لایهی لینک داده (Layer 2):
- نام: فریم. - توضیح: Header (سرآیند) و Trailer (پایاننامه) را به داده اضافه میکند.
- اثرات: افزودن آدرس MAC و اطلاعات کنترلی برای مدیریت دسترسی به مدیا (MAC addressing) و کنترل خطاها (LLC Logical link control).
3. لایهی شبکه (Layer 3):
- نام: پکت.
- توضیح: افزودن Header شبکه (IP Header).
- اثرات: مسئولیت مسیریابی (Routing) و ارتباط با آدرسهای IP را دارد.
4. لایهی حمل و انتقال (Layer 4):
- نام: پیام سگمنت.
- توضیح: افزودن Header ترانسپورت (TCP یا UDP Header).
- اثرات: اطلاعات پورت، کنترل ارتباط و ارسال و دریافت داده.
5. لایهی جلسه (Layer 5) تا لایهی کاربردی (Layer 7):
- نام: داده، پیام یا درخواست، داده جلسه.
- توضیح: افزودن اطلاعات مختلف بر اساس نوع خدمات لایه (مثل HTTP در لایهی کاربردی).
- اثرات: مسئول ارائه خدمات خاص مانند ارتباطات وب، ایمیل و...
BPDU (Bridge Protocol Data Unit):
BPDU نیز در لایهی لینک داده (Layer 2) قرار دارد و از نوع فریم است. اطلاعات STP را به منظور جلوگیری از حلقههای لینک در شبکه حاوی دارد. اطلاعات مختلفی مانند Root ID، Bridge ID و اطلاعات پویا برای اجرای STP را شامل میشود.
مقدار باینری BPDU متغیر است و بسته به مشخصات مختلف STP میتواند تغییر کند. برای هر فیلد داده در BPDU، مقدار باینری خاصی وجود دارد که توسط سوئیچها برای محاسبه مسیرها و ایجاد توپولوژی STP استفاده میشود.
1. PDU:
- لایه 1: بیت یا بایت.
- لایه 2: فریم با سرآیند (Header) و پایاننامه (Trailer).
- لایه 3: پکت با افزودن IP Header.
- لایه 4: پیام با افزودن TCP یا UDP Header.
- لایههای 5 تا 7: داده یا پیام با اطلاعات خاص با توجه به نوع خدمات.
- لایه 5: AAA، Authentication، Authorization، Accounting، شروع جلسه، ایجاد جلسه، پایداری جلسه، پایان جلسه.
- لایه 6: ترجمه، رمزنگاری، رمزگشایی، فشردهسازی، بازفشردهسازی، کدنویسی، کدگذاری.
- لایه 7: داده های نهایی قابل روئت کاربر، صدا تصویر متن، عکس ، نمودار و ... (Payload).
ساختار PDU (برای لایهی لینک داده - Layer 2):
```
+------------------------+
| Destination MAC |
| Source MAC |
| EtherType (e.g., IP) |
| Data (Payload) |
| CRC (Error Checking) |
+------------------------+
```
ساختار BPDU (برای لایهی لینک داده - Layer 2):
```
+----------------------------+
| Protocol ID (e.g., STP) |
| Version |
| Type (e.g., Configuration)|
| Flags |
| Root ID |
| Bridge ID |
| Port ID |
| Message Age |
| Max Age |
| Hello Time |
| Forward Delay |
+----------------------------+
```
ساختار PDU (برای لایهی لینک داده - Layer 2):
1. Destination MAC:
- توضیح: آدرس MAC گیرنده.
- اثرات: مشخص میکند که فریم به کدام دستگاه ارسال شود.
2. Source MAC:
- توضیح: آدرس MAC فرستنده.
- اثرات: نشاندهنده دستگاه فرستنده است.
3. EtherType:
- توضیح: نوع پروتکل لایهی بالاتر (مثلاً IP).
- اثرات: نشاندهنده نوع دادههای حاوی فریم است.
4. Data (Payload):
- توضیح: دادههای ارسالی.
- اثرات: حاوی اطلاعات و دادههای مختلف میشود.
5. CRC (Error Checking):
- توضیح: مقدار کنترل خطا CRC برای تشخیص و اصلاح خطاها.
- اثرات: اطمینان حاصل میکند که داده به درستی ارسال شده است.
ساختار BPDU (برای لایهی لینک داده - Layer 2):
1. Protocol ID:
- توضیح: شناسه پروتکل (مثلاً STP).
- اثرات: مشخص میکند که این BPDU به کدام پروتکل تعلق دارد.
2. Version:
- توضیح: ورژن پروتکل.
- اثرات: مشخصکننده نسخه پروتکل مورد استفاده است.
3. Type:
- توضیح: نوع پیام BPDU (مثلاً Configuration).
- اثرات: مشخصکننده نوع اطلاعات ارسالی در BPDU.
4. Flags:
- توضیح: پرچمهای مختلف مانند Topology Change, Proposal و...
- اثرات: نشاندهنده وضعیت تغییرات در توپولوژی است.
5. Root ID و Bridge ID:
- توضیح: شناسههای ریشه (Root) و پل (Bridge) در توپولوژی STP.
- اثرات: مشخص میکنند که کدام سوئیچ به عنوان ریشه و کدام به عنوان پل در نظر گرفته شده است.
6. Port ID:
- توضیح: شناسه پورت.
- اثرات: نشاندهنده پورتی است که BPDU از آن ارسال شده است.
7. Message Age، Max Age، Hello Time، Forward Delay:
- توضیح: پارامترهای زمانی مختلف مانند عمر پیام و تنظیمات زمانی STP.
- اثرات: مشخصکننده فاصله زمانی برای اطلاع از تغییرات در توپولوژی STP.
8. Message Age:
- توضیح: میزان زمانی که BPDU ارسال شده است.
- اثرات: مشخصکننده سن پیام و زمانی که BPDU ارسال شده است.
9. Max Age:
- توضیح: حداکثر زمانی که یک BPDU در شبکه میتواند باقی بماند.
- اثرات: مشخصکننده مدت زمان حداکثر برای اعتبار BPDU و انجام محاسبات STP.
10. Hello Time:
- توضیح: فاصله زمانی بین ارسال BPDU های متوالی.
- اثرات: تعیین میکند چقدر زمان میگذرد تا یک سوئیچ دیگر اطلاعات BPDU جدید دریافت کند.
11. Forward Delay:
- توضیح: زمانی که یک سوئیچ از حالت Blocking به حالت Forwarding تغییر میکند.
- اثرات: مشخصکننده مدت زمانی است که یک سوئیچ پس از ریشه شدن مناسب به حالت Forwarding تغییر کند.
12. ویژگیهای دیگر Flags:
- توضیح: اطلاعاتی مانند Topology Change, Proposal و...
- اثرات: مشخصکننده وضعیت و تغییرات در توپولوژی STP.
این توضیحات، اجزای اصلی PDU و BPDU را در لایهی لینک داده (Layer 2) تشریح میکنند. هر کدام از این اجزا نقش مهمی در عملکرد و پروتکلهای مختلف دارند.
مقادیر دقیق حجم باینری بیت برای هر بخش از PDU و BPDU معمولاً تعیین نمیشوند، زیرا این مقادیر بستگی به پروتکل و تنظیمات خاصی دارند. اطلاعات دقیق باینری برای هر بخش باید از مستندات مربوط به پروتکل استخراج شود.
به عنوان مثال، طول مختلفی از بایت ممکن است برای مختلف بخشها وجود داشته باشد، و فیلدهای متغیر ممکن است بر اساس اطلاعات خاصی که ارسال میشوند، تغییر کنند. برای درک دقیق این موضوعات، باید به مستندات استاندارد مربوط به هر پروتکل مراجعه کنید.
حجم کامل PDU و BPDU بستگی به پروتکل مورد استفاده دارد. اما به طور کلی، اطلاعات دقیق در مستندات استاندارد مربوط به هر پروتکل ذکر شده است. در زیر مقدار تقریبی برخی از اندازههای معمول برای این دو نوع PDU آورده شده است:
PDU (برای لایهی لینک داده - Layer 2):
- طول بیشترین فریم Ethernet: حدود 1518 بایت
- طول حداقل فریم Ethernet: حدود 64 بایت
BPDU (برای لایهی لینک داده - Layer 2):
- حداقل طول BPDU: حدود 35 بایت
این اندازهها ممکن است بر اساس پروتکل و تنظیمات خاصی تغییر کنند. برای دقت بیشتر، به مستندات استاندارد مربوط به پروتکل مورد نظر مراجعه کنید.
در شبکه Ethernet، اندازههای بخشهای مختلف یک فریم (Frame) به صورت تقریبی به شکل زیر میباشد:
1. Header (سرآیند): - حدود 14 بایت
- شامل اطلاعاتی مانند آدرس مبدأ (Source MAC) و آدرس مقصد (Destination MAC) است.
2. Data (Payload):
- حدود 46 تا 1500 بایت
- شامل دادههای کاربردی است.
3. Trailer (پایاننامه):
- حدود 4 بایت
- شامل مقدار CRC (Cyclic Redundancy Check) جهت کنترل خطا است.
با جمع زدن این اجزا، طول کلی یک فریم Ethernet به حدود 64 تا 1518 بایت میرسد. این اندازهها ممکن است بر اساس تنظیمات خاص و نوع Ethernet (مثل Ethernet با سرعت گیگابیت یا فست اترنت) تغییر کند.
مقدار Priority در ساختار BPDU (Bridge Protocol Data Unit) مربوط به Spanning Tree Protocol (STP) به صورت پیشفرض برابر با 32768 است. این مقدار برای انتخاب ریشه (Root) در توپولوژی STP اهمیت دارد.
در STP، پلها (Switches) به یک ریشه (Root) نسبت دارند و این مقدار Priority برای تعیین اولویت یک پل در انتخاب ریشه استفاده میشود. پلی با Priority کمتر اولویت بیشتری دارد و به عنوان ریشه انتخاب میشود.
مقدار Priority به همراه آدرس Bridge ID (شامل Priority و MAC Address) به یک پل شناخته میشود. این اطلاعات در BPDU ارسال میشوند تا تمام پلها در شبکه بتوانند ریشه را تشخیص دهند و به توپولوژی STP پیکربندی شوند.
در MAC آدرس، Priority جزء 16 بیت اول از آدرس Bridge ID است. این 16 بیت به دو بخش تقسیم میشوند:
4 بیت ابتدایی برای Priority و 12 بیت باقیمانده برای آدرس MAC. بخش Priority نشاندهنده اولویت پل در انتخاب ریشه STP است.
در LLC (Logical Link Control)، چارچوب (Frame) PDU (Protocol Data Unit) اطلاعات لایه دو ارتباطات شبکه را حمل میکند. در PDU LLC، اطلاعات کنترلی شامل DSAP (Destination Service Access Point) و SSAP (Source Service Access Point) به همراه یک بیت Control به عنوان نوع PDU قرار دارد. این اطلاعات کنترلی به تبادل اطلاعات بین لایه دو و سایر لایهها کمک میکنند.
LLC یا Logical Link Control یک لایه متناهی در مدل OSI است که برای مدیریت ارتباطات لایه دو یا Data Link Layer استفاده میشود. در این لایه، Protocol Data Unit (PDU) به نام LLC PDU وجود دارد که اطلاعات کنترلی را بین لایه دو و لایه سه (Network Layer) منتقل میکند.
یک LLC PDU شامل چند بخش است:
1. بیت DSAP (Destination Service Access Point):
این 7 بیت نشاندهنده نقطه دسترسی سرویس مقصد است. این بخش برای انتخاب سرویس مقصد در لایه دو استفاده میشود.
2. بیت SSAP (Source Service Access Point):
مانند DSAP، این 7 بیت نقطه دسترسی سرویس مبدأ را نشان میدهد.
3. بیت Control:
این بیت 8 بیتی نوع LLC PDU را مشخص میکند، مانند اطلاعات کنترلی یا اطلاعات داده.
این اطلاعات کنترلی در LLC به ارتباط بین دستگاههای مختلف در شبکه کمک کرده و مدیریت انتقال دادهها را فراهم میکند.
+------------------------+---------------------------------------------+
| Layer | Header and Protocol Data Unit (PDU) |
+------------------------+---------------------------------------------+
| Layer 1: Physical | Bit |
+------------------------+---------------------------------------------+
| Layer 2: Data Link | Frame |
| | - Source and destination MAC address |
| | - LLC (optional) |
+------------------------+---------------------------------------------+
| Layer 2: STP | BPDU |
|(Spanning Tree Protocol)| - STP information |
+------------------------+---------------------------------------------+
| Layer 3: Network | Packet |
| | - Source and destination IP address |
| | - Routing information |
+------------------------+---------------------------------------------+
| Layer 4: Transport | Segment |
| | - Source and destination port |
| | - Port number |
+------------------------+---------------------------------------------+
| Layer 5: Session | Data |
| | - Dialogue control |
+------------------------+---------------------------------------------+
| Layer 6: Presentation | Data |
| | - Translation |
| | - Encryption |
| | - Compression |
+------------------------+---------------------------------------------+
| Layer 7: Application | Message |
| | - Application data |
| | - Program headers |
+------------------------+---------------------------------------------+
Bridge ID و Root ID دو اطلاعات مهم در پروتکل STP (Spanning Tree Protocol) هستند که در PDU (Protocol Data Unit) به صورت BPDU (Bridge Protocol Data Unit) ارسال میشوند.
1. Bridge ID:
- Bridge ID نشاندهندهٔ شناسهٔ یک دستگاه (Switch یا Bridge) در شبکه است.
- Bridge ID شامل دو بخش اصلی است: Priority و MAC Address.
- اولویت (Priority):
- Priority یک مقدار 16 بیتی است که اهمیت دستگاه را در انتخاب Bridge Root (پل ریشه) نشان میدهد.
- این مقدار توسط Administrator تنظیم میشود و معمولاً در واحدهای 4096 اعداد انتخاب میشود.
- آدرس MAC (MAC Address):
- آدرس MAC دستگاه که هر دستگاه شبکه یک آدرس MAC منحصر به فرد دارد و بر اساس استاندارد IEEE 802 قابل شناسایی است.
2. Root ID:
- Root ID نشاندهندهٔ شناسهٔ دستگاهی است که به عنوان پل ریشه (Root Bridge) انتخاب شده است و درخت پل (Spanning Tree) به ازای آن برقرار است.
- Root ID نیز از دو بخش اصلی تشکیل شده است: Priority و MAC Address.
- اولویت (Priority):
- همانند Bridge ID، اولویت نشاندهندهٔ اهمیت Root Bridge است.
- آدرس MAC (MAC Address):
- آدرس MAC دستگاه Root Bridge که همانند دیگر دستگاهها بر اساس استاندارد IEEE 802 قابل شناسایی است.
نحوهٔ ارسال در BPDU:
- در BPDU، Bridge ID و Root ID همراه با دیگر اطلاعات STP مانند Cost و تغییرات درخت پل جاری قرار میگیرند.
- هر دستگاه در شبکه BPDU را به همسایگان خود ارسال میکند و اطلاعات Bridge ID و Root ID در آن جای مهمی دارند.
در کل، این اطلاعات در STP به دستگاهها کمک میکنند تا یک درخت پل ریشه ایجاد شود که بهینهترین مسیر را برای انتقال اطلاعات در شبکه فراهم کند.
اطلاعات Bridge ID و Root ID در پروتکل STP برای شناسایی دستگاهها و انتخاب بهینهترین مسیر در درخت پل (Spanning Tree) اهمیت دارند. Bridge ID شامل Priority و MAC Address دستگاه است، که Priority اهمیت دستگاه را نشان میدهد و MAC Address دستگاه را شناسایی میکند. Root ID نیز به همین صورت از Priority و MAC Address تشکیل شده و نشاندهندهٔ دستگاه پل ریشه در درخت پل است. این اطلاعات در BPDU ارسال میشوند تا هر دستگاه در شبکه بتواند بهینهترین مسیر را برای ارسال اطلاعات انتخاب کند و یک درخت پل ریشه ایجاد شود.
مثال:
فرض کنید در یک شبکه با چندین Switch (پل) داریم. هر Switch دارای یک Bridge ID است که از Priority و MAC Address تشکیل شده است. Administrator تنظیم میکند که Priority یکی از Switchها با مقدار کمتری باشد، به عنوان مثال ۲۰۴۸۰. همچنین، هر دستگاه دارای یک MAC Address منحصر به فرد است.
حالا، وقتی درخت پل (Spanning Tree) شروع به ایجاد میشود، دستگاه با کمترین Bridge ID به عنوان پل ریشه (Root Bridge) انتخاب میشود. Bridge ID پل ریشه شامل Priority کمتر و MAC Address کمتر است.
هر دستگاه دیگری نیز Bridge ID خود را اعلام میکند و این اطلاعات با استفاده از BPDU به دیگر دستگاهها ارسال میشوند. در نهایت، تمام دستگاهها میتوانند به عنوان پل ریشه انتخاب شوند، اما با استفاده از Priority و MAC Address، ترتیب اهمیت و شناسایی آنها تعیین میشود.
در این فرآیند، اطلاعات Bridge ID و Root ID در BPDU به دستگاهها کمک میکنند تا درخت پل ریشه با بهینهترین مسیر ایجاد شود و اطلاعات در شبکه بهطور بهینه ارسال شود.
البته MAC آدرسها معمولاً به صورت ۶ بایت هگزادسیمال نمایش داده میشوند. در مثال بالا، فرض کنید MAC آدرس دو دستگاه به شکل زیر باشد:
1. پل ریشه (Root Bridge):
- Priority: 20480
- MAC Address: 00:1A:2B:3C:4D:5E
2. دستگاه دیگری:
- Priority: (مقدار دلخواه)
- MAC Address: 00:2A:3B:4C:5D:6F
دستگاه با کمترین Bridge ID، که شامل Priority و MAC Address است، به عنوان پل ریشه انتخاب میشود. در اینجا، دستگاه با Priority 20480 و MAC Address 00:1A:2B:3C:4D:5E به عنوان پل ریشه انتخاب میشود.
البته مقادیر Priority و MAC Address به صورت دلخواه توسط Administrator یا به صورت خودکار توسط دستگاهها تنظیم میشوند. در اینجا یک مثال دیگر:
1. پل ریشه (Root Bridge):
- Priority: 16384
- MAC Address: 00:11:22:33:44:55
2. دستگاه دیگری:
- Priority: 32768
- MAC Address: 00:AA:BB:CC:DD:EE
در این مثال، دستگاه با Priority کمتر (16384) و MAC Address کمتر (00:11:22:33:44:55) به عنوان پل ریشه انتخاب میشود. اطلاعات این دستگاه به عنوان پل ریشه به دیگر دستگاهها ارسال میشود تا درخت پل با بهینهترین مسیر ایجاد شود.