آموزش بخش ب - پروژه‌های شبکه‌ای - پیاده‌سازی پشته TCP/IP در C - آخرین آپدیت

دانلود Part B - Networking Projects - Implement TCP/IP Stack in C

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

پروژه برنامه‌نویسی شبکه در لینوکس با C/C++: ساخت پشته TCP/IP و توسعه سیستم

برنامه‌نویسی سیستم در C، برنامه‌نویسی سوکت شبکه، و ساخت پشته TCP/IP از مباحث کلیدی این دوره جامع هستند.

این دوره بر کار با تایمرها در حوزه شبکه و پیاده‌سازی الگوریتم‌های جهت‌دار شبکه تمرکز دارد.

مدل ثبت callback و تجزیه و تحلیل بسته‌های شبکه (Parsing and Cooking Network Packets) نیز از مهارت‌های آموخته شده خواهند بود.

زنجیره‌های اطلاع‌رسانی (Notification Chains) و توسعه محیط دستگاه‌های شبکه مجازی واقع‌گرایانه از دیگر موضوعات پیشرفته این دوره هستند.

پیش‌نیازهای دوره Part B

  • اتمام موفقیت‌آمیز دوره Part A به عنوان پیش‌نیاز ضروری است.
  • تسلط بر برنامه‌نویسی با زبان C یا یکی دیگر از زبان‌های برنامه‌نویسی رایج.
  • آشنایی با Git و نحوه کار با آن در سطح مقدماتی.
  • مهارت بالا در کار با اشاره‌گرها (Pointers) و مدیریت حافظه در C.

معرفی دوره پیشرفته توسعه پشته TCP/IP

به بخش دوم (Part-B) از سری دوره‌های توسعه پشته TCP/IP خوش آمدید. این دوره، ادامه‌ی دوره Part-A است که در آن یک پشته TCP/IP مجازی در توپولوژی شبیه‌سازی شده پیاده‌سازی کردیم.

در این دوره، ویژگی‌های پیشرفته‌تر و جدیدی را به پشته TCP/IP مجازی خود اضافه خواهیم کرد و تلاش می‌کنیم تا طعمی واقع‌گرایانه‌تر به آن ببخشیم.

از جایی که در Part-A متوقف شدیم، ادامه خواهیم داد. اگر در این دوره ثبت‌نام کرده‌اید، فرض بر این است که Part-A را به پایان رسانده‌اید و آماده‌ی یک سفر هیجان‌انگیز دیگر در پروژه خود هستیم.

این دوره در مقایسه با Part-A، پیشرفته محسوب می‌شود. در این دوره، جنبه‌های بیشتری از پشته TCP/IP و به طور کلی، نحوه توسعه نرم‌افزارهای شبکه را خواهیم آموخت. شما نه تنها درگیر برنامه‌نویسی مبتنی بر شبکه خواهید شد، بلکه به برنامه‌نویسی سیستم مبتنی بر لینوکس نیز ادامه خواهید داد، زیرا شبکه ارتباط نزدیکی با برنامه‌نویسی سیستم دارد.

سطح دانشجو: مناسب برای افراد با سطح دانش متوسط تا پیشرفته و متخصصان شاغل. مبتدیان در برنامه‌نویسی، لطفاً از این دوره صرف نظر کنند.

