Logo
☆☆☆☆☆
0.0
Beginner
20h

掌握软件工程师的计算机网络

如今应用程序的开发方式要求软件工程师必须深入理解客户端-服务器架构和网络技术。如果你计划开发网页应用,或需要与远程服务器通信的应用程序,那么掌握网络知识是一项必备技能。由此可见,作为软件工程师,你的工作将深深植根于网络技术之中。 本课程将带你学习网络的基础知识,掌握使用 Python 进行套接字编程的方法,熟悉命令行工具以及各层的主要协议。此外,你还将获得实际操作经验,不仅包括套接字编程,还包括实现需要分布式处理的网络协议。欢迎加入我们,深入探索所有与网络相关的内容。

11 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
掌握软件工程师的计算机网络
如今应用程序的开发方式要求软件工程师必须深入理解客户端-服务器架构和网络技术。如果你计划开发网页应用,或需要与远程服务器通信的应用程序,那么掌握网络知识是一项必备技能。由此可见,作为软件工程师,你的工作将深深植根于网络技术之中。 本课程将带你学习网络的基础知识,掌握使用 Python 进行套接字编...

Content

11 Lessons • 0 Quizzes • 0 Challenges

入门
  1. 1

    课程学习成果

  2. 2

    课程指南与学习工具

了解互联网
  1. 1

    互联网是什么?

  2. 2

    互联网的简史

  3. 3

    互联网标准文档

  4. 4

    互联网上的通信

接入网络
  1. 1

    互联网的边缘:端系统

  2. 2

    什么是接入网络?

  3. 3

    接入网络的类型:数字用户线路(DSL)

  4. 4

    接入网络的类型:电缆、光纤到户(FTTH)、拨号和卫星

计算机网络的类型
  1. 1

    引导型物理介质

  2. 2

    非引导型物理介质

  3. 3

    按地理距离划分

  4. 4

    按拓扑结构分类

网络基础设施:OSI模型
  1. 1

    分层架构与协议栈

  2. 2

    开放系统互连(OSI)模型

  3. 3

    TCP/IP 模型

应用层
  1. 1

    应用层是什么?

  2. 2

    网络应用架构

  3. 3

    P2P 与客户端-服务器架构

  4. 4

    进程如何通信

  5. 5

    HTTP:基础概念

  6. 6

    HTTP:请求消息

  7. 7

    练习:查看一个真实的 HTTP 请求

  8. 8

    HTTP:响应消息

  9. 9

    练习:查看一个真实的 HTTP 响应

  10. 10

    Cookie

  11. 11

    练习:查看和管理您的Cookie

  12. 12

    邮件:SMTP

  13. 13

    练习:使用 nslookup 检查域名的邮件服务器

  14. 14

    电子邮件:POP 与 IMAP

  15. 15

    电子邮件:消息格式

  16. 16

    DNS:简介

  17. 17

    练习:查找域名服务器

  18. 18

    DNS:记录与消息

  19. 19

    练习:查看DNS响应消息和资源记录

  20. 20

    BitTorrent

传输层
  1. 1

    什么是传输层?

  2. 2

    多路复用与解多路复用

  3. 3

    UDP中的多路复用与多路分解

  4. 4

    拥塞控制简介

  5. 5

    拥塞控制原则详解

  6. 6

    可靠数据传输的原理

  7. 7

    可靠数据传输:滑动窗口

  8. 8

    可靠数据传输:回退N步

  9. 9

    用户数据报协议

  10. 10

    UDP 校验和计算及为何使用 UDP

  11. 11

    练习:捕获UDP数据包

  12. 12

    传输控制协议

  13. 13

    传输控制协议(TCP)的关键特性

  14. 14

    TCP 段首部

  15. 15

    TCP 头部标志

  16. 16

    TCP 头部:窗口大小、校验和及其他内容

  17. 17

    TCP连接建立:三次握手

  18. 18

    其他TCP连接建立方法

  19. 19

    连接建立失败时:SYN洪水攻击与重传机制

  20. 20

    TCP 连接释放

  21. 21

    通过TCP实现高效的数据传输

  22. 22

    TCP 窗口缩放

  23. 23

    练习:使用 Ping 测量往返时间(RTT)

  24. 24

    TCP拥塞控制:AIMD

  25. 25

    TCP拥塞控制:慢启动

Python Socket 编程入门
  1. 1

    基础内容

  2. 2

    设置 UDP 套接字

  3. 3

    编写一个UDP服务器

  4. 4

    编写一个UDP客户端程序

  5. 5

    同时运行 UDP 服务器和客户端

  6. 6

    UDP程序的改进:避免任意服务器

  7. 7

    项目:编写一个UDP聊天应用程序!

  8. 8

    解决方案:编写一个UDP聊天应用程序!

  9. 9

    一个 TCP 客户端-服务器程序

网络层
  1. 1

    什么是网络层?

  2. 2

    网络层的组织结构

  3. 3

    控制平面:静态路由与动态路由

  4. 4

    控制平面:距离向量 - 路由信息协议

  5. 5

    编程挑战:路由信息协议

  6. 6

    解决方案回顾:路由信息协议

  7. 7

    控制平面:链路状态路由

  8. 8

    控制平面:路由计算——迪杰斯特拉算法

  9. 9

    编程挑战:实现迪杰斯特拉算法

  10. 10

    解决方案回顾:实现迪杰斯特拉算法

  11. 11

    互联网协议:IPv4简介

  12. 12

    互联网协议:IPv4 地址分配

  13. 13

    互联网协议:IPv4 数据包

  14. 14

    互联网协议:IPv4数据包分片与重组

  15. 15

    互联网控制消息协议(ICMP)

  16. 16

    练习:使用 Ping 和 Traceroute 发送 ICMP 消息

  17. 17

    地址解析协议(ARP)

  18. 18

    动态主机配置协议(DHCP)

  19. 19

    IPv4 实践:数据包的一生

  20. 20

    为什么使用IPv6?

  21. 21

    IPv6 特性

  22. 22

    中间盒:防火墙

  23. 23

    中间盒:网络地址转换(NAT)

  24. 24

    IP 路由简介:域内路由与域间路由

  25. 25

    域内路由:OSPF

  26. 26

    域间路由:边界网关协议

  27. 27

    边界网关协议:确定最佳路由

链路层
  1. 1

    数据链路层是什么?

  2. 2

    数据链路层的基本原理:帧定界问题

  3. 3

    数据链路层的基本原理:差错检测

  4. 4

    介质访问控制:静态分配

  5. 5

    介质访问控制:随机方法 - ALOHA

  6. 6

    介质访问控制:随机方法 - CSMA

  7. 7

    介质访问控制:随机方法 - CSMA/CD

  8. 8

    介质访问控制:随机方法——优化CSMA/CD

  9. 9

    以太网简介

  10. 10

    以太网帧格式

  11. 11

    以太网的物理层

  12. 12

    以太网交换机

  13. 13

    编程挑战:生成树协议

  14. 14

    解决方案回顾:生成树协议

  15. 15

    虚拟局域网

结论
  1. 1

    网络工程职业发展路径

  2. 2

    最后的思考

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)