计算机网络
Chapter 01计算机网络
1.3 网络、互联网、因特网
网络:结点和链路
互联网(internet):网络的网络
因特网(Internet):最大的互联网
因特网服务提供者ISP:中国电信、联通、移动
边缘部分:连接在因特网上的主机
核心部分:由大量网络和连接这些网络的路由器组成。为边缘部分提供服务。
1.3 三种交换方式
电路交换:电话交换机接通电话线的方式。
三个步骤:①建立连接 ②通话 ③释放连接
分组交换:发送方:构造分组,发送分组 路由器:缓存分组,转发分组 接收方:接收分组,还原报文
报文交换
1.4 计算机网络的定义和分类
计算机网络的定义:一些互相连接的、自治的计算机的集合
计算机网络的分类:
按交换技术分类:电路交换网络,报文交换网络,分组交换网络
按使用者分类:公用网,专用网
按传输介质分类:有线网络,无线网络
按覆盖范围分类:广域网WAN,城域网MAN,局域网LAN,个域网PAN
按拓扑结构分类:总线型网络,星型网络,环型网络,网状型网络
1.5 计算机网络的性能指标
速率(也称比特率或数据率):连接在计算机网络上的主机在数字信道上传送比特的速率
注:比特的进制采用的是210,而速率的进制采用103
带宽:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点 所能通过的最高数据率;单位:b/s,kb/s,Mb/s
吞吐量:在单位时间内通过某个网络的数据量,受网络带宽或额定速率的限制。
时延:网络时延由发送时延,传播时延和处理时延组成
时延带宽积:传播时延与带宽的乘积,又称为以比特为单位的链路长度
往返时间(RTT) :双向交互一次所需的时间
利用率:信道利用率:某信道有百分之几的时间是被利用的。 网络利用率:全网络的信道利用率加权平均
信道利用率增大时,该信道引起的时延也会迅速增加
丢包率:即分组丢失率,传输过程中丢失的分组数量与总分组数量的比率
分组丢失主要有两种情况:传输过程中出现误码,分组到达一台队列已满的分组交换机时被丢弃。
1.6 计算机网络体系结构
-
常见的计算机网络体系结构
OSI体系结构:物理层、数据链路层、网络层、运输层、会话层、表示层、应用层
TCP/IP体系结构:网络接口层、网际层、运输层、应用层
网络接口层:网络接口……
网际层:IP
运输层:TCP UDP
应用层:HTTP SMTP DNS RTP
原理体系结构:物理层、数据链路层、网络层、运输层、应用层
-
分层的必要性
物理层:解决使用何种信号来传输比特的问题
数据链路层:解决分组在一个网络上传输的问题
网络层:解决分组在多个网络上传输的问题
运输层:解决进程之间基于网络的通信问题
应用层:解决通过应用进程的交互来实现特定网络应用的问题
-
分层思想举例
HTTP -> HTTP TCP -> HTTP TCP IP -> ETH HTTP TCP IP ETH -> 比特流
-
专业术语
实体:任何可发送或接收信息的硬件或软件进程
协议:控制两个对等实体进行逻辑通信的规则的集合
三要素:语法、语义、同步
服务:在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。要实现本层协议,还需 要使用下面一层所提供的服务。
协议数据单元PDU:报文、TCP报文段或UDP报文段、IP数据报或分组、帧、比特流
Chapter 02物理层
2.1 基本概念
机械特性、电气特性、功能特性、过程特性
- 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。
- 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒介是什么。
2.2 物理层下面的传输媒体
导引型传输媒体:同轴电缆,双绞线,光纤,电力线。
非导引型传输媒体:无线电波,微波,红外线,可见光。
2.3 传输方式
串行传输、并行传输
同步传输、异步传输
单向通信(单工)、双向交替通信(半双工)、双向同时通信(全双工)
2.4 编码与调制
常用编码:不归零编码、归零编码、曼彻斯特编码、差分曼彻斯特编码
基本调制方法:调幅、调频、调相
2.5 信道的极限容量
奈氏准则:为避免码间串扰,码元传输速率是有上限的。
香农公式:c = W \times log_{2}(1 + \frac{S}{N})
Chapter 03 数据链路层
3.1 概述
链路:从一个结点到相邻结点的一段物理线路,中间没有任何其他交换结点。
数据链路:把实现通信协议的硬件和软件加到链路上。(以帧为单位传输)
封装成帧:添加帧头和帧尾。
差错检测:通过帧尾的检错码和检错算法,判断是否出现误码。
可靠传输:发送方发送什么,接收方就能接收什么。
3.2 封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使其成为帧。
帧头和帧尾中包含重要的控制信息。
帧头和帧尾的作用之一就是帧定界。
-
透明传输:数据链路层对上层交付的传输数据没有任何限制。
-
面对字节:使用字节填充(转义字符)
- 对传输数据中出现的与定界符和转义字符相同的数据,前面再添加一个转义字符。(转义字符是一个字节,十进制为27)
-
面对比特:使用比特填充。
-
3.3 差错检测
比特差错:比特出现误码
误码率BER:传输错误的比特所占传输比特总数的比率。
差错检测码
- 奇偶校验
- 循环冗余校验CRC
3.4 可靠传输
3.4.1 基本概念
对于检测出了误码,数据链路层向上层提供的服务类型
- 不可靠传输服务:仅仅丢弃有误码的帧
- 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
一般,有线链路误码率较低,不要求数据链路层向上提供可靠传输服务。可靠传输的问题由其上层处理。
无线链路误码率较高,要求数据链路层向上层提供可靠传输服务。
上层传输差错:分组丢失、分组失序、分组重复
3.4.2 可靠传输的实现机制——停止等待协议SW
3.4.3 可靠传输的实现机制——回退N帧协议GBN
累积确认:ACKn表示序号为n及以前的所有数据分组都已正确接收
3.4.4 可靠传输的实现机制——选择重传协议SR
3.5 点对点协议PPP
目前使用最广泛的点对点数据链路层协议
封装成帧、链路控制协议LCP、一套网络控制协议NCPs
-
标志字段(Flag):PPP帧的定界符,取值为0X7E
-
地址字段(Address):取值为0XFF,预留
-
控制字段(Control):取值为0X03,预留
-
协议字段(Protocol):指明帧的数据部分送交哪个协议处理
- 取值0x0021表示:帧的数据部分为IP数据报
- 取值0xC021表示:帧的数据部分为LCP分组
- 取值0x8021表示:帧的数据部分为NCP分组
-
帧校验序列字段FCS:CRC计算出的校验位
3.6 媒体接入控制MAC
3.6.1 基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接受站点对一个共享传输媒体的占用,即媒体接入控制MAC
媒体接入控制->动态接入控制->随机接入
3.6.2 静态划分信道
- FDM频分复用
- TDM时分复用
- WDM波分复用:光纤中不同波长的光
- CDM码分复用:每个站指派一个唯一的码
3.6.3随机接入——CSMA/CD协议(有线局域网)
载波监听多址接入/碰撞检测 CSMA/CD
争用期:以太网的端到端往返传输时延。
最小帧长:确保了主机可以在帧发送完成之前就检测到该帧的发送过程中是否发送了碰撞,以太网规定最小帧长为64字节。
最大帧长
截断二进制指数退避算法
信道利用率
3.6.4 随机接入——CSMA/CA协议(无线局域网)
载波监听多址接入/碰撞避免 CSMA/CA
在无线局域网中仍可以使用CSMA,但不能使用CD
帧间间隔:站点必须在持续检测到信道空闲一段指定时间后才能发送帧,即帧间间隔IFS
长帧间间隔DIFS、短帧间间隔SIFS
3.7 MAC地址、IP地址以及APR协议
MAC地址:以太网的MAC子层所使用的地址
IP地址:TCP/IP体系结构网际层所使用的地址
APR协议:属于TCP/IP体系结构的网际层,作用是已知设备所分配到的IP地址,使用APR协议可以通过该IP地址获取到设备的MAC地址
3.7.1MAC地址
-
用于媒体接入控制的地址就是MAC地址。是主机发送的帧中携带标识发送主机和接受主机的地址。
-
也被称为硬件地址,有时也称为物理地址。
-
MAC地址是对网络上接口的唯一标识。
- IEEE 802局域网的MAC地址格式:XX-XX-XX-XX-XX-XX 或 XX:XX:XX:XX:XX:XX 或 XXXX.XXXX.XXXX
- 单播地址、广播地址、多播地址
3.7.2 IP地址
IP地址是因特网上的主机和路由器所使用的地址,用于表示两部分信息:
网络编号:标识以太网上数以百万计的网络
主机编号:表示同一网络上不同主机哦(或路由器接口)
数据包转发过程中:源IP地址和目的IP地址保持不变;源MAC地址和目的MAC地址逐个网络改变。
3.7.3 ARP协议
根据IP寻找MAC
3.8 集线器和交换机
集线器HUB:简单看作一条总线
交换机AWITCH:全双工,多接口,隔离碰撞域
3.9 交换机自学习和转发帧的过程
3.10 交换机的生成树协议STP
3.11 虚拟局域网VLAN
-
使用路由器可以隔离广播域
-
虚拟局域网是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术。
-
实现机制
-
.1Q帧
-
端口类型
- Access
- Trunk
- Hybrid
-
Chapter04 网络层
4.1 概述
网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输
- 网络层向运输层提供怎样的服务
- 网络层寻址问题
- 路由选择问题
因特网使用TCP/IP协议,其网络层使用网际协议IP,因此在TCP/IP协议栈中网络层常称为网际层
4.2 网络层提供的两种服务
4.2.1 面向连接的虚电路服务
- 可靠性由网络来保证
- 建立网络层的连接——虚电路VC
- 沿着已建立的虚电路发送分组
4.2.2 无连接的数据报服务
- 可靠通信由用户主机保证
- 不需要建立网络层连接
- 每个分组走不同的路径
4.3 IPv4地址
IPv4地址:给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32比特标识符
点分十进制表示方法,如:255.255.0.1
4.3.2 分类编址的IPv4地址
A类地址 8+24:网络号0+主机号
- 网络号0保留,最小可指派网络号为1,即1.0.0.0 最后一个可指派网络号为126,网络地址为126.0.0.0
- 最大网络号127为本地环回测试地址不指派,最小本地环回测试地址为127.0.0.1,最大为127.255.255.254
B类地址 16+16:网络号10+主机号
- 第一个可指派网络号128.0
- 最大网络号191.255
C类地址 24+8:网络号110+主机号
- 第一个可指派网络号192.0.0
- 最大网络号223.255.255
D类地址 1110多播地址
E类地址 1111保留为今后使用
主机号全0是网络地址,主机号全1是广播地址
4.3.3 划分子网的IPv4地址
子网掩码:32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特来作为子网号
- 用连续的比特1来对应网络号和子网号
- 用连续的比特0来对应主机号
- 将划分子网的IPv4地址与子网掩码进行逻辑与运算即可得到所在子网的网络地址
默认子网掩码:未划分子网情况下的子网掩码
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
4.3.4 无分类编址的IPv4地址
CIDR使用“斜线记法”,即在IPv4地址后面加上斜线“/”,在斜线后面写上网络前缀所占的比特数量。
如:128.14.35.7 /20
地址块:最小地址、最大地址、地址数量、聚合C类网的数量、地址掩码
路由聚合:(构造超网)
用共同前缀代替多个IP地址
最长前缀匹配:若多个路由都可匹配,选择前缀最长的
4.3.5 IPv4地址的应用规划
定长的子网掩码FLSM:使用同一个子网掩码
变长的子网掩码VLSM:使用不同子网掩码
4.4 IP数据报的发送和转发过程
- 主机发送IP数据报
- 路由器转发IP数据报
判读是否在同一个子网下:
- 将自己的子网掩码与IP与得自己的网络地址,将对方的IP与自己的子网掩码与,判断与自己的网络地址是否相同。
- 默认网关:向外转发的路由器的接口的IP地址
4.5 静态路由配置
- 人为配置
- 多种情况下都可能出现路由环路
4.6 路由选择协议
4.6.1 概述
-
静态路由选择
- 人工配置
- 不能及时适应网络状态变化
- 小规模网络采用
-
动态路由选择
- 自动获取路由信息
- 能较好适应网络状态变化
- 适用于大规模网络
因特网所采用的路由选择协议的主要特点
- 自适应
- 分布式
- 分层次
4.6.2 路由信息协议RIP
内部网关协议之一
使用跳数作为度量来衡量到达目的网络的距离
距离向量D-V:自治系统AS内的每一个路由器都要维护他自己到AS内其他每一个网络的距离记录
路由器到直连网络的距离定义为1
允许一条路径最多包含15个路由器,距离等于16时相当于不可达,故RIP只适用于小型互联网。
RIP包含以下三个要点:
- 和谁交换信息?仅和相邻路由器交换信息
- 交换什么信息?自己的路由表
- 何时交换信息?周期性交换
RIP存在“坏消息传得慢”的问题,解决办法:
- 限制最大路径距离
- 触发更新而不仅是周期性发送
- 水平分割
4.6.3 开放最短路径优先OSPF
- 公开发表
- 采用最短路径算法SPF
- 基于链路状态(链路状态指和哪些路由器相邻,及相应链路的代价)
- 不会产生路由环路
- 不限制网络规模,收敛速度快
使用OSPF的每个路由器都会产生链路状态通告LSA 。包含以下内容:直连网络的链路状态信息、邻居路由器的链路状态信息
使用链路状态数据库LSDB存储链路状态通告
4.6.4 边界网关协议BGP
外部网关协议
BGP报文被封装在TCP报文中
RIP封装哎UDP中,OSPF封装在IP中
4.7 IPv4数据报的首部格式
4.8 网际控制报文协议ICMP
主机或路由器使用ICMP来发送差错报告报文和询问报文,ICMP封装在IP数据报中
差错报文:
- 终点不可达
- 源点抑制
- 时间超过
- 参数问题
- 改变路由(重定向)
以下情况不应发送ICMP差错报告报文:
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据包片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有多播地址的数据报都不发生ICMP差错报告报文
- 对具有特殊地址的数据报不发送ICMP差错报告报文
询问报文:
- 回送请求和问答
- 时间戳请求和回答
ICMP应用举例:分组网间探测PING、跟踪路由tracert
4.9 虚拟专用网VPN与网络地址转换NAT
虚拟专用网VPN:用于内部通信,无需申请
网络地址转换NAT:再次缓解IPv4耗尽的问题,将私有地址修改为临时的全球ip地址
Chapter05 传输层
5.1 概述
AP:应用进程
运输层是进程到进程的通信(端到端)
网络层是主机到主机的通信
两种协议:面向连接的TCP和面向无连接的UDP
5.2 运输层端口号、复用与分用
-
运行在计算机上的进程使用进程标识符PID来标识
-
不同操作系统有不同的进程标识符,为统一标识进程采用端口号来区分不同应用进程
-
端口号使用16比特表示,取值范围为0~65535
- 熟知端口号:0~1023,如HTTP使用80,DNS使用53
- 登记端口号:1024~49151
- 短暂端口号:49152~65535
端口号只具有本地意义,即端口号只是为了标识本计算机应用层中的各进程,不同计算机中相同端口号是没有联系的。
-
发送方的复用和接收方的分用
5.3 UDP和TCP的对比
5.4 TCP的流量控制
滑动窗口机制:
- TCP接收方利用自己的接收窗口的大小来限制发送方发送窗口的大小
- TCP发送方收到接收方的零窗口通知后,应用启动持续计时器。持续计时器超时后,向接收方发送零窗口探测报文。
5.5 TCP的拥塞控制
拥塞:在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可以部分,网络性能就要变坏。
若出现拥塞而不进行控制,整个网络的吞吐量将对输入负荷的增大而下降。
慢开始:指数
拥塞避免:线性+1
快重传:发送方一旦受到3个连续的重复确认,就将相应的报文段立即重传。
快恢复:降到当前的一半然后线性加1
5.6 TCP超时重传时间的选择
5.7 TCP可靠传输的实现
TCP基于以字节为单位的滑动窗口来实现可靠传输
5.8 TCP的运输连接管理
5.8.1 TCP的连接建立
“三次握手”建立连接
为什么要三次握手而不是两次握手?
为了防止已失效的连接请求报文突然又传入了TCP服务器
为了服务器可以确认自己的发送功能和客户端的接受功能正常
5.8.2 TCP的连接释放
“四次挥手”释放连接
时间等待状态是为了确保服务端收到最后一个TCP确认报文从而进入关闭状态
5.9 TCP报文段的首部格式
Chapter06 应用层
6.1 概述
应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的。
6.2 客户/服务器方式和对等方式
-
客户/服务器方式(C/S方式)
- 客户是服务请求放,服务器是服务提供方
- 服务器总是处于运行状态,并等待客户的服务请求。服务器具有固定端口号(如HTTP服务器的默认端口号为80),而运行服务器的主机也具有固定的IP地址。
- 基于C/S方式的应用服务通常是服务集中型的,常会出现服务器跟不上众多客户机请求的情况,为此常用计算机群集构建一个强大的虚拟服务器。
-
对等方式(P2P方式)
- 没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方。对等方相互之间直接通信,每个对等方既是服务的请求者又是服务的提供者。
- 服务分散型
- 可扩展性,系统性能不会因为规模的增大而降低。
- 具有成本上的优势
6.3 动态主机配置协议DHCP
-
DHCP的工作过程
- 使用UDP协议
-
DHCP中继代理
- 计算机在向DHCP服务器发送请求时无法通过路由器转发到服务器,此时需要给路由器配置DHCP服务器的IP地址使其成为DHCP中继代理。
6.4 域名系统DNS
-
域名系统的作用
- 根据域名查询IP地址
- 先在自己的DNS缓存中查询,然后再去DNS服务器中查询
-
域名结构
-
··· . 三级域名 . 二级域名 . 顶级域名
-
每一级都由英文字母和数字组成,不超过63个字符,不区分大小写
-
完整的域名不超过255个字符
-
顶级域名TLD分为以下三类
- 国家顶级域名nTLD: cn表示中国 us表示美国 uk表示英国
- 通用顶级域名gTLD: com公司企业 net网络服务机构 org非盈利组织 int国际组织 edu gov mil
- 反向域arpa:用于反向域名解析,即IP地址反向解析为域名
-
我国二级域名
- 类别域名:ac科研机构 com工商金融企业 edu教育机构 gov政府部门 net提供网络服务的机构 mil军事机构 org非盈利性组织
- 行政区域名:bj北京 sh上海 js江苏省
-
-
域名解析的过程
-
递归查询
-
迭代查询
-
6.5 文件传送协议FTP
- 是因特网上使用得最广泛的文件传送协议
- 提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限
- 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件
6.6 电子邮件
-
采用各户/服务器方式
-
三个主要组成构件:用户代理、邮件服务器、电子邮件所需的协议
- 用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件
- 邮件服务器是电子邮件系统的基础设施。其功能是发送和接收邮件
- 协议包括邮件发送协议和读取协议
-
简单邮件传送协议SMTP
6.7 万维网WWW
-
万维网(World Wide Web)并非某种特殊的计算机网络,它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用。
-
利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网。
-
万维网使用统一资源定位符URL来指明因特网上任何种类“资源”的位置。
-
URL的一般格式由以下四部分组成
<协议>://<主机>:<端口>/<路径>
超文本传输协议HTTP
-
定义了浏览器怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。
-
HTTP1.0:
- 浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接
HTTP1.1:
- 引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用
- 在同一个TCP连接里面,客户端可以同时发送多个请求
- 虽然允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的,服务器只有处理完一个请求,才会接着处理下一个请求。如果前面的处理特别慢,后面就会有许多请求排队等待
- 新增了一些请求方法
- 新增了一些请求头和响应头
-
使用Cookie在服务器上记录用户信息
-
早期HTTP是一种无状态的协议
-
Cookie是一种对无状态的HTTP进行状态化的技术
-
-
万维网缓存与代理服务器
- 万维网缓存又称为Web缓存,可位于客户机也可位于中间系统上,位于中间系统上的Web缓存又称为代理服务器。
- Web缓存把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时若发现这个请求与暂时存放的请求相同,则返回暂存的响应,而不需要按URL的地址再次去因特网访问该资源。