بخش A - پروژههای شبکهسازی - پیادهسازی پشته TCP/IP در زبان C
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- پیادهسازی لایههای 2 و 3 پشته TCP/IP توسط خودتان از ابتدا
- نوشتن فرمان های CLI سفارشی برای پیکربندی توپولوژی شبکه
- ساخت توپولوژی شبکه از ابتدا
- پیادهسازی الگوریتمهای Routing و Switching به صورت کاربردی
- کار با تایمرها، GLthreads، یکپارچهسازی کتابخانهها، Makefile و تکنیکهای ماژولار کردن پروژه
- مدیریت و توسعه یک سورسکد بزرگ از ابتدا با استفاده از Git (سیستم کنترل نسخه)
- این یک دوره 100% کدنویسی با حداقل مباحث تئوری است.
- در تمام مصاحبههای حوزه شبکه، از شما خواسته میشود. مفاهیم اولیه Routing را توضیح دهید، پس این دوره را از دست ندهید!
پیشنیازهای دوره
- دانش اولیه در مورد Routing لایههای L2 و L3 بسیار ضروری است
- مهارت خوب در کدنویسی به زبان C یا هر زبان اصلی دیگر
- تسلط به Git (حداقل در سطح مقدماتی)
- مهارت کار با پوینترها و مدیریت حافظه در زبان C
توضیحات دوره
سطح دانشجو: متوسط تا پیشرفته و متخصصان شاغل؛ مبتدیان در کدنویسی لطفاً از این دوره صرفنظر کنند.
با استاد خود صحبت کنید: میتوانید از این پروژه به عنوان پروژه نهایی دوره کارشناسی خود استفاده کنید.
نکته: اگر این دوره را تهیه میکنید، نیازی به خرید دوره دیگر مدرس با عنوان "Integrate CLI interface to you C/C+++ Project" نیست، زیرا تمامی ویدیوهای آن در این دوره گنجانده شده است.
این یک دوره 100% مبتنی بر کدنویسی در زبان C است که در آن مدرس یک پشته TCP/IP را از ابتدا توسعه میدهد که شامل لایههایData Link Network و Application در حال کار است. این یک پروژه بزرگ است که به 6 مینیپروژه تقسیم شده است. توسعه بخش دوم این دوره (Part-B) در حال انجام است.
این دوره شما را برای نقش توسعهدهنده هسته شبکه در صنعت آماده میکند. اگر با مبانی Routing لایه L2 شامل ARP و Routing لایه L3 کاملاً آشنا هستید، احتمالاً دانش لازم برای این دوره پروژهمحور را دارید. در غیر این صورت، مدرس پیشنهاد میکند ابتدا در دوره "Networking Concepts and Programming from Scratch" شرکت کرده و حداقل بخشهای 3 تا 5 را مشاهده کنید. برای پیادهسازی VLAN، بخشهای 6، 7 و 8 مورد نیاز است. مدرس اکنون این مباحث تئوری را در زبان C پیادهسازی خواهد کرد. اگر زبان دیگری را ترجیح میدهید، میتوانید از آن استفاده کنید، اما مدرس منطق و دموها را فقط در C نشان خواهد داد.
در این دوره، مدرس یک دمو از پشته TCP/IP را در قالب 6 پروژه شبکهسازی پیادهسازی میکند. تمام پروژههای زیر باید به ترتیب ذکر شده انجام شوند.
پروژه 1: ساخت شبیهسازی توپولوژی چندگرهای از روترها و سوئیچها
پروژه 2: پیادهسازی لایه DataLink (Routing لایه L2)، شامل ARP
پروژه 3: پیادهسازی L2 Switching (یادگیری بر اساس Mac و فورواردینگ)
پروژه 4: پیادهسازی Mac Learning و Forwarding مبتنی بر VLAN
پروژه 5: پیادهسازی لایه شبکه (Routing لایه L3)
پروژه 6: مطالعه موردی: پیادهسازی IP-Tunnelling (اختیاری)
در این مینیپروژهها، مدرس مسیر حرکت بستهها را به سمت بالا و پایین لایههای پشته TCP/IP (مدل OSI) پیادهسازی میکند. ما خودِ پشته TCP/IP را پیادهسازی خواهیم کرد! در این دوره برنامهنویسی سوکت به حداقل رسیده است، زیرا لزوماً هر پروژه شبکهای نباید بر پایه برنامهنویسی سوکت باشد.
در طول مسیر، مدرس چالشهای جدیدی را که هنگام حل مسائل پیش میآید بررسی و پیادهسازی خواهد کرد. بر اساس بازخورد دانشجویان، مدرس پروژههای بیشتری را به این دوره اضافه خواهد کرد.
پس از انجام این پروژهها، شما قادر خواهید بود:
1. دلیل نیاز به لایه Data link و لایه Network را توضیح دهید.
2. یک پروتکل اپلیکیشن جدید روی پشته TCP/IP طراحی کنید (مانند ICMP، HTTP و غیره که همگی روی پشته TCP/IP کار میکنند).
3. برنامهنویسی شبکه را در سطح صنعتی تجربه کنید.
4. چگونگی ساخت، پارس کردن و خواندن بافرهای بسته را یاد بگیرید.
5. معماری و طراحی End-To-End اپلیکیشنهای شبکه و پشته TCP/IP را درک کنید.
6. در مصاحبههای شغلی برای نقش مهندس توسعهدهنده شبکه موفق شوید.
7. گیتهاب خود را ارتقا دهید و یک پروژه قدرتمند به رزومه خود اضافه کنید؛ انتظار میرود خطوط کد (LOC) این دوره از 10 هزار خط فراتر برود!
این پروژه شکاف بین دانش تئوری و نسخه پیادهسازی شده آن را پر میکند. نوشتن کد توسط خودتان برای حل ARP، فوروارد کردن بستهها و غیره چقدر جذاب به نظر میرسد؟ با این پروژه رزومه و گیتهاب خود را تزئین کنید.
این دوره به دو بخش تقسیم شده است:
بخش A - در این بخش، زیرساخت توپولوژی شبکه شامل روترها، سوئیچها و لینکهای متصلکننده آنها ساخته میشود. نودها میتوانند بستهها را با همسایگان خود مبادله کنند. در واقع مدرس میخواهد یک توپولوژی شبکه کاملاً قابل برنامهنویسی و پیکربندی را در این بخش شبیهسازی کند. این پروژه شماره 1 است.
بخش B - توپولوژی شبکه قابل پیکربندی ساخته شده در بخش A، برای پیادهسازی پنج پروژه باقیمانده [2-6] که در بالا لیست شده است استفاده خواهد شد.
مدرس تمام زیرساختهای لازم برای شبیهسازی توپولوژی شبکه را راهاندازی میکند که خود یک مینیپروژه کامل است. ما نودها، لینکهای متصلکننده، پیکربندی پارامترهای شبکه روی نودها و ارسال و دریافت جریانهای ترافیک را همگی در یک پروژه ایجاد خواهیم کرد. این یک مگاپروژه است و در صورت اضافه کردن ویژگیهای بیشتر پشته TCP/IP، ممکن است تعداد خطوط کد به دهها هزار برسد.
بهترین ویژگی این پروژه یادگیری موارد جانبی مانند تنظیم تایمرها، ساخت توپولوژی شبکه، Glthreads (روشی برای لیستهای پیوندی)، ساخت پروژه با استفاده از Makefile و مهارتهای طراحی نرمافزار است. مطالب اضافی در بخش Appendix دوره اضافه شده است. پروژه در پوشههای مجزا ماژولار خواهد شد که هر پوشه حاوی کد مربوط به یک لایه خاص OSI است و تمام اینها از صفر انجام میشود.
هشدار:
1. مبتدیانی که با ساختارهای داده اولیه و پوینترها مشکل دارند، لطفاً از این دوره صرفنظر کنند. شما برای این پروژه آماده نیستید و بهتر است ابتدا روی یادگیری مبانی وقت بگذارید.
2. سیستم مورد استفاده:Ubuntu 19.04 و کامپایلر GCC است. بنابراین اگر از کامپایلر یا سیستم دیگری استفاده میکنید، ممکن است کدهای مدرس روی سیستم شما کامپایل نشوند.
سرفصلهای دوره:
PART A
[ پروژه 1]
بخش 1. آشنایی با دوره (KYC)
بخش 2. توسعه یک توپولوژی گراف عمومی
- ساختارهای داده گراف
- APIهای مربوط به گراف
- ایجاد اولین گراف استاتیک
بخش 3. ساخت توپولوژی گراف شبکه
- افزودن جزئیات توپولوژی شبکه به گراف
- APIهایی برای پیکربندی توپولوژی شبکه
- آمادهسازی اولین توپولوژی شبکه Hello World
بخش 4. یکپارچهسازی Command-Line
- یکپارچهسازی رابط CLI با پروژه
- نوشتن فرمان های سفارشی برای نمایش جزئیات توپولوژی شبکه
بخش 5. راهاندازی ارتباطات
- ارسال یک بسته به نود همسایه روی رابط خروجی
- گوش دادن و نظارت بر چندین سوکت
- دریافت بسته روی یک رابط
PART B
بخش 6. برنامههای بخش B
[ پروژه 2]
بخش 7. شروع توسعه پشته TCP/IP
- مودهای رابط
- فرمت هدر Ethernet
- تمرین روی دستکاری هدر Ethernet
- معیارهای پردازش بسته
- مدیریت بافر بسته
بخش 8. پیادهسازی لایه 2 (DataLink Layer) - ARP
- شروع پیادهسازی ARP
- فرمت پیام ARP و مثال
- ایجاد جداول ARP
- APIهای CRUD روی جداول ARP
- CLIهایی برای کار با ARP
- چرخه ARP و APIهای ARP
- آمادهسازی و ارسال پیام ARP Broadcast Request
- پردازش پیام ARP Broadcast Request
- ارسال پیام ARP Reply
- API برای شروع مسیر ورودی فریم
- پردازش پیام ARP Reply و ایجاد یک ورودی در جدول ARP
- ARP در عمل
[ پروژه 3]
بخش 9. پیادهسازی لایه 2 (DataLink Layer) - L2 Switching
- APIهایی برای پیکربندی نود به عنوان سوئیچ لایه 2
- راهاندازی توپولوژی جدید با سوئیچهای لایه 2 و ماشینهای میزبان
- پیادهسازی یادگیری MAC و الگوریتمهای فورواردینگ
- مدیریت جدول MAC در سوئیچهای لایه 2
- تست رفتار سوئیچینگ لایه 2 با استفاده از ARP
[ پروژه 4]
بخش 10. لایه 2 - پیادهسازی فورواردینگ مبتنی بر Vlan
- اهداف و پیشنیازها
- فرمت هدر 802.1Q Vlan
- ساختارهای داده هدر اترنت دارای تگ Vlan
- API برای تشخیص فریمهای Tagged در مقابل Untagged
- تبدیل فریم Tagged به Untagged و بالعکس
- نقشه راه فورواردینگ MAC مبتنی بر Vlan
- جدول شرایط ورود فریم
- تکمیل فرآیند ورود فریم
- جدول شرایط خروج فریم
- تکمیل فرآیند خروج فریم
- تست فورواردینگ مبتنی بر Vlan
[ پروژه 5]
بخش 11. راهاندازی زیرساخت Routing لایه 3 (Network Layer)
- اهداف و پیشنیازها
- راهاندازی جدول Routing لایه 3
- APIهای CRUD برای مدیریت جدول Routing
- نصب مسیر (Route) لایه 3
- تعریف فرمت هدر IP
- افزودن CLI برای Ping
- تعامل لایه Application و Network
- مرور مجدد مفاهیم Routing لایه 3
- حالت Forwarding
- حالت Direct Host Delivery
- حالت Local Delivery
- حالت Self-Ping
- فلوچارتهای Routing لایه 3
بخش 12. پیادهسازی فلوچارتهای Routing لایه 3
- انتقال داده از لایه 2 به لایه 3
- پیادهسازی گامبهگام فلوچارت لایه 3
- پیادهسازی فلوچارت عملیات لایه 3
- پیادهسازی فلوچارت عملیات لایه 2
- تست نسخه بتای پروژه
بخش 13. حل ARP به صورت On-Demand
- بیان مسئله
- استراتژی حل
- بهبود ساختارهای داده
- ایجاد ورودی ARP Sane
- پردازش لیست ARP Pending
- دموی نهایی پروژه کامل ما
[پروژه 6]
بخش 14. پیادهسازی کپسولهسازی IP-IN-IP (Tunneling)
پیادهسازی کپسولهسازی IP-IN-IP (Tunneling)
توسعه آینده پروژه؛ از دانشجویان انتظار میرود این مسیر را خودشان ادامه دهند.
بخش 15. Routing بین دو Vlan (اینتر VLAN روتینگ)
این دوره برای چه کسانی مناسب است؟
- دانشجویانی که درس شبکه را در مقطع کارشناسی گذراندهاند.
- متخصصانی که به دنبال ورود به نقش توسعهدهنده شبکه هستند.
- کسانی که میخواهند خود را از بقیه متمایز کنند.
- کسانی که به دنبال دستیابی به برتری و تخصص در سطح بالا هستند.
بخش A - پروژههای شبکهسازی - پیادهسازی پشته TCP/IP در زبان C
-
برنامه آموزشی 05:01
-
دوره تکمیلی 00:46
-
تقدیر و تشکر 00:11
-
پیشنیازها 05:04
-
توسعههای آتی پروژه 01:51
-
اهداف پروژه 02:38
-
عضویت در گروه تلگرام 00:13
-
شروع کار با گرافهای عمومی 03:30
-
مشاهده خروجی نهایی دوره 07:14
-
مدلسازی گراف 04:13
-
بسیار مهم: ایجاد مخزن Git اختصاصی برای این پروژه None
-
ساختارهای داده گراف و دسترسی به مخزن 10:56
-
تمرین اجباری: نوشتن APIهای گراف عمومی None
-
ساخت گراف 06:15
-
APIهای گراف 06:57
-
Makefile - کامپایل پروژه 04:24
-
تمرین اجباری: نوشتن APIهای گراف عمومی - بخش 2 None
-
افزودن ویژگیهای شبکه به گراف 07:13
-
APIهایی برای افزودن ویژگیهای شبکه 06:47
-
تمرین اجباری: استفاده از APIها برای افزودن ویژگیهای شبکه None
-
بررسی کد برای ساخت گراف شبکه 05:05
-
تمرین اجباری: نوشتن برخی APIهای شبکه None
-
معرفی کتابخانه LibCli 04:05
-
مراحل یکپارچهسازی کتابخانه LibCLI با پروژه 05:53
-
پیادهسازی اولین CLI 10:12
-
تمرین اجباری - افزودن CLI None
-
اهداف این بخش 02:47
-
بحث طراحی - نمای منطقی و فیزیکی 03:34
-
بحث طراحی - نمای فیزیکی با جزئیات 08:05
-
8 مرحله پیادهسازی 04:14
-
پیادهسازی مرحله 1 و 2 - ایجاد سوکتها 05:50
-
پیادهسازی مرحله 3 - شروع ترد نظارت بر سوکت 15:31
-
پیادهسازی مرحله 4 - انتقال بسته 08:01
-
مراحل پیادهسازی 5 تا 8 06:34
-
دموی تست 04:56
-
خلاصه 01:45
-
تمرین برنامهنویسی اجباری None
-
تمرین: سوالات مربوط به طراحی None
-
برنامه بخش B 03:52
-
شروع پیادهسازی ARP 02:32
-
مودهای اینترفیس 05:27
-
فرمت هدر اترنت 03:39
-
تمرین روی هدر اترنت None
-
معیارهای پردازش بسته 06:23
-
مدیریت بافر بسته 08:13
-
شیفت به راست بافرهای بسته 06:12
-
یک هشدار مهم! 00:58
-
تمرین - رفع باگ None
-
فرمت پیام ARP 05:34
-
مثالی از فرمت پیام ARP 05:39
-
تمرین - تبدیلهای آدرس IP None
-
ایجاد جداول ARP 03:22
-
جدول ARP - پروتوتایپهای APIهای CRUD 06:01
-
جدول ARP - پیادهسازی APIهای CRUD 07:23
-
API برای تحریک ARP Resolution 01:41
-
CLIهای ARP برای افزودن 04:57
-
چرخه ARP 03:57
-
تمرین اجباری - نوشتن یک API None
-
APIهای ARP - ارسال ARP Request 08:35
-
APIهای ARP - پردازش ARP Request 03:50
-
APIهای ARP - ارسال ARP Reply 05:42
-
APIهای ARP - پردازش ARP Reply 01:47
-
تئوری - شروع مسیر ورودی یک فریم در پشته TCP/IP 06:25
-
پیادهسازی - شروع مسیر ورودی یک فریم در پشته TCP/IP 07:46
-
دمو - ARP در عمل 01:47
-
خلاصه 01:15
-
اهداف این بخش 03:22
-
پیشنیازها 01:31
-
سوئیچ لایه 2 در مقابل روتر لایه 3 02:52
-
دسترسی به کد برای این بخش 01:04
-
مودهای اینترفیس 04:32
-
توپولوژی مبتنی بر سوئیچ لایه 2 03:16
-
راهاندازی جداول Mac 06:43
-
یادگیری Mac و فورواردینگ - مرور سریع 06:16
-
نقطه ورود برای سوئیچینگ لایه 2 03:15
-
تمرین اجباری - فلودینگ فریم توسط سوئیچ لایه 2 None
-
پیادهسازی الگوریتم سوئیچینگ لایه 2 06:19
-
اهداف و پیشنیازها 01:52
-
تمرین اجباری - پیادهسازی تابع Packet Dump None
-
فرمت هدر 802.1Q Vlan 04:45
-
ساختار داده هدر اترنت با تگ Vlan 03:24
-
تمرین اجباری - API برای تشخیص تگدار بودن فریم None
-
API برای تشخیص فریم اترنت تگدار در مقابل بدون تگ 05:50
-
تمرین اجباری - بر پایه تگگذاری و حذف تگ Vlan None
-
تبدیل فریم تگدار به بدون تگ و بالعکس 03:53
-
مراحل تبدیل فریم تگدار به بدون تگ و بالعکس 05:13
-
APIهایی برای پیکربندی عضویتهای Vlan 09:12
-
توپولوژی سوئیچینگ لایه 2 06:33
-
نقشه راه تکمیلی فورواردینگ MAC مبتنی بر Vlan 02:38
-
جدول شرایط ورود فریم 09:45
-
تمرین اجباری - نوشتن APIهای تست عضویت Vlan None
-
ورود فریم - بررسی سریع کد 03:11
-
تکمیل فرآیند ورود فریم 04:16
-
شروع کار با خروج فریم 03:39
-
جدول شرایط خروج فریم 05:04
-
جدول شرایط خروج فریم - بررسی سریع کد 03:05
-
تمرین اجباری - API برای فلود کردن فریم در لایه 2 None
-
تکمیل فرآیند خروج فریم 02:59
-
تمرین اجباری - تست پیادهسازی Vlan None
-
رفع باگ - پورت ACCESS باید در یک Vlan کار کند None
-
مشکل لوپهای لایه 2 None
-
تمرین اجباری در مورد فورواردینگ مبتنی بر Vlan None
-
اهداف و پیشنیازها 05:06
-
فازهای این بخش 02:24
-
اصلاح: سازماندهی مجدد جزئی کد 05:16
-
فاز 1: راهاندازی جدول روتینگ لایه 3 - ساختارهای داده 05:22
-
فاز 1: APIهای CRUD برای جدول روتینگ 06:56
-
فاز 2: نصب مسیر لایه 3 - CLIها و APIها 07:08
-
فاز 2: پیکربندی مسیر لایه 3 07:14
-
فاز 3: تعریف هدر IP 09:26
-
تمرین اجباری - نوشتن ماکروها برای دستکاری هدر IP None
-
فاز 4: توپولوژی مورد استفاده و فرض ARP 04:15
-
فاز 5: معرفی اپلیکیشن Ping 02:54
-
فاز 5: CLIهای Ping 04:19
-
فاز 5: طرح بندی بسته Ping 05:09
-
فاز 5: مسیر بسته Ping از مبدأ به مقصد 03:55
-
فاز 6: تعامل لایه Application و Network 07:04
-
فاز 6: تعامل لایه Network و Data Link 04:09
-
فاز 6: قرار دادن امضای APIها در کد پروژه 03:14
-
فاز 7: روتینگ لایه 3 - مرور 4 حالت 05:46
-
فاز 7: مرور روتینگ لایه 3: حالت 1: فورواردینگ 04:31
-
فاز 7: مرور روتینگ لایه 3: حالت 2: تحویل مستقیم به میزبان 08:57
-
فاز 7: مرور روتینگ لایه 3: حالت 3: تحویل محلی 01:32
-
فاز 7: مرور روتینگ لایه 3: حالت 4: پینگ خودکار 04:41
-
فاز 8: فلوچارتهای روتینگ لایه 3 08:39
-
انتقال داده از لایه 2 به لایه 3 08:31
-
تمرین اجباری - نوشتن برخی APIها برای استفاده در ویدیوهای بعدی None
-
پیادهسازی فلوچارت عملیاتی شماره 1 لایه 3 11:04
-
پیادهسازی فلوچارت عملیاتی شماره 2 لایه 3 12:30
-
روتینگ لایه 2 - بحث در مورد الگوریتم و فلوچارت 08:29
-
بخش 1 - روتینگ لایه 2 - پیادهسازی الگوریتم و فلوچارت 07:15
-
بخش 2 - روتینگ لایه 2 - پیادهسازی الگوریتم و فلوچارت 05:52
-
دمو - تست نسخه بتای پروژه 06:10
-
تمرین اجباری - در مورد روتینگ لایه 3 None
-
رفع باگ - ( )rt_table_add_route None
-
بیان مسئله 05:33
-
استراتژی حل 06:29
-
تمرین اجباری - پیادهسازی تابع پردازش ورودیهای معلق ARP None
-
بهبود ساختارهای داده 03:21
-
ایجاد ورودی ARP Sane 05:49
-
پردازش لیست معلق ARP 04:54
-
دموی نهایی پروژه 03:37
-
کپسولهسازی IP-IN-IP - پیادهسازی در 3 مرحله 02:35
-
مرحله 1 از 3 - الزامات CLI 03:47
-
مرحله 2 از 3 - هندلر بکاند 04:55
-
مرحله 3 از 3 - تغییرات پشته TCP/IP 03:06
-
اینتر Vlan روتینگ 04:02
-
پیادهسازی جدول روتینگ استاندارد صنعتی None
-
Makefile - آموزش سریع 05:08
-
آنالوژی Makefile - درخت وابستگی 05:35
-
تمرین Makefile - بخش 1 05:41
-
تمرین Makefile - بخش 2 11:15
-
Makefile نهایی 08:02
-
مقدمه 03:35
-
تعریف Glthreads 04:19
-
تفاوت - لیست پیوندی دوطرفه سنتی در مقابل مبتنی بر چسب 04:53
-
آفست فیلد ساختار 07:37
-
درج GLNode 03:41
-
کد درج GLNode 03:27
-
پیمایش GLThread 03:15
-
حذف GLNode 01:18
-
بررسی کد - دمو 06:24
-
مشکلات لیستهای سنتی 05:39
-
مزایای GLThread 04:54
-
ادامه کار با کتابخانه لیست پیوندی دوطرفه 05:55
-
کتابخانههای استاتیک و دینامیک - ساخت سریع 08:50
-
لینک کردن با کتابخانه استاتیک 08:07
-
لینک کردن با کتابخانه دینامیک 03:32
-
خلاصه 00:55
-
شمول تکراری فایل هدر - بیان مسئله 06:02
-
شمول تکراری فایل هدر - راه حل 08:33
-
وابستگی بازگشتی - بیان مسئله 08:49
-
راه حل وابستگی بازگشتی 04:32
-
مقدمه - این دوره اصلاً در مورد چیست؟ 03:33
-
انواع فرمان 04:52
-
درخت فرمان 03:56
-
انواع پارامترها 03:43
-
محدودیت پارامتر برگ 03:06
-
قابلیتهای کتابخانه 02:46
-
ساخت یک کتابخانه LibCli 06:22
-
افزودن فایلهای هدر و وارد کردن هوکها 07:13
-
مثالی از افزودن فرمان Show 15:59
-
دموی فرمان Show 04:41
-
درک جریان داده از CLI به بکاند 07:04
-
پیادهسازی هندلر فرمان در بکاند 07:04
-
مثالی از افزودن فرمان Config 08:45
-
سابنتهای محلی و دور 16:17
-
مقدمه 04:03
-
چگونگی عملکرد کپسولهسازی IP-in-IP 09:28
-
هدیه - سایر دورههای مدرس را رایگان دریافت کنید 01:16
مشخصات آموزش
بخش A - پروژههای شبکهسازی - پیادهسازی پشته TCP/IP در زبان C
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:متوسط
- تعداد درس:190
- مدت زمان :14:23:35
- حجم :7.9GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy