第一章 概述

互联网组成

image.png
网络边缘的端系统之间的通信方式可划分为两大类:客户-服务器方式(C/S)和对等方式(P2P)。
P2P:不区分服务请求方和服务提供方。
在网络核心部分中起特殊作用的是路由器,路由器是实现分组交换的关键构件,其任务是转发收到的分组。

报文转发方式

电路交换:整个报文的比特流连续的从源点直达终点,好像在一个管道中传输。
报文交换:整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
分组交换:单个分组(报文的一部分)传送到相邻结点,存储下来后查找转发表转发到下一个结点。
image.png

计算机网络性能指标

速率

速率指的是数据的传送速率,也称为数据率,单位是bit/s(比特每秒).

带宽

带宽就是用来表示网络中某通道传送数据的能力,带宽表示在单位时间内网络中某信道所能通过的“最高数据率”。带宽的单位是数据率的单位bit/s。

吞吐量

表示单位时间内通过某个网络的实际数据量。

时延

网路中的时延由由以下几个不同部分组成:

  1. 发送时延:是主机或路由器发送数据帧所需要的时间
  2. 传播时延:传播时延是电磁波在信道中传播一定距离所需要花费的时间
  3. 处理时延:主机或路由器在收到分组时需要花费一定的时间进行处理,比如分析分组的首部,从分组中提取数据部分,进行差错检测或查找适当路由等。
  4. 排队时延:分组在进入路由器之后,首先要在队列中排队等待处理,路由器确定转发接口后,还要在输出队列中等待转发。这就产生了排队时延。

总时延 = 发送时延+传播时延+处理时延+排队时延

体系结构

image.png

应用层

应用层的任务是通过应用进程间的交互来完成特定的网络应用。应用层协议定义的是应用进程间通信和交互的规则。

运输层

运输层的任务是负责向两台主机中进程之间的通信提供通用的数据传输服务。运输层主要使用以下两个协议:

  • 传输控制协议TCP:提供面向连接的、可靠的数据传输服务,其数据传输单元是报文段。
  • 用户数据报协议UDP:提供无连接,尽最大努力交付的数据传输服务,其传输数据单元是用户数据报。

    网络层

    网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。网络层的另一个任务就是选择合适的路由,使源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机。

    数据链路层

    在两个相邻结点之间传输数据时,数据链路层将网络层交付下来的IP数据报封装成帧,在两个相邻结点的链路上传送帧。每一帧包括数据和必要的控制信息(同步、地址、差错控制等)。

    物理层

    在物理层上所传的数据单元是比特,物理层需要考虑用多大的电压代表1或0,以及接收方如何识别出发送方所发出的比特。
    image.png
    上图描述了主机1的应用进程AP1向主机2的应用进程AP2传送数据的过程。数据从上到下经过层层封装并转换成比特流进行传输。当比特流离开主机1经网络的物理媒体传送到路由器时,就从路由器的第1层上升到第3层.每一层都根据必要的控制信息进行必要的操作,然后将控制信息剥去,将该层剩下的数据单元上交给最高的一层。当分组上升到第三层时就会根据首部中的目的地址查找路由器中的转发表,找出转发分组的接口,然后往下传送到第二层,加上新的首部和尾部后转换成比特流。
    image.png

    第二章 物理层

    物理层的主要任务是确定与传输媒体接口有关的一些特性,即:

  • 机械特性:指明接口所用的接线器尺寸,引脚数目和排列、固定和锁定装置等。

  • 电气特性:指明在接口电缆的各条线上出现的电压范围
  • 功能特性:指明某条线上出现的某一电平的电压的意义
  • 过程特性:指明对于不同功能的各种可能事件的出现顺序

image.png

信道

信道一般都是用来表示向某一个方向传送信息的媒体,因此一条通信电路往往包含一条接收信道和一条发送信道。信道的通信方式有如下三种:

  • 单工通信:即只能有一个方向的通信,而没有反方向的交互。
  • 半双工通信:即通信的双方都可以发送信息,但不能双方同时发送。
  • 全双工通信:通信双方可以同时发送和接收信息

    编码

    image.png

  • 不归零制:正电平代表1,负电平代表0

  • 归零制:正脉冲代表1,负脉冲代表0
  • 曼彻斯特编码:位周期中心的向上跳变代表0,位周期中心的向下跳变代表1
  • 差分曼彻斯特编码:在每一位的中心处始终都有跳变,位开始边界有跳变代表0,位开始边界没跳变代表1.

    调制

  • 调幅(AM):即载波的振幅随基带数字信号而变化

  • 调频(FM):即载波的频流随基带数字信号而变化
  • 调相(PM):即载波的初始相位随几代信号而变化

image.png

