计算机网络

  1. 1. 序章:计算机网络概述
    1. 1.1. 计算机网络的概念
      1. 1.1.1. 什么是计算机网络
      2. 1.1.2. 计算机网络的组成
      3. 1.1.3. 因特网的组成
      4. 1.1.4. 计算机网络的类型
    2. 1.2. 计算机网络的体系结构
      1. 1.2.1. 传输方式
      2. 1.2.2. 数据交换
      3. 1.2.3. 通信协议和体系结构
    3. 1.3. 计算机网络的性能指标
      1. 1.3.1. 速率
      2. 1.3.2. 带宽
      3. 1.3.3. 吞吐量
      4. 1.3.4. 时延
      5. 1.3.5. 时延带宽积
      6. 1.3.6. 往返时间RTT
      7. 1.3.7. 利用率
  2. 2. 物理层
    1. 2.1. 物理层的基本概念
      1. 2.1.1. 四大特性
      2. 2.1.2. 两种信号
      3. 2.1.3. 调制和编码
      4. 2.1.4. 传输介质
      5. 2.1.5. 三大部分
    2. 2.2. 物理层的基本通信技术
      1. 2.2.1. 四种信道复用技术
      2. 2.2.2. 数据传输方式
    3. 2.3. 奈氏准则与香农公式
  3. 3. 数据链路层
    1. 3.1. 数据链路层的基础概论
      1. 3.1.1. 数据链路层概念
      2. 3.1.2. 帧的概念
      3. 3.1.3. MAC和LLC
      4. 3.1.4. 数据链路层的三个基本问题
    2. 3.2. 数据链路层的通信协议
      1. 3.2.1. CSMA/CD
      2. 3.2.2. PPP
      3. 3.2.3. CRC
  4. 4. 网络层
    1. 4.1. 网络层的作用
    2. 4.2. 网际层协议IP
    3. 4.3. IP地址
      1. 4.3.1. IP地址的组成
      2. 4.3.2. IP地址的分类
      3. 4.3.3. 特殊的IP地址
      4. 4.3.4. IPv6地址
    4. 4.4. 子网划分
    5. 4.5. 网络层的路由
      1. 4.5.1. 路由
      2. 4.5.2. 网关
      3. 4.5.3. 路由获取方式
      4. 4.5.4. 路由表
    6. 4.6. IP数据报
  5. 5. 传输层
    1. 5.1. 传输层概论
    2. 5.2. 特殊的端口号
    3. 5.3. TCP与UDP
      1. 5.3.1. TCP
      2. 5.3.2. UDP
  6. 6. 应用层
    1. 6.1. 应用层的作用
    2. 6.2. 常见协议

序章:计算机网络概述

计算机网络的概念

什么是计算机网络

计算机网络(computernetwork),简称网络,是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件实现网络的硬件、软件及资源共享和信息传递的系统,简单的说即连接两台或多台计算机进行通信的系统。最著名的计算机网络是因特网。

关键词: 地理位置不同、独立的计算机、通信线路连接、资源共享、信息传递

计算机网络的组成

计算机网络是由通信子网(提供网络节点和线路,如双绞线等)和资源子网(提供软件资源和硬件资源)组成。

因特网的组成

  • 边缘部分:用户直接使用的,用来进行通信和资源共享。

  • 核心部分:为边缘部分提供服务(连通性和交换)

计算机网络的类型

依据拓扑结构分类:

  • 星型

  • 树型

  • 总线型

  • 环型

  • 网状型

依据传输范围分类:

  • 局域网(LAN)

  • 城域网(MAN)

  • 广域网(WAN)

依据传输方式分类:

  • 有线

  • 无线

计算机网络的体系结构

传输方式

按传输方式区分

  • 单工通信

  • 半双工通信

  • 全双工通信

按传输对象区分

  • 单播

  • 多播

  • 广播

数据交换

  • 电路交换 (缺点:占用信道,浪费时间,效率低)(优点:传输速度快)

  • 报文交换 (缺点:对于设备来说负担大)

  • 分组交换

