Part A - Network Protocol Development in C ( from scratch )

所在平台: Udemy

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

课程评论:没有评论

第一个写评论        关注课程

课程简介

## Part A - C 语言从零开始的网络协议开发 本课程为期两部分,重点在于 **从零开始使用 C 语言实现一个网络协议**。我们将以伪 OSPF 和 IS-IS 协议(两者均为链路状态路由协议)作为案例研究,深入了解典型的网络协议如何在设备上实现。 **课程亮点:** * **理论与实践结合:** 在开始编码之前,我们会详细讲解实现项目所需的理论知识,包括链路状态协议的工作原理。 * **端到端实现:** 课程目标是让您体验一个典型网络协议从概念到最终实现的完整过程。 * **实际项目经验:** 您将学会如何处理协议配置(CLI)、展示内部状态(Show CLI)、响应配置更改(如链路关闭)、计算结果并更新表格(路由信息库等)、处理拓扑变化(链路故障、设备故障)、超时过期数据结构以及周期性生成或处理协议数据包。 * **软件工程实践:** 课程还将涵盖如何组织大型项目(20k LOCs)的代码,包括头文件与源文件的划分、代码模块化、新功能的测试与兼容性检查、版本控制(GitHub)、代码提交以及各种调试技术(gdb, Valgrind)。 * **简历增值:** 完成此项目并在简历中展示,将极大地提升您在网络开发职位面试中的竞争力。 **先决条件:** * **扎实的 C/C++ 基础:** 熟练掌握数据结构和算法至关重要。如果您在链表、树等基础知识上仍有困难,建议先巩固基础。 * **网络基础:** 具备 L3 路由等网络基础知识。课程会从零开始讲解路由协议的必要理论。 **适用人群:** * 希望深入理解网络协议实现细节的学习者。 * 寻求在网络开发领域获得实践经验的技术人员。 * 希望为简历增添亮点的初级至有 2-3 年经验的网络开发人员,或寻求跨领域转入网络开发的工程师。 在本课程中,您将获得宝贵的实际操作经验,为您的网络开发职业生涯打下坚实的基础。

课程评论(0条)

课程详情

What is this Course all about?This Course presents the Case study in which we implement the Pseudo Interior Gateway Protocol similar to OSPF (Open Shortest Path First) & ISIS (Intermediate System to Intermediate System). Both ISIS and OSPF are IGP protocols that fall under the category of link-state protocols and achieves the same objectives. Don't worry, We shall cover all necessary theories regarding what we shall be going to implement in the project before we hit the first line of code of the project.This full course is divided into 2 parts - Part A and Part B.We shall implement the Simplified version of the actual ISIS protocol using our tcp-ip stack library. The goal is to learn the nuances involved in implementing a typical Network protocol on a device from absolute scratch. You will be doing it all your life once you join the industry, but here, this case study aims at giving you firsthand experience regarding what it takes to implement a typical Network protocol on a (simulated) device.I bet if you are giving an interview in the company for a network developer role, entry-level up to 2-3 yrs of experience, or making a cross-domain switch into Networking Development, seeing the above mention of the project in your resume would give goosebumps to the interviewer. If you could answer cross-questions (I shall be covering in this Course) - you shall be selected without any doubt. Maintain GitHub to present your codes to him if asked. Project GoalsThe AIM of this project is to cycle you through the experience of end-to-end implementation of a typical network protocol. In this case study, we have chosen a routing protocol as an example, but the high-level logistics involved to implement a typical network protocol are more or less the same. For example, a typical network protocol has to:Configurable via CLIsShow internal states and results through show CLIsRespond to generic configuration changes ( such as link shut-down, IP Address on interface change, etc)Compute results and install the results in Tables (Routing Information Base, MAC Tables, hardware Tables, etc )Respond to Topological Changes (link failures, device failures, etc )Time-out stale Data structures if any.Periodically Generate Or Process Protocol packetHow to add a new feature to the existing working Protocol Codebase. (This is what you shall be doing all your life as a software engineer!!)Since the project is quite big (I am expecting around 20k LOCs), you would also get the opportunity to learn how to:Organize the code in header and src filesModularize the codebase: How to keep the code of different features in different src filesTesting the new feature, and cross-check it doesn't break existing featuresMaintain Code Commits through Version control system ( Github in this case )Bug Fixing, and exercise various debugging techniques (gdb, Valgrind, etc )Needless to say, you Can't exercise the above points unless you do a project of considerable size.Pre-requisites to do this CourseNeedless to say, this project is very challenging, and you need to be reasonably good at Data Structures and Algorithms in C/C++ programming. If you are still struggling with LinkedList/Trees or other common Computer Science basic fundamentals, I would not recommend you spend time on this project - rather work on building your basics first. There is no point in showcasing this project on your resume while at the same time you cannot answer other fundamentals such as questions on Heap Memory, Multithreading, etc, or fail miserably in reversing a linked list. Also, I shall assume that you have no background in Networking routing protocol (but do possess Networking Basics such as L3 routing, etc ) therefore I shall begin from absolute scratch, covering all necessary theories before we start coding. Along the journey in the implementation, we shall pick up various new concepts related to Networking, Project Planning, feature designing, or Coding Standards at the Industry level.

课程标签

0人关注该课程

主题相关的课程