香农极限定理

码元传输速率越高,信号传输距离越远,噪声干扰越大或媒体传输质量越差,在接收端的波形失真就越严重。
奈氏准则:在任何信道中,码元的传输速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰,使接收端对码元的判决成为不可能。
信噪比是信号的平均功率和噪声的平均功率之比,常记为S/N。即:

信噪比(dB)= 计算机网络第七版知识点总结 - 图9

香农公式指出:信道的极限信息传输速率C是:
计算机网络第七版知识点总结 - 图10
W是信道带宽(Hz)。

信道复用技术

频分复用(FDM)

所有的用户在同样的时间占用不同的带宽资源。

时分复用(TDM)

时分复用是将时间分为一段段等长的时分复用帧(TDM帧)每个TDM帧中占用固定序号的时隙,每个用户所占的时隙周期性出现。
image.png

波分复用(WDM)

波分复用是WDM就是光的频分复用。
image.png
如上图所示表示8路传输速度均为2.5Gbit/s的光载波,经光的调制后,分别将波长变换到1550-1557nm。这8个波长经过光复用器后就在一根光纤上进行传输,因此在一根光纤上的数据传输速率达到了8*2.5Gbit/s = 20Gbit/s。

码分复用(CDM)

码分复用CDM更常用名词是码分多址CDMA。
码分复用 - 简书

数据链路层

数据链路层使用的信道主要有以下两种类型:

  • 点对点信道:一对一的点对点通信方式
  • 广播信道:使用一对多的广播通信方式

    三个基本问题

    封装成帧

    封装成帧就是在一段数据的前后分别添加首部和尾部。分组交换的一个 重要概念就是:所有在互联网上传送的数据都以分组为传送单位,网络层的IP数据报传送到数据链路层就成了帧的数据部分。在帧的数据部分的前面和后面加上首部和尾部就成了一个完整的帧。首部和尾部的一个重要作用就是帧定界。
    image.png

    透明传输

    透明表示:某一个实际存在的事物看起来却好像不存在一样。“在数据链路层透明传输数据”表示无论什么样的比特组合数据,都能够按照原样没有差错的通过这个数据链路层。
    image.png
    为了防止数据部分出现某个字节的二进制码恰好和SOH或EOT控制字符一样,数据链路层错误的找出“帧的边界”的情况出现,就必须设法使数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符,具体的方法是:发送端的数据链路层在数据中出现控制字符“SOH”或EOT的前面加上转义字符“ESC”。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。
    image.png

    差错检测

    在传输过程中可能产生比特差错,为了保证数据传输可靠性,在数据链路层中广泛使用了循环冗余校验CRC。
    在发送端先把数据划分为组,假定每组k个比特。现假定待传送的数M = 101001(k=6).CRC运算就是在数据M的后面加上供差错检测的n位冗余码,然后构成一个帧发送出去。n位冗余码可由以下方法得出:
    在M后面添加n个0.得到(k+n)位的数除以收发双方事先商定的长度为(n+1)位的除数P,得出商是Q而余数是R(n位)。在下图例子中,M = 101001(k=6).假定除数P = 1101(即n=3).经模2运算后,得到结果是:商Q = 110101,余数R = 001,这个余数R就作为冗余码拼接在数据M后面发送出去。
    image.png
    在接收端把接收到的数据以帧为单位进行CRC校验:把收到的每一帧都除以同样的除数P,然后检查得到余数R。如果在传输过程中没有差错,那么经过CRC冗余校验后的余数R肯定是0.可以使用多项式来表示P,如P(x) = x^3+x^2+1表示除数P=1101.多项式P(x)称为生成多项式。

    CSMA/CD协议

    image.png
    在上面的总线拓扑中,同一时间只能允许一台计算机发送数据,为了协调总线上各计算机的工作,以太网采用了随机接入来减少冲突发生概率。使用了CSMA/CD即载波监听多点接入/碰撞 检测。
    以下是CSMA/CD协议的特点:

  • “多点接入”就是说这是总线型网络,很多计算机以多点接入的方式连到一根总线上

  • “载波监听”检测总线上有没有其他的计算机也在发送,不管在发送前,还是发送中,每个站都必须不停的检测信道
  • “碰撞检测”就是“边发送边监听”,即当几个站同时在总线上发送数据时,总线上的信号电压变化幅度会增大,当适配器检测到信号电压变化幅度超过门限值时,就是发生了冲突。

    争用期是又称碰撞窗口,在一个站发送数据后经过争用期这段时间后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。 以太网使用“截断二进制退避”算法来确定碰撞后重传的时机。 image.png

MAC

硬件地址又称为物理地址或MAC地址,IEEE 802 标准为局域网规定了一种48位的全球地址,固化在适配器的ROM中的地址。
image.png