数据交换

通信协议和体系结构

网络协议三要素:语法语义同步

OSI参考模型

下层为上层提供服务

层次 应用
应用层 为应用程序提供网络服务
表示层 数据格式化、加密、解密
会话层 建立、维护和管理会话连接
传输层 建立、维护和管理端到端的连接
网络层(组) IP寻址和路由选择
数据链路层(帧) 控制网络层与物理层之间的通信
物理层(比特) 比特流传输

TCP/IP参考模型

TCP/IP参考模型 OSI参考模型
应用层 应用层、表示层、会话层
传输层 传输层
网际层 网络层
网络接口层 物理层、数据链路层

计算机网络的性能指标

计算机网络的性能指标

速率

表述网络传输速度一般以比特率(bps)为单位,其含义是每秒钟传输的二进制数的位数。

带宽

(1)带宽本来是指某个信号具有的频带宽度。(2)在计算机网络中,带宽用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中某一点到另一点所能通过的“最高数据率”。

吞吐量

吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。

时延

时延是指数据(一个报文或分组,,基于比特)从网络(或链路)的一端传送到另一端所需的时间。

(1)发送时延:发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。

由此可见,对于一定的网络,发送时延并非固定不变,而是与发送的帧长(单位是比特)成正比,与发送速率成反比。

(2)传播时延:传播时延是电磁波在信道中传播一定距离需要花费的时间。

(3)处理时延:主机或路由器在收到分组时需要花费一定时间进行处理,例如分析分组的首部、从分组中提取数据部分,进行差错检测或查找适当的路由等,就产生了处理时延。

(4)排队时延:排队时延的长短往往取决于网络当时的通信量

(5)总时延

时延带宽积

往返时间RTT

往返时间RTT表示从发送方发送数据开始,到发送方收到来自对方的确认(按接收方收到数据后便立即发送确认),总共经历的时间

利用率

利用率有信道利用率和网络利用率两种。信道利用率指出某信道有百分之几的时间是被有效利用的(有数据通过);网络利用率则是网络的信道利用率的加权平均值。


物理层

物理层的基本概念

四大特性

  • 机械特性

  • 电气特性

  • 功能特性

  • 过程特性

两种信号

  • 数字信号(只有1和0)

  • 模拟信号(一段连续信号,抗干扰能力强

调制和编码

  • 调制:模拟信号转换

  • 编码:数字信号转换(步骤:采样、量化和编码)

调制与编码

来自信源的信号成为基带信号,因为基带信号中包含较多低频成分,而许多信道不能传输低频分量和直流分量,所以需要对基带信号调制。

调制可分为两大类:

基带调制: 将数字信号转换为另一种数字信号。又称编码。

带通调制: 将基带信号的频率范围转换为另一频段,并化为模拟信号。

常用编码方式

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

归零制: 正脉冲代表1,负脉冲代表0。

曼彻斯特编码: 位周期中心的向上跳变代表0,向下跳变代表1。

差分曼彻斯特编码: 每一位的中心都有跳变。位开始的边界有跳变代表0,没有代表1。

曼彻斯特码的频率比不归零制高,但有自同步能力,即可以从信号波形自身中提取信号时钟频率。

基本带通调制方法

传输介质

  • 双绞线 (分为屏蔽双绞线「STP」和非屏蔽双绞线「UTP」。屏蔽双绞线抗干扰能力强)

  • 光纤(单模光纤和多模光纤)

三大部分

  • 源系统

  • 传输系统

  • 目的系统

物理层的基本通信技术

四种信道复用技术

  • 频分复用(FDM)

  • 时分复用(TDM)

  • 波分复用(WDM)

  • 码分复用(CDM)(收到数据和当前数据进行正交运算。结果为1代表收到1,结果为-1代表收到0,结果为0代表没有收到)

数据传输方式

按同时传输的数量

  • 串行传输

  • 并行传输

按两端行为分类

  • 同步

  • 异步

按传输信号

  • 基带传输

  • 频带传输

按传输方式区分

  • 单工通信

  • 半双工通信

  • 全双工通信

按传输对象区分

  • 单播

  • 多播

  • 广播

奈氏准则与香农公式

奈氏准则与香农公式

奈氏准则


Baud : 波特,既码元/秒
W: 信道带宽(单位为Hz)


香农公式

c: 信息极限传输速率(单位:b/s)
W: 信道带宽(单位为Hz)
S: 信道内所传信号的平均功率
N: 信道内的高斯噪声功率
: 信噪比,使用分贝(dB)做为单位。


数据链路层

数据链路层的基础概论

数据链路层概念

数据链路层是在物理层和网络层之间的协议,提供相邻节点的可靠数据传输

帧的概念

数据链路层的协议数据单元

组成 说明
帧头 源MAC地址、目的MAC地址、类型
数据 数据
帧尾 校验

MAC和LLC

  • MAC介质控制访问:对接物理层

  • LLC逻辑控制访问:对接网络层

数据链路层的三个基本问题

  • 封装成帧(PPP)

  • 透明传输(字节填充)

  • 差错检测(CRC等)

数据链路层的通信协议

CSMA/CD

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)即带冲突检测的载波监听多路访问技术。在传统的共享以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。