فهرست مطالب دوره

  1. هدف این دوره چیست؟
  2. پروژه ۱: مدیریت رابط (Interface) و آمار
    • فعال/غیرفعال کردن یک رابط
    • جمع‌آوری آمار ارسال (Tx) و دریافت (Rx) رابط
  3. پروژه ۲: پیاده‌سازی مولد بسته (Packet Generator)
    • ایجاد و تغذیه جریان بسته (Pkt stream) در توپولوژی
  4. پروژه ۳: پیاده‌سازی الگوریتم ساخت جدول مسیریابی
    • طراحی ساختار داده
    • الگوریتم کوتاه‌ترین مسیر اول (SPF) به تفصیل
    • استراتژی پیاده‌سازی
    • آزمایش پیاده‌سازی الگوریتم SPF
    • محاسبه مسیر (Route Calculation)
  5. پروژه ۴: زیرساخت ثبت رویداد (Logging Infra)
    • ردیابی بسته‌های ورودی (Ingress) و خروجی (Egress) برای هر دستگاه و رابط
    • ردیابی مسیر لایه ۳ (L3 Path) طی شده توسط هر بسته از مبدأ به مقصد
  6. پروژه ۵: زنجیره‌های اطلاع‌رسانی (Notification Chains)
    • مقدمه‌ای بر NFC
    • درک مفهوم با کمک مثال
    • نوشتن کد زیرساخت اطلاع‌رسانی عمومی (Generic NOTIF Infra)
    • نوشتن کد NFC برای پشته TCP/IP
    • پیاده‌سازی API های Publisher Subscriber
    • مشاهده عملکرد NFC
  7. پروژه ۶: کار با تایمرها
    • پیاده‌سازی مکانیزم منقضی شدن (Ageism)
    • پیاده‌سازی ماشین حالت تایمر (Timer State Machine)

سرفصل ها و درس ها

این دوره درباره چیست؟ What is this Course all About ?

  • دستورالعمل Agenda

  • محصول نهایی این دوره End Product of this Course

  • به گروه تلگرام بپیوندید Join Telegram Group

  • دسترسی به کد برای قسمت ب Code Access for partB

پروژه ۱: مدیریت و آمار رابط Project 1 : Interface Management and Statistics

  • مقدمه Introduction

  • فعال و غیرفعال کردن رابط - بیان مسئله Enable Disable an Interface - Problem Statement

  • تغییرات کد برای فعال/غیرفعال کردن رابط Code changes for Intf Enable/Disable

  • جمع آوری آمار رابط Gathering Interface statistics

  • تکلیف الزامی Mandatory Assignment

پروژه ۲: پیاده سازی مولد بسته Project 2 : Implementing Packet Generator

  • بیان مسئله Problem Statement

  • زیرساخت تبادل بسته - بازبینی از قسمت الف Packet Exchange Infra - Revision from Part A

  • طراحی مولد بسته Packet Generator Design

  • پیاده سازی مولد بسته - مرور کد Packet Generator Implementation - Code Walk

  • نمایش Demonstration

  • تکلیف اختیاری Optional Assignment

پروژه ۳.۱: محاسبه مسیر L3 - ساختار داده و APIهای پشتیبان Project 3.1 : L3 Route Calculation - Data Structures and Supporting APIs

  • بیان مسئله Problem Statement

  • پیش نیازها Pre-Requisites

  • نمایش Demonstration

  • الزامات CLI CLI Requirements

  • الگوریتم Spf - کارهای مقدماتی Spf Algo - GroundWork to be done

  • طراحی ساختارهای داده Desiging Data Structures

  • اسکرین شات ساختار داده Data Structure Snapshot

  • تعاریف ساختار داده Data Structure Definitions

  • APIهای کمکی برای پیاده سازی الگوریتم Spf Helper APIs for Spf Algo Implementation

  • APIهای کمکی - ۱،۲ از ۱۰ Helper APIs - 1,2 of 10

  • APIهای کمکی - ۳ تا ۸ از ۱۰ Helper APIs - 3-8 of 10

  • APIهای کمکی - ۹ تا ۱۰ از ۱۰ Helper APIs - 9-10 of 10

  • عملیات صف اولویت Priority Queue Operations

