这篇文章是学习中科大自动化系郑烇老师《计算机网络》MOOC的笔记。课程录像可以在 这里 观看,教材是《计算机网络-自顶向下方法(第7版)》,课件可以在 这里 下载。

本篇内容对应课程录像的 P1 课程目标P2 课程内容,欢迎讨论交流。

课程大纲

  • 分为三部分:导论、各层详解、应用选讲
  • 导论是介绍计算机网络整体和各层的基本概念,内容较多,相当于一个微缩版的课程
  • 各层详解将分别详细解读应用层、传输层、网络层、数据链路层和物理层(后两者合二为一)。
    • 每一层大体会分为两部分,即原理(包括功能和服务)与实例:

      功能要调用下层的接口来实现;
      服务是本层向上层提供的接口。

    • 实例部分会介绍该层的常见协议,比如应用层的HTTP/FTP,传输层的TCP/UDP等(下一部分包含了此处的延伸内容)

  • 应用选讲:包含网络安全、无线和移动网络、多媒体网络、网络管理四个部分。本课将会至少讲解网络安全这一部分,后三部分根据课时安排而定。

延伸内容

本部分是老师在介绍课程大纲”各层详解“部分时即兴补充的一些基本概念和原理。

传输层:TCP和UDP

应用层协议规范的是两个远程程序之间通信的方式,而传输层管理的是进程到进程的交互,又被称为端到端交互(E2E),是在网络层提供的服务基础上进行了加强。

TCP和UDP是传输层常见的两种协议。两种协议在数据传输上各有侧重:TCP侧重于传输的可靠性,而UDP则侧重于实时性。

可靠性的要点:无错误、无重复、无丢失、无乱序。

根据其特点的不同,对于可靠性要求较高的应用(如登录认证)一般使用TCP协议通信,而对于实时性要求较高的应用(如网络直播)一般使用UDP协议通信。具体情境中,要根据数据传输的需求在两个协议之间做Trade-off。

网络层

网络层提供的是”尽力而为“的主机到主机的IP服务,又被称为点到点交互(P2P)。

尽力而为的含义:无法保证可靠性,需要更高一层功能来保障。

主机到主机之间可能会有多跳,因此网络层的功能是基于链路层提供的相邻两点的传输服务实现的。

网络层主要有两种工作方式:传统方式和SDN[Software Defined Network]方式。 传统的方式借助IP和路由协议实现,其功能较为单一,且部署后极难变动;SDN方式将网络层分为数据平面-交换机和控制平面-NOS,允许可编程的IP和路由实现方式,使得网络的部署和升级更加灵活;从SDN的视角来看,传统方式只是SDN的一个特例。