CSMA/CD四大要点

  • 先听在发

  • 边听边发

  • 冲突检测

  • 延迟后发

PPP

PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。

CRC

用于帧的差错检测。

冗余码的计算

冗余码的计算


网络层

网络层的作用

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。(点到点的通信)

关键词: 路径选择、路由及逻辑寻址

网际层协议IP

  • ARP地址解析协议:根据IP地址获取物理地址

  • RARP反地址解析协议:根据物理地址找到IP地址

  • ICMP网际控制报文协议:常用于传输控制信息(网络通不通),如ping命令

  • IGMP网际组管理协议

IP地址

IP地址的组成

IP地址是由主机地址(也称为主机号标识某一台设备的地址)和网络地址(也称为网络号标识某一个网段的地址)组成的。

  • 子网掩码:用于区分网络号和主机号

IP地址的分类

类型 网络号 主机号 范围
A类地址 0******* ******** ******** ******** 0~127
B类地址 10****** ******** ******** ******** 128~191
C类地址 110***** ******** ******** ******** 192~223
D类地址 1110多播地址
E类地址 1111保留

IP地址的分类

特殊的IP地址

  • 网络地址:主机号全0

  • 广播地址:主机号全1

  • 回环地址:127.0.0.1

IPv6地址

采用128位(16个字节)的地址空间,总地址数量是2的128次方,理论上可以说地址数量近乎无限。

子网划分

作用:在主机号上进行子网划分,减少IP地址浪费(网络号+子网号(网络号)+主机号)

子网划分

例:有100台设备要接入网络,现给其分配一个C类地址192.168.1.0,若全部占用则浪费了254-100=153个地址,所以在主机号上划分一位分出两个主机号有126的两个地址:1*******0*******。该地区可用的其中一个子网。

网络层的路由

路由

路由发生在OSI网络参考模型中的第三层(即网络层),引导分组转送,经过一些中间的节点后,到它们最后的目的地。路由通常根据路由表(一个存储到各个目的地的最佳路径的表)来引导分组转送。

关键词: 寻找最佳路径、引导分组传送

网关

网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。

路由获取方式

  • 直连路由

  • 静态路由

  • 动态路由

路由表

路由表的更新

根据发来的路由表,对原先已有的路由表进行更新

1.对发来的路由表所有的距离,下一跳都统一为这个路由器
2.按以下规则更新路由表:

  • 表中不存在的,直接添加

  • 表中存在,下一跳不同,距离小时更新

  • 表中存在,下一跳相同,直接更新

例如

原先路由器A的路由表如下:

目的网络 距离 下一跳路由器
N1 7 C
N2 2 B
N5 8 D
N6 4 E
N7 4 D

收到B发来的路由表:

目的网络 距离
N2 4
N3 8
N5 7
N6 2

