سطح دانشجویی: متوسط تا پیشرفته تا افراد حرفه ای، مبتدیان در برنامه نویسی لطفاً این دوره را ببخشید.
با پروفسور خود صحبت کنید: از این پروژه به عنوان پروژه سال پایانی خود استفاده کنید
توجه: اگر در حال خرید این دوره هستید، لطفاً دوره دیگر من را در مورد - "Integrate CLI interface to you C/C+++ Project" نخرید. این همه ویدیوهایی است که قبلاً در این دوره گنجانده شده است.
این یک دوره 100% مبتنی بر کدنویسی در زبان C است که در آن ما یک پشته TCP/IP را از ابتدا با لایه پیوند داده، لایه شبکه و لایه برنامه در عملیات توسعه خواهیم داد. این یک پروژه بزرگ است که به 6 پروژه کوچک تقسیم شده است. توسعه دوره خواهری (قسمت ب) در حال انجام است.
این دوره شما را برای نقش توسعه دهنده شبکه اصلی در صنعت آماده می کند. اگر با مبانی مسیریابی L2 از جمله مسیریابی ARP، L3 آشنا هستید، احتمالاً از قبل دانش لازم برای این دوره پروژه محور را دارید. اگر نه، باید در دوره من ثبت نام کنید - "مفاهیم شبکه و برنامه نویسی از ابتدا" و حداقل شماره بخش : 3 تا 5 را انجام دهید. برای اجرای VLAN بخش 6،7 و 8 مورد نیاز است. ما اکنون این نظریه را در C پیاده سازی خواهیم کرد. اگر زبان مورد علاقه دیگری دارید، با خیال راحت این دوره را در آن انجام دهید، من مشکلی ندارم، اما من منطق را توضیح خواهم داد و دموها را فقط در C نشان خواهم داد.
در این دوره، ما یک نسخه نمایشی پشته TCP/IP را از طریق 6 پروژه شبکه پیاده سازی خواهیم کرد. همه پروژههای زیر باید به همان ترتیبی که فهرست شده است انجام شوند.
پروژه 1: ساخت یک شبیه سازی توپولوژی MultiNode از روترها و سوئیچ ها
پروژه 2 : پیاده سازی لایه DataLink (مسیریابی L2)، از جمله ARP
پروژه 3: اجرای سوئیچینگ L2 (یادگیری و ارسال مبتنی بر Mac)
پروژه 4 : یادگیری و ارسال مک مبتنی بر Vlan
را پیاده سازی کنیدپروژه 5: اجرای لایه شبکه (مسیریابی L3)
پروژه 6 : مطالعه موردی : پیاده سازی IP-Tunnelling (اختیاری)
در این پروژه های کوچک، ما باید بسته Journey Upwards و Downwards را از طریق لایه های پشته TCP/IP (= مدل OSI) پیاده سازی کنیم. ما پشته TCP/IP را پیاده سازی خواهیم کرد!! حداقل برنامه نویسی سوکت در این دوره وجود دارد. لازم نیست هر پروژه شبکه ای مبتنی بر برنامه نویسی سوکت باشد.
در طول مسیر، راه حل چالش های جدیدی را که در حین حل مشکل با آن مواجه می شویم، بحث و اجرا خواهیم کرد. بر اساس نحوه پذیرش این دوره توسط دانش آموزان، من پروژه های بیشتری را بر اساس بازخورد دانش آموزان به این دوره اضافه می کنم.
پس از انجام این پروژه ها، می توانید:
1. بگویید چرا به لایه پیوند داده و لایه شبکه
نیاز دارید2. نحوه طراحی یک پروتکل برنامه جدید در پشته TCP/IP (درست مانند ICMP، HTTP و غیره که همه روی پشته TCP/IP کار می کنند)
3. با برنامه نویسی شبکه در سطح صنعت دست خود را کثیف کنید.
4. آشپزی، تجزیه و خواندن بافرهای بسته را بیاموزید
5. درک معماری End-To-End و طراحی برنامه های کاربردی شبکه و پشته TCP/IP
6. Conquer Interviews برای نقش مهندس توسعه دهنده شبکه
7. GitHub خود را تزئین کنید و یک پروژه قوی به کلاه خود اضافه کنید، LOC های مورد انتظار این دوره باید از 10k بیشتر شود!
این پروژه شکاف بین دانش نظری و نسخه اجرایی آن را پر خواهد کرد. چگونه به نظر می رسد که با دست خود کدی برای حل ARP، ارسال بسته و غیره نوشته اید. رزومه و GitHub خود را با این پروژه تزئین کنید.
این دوره به دو بخش تقسیم می شود:
قسمت A - در این بخش از دوره، ما زیرساخت توپولوژی شبکه را ایجاد می کنیم که از روترها، سوئیچ ها و پیوندهایی که آنها را به هم وصل می کنند، تشکیل می دهیم. گره ها همچنین می توانند بسته ها را با همسایگان خود مبادله کنند. اساساً ما می خواهیم در این قسمت از دوره یک توپولوژی شبکه کاملاً قابل برنامه ریزی و قابل تنظیم را شبیه سازی کنیم. این پروژه 1 است.
قسمت B - ساخت توپولوژی شبکه قابل تنظیم در بخش A دوره آموزشی باید برای اجرای پنج پروژه باقیمانده [2-6] همانطور که در بالا ذکر شد استفاده شود.
ما باید تمام زیرساخت های مورد نیاز را برای تقلید از توپولوژی شبکه راه اندازی کنیم - و این خود یک پروژه کوچک است. ما باید گرهها، پیوندهای اتصال گرهها، پیکربندی پارامترهای شبکه روی گرهها، ارسال و دریافت جریانهای ترافیک را ایجاد کنیم - همه در یک پروژه. این Megaproject است، اگر به اضافه کردن ویژگیهای پشته TCP/IP به آن ادامه دهیم، LOC مورد انتظار ممکن است به دهها هزار نفر برسد. آسمان حد است.
بهترین چیز در مورد این پروژه این است - شما در طول سفر چیزهای دیگری خواهید آموخت، از جمله راه اندازی تایمرها، ساخت توپولوژی شبکه، Glthreads - A Glue way of Linked Lists, Building Project با استفاده از Makefile و من حتی در مورد آن صحبت نمی کنم یادگیری مهارت های طراحی نرم افزار مطالب اضافی در بخش پیوست دوره اضافه شده است. ما پروژه را در پوشههای جداگانه مدولار میکنیم، هر پوشه حاوی کدی است که یک عملکرد لایه OSI خاص را پیادهسازی میکند، و بله، ما همه آن را از ابتدا انجام خواهیم داد.
هشدار:
1. مبتدیان مطلق، که با ساختارهای داده و اشاره گرهای اولیه دست و پنجه نرم می کنند، لطفاً این دوره را بهانه کنید. شما برای این پروژه آماده نیستید. لطفاً، ابتدا وقت خود را صرف یادگیری اصول اولیه کنید.
2. ماشین مورد استفاده: اوبونتو 19.04، کامپایلر GCC. بنابراین اگر از کامپایلر یا ماشین دیگری استفاده می کنید، ممکن است کدهای من روی دستگاه شما کامپایل نشوند.
فهرست مطالب :
********
بخش الف
********
[ پروژه 1]
بخش 1. KYC (دوره خود را بشناسید)
بخش 2. توسعه توپولوژی نمودار عمومی
ساختارهای داده نمودار
APIهای مرتبط با نمودار
ایجاد اولین نمودار استاتیک ما
بخش 3. ساخت توپولوژی گراف شبکه
افزودن جزئیات توپولوژی شبکه به نمودار
APIها برای پیکربندی توپولوژی شبکه
بدون اولین توپولوژی شبکه Hello World
آماده شویدبخش 4. یکپارچه سازی خط فرمان
واسط CLI را با پروژه ادغام کنید
برای نمایش جزئیات توپولوژی شبکه، دستورات سفارشی بنویسید
بخش 5. راه اندازی ارتباط
ارسال یک بسته به گره Nbr در رابط خروجی
گوش دادن و نظارت بر چندین سوکت
دریافت بسته در یک رابط
********
بخش B
********
بخش 6. دستور کار قسمت B
[ پروژه 2]
بخش 7. شروع به توسعه پشته TCP/IP
حالت های رابط
قالب سرصفحه اترنت
تکالیف در دستکاری هدر اترنت
معیارهای پردازش بسته
مدیریت بافر بسته
بخش 8. اجرای لایه 2 (لایه داده لینک) - ARP
با پیاده سازی ARP شروع کنید
فرمت و نمونه پیام ARP
ایجاد جداول ARP
APIهای CRUD در جداول ARP
CLI برای کار با ARP
چرخه ARP و APIهای ARP
تهیه و ارسال پیام درخواست پخش ARP
در حال پردازش پیام درخواست پخش ARP
ارسال پیام پاسخ ARP
API برای شروع سفر ورودی قاب
در حال پردازش پیام پاسخ ARP و ایجاد یک ورودی ARP در جدول ARP
ARP در عمل
[ پروژه 3]
بخش 9. اجرای لایه 2 (لایه داده لینک) - سوئیچینگ L2
APIهایی برای پیکربندی گره به عنوان سوئیچ L2
راه اندازی توپولوژی جدید با سوئیچ های L2 و ماشین های میزبان
پیادهسازی الگوریتمهای یادگیری و بازارسال MAC
مدیریت جدول MAC سوئیچ های L2
آزمایش رفتار سوئیچینگ L2 با استفاده از ARP
[ پروژه 4]
بخش 10. لایه 2 - پیاده سازی بازارسال مبتنی بر Vlan
اهداف و پیش نیازها
قالب 802.1Q Vlan hdr
ساختارهای داده سربرگ اترنت با برچسب Vlan
API برای تعیین فریمهای برچسبگذاری شده در مقابل بدون برچسب
برچسب شده <-- تبدیل فریم بدون برچسب
MAC Forwarding مبتنی بر Vlan - نقشه راه بیشتر
جدول شرایط ورود قاب
تکمیل ورود فریم
جدول شرایط خروج قاب
تکمیل قاب خروجی
بازارسال مبتنی بر Vlan
را آزمایش کنید[ پروژه 5]
بخش 11. راه اندازی زیرساخت مسیریابی لایه 3 (لایه شبکه)
اهداف و پیش نیازها
تنظیم جدول مسیریابی L3
APIهای CRUD برای Mgmt جدول مسیریابی
نصب مسیر L3
تعریف قالب IP HDr
افزودن Ping CLI
تعامل لایه شبکه و برنامه
مفاهیم مسیریابی L3 بازبینی شد
باز ارسال پرونده
مورد تحویل مستقیم میزبان
مورد تحویل محلی
مورد خود پینگ
فلوچارتهای مسیریابی L3
بخش 12. اجرای نمودارهای جریان مسیریابی لایه 3
انتقال داده محموله از L2 به L3
اجرای نمودار جریان لایه 3 - گام به گام
اجرای نمودار جریان عملیات لایه 3
اجرای نمودار جریان عملیات لایه 2
آزمایش نسخه بتا پروژه ما
بخش 13. وضوح ARP بر اساس تقاضا
بیانیه مشکل
استراتژی راه حل
بهبود ساختار داده
ایجاد ورود سالم ARP
در حال پردازش فهرست معلق ARP
نمایش نهایی پروژه کامل ما
[پروژه 6]
بخش 14. اجرای کپسولاسیون IP-IN-IP (تونل سازی)
پیاده سازی IP-IN-IP Encapsulation (تونل سازی)
تمدید آینده پروژه. دانشآموزان قرار است این موضوع را خودشان به پیش ببرند.
بخش 15. مسیریابی بین دو Vlan (مسیریابی بین Vlan)
نمایش نظرات