A 部分 – C 中的网络协议开发(从头开始)

面向网络核心开发人员的网络编码项目、Linux、系统编程、操作系统、C/C++ 项目

讲师:Abhishek CSEPracticals

口袋资源独家Udemy付费课程独家中英文字幕配套资料齐全!

不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。

你会学到什么

  • 了解网络协议是如何在网络设备上实现的
  • 逐步实施新功能
  • 数据包处理,通过数据包处理更新协议数据结构
  • 实施复杂的协议状态机和网络算法
  • 调试和排除代码以解决问题
  • 该项目的目的是让您体验典型网络协议的端到端实现

要求

  • 基本的 L2 和 L3 网络知识
  • 应该是优秀的指针,指针运算
  • 必须了解 C 编程中的内存操作
  • 耐心、斗士、挑战者、胜利者

描述

这门课程是关于什么的?

本课程介绍了我们实施类似于 OSPF(开放最短路径优先)和 ISIS(中间系统到中间系统)的伪内部网关协议的案例研究ISIS 和 OSPF 都是属于链路状态协议类别的 IGP 协议,并且实现相同的目标。别担心,在我们开始编写项目的第一行代码之前,我们将涵盖所有关于我们将要在项目中实现的内容的必要理论。

整个课程分为 3 个部分 – A 部分、B 部分和 C 部分,其中 A 部分和 B 部分是实时的,C 部分正在开发中,截至 2022 年 10 月 19 日。

我们将使用我们的 tcp-ip 堆栈库实现实际 ISIS 协议的简化版本。目标是从头开始了解在设备上实现典型网络协议所涉及的细微差别。一旦您加入该行业,您将终生从事这项工作,但在此,本案例研究旨在为您提供有关在(模拟)设备上实施典型网络协议所需的第一手经验。

我敢打赌,如果你正在公司接受网络开发人员角色的面试,入门级最多 2-3 年的经验,或者跨域切换到网络开发,请在你的简历中看到上面提到的项目会让面试官起鸡皮疙瘩。如果你能回答交叉问题(我将在本课程中介绍)——你将毫无疑问地被选中。维护 GitHub,如果被要求向他展示你的代码。

项目目标

该项目的目的是让您循环体验典型网络协议的端到端实施在本案例研究中,我们选择了一个路由协议作为示例,但实现典型网络协议所涉及的高级物流或多或少是相同的。例如,典型的网络协议必须:

  1. 可通过 CLI 配置
  2. 通过 show CLIs 显示内部状态和结果
  3. 响应一般配置更改(例如链接关闭、接口更改的 IP 地址等)
  4. 计算结果并将结果安装在表中(路由信息库、MAC 表、硬件表等)
  5. 响应拓扑变化(链路故障、设备故障等)
  6. 超时过时的数据结构(如果有)。
  7. 定期生成或处理协议数据包
  8. 如何向现有的工作协议代码库添加新功能。(这就是你作为软件工程师一生都应该做的事情!!)

由于该项目相当大(我预计大约有20k LOC),您还将有机会学习如何:

  1. 在头文件和src文件中组织代码
  2. 模块化代码库:如何将不同功能的代码保存在不同的 src 文件中
  3. 测试新功能,并交叉检查它不会破坏现有功能
  4. 通过版本控制系统(在本例中为 Github)维护代码提交
  5. 错误修复,并练习各种调试技术(gdb、Valgrind 等)

不用说,除非你做一个相当规模的项目,否则你无法锻炼以上几点。

完成本课程的先决条件

不用说,这个项目非常具有挑战性,您需要相当擅长 C/C++ 编程中的数据结构和算法。如果您仍在努力学习 LinkedList/Trees 或其他常见的计算机科学基础知识,我不建议您花时间在这个项目上——而是先构建您的基础知识。在你的简历上展示这个项目是没有意义的,同时你不能回答其他基础知识,比如堆内存、多线程等问题,或者在反转链表时惨败。

此外,我假设您没有网络路由协议方面的背景知识(但具备网络基础知识,例如 L3 路由等),因此我将从头开始,在我们开始编码之前涵盖所有必要的理论。在实施过程中,我们将在行业层面上获得与网络、项目规划、功能设计或编码标准相关的各种新概念。

本课程适合谁:

  • 旨在在网络/分布式系统/系统编程方面工作的核心开发人员
  • 不适合那些寻求非开发角色的人(这是纯粹的面向开发的课程)
  • 不适合那些仍在苦苦挣扎于基本数据结构、基本 C 编程概念的人
  • 职业人士、求职者、网络开发领域的改变者、学习者、渴望知识的人

发表回复

后才能评论

  • 每一个课程页面,都有演示地址选项,点击链接可以跳转到课程发布网站查看详细课程列表。
  • 绝大部分课程都有试看内容,可以先点击试看,再决定是否购买。
  • 本站课程均存储在阿里云盘或百度网盘中,由于阿里云盘对分享的文件类型有限制,所以课程资料和字幕会存储到蓝奏云盘中。
  • 阿里云盘和蓝奏云盘都是不限速下载的,你既可以选择在阿里云盘中在线学习,也可以选择下载到本地学习。
  • 课程下载到本地可以挂载中英文双字幕,请点击查看Potplayer挂载中英文双字幕教程
  • 本站所有课程,均提供mp4格式视频文件,中英文双字幕,配套资料齐全,不加密。
  • 每一个课程右侧下载面板中,都会有清晰度标识,大部分都是1080P或者720P,还有少数是超高清的。
  • 本站课程购买之后,均可以免费更新,所有课程,皆配有中文字幕。
  • 请注意,课程的中文字幕是根据英文字幕用谷歌翻译生成的,本非人工翻译。谷歌翻译准确度尚可,学习观看,没有问题。
  • 由于数字资源具有可复制性,一旦购买,不接受退款要求,请在购买之前,认真了解课程内容,确定是否需要。
  • 当然,如果有特殊情况,可以查看网站底部联系方式,联系站长说明问题,我会为你妥善处理。
  • 赞助本站VIP会员,可以免费下载所有课程,详情请查看VIP介绍