Part A - Networking Projects - Implement TCP/IP Stack in C

所在平台: Udemy

课程主页: https://www.udemy.com/course/tcpipstack/

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:A部分 - 网络项目 - 使用C实现TCP/IP协议栈 课程概述: 此课程适合中高级学习者和在职专业人员,不适合初学者。建议将此项目作为本科的毕业设计项目。请注意,如果您购买了此课程,请不要再购买我的另一个课程“将CLI接口集成到您的C/C++项目中”,因为所有视频内容已包含在本课程中。该课程是一个100%基于编码的课程,我们将从头开始开发一个包含数据链路层、网络层和应用层的TCP/IP协议栈。该项目分为六个小项目进行。 项目顺序如下: 1. 构建多节点路由器和交换机的拓扑仿真 2. 实现数据链路层(L2路由),包括ARP 3. 实现L2交换(基于MAC的学习和转发) 4. 实现基于VLAN的MAC学习和转发 5. 实现网络层(L3路由) 6. 案例研究:实现IP隧道(可选) 在这些小项目中,我们将实现TCP/IP协议栈中数据包在各层之间的上下行传输。课程中涉及的套接字编程较少,并非每个网络项目都需要基于套接字编程。在学习过程中,将讨论并解决遇到的新挑战。 完成这些项目后,您将能够: 1. 理解数据链路层和网络层的必要性 2. 设计新的应用协议在TCP/IP协议栈上运行 3. 进行行业级的网络编程实践 4. 学习创建、解析和读取数据包缓冲区 5. 理解网络应用及TCP/IP协议栈的端到端架构与设计 6. 在网络开发工程师的面试中脱颖而出 7. 优化您的GitHub,并为简历添加强有力的项目案例,代码行数预计超过10000行 本课程将填补理论知识与实际实现之间的差距,帮助您通过亲手编写代码解决ARP、数据包转发等问题。 课程分为两个部分: **A部分** - 在这一部分,我们将构建包括路由器、交换机和连接它们的链路的网络拓扑基础设施。节点可以相互交换数据包,模拟一个完全可编程和可配置的网络拓扑。 **B部分** - A部分构建的可配置网络拓扑将用于实施其他五个项目(项目2到6)。 **注意事项:** 1. 绝对初学者和对基本数据结构及指针感到困惑的学生请高抬贵手。您需要先学习基础知识。 2. 使用的机器为Ubuntu 19.04,GCC编译器。如果您使用其他编译器或机器,代码可能无法编译。 此课程内容丰富,提供了详细的项目实施步骤和实践体验,非常适合希望深入了解TCP/IP协议栈和网络编程的学习者。

课程评论(0条)

课程详情