在数据链路层扩展以太网

以太网交换机本质是多接口的网桥,其内部的帧交换表是通过自学习算法自动的逐渐建立起来。

以太网交换机的自学习功能

image.png

网络层

网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接,每个分组独立发送。网络层不提供服务质量的保证。
image.png
image.png

IP

分类的IP地址

image.png
image.png

  • 在同一个局域网的主机或路由器的IP地址的网络号必须是一样的
  • 用网桥(只工作在链路层)互联的网段仍然是一个局域网,只能有一个网络号
  • 两个路由器直接相连时,在连线两端的接口处可以分配,也可以不分配IP地址

image.png
IP地址与硬件地址的区别:
物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。
image.png
image.png
image.png

地址解析协议ARP

地址解析协议ARP就是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,当主机A要向本局域网上某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有就在ARP高速缓存中查出对应的硬件地址,再把硬件地址写入MAC帧中,然后通过局域网把该MAC帧发送到此硬件地址。
image.png

IP数据报格式

image.png
总长度:指的是首部和数据之和的长度,在IP层下面的每一种数据链路协议都规定了一个数据帧中数据字段的最大长度,称为最大传送单元MTU。当一个IP数据报封装成链路层的帧时,此时数据报的总长度不能超过链路层规定的MTU值,以太网规定的MTU值是1500字节,若超过则把数据报进行分片。
生存时间:TTL表示数据报在网络中的生存时间,每次经过一个路由器转发就把TTL减一,直到为0,就丢弃数据报。
首部校验和:只校验数据报首部,但不包括数据部分。

内部网关协议IGP:即在一个自治系统内使用的路由选择协议,这与在互联网中其他自治系统选用什么路由选择协议无关。
外部网关协议EGP:若源主机和目的主机处于不同的自治系统中,当数据传到另一个自治系统的边界时,需要使用一种协议将路由选择信息传递到另一个自治系统中。

内部网关协议RIP

RIP协议是一种分布式的基于距离向量的路由选择协议,RIP协议要求维护从他自己到其他每一个网络的跳数记录。RIP协议的特点是:

  1. 仅和相邻的路由交换信息。不相邻的路由器不交换信息。
  2. 交换的信息是“我到本自治系统中所有网络的(最短距离),以及每个网络应经过的下一跳路由器”。
  3. 按固定时间间隔交换路由信息。

image.png

内部网关协议OSPF