پروژه ۳.۲: پیاده سازی الگوریتم SPF (دایکسترا) Project 3.2 : SPF Algorithm (Dijkstra) Implementation

  • الگوریتم SPF - برنامه پیاده سازی SPF Algo - Implementation Plan

  • الگوریتم Spf: بخش اول مقداردهی اولیه Spf Algo : Intialization Part 1

  • محاسبه گام بعدی Nexthop Calculation

  • نوشتن یک ماکرو حلقه گام بعدی Writing a Nexthop Looping Macro

  • الگوریتم Spf: بخش دوم مقداردهی اولیه Spf Algo : Intialization Part 2

  • الگوریتم Spf: بخش سوم مقداردهی اولیه Spf Algo : Intialization Part 3

  • الگوریتم Spf: فاز اجرا Spf Algo : Execution Phase

  • الگوریتم Spf: فاز اجرا: بخش ۴ Spf Algo : Execution Phase : Part 4

  • الگوریتم Spf: فاز اجرا: بخش ۵ Spf Algo : Execution Phase : Part 5

  • الگوریتم Spf: قوانین کاوش گره همسایه Spf Algo : Nbr Node Exploration Rules

  • الگوریتم Spf: فاز اجرا: بخش ۶ (گام نهایی) - فلوچارت Spf Algo : Execution Phase : Part 6 (Final Step) - Flowchart

  • الگوریتم Spf: فاز اجرا: بخش ۶ (گام نهایی) - پیاده سازی Spf Algo : Execution Phase : Part 6 (Final Step) - Implementation

  • تکلیف الزامی - نوشتن چند CLI جدید Mandatory Assignment - Write some new CLIs

  • تست الگوریتم SPF بر روی توپولوژی های مختلف Testing SPF Algo on Various Topologies

پروژه ۳.۳: ساخت جدول مسیریابی Project 3.3 : Routing Table Construction

  • درک الزامات ECMP Understanding ECMP Requirements

  • ECMP: بهبود ساختار داده ECMP : Data Structure Enhancements

  • ECMP: ارسال داده با استفاده از مسیر ECMP ECMP : Data Forwarding using ECMP route

  • الگوریتم Spf: فاز ۳ (نهایی): محاسبه مسیر Spf Algo : Phase 3 (Final) : Route Calculation

  • الگوریتم Spf: نمایش نهایی Spf Algo : Final Demo

  • بارگذاری خودکار جداول مسیریابی هنگام راه اندازی کتابخانه پشته TCP/IP Auto Populating Routing Tables on TCP/IP Stack Lib Start-Up

پروژه ۴: توسعه زیرساخت گزارش‌گیری Project 4 : Developing Logging Infrastructure

  • بیان مسئله Problem Statement

  • دموی کاری - گرفتن بسته و اشکال زدایی Working Demo - Packet Capture and Debugging

  • اهداف Goals

  • APIهای تجزیه هدر Header Parsing APIs

  • تکلیف الزامی - تعریف enum ها Mandatory Assignment - Define the Enums

  • کدنویسی APIهای قالب بندی هدر Lets Code up Header Formatting APIs

  • نوشتن tcp_dump سفارشی Writing Custom tcp_dump()

  • انتشار داده های گزارش به منابع خروجی Emitting logging data to output sources

  • ادغام APIهای گزارش با کتابخانه پشته TCP/IP Integrating Logging APIs with TCP/IP Stack lib

  • بافرهای گزارش‌گیری Logging Buffers

  • منابع خروجی گزارش - فایل های گزارش و stdout Logging Output Sources - Log files & stdout

  • تکلیف الزامی - پیاده سازی CLIs گزارش‌گیری Mandatory Assignment - Implement Logging CLIs

پروژه ۵: زنجیره های اعلان Project 5 : Notification Chains

  • مقدمه ای بر زنجیره های اعلان Introduction to Notification Chains

  • یک مثال عمومی از NFC A generic Example of NFC

  • نقش NFC در پروژه پشته TCP/IP ما Role of NFC in our TCP/IP Stack Project

  • ساختارهای داده NFC NFC Data Structures

  • پیاده سازی توابع NFC NFC Functions Implementation

  • NFC مخصوص پشته TCP IP TCP IP Stack Specific NFC

  • NFC انتقال پیکربندی رابط - ۳ مرحله Interface Config Relay NFC - 3 Steps

  • مرحله ۱/۳ - ثبت نام مشترک - بحث API Step 1/3 - Subscriber Registration - API discussion

  • مرحله ۱/۳ - ثبت نام مشترک - پیاده سازی API Step 1/3 - Subscriber Registration - API Implementation

  • تکلیف الزامی - استفاده از API ثبت NFC Mandatory Assignment - Using NFC Registration API

  • مرحله ۲/۳ - تولید اعلان ها - API Step 2/3 - Generating Notifications - API

  • مرحله ۲/۳ - تولید اعلان ها - پیاده سازی Step 2/3 - Generating Notifications - Implementation

  • مرحله ۳/۳ - پردازش اعلان توسط مشترک Step 3/3 - Processing Notification by Subscriber

  • زنجیره های اعلان - نمایش نهایی Notification Chains - Final Demo

  • تکلیف بر روی NFC Assignment on NFC