Student Level: Intermediate to Advanced to Working Professionals, Beginners in Coding pls excuse this course. Talk to your Prof: Use this Project as your Final Year Under-Grad Project Note: If you are buying this course, pls do not buy my other course on - "Integrate CLI interface to you C/C+++ Project". It's all videos that are already included in this course.This is a 100% Coding based Course in C in which we will develop a TCP/IP Stack from scratch having Data Link Layer, Network Layer and Application Layer in Operation. This is one big project split up into 6 mini-projects. The development of the sister course (Part-B) is in progress. This Course will set you ready for a core network developer's role in the industry. If you are thorough with basics of L2 Routing including ARP, L3 routing, then probably you already have the required knowledge for this project-based course. If not, you should enroll in to my course - "Networking Concepts and Programming from Scratch" and at-least do section number: 3 to 5. For VLANs implementation section 6,7, and 8 is required. We shall be implementing this theory in C now. If you have some other favorite language, feel free to do this course in that, I don't mind, but I shall be explaining logic and showing the demos in C only.In this course, We shall be implementing a TCP/IP Stack demo through 6 Networking Projects. All Below Projects should be done in the same sequence as listed.Project 1: Build a MultiNode Topology Emulation of Routers and Switches Project 2: Implement DataLink Layer (L2 routing), including ARPProject 3: Implement L2 Switching (Mac-based Learning and Forwarding)Project 4: Implement Vlan Based Mac learning and ForwardingProject 5: Implement Network Layer (L3 routing)Project 6: Case Study: Implement IP-Tunnelling (Optional)In these mini Projects, we shall be implementing the packet Journey Upwards and Downwards through layers of TCP/IP Stack (= OSI Model). We shall be implementing the TCP/IP Stack!! There is minimal Socket Programming in this course. Not every Networking project has to be socket programming based. Along the way, we shall be discussing and implementing the solution to new challenges we encounter while solving the problem. Based on how this course is accepted by students, I would add more projects to this course based on the student's feedback.After Doing These Projects, you shall be able to:1. Tell why you need Data link layer and Network Layer2. How to design a new Application protocol on a TCP/IP stack (just like ICMP, HTTP, etc all work on TCP/IP Stack)3. Get your hands dirty with industry-level network programming.4. Learn cooking up, parsing and reading the packet buffers5. Understand End-To-End Architecture and Design of Network Application and TCP/IP Stack6. Conquer Interviews for the role of Network Developer Engineer7. Decorate your GitHub, and add a strong project to your HAT, Expected LOCs of this course shall exceed 10k!This project will fill up the gap between theoretical knowledge and the Implementation version of it. How does it sound that you have written code by your own hands to resolve ARP, packet forwarding, etc. Decorate your resume and GitHub with this project.This course is divided into Two Parts:Part A - In this part of the course, we shall be building up the Network topology Infrastructure comprising of routers, switches, and links connecting them. Nodes can also exchange packets with their neighbors. Basically, we want to simulate a fully programmable and configurable network topology in this part of the course. This is Project 1.Part B - The Configurable Network Topology build in Part A of the course shall be used to implement the Remaining five Projects [2-6] as listed above.We shall be setting up all the required infrastructure to mimic the network topology - and that itself is a mini project altogether. We shall be creating nodes, links connecting nodes, configuring network parameters on nodes, sending and receiving traffic streams - All in one project. This is Megaproject, expected LOC may go to tens of thousands if we keep on adding TCP/IP stack features onto it. The sky is the limit.The best thing about this project is - You will learn many other things along the journey, including setting up Timers, Network Topology Construction, Glthreads - A Glue way of Linked lists, Building Project using Makefile and I am not even talking about learning Software Designing skills. Additional Material has been added in the Appendix Section of the course. We shall be modularizing the project in separate folders, each folder contains code implementing a particular OSI Layer functionality, and Yes, We shall be doing it all from scratch.Warning: 1. Absolute beginners, struggling with basic data structures and pointers, pls excuse this course. You are not prepared for this project. Pls, invest your time into learning basics first.2. Machine Used: Ubuntu 19.04, GCC compiler. So my codes may not compile on your machine if you are using some other compiler or machine. Table Of Contents:********PART A********[ PROJECT 1] Section 1. KYC (Know your Course) Section 2. Developing a Generic Graph TopologyGraph Data structuresGraph related APIsCreating our first static graphSection 3. Construction of a Network Graph TopologyAdding Network topology details to the graphAPIs to configure Network TopologyGet ready without first Hello World Network Topology Section 4. Command-Line IntegrationIntegrate CLI Interface to the projectWrite Custom Commands to Display Network Topology detailSection 5. Communication SetupSending a packet to Nbr node on the outgoing interface Listening and Monitoring Multiple SocketsReceiving a packet on an interface ******** PART B ********Section 6. Agenda of Part B[ PROJECT 2] Section 7. Getting Started with TCP/IP Stack DevelopmentInterface ModesEthernet Header FormatAssignment on Ethernet Header ManipulationPacket Processing CriteriaPacket Buffer ManagementSection 8. Implement Layer 2 (DataLink Layer) - ARP Get started with ARP ImplementationARP Message Format and ExampleCreating ARP TablesCRUD APIs on ARP TablesCLIs to work with ARP ARP Cycle and ARP APIsPreparing and Sending ARP Broadcast request msgProcessing ARP Broadcast Request msgSending ARP reply MsgAPI to Start Ingress Journey of the FrameProcessing ARP reply msg and create an ARP entry in ARP tableARP in Action[ PROJECT 3] Section 9. Implement Layer 2 (DataLink Layer) - L2 Switching APIs to configure node as L2 switchesSetting up the new Topology with L2 switches and host machinesImplementing MAC learning and Forwarding algorithmsMAC Table Management of L2 switchesTesting L2 switching behavior using ARP[ PROJECT 4] Section 10. Layer 2 - Implementing Vlan Based ForwardingGoals and Pre-requisites802.1Q Vlan hdr formatVlan Tagged Ethernet Header Data StructuresAPI to determine Tagged Vs Untagged framesTagged Untagged Frame Conversion Vlan Based MAC Forwarding - Further RoadmapFrame Ingress Condition TableFrame Ingress CompletionFrame Egress Condition TableEgress Frame CompletionTest Vlan Based Forwarding[ PROJECT 5] Section 11. Setting Up Layer 3 Routing Infrastructure (Network Layer) Goals and Pre-requisitesL3 Routing Table SetupCRUD APIs for Routing Table MgmtL3 Route Installation Defining IP HDr format Adding Ping CLINetwork and Application Layer InteractionL3 Routing Concepts Revisited Forwarding CaseDirect Host Delivery CaseLocal Delivery CaseSelf-Ping CaseL3 Routing FlowchartsSection 12. Layer 3 Routing Flowcharts Implementation Payload Data Transfer from L2 to L3 Layer 3 Flowchart Implementation - Step by StepLayer 3 Operations Flowchart ImplementationLayer 2 Operations Flowchart ImplementationTesting Beta Version of our ProjectSection 13. On-Demand ARP ResolutionProblem StatementSolution Strategy Data Structure EnhancementsARP Sane Entry CreationARP Pending List ProcessingFinal Demo of our Complete Project[Project 6]Section 14. Implement IP-IN-IP Encapsulation (Tunneling)Implement IP-IN-IP Encapsulation (Tunneling)Future Extension of the Project. Students are supposed to take this forward on their own.Section 15. Routing between two Vlans (Inter Vlan Routing)

课程标签

0人关注该课程

主题相关的课程