1.对发来的路由表所有的距离,下一跳都统一为这个路由器

目的网络 距离 下一跳路由器
N2 5 B
N3 9 B
N5 8 B
N6 3 B

2.更新原先路由表

目的网络 距离 下一跳路由器
N1 7 C
N2 5 B
N3 9 B
N5 8 D
N6 3 B
N7 4 D

IP数据报

IP数据报


IP 报头的最小长度为 20 字节,上图中每个字段的含义如下:

  • 版本 占 4 位,表示 IP 协议的版本。通信双方使用的 IP 协议版本必须一致。目前广泛使用的IP协议版本号为 4,即 IPv4。
  • 首部长度: 占 4 位,可表示的最大十进制数值是 15。可表示的最大数值为 15 个单位(一个单位为 4 字节)。因此,当 IP 的首部长度为 1111 时(即十进制的 15),首部长度就达到 60 字节。当 IP 分组的首部长度不是 4 字节的整数倍时,必须利用最后的填充字段加以填充。
  • 区分服务: 也被称为服务类型,占 8 位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998 年 IETF 把这个字段改名为区分服务(Differentiated Services,DS)。只有在使用区分服务时,这个字段才起作用。
  • 总长度: 首部和数据之和,单位为字节。总长度字段为 16 位,因此数据报的最大长度为 216-1=65535 字节。
  • 标识: 用来标识数据报,占 16 位。IP 协议在存储器中维持一个计数器。每产生一个数据报,计数器就加 1,并将此值赋给标识字段。当数据报的长度超过网络的 MTU,而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。具有相同的标识字段值的分片报文会被重组成原来的数据报。
  • 标志: 占 3 位。第一位未使用,其值为 0。第二位称为 DF(不分片),表示是否允许分片。取值为 0 时,表示允许分片;取值为 1 时,表示不允许分片。第三位称为 MF(更多分片),表示是否还有分片正在传输,设置为 0 时,表示没有更多分片需要发送,或数据报没有分片。
  • 片偏移: 占 13 位。当报文被分片后,该字段标记该分片在原报文中的相对位置。片偏移以 8 个字节为偏移单位。所以,除了最后一个分片,其他分片的偏移值都是 8 字节(64 位)的整数倍。
  • 生存时间: 表示数据报在网络中的寿命,占 8 位。该字段由发出数据报的源主机设置。其目的是防止无法交付的数据报无限制地在网络中传输,从而消耗网络资源。路由器在转发数据报之前,先把 TTL 值减 1。若 TTL 值减少到 0,则丢弃这个数据报,不再转发。因此,TTL 指明数据报在网络中最多可经过多少个路由器。TTL 的最大数值为 255。若把 TTL 的初始值设为 1,则表示这个数据报只能在本局域网中传送。
  • 协议: 表示该数据报文所携带的数据所使用的协议类型,占 8 位。该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。
  • 首部检验和: 用于校验数据报的首部,占 16 位。数据报每经过一个路由器,首部的字段都可能发生变化(如TTL),所以需要重新校验。而数据部分不发生变化,所以不用重新生成校验值。
  • 源地址: 表示数据报的源 IP 地址,占 32 位。
  • 目的地址: 表示数据报的目的 IP 地址,占 32 位。该字段用于校验发送是否正确。
  • 可选字段: 该字段用于一些可选的报头设置,主要用于测试、调试和安全的目的。这些选项包括严格源路由(数据报必须经过指定的路由)、网际时间戳(经过每个路由器时的时间戳记录)和安全限制。
  • 填充: 由于可选字段中的长度不是固定的,使用若干个 0 填充该字段,可以保证整个报头的长度是 32 位的整数倍。
  • 数据部分: 表示传输层的数据,如保存 TCP、UDP、ICMP 或 IGMP 的数据。数据部分的长度不固定。

传输层

传输层概论

实现端到端的数据传输。该层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。传输层还可进行复用,即在一个网络连接上创建多个逻辑连接。

传输层在终端用户之间提供透明的数据传输,向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控、分段/重组和差错控制。一些协议是面向链接的。这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。