开发最短路径优先(Open Shortest Path First,OSPF)最主要特征是使用了分布式的链路状态协议。与RIP协议相比具有如下特点:

  1. 使用洪泛法向本自治系统中的所有路由器发送信息。
  2. 发送的信息就是与本路由器相邻的所有路由器的链路状态。
  3. 只有当链路状态发生改变时,路由器才向所有的路由器用洪泛法发送此信息。

    传输层

    传输层向它上面的服务提供通信服务。两台主机进行通信就是两台主机中的应用进程相互通信。网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。
    应用层的所有应用进程都可以通过数据层再传送到IP层,这就是复用。运输层从IP层收到发送给各个应用进程的数据后,必须分别交付指明的各个应用进程,这就是分用
    协议端口号简称端口,只是为了标志本计算机应用层中国各个进程和运输层交互时的层间接口。
    image.png

    用户数据报协议UDP

    UDP 的主要特点:

  4. UDP是面向无连接的,即发送数据之前不需要先建立连接。

  5. UDP使用尽最大努力交付,即不保证可靠交付
  6. UDP是面向报文的,发送方的UDP对应用程序交下来的报文原封不动加上UDP首部就发给IP层。
  7. UDP没有拥塞控制

    传输控制协议TCP

    TCP的主要特点:

  8. 面向连接的运输层协议,在传输数据之前必须要先建立连接,传输完成后再释放连接。

  9. TCP只支持点对点的连接。
  10. TCP提供了可靠交付服务,通过TCP连接传输的数据,无差错、不丢失、不重复并且有序到达。
  11. TCP提供了全双工通信。
  12. 面向字节流

    TCP连接

    TCP连接的端点称为套接字Socket,scoket=(IP地址:端口号)

    可靠传输

    停止等待协议

    停止等待就是每发送完一个分组就停止发送,等待对方的确认,收到确认后再发送下一个分组。当出现差错即丢失时,就执行超时重传,在发送完一个分组后就设置一个超时定时器。
    image.png
    停止等待协议缺点是信道利用率太低。

    连续ARQ协议

    image.png
    协议规定,发送方每收到一个确认就把滑动窗口向前滑动一个分组的位置,接收方一般采用累积确认的方式,接收方不必对收到的分组逐个发送确认,而在收到几个分组后,对按序到达的最后一个分组发送确认,表示到这个分组为止的所有分组都已经正确收到。

    TCP可靠传输实现

    以字节为单位的滑动窗口

    image.png
    根据B给出的窗口值构造出自己的发送窗口,发送窗口表示:在没收到B的确认的情况下,A可以连续把窗口内的数据都发送出去,凡是发送过的数据在未收到确认之前都会暂存保留,以便超时重传时使用。
    image.png
    B指定能对按序收到的数据中的最高序号给出确认。
    若收到的报文端无差错,只是未按序号,中间缺少一些序号的数据,可以只传送缺少的数据,不重传已经达到的接收方数据,选择确认(SACK)就是可行方法。

    TCP流量控制

    TCP的流量控制就是让发送方的发送速率不要太快,使接收方来得及接收。可以使用滑动窗口机制实现流量控制。
    image.png

    TCP拥塞控制

    慢开始和拥塞避免

    拥塞控制也是基于窗口的拥塞控制,发送方维持一个拥塞窗口cwnd的状态变量。拥塞窗口的大小取决于网络的拥塞程度并且动态的变化。
    慢开始的思想:先探测下,从小到大逐渐的增大发送窗口,从小到大逐渐成倍增大拥塞窗口的值。
    拥塞避免的思想:让拥塞窗口cwnd缓慢的增大,即每经过一个往返时间就把发送方的拥塞窗口cwnd加一,线性增加。
    image.png

    快重传和快恢复

    如果个别报文在网络中丢失,但实际网络未发生拥塞,导致发送方迟迟收不到确认,就会超时,误认为网络发生拥塞,导致发送方错误的启动慢开始。
    快重传可以让发送方尽早的知道发生了个别报文段的丢失,要求接收方立即发送确认。只要发送方一连收到3个重复确认,就知道没有收到相关报文,立即进行重传。
    image.png

    TCP的连接与释放重要

    image.png
    TCP服务器先创建传输控制块TCB,进入Listen状态,等待客户端的连接请求。
    TCP客户端向B发送连接请求报文,同步标志SYN置1,同时选择一个初始序号seq=x。TCP客户端进入同步已发送状态(SYN-SENT)。
    B收到连接请求后,如同意建立连接,则向A发送确认,把ACK和SYN都置为1,确认号ack=x+1,同时也为自己初始化一个序号seq=y。TCP服务器进入了SYN-RECV状态。
    TCP客户端收到B的确认后,还要向B给出确认,确认段的ACK置为1,确认号ack=y+1。自己的序号则为seq=x+1。这时候已经建立了TCP连接。
    image.png
    image.png

    应用层

    image.png
    image.png

    网络安全

    安全威胁

    计算机网络面临两大类威胁,被动攻击和主动攻击
    image.png
    被动攻击:攻击者只观察和分析某个协议数据单元PDU,但不干扰信息流。
    主动攻击主要有:
    (1)篡改——故意篡改网络上传送的报文。这种攻击方式有时也称为更改报文流。
    (2)恶意程序——种类繁多,对网络安全威胁较大的主要包括:计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、后门入侵、流氓软件等。
    (3)拒绝服务——指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪。

    数据加密

    image.png
    对称密码体制:即加密密钥与解密密钥是相同的密码体制。
    公钥密码体制:又称为公开密钥密码体制,即使用不同的加密密钥与解密密钥,是一种“由已知在公钥密码体制中,加密密钥(即公钥)PK是公开信息,而解密密钥(即私钥或秘钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。
    虽然秘钥SK是由公钥PK决定的,但却不能根据PK计算出SK。即加密密钥推导出解密密钥在计算上是不可行的密码体制。
    如果某一信息用公开密钥加密,则必须用私有密钥解密,这就是实现保密的方法。如果某一信息用私有密钥加密,那么,它必须用公开密钥解密。这就是实现数字签名的方法。

    常见攻击

    重放攻击

    image.png
    A向远端B发送带有自己身份和口令的报文,双方约定使用对称秘钥进行加密,B收到报文后进行解密,从而鉴别了A的身份。入侵者C可以在网络上截获A发给B的报文,C直接把报文发给了B,使B认为C就是A,那么B就向伪装成A的C发送数据,叫做重放攻击。
    如何应对重放攻击?
    image.png
    A首先铭文发送其身份A和不重数R_A给B,B响应A的查询后,用共享秘钥K对R_A进行加密返回给A,同时给出了自己的不重数R_B,最后A再响应B的查问,用共享秘钥对R_B加密后返回给B。

    防火墙

    访问控制技术,能严格控制网络边界的分组,禁止任何不必要的通信。
    image.png

    常见加密算法