计算机网络像是虚拟世界和现实世界的桥梁。
前言 & 课程介绍
课程目标:
建立对计算机网络的整体认知,对计算机网络中的各种概念(网络分层、网络协议、网络应用等)有初步的理解,同时对网络安全的基本原则有基本的了解,进而可以在后续的实际工作中能高效解决网络问题。
课程介绍
- 通过一个示例建立对计算机网络的整体认识
- 建立对网络协议分层的认知
- 分析HTTP1、2、3的关系
- 介绍CDN运行的基本原理
- 了解网络安全的最基本原则和实现
计算机网络的分析方法
-
自底向上:构建对计算机网络的认知
- 从简单开始,逐渐变复杂
- 将模块逐步拼凑成一个系统
-
自顶向下:解释现成网络应用、协议的特性和工作原理
- 从复杂开始,逐渐变简单
- 从复杂的系统问题入手,拆分为模块问题
蟹堡王帝国
以蟹老板和蟹黄堡帝国作为例子来讲述蟹堡王如何从零搭建一个遍布全国的通信网络。
三步走战略:
- 在比奇堡开通外卖(增加收入)
- 在北京和上海开分店(扩大服务范围)
- 在全国开分店并开通外卖(进一步扩大服务范围并增加收入)
- 蟹堡王顾客:客户端
- 蟹堡王分店:服务端
- 小区转发点和蟹堡王城市转发分店:路由器
- 转发表格:网络协议
计算机网络基础
网络组成部分
- 主机(客户端和服务端):提供信息或接收信息
- 路由器:转发主机之间的信息
- 网络协议:提供统一的格式,方便路由器或主机编码和解码
网络的结构:网络的网络
网络把主机连接起来,而互联网(Internet)是把多种不同的网络连接起来,因此互联网是网络的网络。而互联网(Internet)是全球范围的互连网。
以蟹堡王帝国为例
- 比奇堡和小区网络:本地网络
- 北京和上海分店+比奇堡:三个本地网络节点和网络
- 全国通信网络:本地网络的网络
网络类型:本地网络(LAN)>区域网络(MAN)>城域网(CAN)>广域网(WAN)
电路交换 & 分组交换
-
电路交换
电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低,往往不到 10%。
-
分组交换
分组交换是现代计算机网络中主要使用的通信技术。数据被切分成多个数据包(分组),每个分组都有首部和尾部,包含了源地址和目的地址等控制信息,在同一个传输线路上同时传输多个分组互相不会影响,因此在同一条传输线路上允许同时传输多个分组,也就是说分组交换不需要占用传输线路。
在一个邮局通信系统中,邮局收到一份邮件之后,先存储下来,然后把相同目的地的邮件一起转发到下一个目的地,这个过程就是存储转发过程,分组交换也使用了存储转发过程。
Web中的网络
常见的应用协议和网络应用是如何工作的。
1. 五层协议
- 应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。
- 传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。
- 网络层 :为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。
- 数据链路层 :网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。
- 物理层 :考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。
2. OSI
其中表示层和会话层用途如下:
- 表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。
- 会话层 :建立及管理会话。
五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。
3. TCP/IP
它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。
TCP/IP 体系结构不严格遵循 OSI 分层概念,应用层可能会直接使用 IP 层或者网络接口层。路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要传输层和应用层。
4. 数据在各层之间的传递过程
在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。
路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要传输层和应用层。
网络安全
如何在一个明文的世界里说悄悄话