特殊的端口号

协议 端口号
FTP(文件传输协议) 21(20)
TELNET(远程登录) 23
SMTP(电子邮件传输协议) 25
POP3(邮局协议版本3) 110
DNS(域名系统) 53
TFTP(简单文件传输协议) 69
HTTP(超文本传输协议) 80
SNMP(简单网络管理协议) 161
HTTPS(超文本安全传输协议) 443

TCP与UDP

TCP

特点: 面向连接、可靠服务、全双工通信、面向字节流

TCP报文格式

  • 源端口和目的端口: 各占2个字节,分别写入源端口和目的端口。
  • 序号: 占4字节。序号范围是【0,2^32 - 1】,共232(即4294967296)个序号。序号增加到232-1后,下一个序号就又回到0。也就是说,序号使用mod 232运算。TCP是面向字节流的。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。整个要传送的字节流的起始序号必须在连接建立时设置。首部中的序号字段值则是指的是本报文段所发送的数据的第一个字节的序号。
  • 确认号: 占4字节,是期望收到对方下一个报文段的第一个数据字节的序号。
  • 数据偏移: 占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。由于首部中还有长度不确定的选项字段,因此数据偏移字段是必要的,但应注意,“数据偏移”的单位是32位字(即以4字节的字为计算单位)。由于4位二进制数能表示的最大十进制数字是15,因此数据偏移的最大值是60字节,这也是TCP首部的最大字节(即选项长度不能超过40字节)。
  • 保留: 占6位,保留为今后使用,但目前应全部置为0 。
  • 紧急URG: 当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快发送(相当于高优先级的数据),而不要按原来的排队顺序来传送。
  • 确认ACK: 仅当ACK = 1时确认号字段才有效,当ACK = 0时确认号无效。TCP规定,在连接建立后所有的传送的报文段都必须把ACK置为1。
  • 推送 PSH: 当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应。在这种情况下,TCP就可以使用推送(push)操作。这时,发送方TCP把PSH置为1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快地(即“推送”向前)交付接收应用进程。而不用再等到整个缓存都填满了后再向上交付。
  • 复位RST: 当RST=1时,表名TCP连接中出现了严重错误(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接。RST置为1还用来拒绝一个非法的报文段或拒绝打开一个连接。
  • 同步SYN: 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1,因此SYN置为1就表示这是一个连接请求或连接接受报文。
  • 终止FIN: 用来释放一个连接。当FIN=1时,表明此报文段的发送发的数据已发送完毕,并要求释放运输连接。
  • 窗口: 占2字节。窗口值是【0,216-1】之间的整数。窗口指的是发送本报文段的一方的接受窗口(而不是自己的发送窗口)。窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量(以字节为单位)。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。总之,窗口值作为接收方让发送方设置其发送窗口的依据。
  • 检验和: 占2字节。检验和字段检验的范围包括首部和数据这两部分。和UDP用户数据报一样,在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。伪首部的格式和UDP用户数据报的伪首部一样。但应把伪首部第4个字段中的17改为6(TCP的协议号是6);把第5字段中的UDP中的长度改为TCP长度。接收方收到此报文段后,仍要加上这个伪首部来计算检验和。若使用TPv6,则相应的伪首部也要改变。
  • 紧急指针: 占2字节。紧急指针仅在URG=1时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就是普通数据) 。因此,在紧急指针指出了紧急数据的末尾在报文段中的位置。当所有紧急数据都处理完时,TCP就告诉应用程序恢复到正常操作。值得注意的是,即使窗口为0时也可以发送紧急数据。
  • 选项: 长度可变,最长可达4字节。当没有使用“选项”时,TCP的首部长度是20字节。

UDP

特点: 无连接、不可靠、传输效率高


应用层

应用层的作用

为用户提供服务

常见协议

  • DNS域名解析

  • SMTP邮件传输协议

  • TELNET远程登录

  • HTTP协议

  • 电子邮件协议:SMTP,POP3

  • DHCP动态主机配置协议