پروژه ۶: ادغام کتابخانه تایمر Project 6 : Integrating Timer Library

  • چرا تایمرها در شبکه مهم هستند؟ Why Timers are important in Networking ?

  • نقشه راه این بخش Road-Map of this Section

  • مراحل ادغام کتابخانه تایمر Steps to integrate Timer Library

  • جداول ARP پویا Dynamic ARP Tables

  • نحوه استفاده از کتابخانه تایمر How to use Timer Library

  • مراحل راه حل Solution Steps

  • تکلیف Assignment

  • APIهای جدید برای مدیریت تایمرهای ورودی ARP New APIs to manage ARP Entry Timers

  • تغییرات نهایی کد پروژه اصلی Main Project Final Code Changes

ضمیمه الف.۱ - بخش اول - ساختار پویا جدول مسیریابی لایه ۳ Appendix A.1 - Part1 - Dynamic Construction of Layer 3 Routing Table

  • مقدمه Introduction

  • اهداف و بیان مسئله Goals and Problem Statement

  • فرمت ورودی جدول مسیریابی Routing Table Entry Format

  • ECMP - مسیرهای متعدد با هزینه برابر ECMP - Equal Cost Multiple Path

  • همکاری دستگاه L3 L3 Device Collaboration

  • مراحل کلی ساخت جدول مسیریابی Generic Steps to Build Routing Table

ضمیمه الف.۲ - بخش دوم - ساختار پویا جدول مسیریابی لایه ۳ Appendix A.2 - Part2 - Dynamic Construction of Layer 3 Routing Table

  • فازهای این بخش Phases of This Section

  • فاز ۱ - ۴ مرحله Phase 1 - 4 Steps

  • فاز ۱ - مرحله ۱ و ۲ Phase 1 - Step 1 and 2

  • فاز ۱ - مراحل ۳ و ۴ Phase 1 - Steps 3 and 4

  • فاز ۲ - الگوریتم Spf Phase 2 - Spf Algorithm

  • فاز ۲ - مثال ۱ الگوریتم Spf Phase 2 - Spf Algo Example 1

  • فاز ۲ - قوانین الگوریتم Spf Phase 2 - Spf Algo Rules

  • فاز ۲ - مثال ۲ الگوریتم Spf Phase 2 - Spf Algo Example 2

  • فاز ۳ - محاسبه نهایی جدول مسیریابی Phase 3 - Final Routing Table Computation

  • تضمین بدون حلقه Loop Free Guarantee

  • همگرایی SPF SPF Convergence

  • خلاصه Summary

ضمیمه ب - استفاده از کتابخانه تایمر Appendix B - Using Timer Library

  • اهداف دوره Course Goals

  • ارتباط تایمر Timer Relevance

  • اصطلاحات Terminologies

  • تعامل برنامه و کتابخانه Application and Library Interaction

  • تابع فراخوانی تایمر Timer Callback function

  • نمایش Demonstration

  • بحث API API Discussion

امتیاز - وقت گرفتن چند آبنبات است Bonus - Time to get some Candies

  • امتیاز - چند آبنبات بگیر! Bonus - Get some Candies !

نمایش نظرات

آموزش بخش ب - پروژه‌های شبکه‌ای - پیاده‌سازی پشته TCP/IP در C
جزییات دوره
8 hours
101
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,666
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhishek CSEPracticals Abhishek CSEPracticals

من شبکه می سازم!

Shiwani Nigam Shiwani Nigam

مجری بازاریابی دیجیتال

Ekta Ekta Ekta Ekta

مدیر تاسیسات