计算机网络
前言:
学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程
该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信息量过大,有太多无法理解的地方,在我第一次点开的时候也有相同的感受,但经过了一段时间项目的学习,对计网有了更多的了解,所以我准备在这次学习的时候做一些记录并且加入一些我的理解,希望能够帮助到大家。
往期笔记可以看专栏中的内容
资料分享:
视频课件分享链接,提取码 pho1
计算机网络(第七版) 自顶向下方法分享链接,提取码 7ln4
00. 课程主要内容介绍
课程主要内容:
- 计算机网络和互联网
- 应用层
- 传输层
- 网络层:数据平面
- 网络层:控制平面
- 数据链路层和局域网
- 网络安全
- 无线和移动网络
- 多媒体网络
- 网络管理
0.1 传输的可靠性
TCP 与 UDP 的案例
- TCP(传输控制协议)提供可靠的数据传输。它 确保数据的顺序和完整性,通过确认机制和重传来保证数据的可靠性;相对的,延迟较高。
- UDP(用户数据报协议)是一种无连接的协议,通信不需要事先建立连接。每个数据包都是独立的,相互之间没有关联;不保证数据的可靠性,它不提供确认机制或重传机制。因此,数据包可能会在传输过程中丢失或无序;相对的,延迟较低。
上面的 TCP 与 UDP 是 传输层 的协议,所以课程中提到 “跑在 xxx 之上”,是因为 应用层 是在 传输层 之上的。
0.2 协议
在计算机科学和网络通信中,协议是一组规则和约定,它们定义了数据交换的方式、数据的格式、错误检测和纠正方法等。协议是为了 使不同的系统、设备或软件能够在网络中相互通信而制定的规范。
不同的应用遵守相同的协议就能够实现相互通信。
TCP / IP 的四层架构
- 网络接口层(Network Interface Layer): 也被称为链路层,与 OSI 模型的数据链路层和物理层相对应。它定义了网络硬件的标准和协议,包括物理连接、数据帧的格式等。
- 网络层(Internet Layer): 对应 OSI 模型的网络层。这一层负责在网络上选择最佳的路径,将数据包从源主机传输到目标主机。IP(Internet Protocol)是在这一层工作的主要协议。
- 传输层(Transport Layer): 与 OSI 模型的传输层相对应。这一层提供端到端的通信服务,负责数据的分段、传输和重组。TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是在这一层工作的主要协议。
- 应用层(Application Layer): 对应 OSI 模型的应用层。这一层包括网络应用和用户接口,提供了直接面向用户的服务。在这一层,常见的应用层协议包括HTTP、FTP、SMTP等。
0.3 传统网络与 SDN 网络
网络层:控制平面和数据平面
传统网络:
- 网络设备既负责处理数据包的转发,又负责执行路由、交换等控制功能。
- 传统网络的配置和管理相对较为静态,对于变化的网络需求应对较为困难。
- 配置和管理网络设备通常需要专门的配置命令或者设备特定的管理界面。
SDN(软件定义网络)
- SDN 将控制平面从网络设备中分离出来,形成一个中心化的控制器。
- SDN 提供了更高的灵活性和 可编程性,管理员可以根据应用需求快速调整网络策略,实现更加智能化和动态化的网络管理。
01. 概论
计算机网络分层的思想,上一层是对下面一层的拓展,上一层是在下面一层提供的服务和接口的基础上实现的。
1.1 什么是 Internet?
1.1.1 从构成的角度看 Internet
网络:网络由 节点 和 边 组成,描述节点跟边的关系
计算机网络:联网的计算机构成的一个系统
- 主机节点:数据的 源头
- 数据交换节点:负责数据的转发
- 链路:主机连接到互联网称为 接入网链路,路由器之间的连接称为 主干链路
协议:对等层 实体在通信过程之中应该遵循的规则的集合,包含语法、语义和时序
互联网(Internet):以 TCP / IP
协议为主的一簇协议支撑的一个 计算机网路
端系统(End System)= 主机:计算机网络中的最终节点,即连接网络的终端设备或主机。端系统可以是个人计算机、服务器、智能手机、网络摄像头等各种类型的设备。
1.1.2 协议
协议:对等层 实体在通信过程之中应该遵循的规则的集合,包含语法、语义和时序
遵守同种协议的网络实体才能 相互通信
1.1.3 Internet
Internet:网络的网络,可以看作是由众多可看作整体的网络连接而成的
Internet 标准的修订:
- 互联网工程任务组(IETF)
- 互联网协会(Internet Society)
- 组织负责制定和发布互联网相关的技术标准和文档。互联网标准通常以请求评论(Request for Comments,RFC)的形式发布,并且经过时间的推移会有新的版本和修订。
1.1.4 从服务角度看互联网
看作由 分布式的进程 和 提供通讯服务的基础设施
- 分布式的进程理解为应用层,比如平时用的软件等,这是 Internet 存在的理由提供通讯服务的基础设施理解为应用层一下的所有协议实体
1.2 网络边缘
1.2.1 对网络边缘的理解
接入(access):将边缘接入核心
边缘系统:暂时理解为平时使用的产品,比如电脑、手机等,上面的 应用程序(application)是网络存在的理由
网络核心:接收端系统的数据,将其传给指定的另一个端系统,负责全球范围内所有的节点的数据交换
1.2.1 应用进程通信模式
- 客户端服务器模式(Client-Server Model)
- 是一种很常见的通信模式,所有的资源都存储在服务器上,像我这种从事软件开发的最经常遇到的模式;客户端(浏览器)通过向服务器来发送请求报文来获取数据,比如常用的音乐播放软件其实就是客户端向服务器请求音乐资源来实现播放,这些资源都是存在于服务器上。
- 客户端服务器模式存在的问题,很多人应该都听过服务器挂了这个词语,这是因为当服务器访问量很高(负载很高)的时候,它的性能会存在 断崖式 的下跌,要通过不断加服务器来分发任务实现负载均衡,这也就导致其可拓展性比较差
- 对等模式(Peer-to-Peer,简称P2P)
- 是一种计算机网络架构,其中系统中的节点(peer)之间平等地协作,互相提供服务或资源,而不需要中心化的服务器。在对等网络中,每个节点既是服务的请求者,也是服务的提供者,节点之间直接通信而无需通过中心节点进行中转。
1.2.2 两种通信方式
- 面向连接:面向连接的通信方式是一种网络通信模型,其特点是在通信前需要先建立连接,然后进行数据传输,最后再释放连接。
- TCP 是一种面向连接的、可靠的传输协议,用于在网络上进行数据传输。
- 在通信前,TCP 使用三次握手的过程建立连接,确保通信双方都准备好进行数据传输。
- 数据传输过程中,TCP 采用序列号、确认和重传机制,以保证数据的有序性和完整性。
- 通信结束后,使用四次挥手的过程关闭连接。
- 面向无连接:在面向无连接的通信中,通信双方不需要在传输数据前建立连接。每个数据包都是独立的,单独处理,没有先后顺序的限制,也没有确认机制。
- UDP 是一种面向无连接的传输协议。
- 它不提供像 TCP 那样的可靠性和有序性,数据包可能丢失或乱序。
- 由于没有连接的建立和维护过程,UDP 具有较低的延迟。
- 简单快速:无连接的方式减少了连接的建立和关闭过程,提高了传输速度
不可靠:由于缺乏确认机制,数据包可能在传输过程中丢失或出现乱序
适用于实时应用:适用于一些实时性要求较高、可以容忍一定数据丢失的应用,如音频、视频传输等。