计算机网络笔记
第一节:概述
1.1 计算机网络在信息时代的作用
1.1.1 定义
Internet是全球最大的,最重要的计算机网络,是计算机网络的一部分
1.1.2特点
1.连通性(connectivity)2.资源共享(sharing)

1.2 互联网概述
1.2.1 网络的网络
网络=节点(node)+链路(link)
链路有点抽象

多个网络——》路由器连接——》更大的网络——》网络的网络——》互连网
更多的互连网覆盖全球连接成互联网

1.2.2 互联网基础结构发展的三个阶段
第一阶段(1965–1990):1983年作为互联网的诞生时间,TCP/IP协议成为APPANET的标准协议
第二阶段(1985–1993):三级结构:主干网,地区网,校园网或者企业网
第三阶段(1993–至今): 多层isp结构:主干isp,地区isp,本地isp
isp就是卖卡的运营商:smile://
(isp ix:互联网交换点)

cp就是b站这种

*一些历史

1.2.3 互联网的标准化工作
管理金字塔:
发表格式:
标准化过程:
1.3 互联网的组成
1.3.1互联网的边缘部分
工作方式分:

核心(服务
边缘:终端系统,例如你的手机,电脑,是网络的尽头,不负责转发
计算机之间的通信:
主机a的某个进程与主机b的某个进程进行通信
通信方式:
1.客户-服务器方式(c/s方式)

客户主动,服务被动,通信是双向的
特点:
2.对等连接方式(p2p方式–cs升级版)

既能请求又能提供服务,平等对等通信
1.3.2*互联网的核心部分
复杂部分
连接边缘的主机
路由器(router)–>实现分组交换的关键构件
电路交换
三个阶段:
- 建立连接:占用通信资源
- 通话:一直占用通信资源
- 连接释放:归还通信资源
!!!要一直占用才算电路交换
优点:
- 通信时延小。因为通信线路为通信双方用户专用,数据直达,因此通信时延非常小,当连续传输大量数据时,这一优点非常明显。
- 有序传输。因为通信双方之间只有一条专用的通信线路,数据只在这一条线路上传输,因此不存在失序问题。
缺点:
1.建立连接时间长。电路交换的平均连接建立时间对计算机通信来说太长。
2.线路独占,使用效率低。电路交换一旦建立连接,物理通路就被通信双方独占,即使通信线路空闲,也不能够供其他用户使用,因而信道利用率很低。
3.灵活性差。只要连接所建立的物理通路中的任何一点出现了故障,就必须重新拨号建立新的连接,这对十分紧急和重要的通信是很不利的。
4.难以规格化。电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信中进行差错控制。
分组交换:
特点:
- 采用储存转发技术

工作方式

- 数据段前面添加首部就构成了分组(packet)

这个部分的不同称呼)))
物理层数据包: 比特流 (bit stream)
链路层数据包:帧 (frame)
网络层数据包: IP 数据报或分组 (packet)
运输层数据包: TCP 报文段 (segment) 或
UDP 用户数据报 (datagram)
应用层数据包: 报文 (message)
*首部由不同的协议决定
接收到后去掉首部并且还原
每个分组独立选择传输路径
优点

高效、灵活、迅速、可靠
缺点

排队、带宽不确定、开销大
10个字节利用率为百分之90
报文交换:
优点:
- 无需建立连接。报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接的时延,用户可以随时发送报文。
- 动态分配线路。当发送方把报文传送给节点交换机时,节点交换机先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。
- 可靠性。如果某条传输路径发送故障,会重新选择另一条路径传输数据,因此提高了传输的可靠性。
- 提高线路利用率。通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路,因而大大提高了通信线路的利用率。
缺点
- 引起了转发时延。这是因为报文在节点交换机上要经历存储转发的过程。
- 需要较大的存储缓存空间。这是因为报文交换对报文的大小没有限制。
- 需要传输额外的信息量。这是因为报文需要携带目的地址、源地址等信息。

直观体现分组交换的便利快捷

1.4计算机在我国的发展
*一些历史

cn规模最大的五个计算机网络

1.5 计算机网络的类别
1.5.1 计算机网络的定义
未统一定义,有通俗定义(怎么连接?怎么管理?怎么共享?)

1.5.2 几种不同类别的计算机网络
- 按作用范围分

- 按使用者分
公用网(public)和专用网(private)
- 接入网

1.6*计算机网络的性能
1.6.1* 计算机网络的性能指标
1.速率(香农)
- 比特是成为信息的基本单位
- 速率指的是数据的传送速率,称为数据率或者比特率
- 单位:bit/s kbit/s Mbit/s Gbit/s(速率的换算为10的三次方,数据量的换算为2的10次方)
- 为理想状态额定功率
2.带宽(bandwidth)
频域与时域(?)

下载速度用字节表示,带宽用比特表示
指网络系统的通信链路(与信道或者传输媒体同意)传输数据的能力,即表征单位时间内从网络中的某一点到另一点所能通过的”最高数据率“。单位是bit/s
3.吞吐量(略)


吞吐量降低会感觉到时延
4.时延(delay)
1.发送时延(终端)
*数据从电脑等发送到网络上,与数据量和带宽有关(带宽提高发送时延降低)

公式:
$$
发送时延=数据帧长度(bit)/发送速率(bit/s)
$$
发射时延与传输距离没有关系
2.传播时延(线路)

传播时延与传播距离有关,与发送速率无关,因为一般来说速率是固定的
3.处理时延和排队时延(路由器)
*排队时延和处理时延是息息相关的
*当排队时延无限大时,数据会爆,这是很糟糕的情况
*处理时延是主机或路由器处理分组花的时间
*排队时延是排队等待处理的时间花费
4.时延带宽积

带宽是线路的横截面积,时延是长度,单位是比特,表示数据栈排满能装多少数据 (发了,但对方还没接收到的数据量)
总时延
总时延=发送时延+传播时延+排队时延+处理时延

5.往返时间RTT(round-trip time)
从发送完数据到确认接收完数据的时间
(传输时延+处理时延+返回时延)

相关公式:
$$
有效数据率=数据长度/(发送时间+RTT)=数据长度/总时延
$$
6.利用率

利用率指的是有多少信道正在被利用
时延带宽积是指完全使用时有多少空位可以让数据等待
- 利用率越大时延越大,不是越大越好,需要一定的容错(一般在30-50%,超过70%认为拥挤)
1.6.2计算机网络的非性能特征

1.7*计算机的体系结构
1.7.1计算机网络体系结构的形成
*因为差别多需要统一的结构便于沟通
*将大问题通过分层变成若干个小问题
1983年ISO 7498标准
OSI

1.7.2协议与划分层次

工作分层,设定规则
协议(语法、语义、同步/时序)

协议分为文字描述和代码描述
划分层次(理解不能)
分层要求
- 层次适度
- 功能确定
- 层次独立
- 层次关联
- 层次对等
- 层次协议
- 层次接口
层次功能
- 差错控制
- 流量控制
- 分段和重装
- 复用和分用
- 逻辑连接的建立和释放
1.7.3具有五层协议的体系结构
osi不适合市场因此被淘汰了,取而代之的是由市场选择的事实上的国际标准(TCP/IP),分为应用层、运输层、互联网层、网络接口层

缺点

实际教学为5层结构

先大体过一下每个层次的功能
- 应用层
用户之间

- 运输层(TCP/UDP)
进程之间

- 网络层(IP)
主机之间

- 数据链路层
相邻节点之间

物理层
传比特

通信示例:
(路由器也有应用层这些,但实际应用不使用)
1.7.4实体、协议、服务和服务访问点

*协议沟通同一层次的实体,对上层透明
*服务访问点用于相邻两层的实体进行交换信息,本质上是一个逻辑接口
*服务是垂直的
*上层以为他们直接靠协议进行通信,实际上是上层在使用下层的服务,下层对上层来说是透明的
1.7.5 TCP/IP的体系结构(实际)

核心部分越简单越好
体系结构对比

第二节:物理层
2.1 物理层的基本概念
- 位置:网络体系结构的最底层(不是具体的传输媒体,也不是连接计算机的具体物理设备
- 功能:

接收,编码,传输
作用:屏蔽掉不同传输媒体和通信手段的差异(将同一句话说给不同的人)
主要任务:确定与传输媒体的接口有关的一些特性
物理层协议是DTE和DCE间的约定,具有以下特性:
- 机械特性(长什么样)
- 电气特性(用多少电平,电阻之类)
- 功能特性(每根线的作用)
- 过程特性(各种事件的出现顺序)
2.2 数据通信的基础知识
基本术语:
- 通信:在源点和终点之间传递消息或者信息(消息不等于信息)
- 消息:能被通信双方理解而且可以相互传递的文字、符号、数据、语音和图像等
- 信息:消息中的有意义的部分,消息是信息的载体(关键)
- 数据:运送消息的实体,分为模拟数据和数字数据
- 信号:是消息的载体,通信系统中消息通过电信号传递,分为模拟信号和数字信号
栗子:我发了一段乱码给小米,我们在通信,我发的是消息,但是小明看得懂每个字,但是连在一起就不会了,这段话对他没有意义,他也就没收到信息,乱码中有字母数字等为数据,在路线中通过电信号传递
画个示意图整理概念:

常见编码方式
不归零制(不确定·比特数)
归零制(跳变后归零)
曼切斯特编码(由上升沿或者下降沿作为0或1)
差分曼切斯特编码(由下一个比特状态确定,下一个是0边缘跳变,否则不变)
特点

基本带通调制方法

调幅:不同信号用不同幅度的波形替代(高低电平幅度不同)
调频:高低电平频率不同
调相:高低电平相位不同
码元

2.2.1 数据通信系统的模型
源系统(信源和发送器)
传输系统
目的系统(接收器和信宿)

2.2.2 有关信道的几个基本概念
- 信道:信号传输的通道(单工、半双工、全双工通信)
- 基带信号(未调制,较多低频)
- 调制(基带调制和带通调制)

基带调制(编码coding)—改装自行车
带通调制—自行车放在大货车上、
2.2.3 信道的极限容量
信道传输信号会失真

失真原因:


信噪比:信号和噪声的比值
信道的频率范围
奈氏准则(理想情况)

信噪比

s———signal
n———noise
香农公式!!!!

将信噪比考虑进去了,只要速率低于这个值就一定能找到传输方式减少差错

奈氏是上限,香农是下限
奈氏考虑码制,香农考虑信噪比
2.3 物理层下面的传输媒体
2.3.1 导引型传输媒体

*有线–网线等
双绞线
特点
twist起来可以减少信号辐射
A/D信号都可以传输
一般来说默认最高传输距离为100m
便宜

类别差别
屏蔽更安全

F/UTP最外层
U/FTP里层
F/FTP双层
标准

8类线,负责传输电磁波信号

同轴电缆
特点
一层包一层
被双绞线和光纤薄纱
容易被偷

光缆

特点
发送端要有光源,不能有电源(发光二极管,半导体激光器等)
接收端要有光检测器还原出电脉冲
传输方式
利用物理相关知识设计使得光以某个入射角入射时,光线一直在线路中进行全反射传播

多模与单模

多模传的多但是距离短(损耗大)
单模传的少但是长
使用类别

优缺点
太脆弱了需要很多保护层
2.3.2 非导引型传输媒体

*无线–wifi
无线电微波通信

通过微波接力扩大传输距离(地面和太空)
同步卫星

近地卫星

2.4 信道复用技术
2.4.1 频分复用、时分复用和统计时分复用
信道复用—–传输多个信号,提高信道利用率,降低成本

频分复用(电视同一时间有不同的频道可以观看)

分到哪个就只能用哪个
频分多址(同一个频道轮流有不同的电视节目)

时分复用

一天按一个小时为单位(TDM帧),前20分钟给a用,然后给b用,最后给c用,循环24次
缺点
前20分钟不管你用不用,后面的人都得等待,效率低——
时分多址
前20分钟不单单给a用,也可以给a的好朋友efg用

统计时分复用
前面说了时分复用会让利用率降低,那么统计时分就是在此基础上添加新补丁的版本
将原本的TDM帧升级为STDM帧,通过复用器将每个部分进行扫描,有数据则存入STDM中,当帧满时再发送

2.4.2 (光)波分复用
其实就是光波的频分复用,只不过这里的频率指的是光波的波长


2.4.3 码分复用(码分多址)
前面的时分和波分复用都是固定了时间或者频率范围进行描述的,而码分复用就是要求时间及频率都相同的情况下如何进行码分复用,很简单,就是给不同的游客分发不同的牌证在同一辆车上跑,等下车时看牌分人
*
原理

将原来的0和1扩展内核变成一个m位的二进制数,例如1101代表1,那么它的反码0010就是表示0
为了便于计算,码片的0表示成-1,1就是1
为了能复用传输的东西也扩大了m倍
如何区分不同码片?
类比数学上的向量内积


怎么从合并信号中分离出单一信号?

首先确定两个码片的波形,然后将两个信号叠加起来(算数),最后将信号分离时需要哪一个信号就将合并的信号与其码片进行内积计算,得到的波形就是我们需要的原信号(这里1代表1,0代表-1)
各种复用技术的使用条件
频分复用适用于传输的信号在不同的频带上
时分复用适用于在不同的时间上传输的信号
波分复用适用于光信号传播
码分复用适用于干扰较强时
第三节 数据链路层概述
3.1.1 关于数据链路层
作用:
1.在比特流中找到一组数据的开始以及结束位置
2.解决多个设备接收比特流问题
3.**解决比特传输错误问题**
链路、数据链路、层、帧

链路:物理且无源
数据链路=链路+协议
层:将结点与结点之间通过链路传输帧
帧:分组交换的单位到了链路层被叫做帧
协议栈看数据链路层

层对层,无视下层(透明),服务上层,看做直接传输帧通信

数据链路层的信道类型
- 点对点信道(骨干线路)
- 使用协议?
PPP
- 广播通信(边缘线路)
- 使用协议?
CSMA/CD
3.1.2 三个基本问题
封装成帧
比特流前加首部和尾部进行帧定界
数据链路层往上只加首部
MTU(Maximum Transfer Unit)—帧的数据部分最长限制/IP数据报长度(图片蓝色部分)

规定原因:()
成帧(FRAMING)方式
- 字节计数法(无差错情况)
出错会导致一连串帧的错误

- 带字节填充的定界符法
SOH(首部)与EOT(尾部)
数据部分若有与SOH或EOT相同的部分则会错误判断帧的边界
升级版:在有歧义的数据前面加上特殊字节或者字符

- 带比特填充的定界符法

- 物理层编码违例

透明传输
翻译:发送不发生差错
利用前面的插入方式使得传输正确
差错控制
误码率(BER)
错误的比特占传输比特的总数
纠错码(改)
使用于错误发生比较频繁的线路(无线链路)
检错码(丢)
用在高可靠、误码率较低的信道上,例如光纤线路(光纤线路)
循环冗余检验CRC原理
在原来的数据部分(k位)加上n位的冗余码(FCS)构成帧
整体有错丢弃反之接收
计算方式:

栗子:

这种应该是通过代码程序实现
国际标准P

FCS不一定由CRC得到
CRC只能做到接收到的帧没有错误,但是顺序问题不能判断
3.2 点对点协议PPP
3.2.1 PPP协议的特点
工作要求


PPP不同于广播在于它会进行地址协商
协议组成
LCP与NCP
LCP(Link Control Protocol):链路控制协议—-用于建立、配置和测试数据链路的链路控制协议,双方可以协商一些选项,最重要****的功能之一是身份验证**
NCP(Network Control Protocol):里面包括了不同的协议,用于不同网络层的数据传输
3.2.2 PPP协议的帧格式
帧格式

透明传输方式
异步传输—字节填充法

IP数据报里面与首位尾部一样的字节(7E)前面填充一个特殊字节,例如7D,然后IP数据报中原来就有的7E改为别的特殊字节例如5E
同步传输—零比特传输法

标志符是六个一,为了不让IP数据报中出现6个1,在传输数据时当出现连续的5个1时添加一个0(与后面数据无关),接收同理出现连续的五个1则删除接下来的那个比特
同步异步区别
*同步面向比特,单位帧,时钟统一,无间隔
*异步面向字节,单位字符,效率低,高速来南路开销大
3.2.3 PPP协议的工作状态

(还是挺清晰的)
3.3广播通信的数据链路层
3.3.1 局域网的数据链路层
优点:
具有广播功能便于拓展
局域网拓扑结构

优缺点
总线:
(优点)结构简单布线容易、可靠性较高,易于扩充
(缺点)所有的数据都需经过总线传送,总线成为整个网络的瓶颈;出现故障诊断较为困难。另外,由于信道共享,连接的节点不宜过多,总线自身的故障可以导致系统的崩溃
星型:
优点:结构简单、容易实现、便于管理,通常以集线器(Hub)作为中央节点,便于网络维护和网络管理
缺点:中心结点是全网络的可靠瓶颈,中心结点出现故障会导致网络的瘫痪。
环形结构:
优点:结构简单,适合使用光纤,传输距离远,传输延迟确定。
缺点:环网中的每个结点均成为网络可靠性的瓶颈,任意结点出现故障都会造成网络瘫痪,另外故障诊断也较困难。最著名的环形结构网络是令牌环网(Token Ring)
树型结构:
优点:连结简单,维护方便,适用于汇集信息的应用要求。
缺点:资源共享能力较低,可靠性不高,任何一个工作站或链路的故障都会影响整个网络的运行
网状结构:
优点:系统可靠性高,比较容易扩展,但是结构复杂,每一结点都与多点进行连结,因此必须采用路由算法和流量控制方法。目前广域网基本上采用网状结构。
缺点: 1、拓扑结构复杂,其安装和配置都比较困难。 2、网络控制机制复杂,必须采用路由算法和流量控制机制
媒体共享技术
静态划分通道:频分、时分、波分、码分
(通信量大且稳定,用户少且固定,代价高,不适合局域网)
动态媒体接入控制(多点接入):随机接入(以太网)与受控接入(轮询polling)
*为解决数据发生冲突的情况,使用动态媒体接入控制
以太网的两个标准
IEEE 802.3(有LLC协议)
DIX Ethernet V2(商用,仅有MAC协议)
适配器
计算机通过适配器(网卡)来与互联网进行通信

cpu找IP地址,网卡找硬件地址
作用

以太网的两个重要措施
- 采用较为灵活的无连接的工作方式
- 发送使用曼切斯特编码,便于同步
3.3.2 CSMA/CD协议(半双工)
工作方式
(先听后发,边听边发,冲突停止,延迟重发)
- 多点接入–说明是总线型网络
- 载波监听–边发送边监听,发前和发中都要检测
- 碰撞检测–判断有没有发生碰撞:检测信道上电压的变化情况,电压摆动值超过一定值认为碰撞
解决方法
- 适配器立即停止发送
- 等待随机时间后再次发送
流程图
问题

监听反应不过来,发生碰撞到终点的时间里不能判断,而此时还在发数据,数据会发生更大的错误


确实是:laughing:
二进制指数退避


二进制的名字来源于2的k次方-1那里
r=2*k-1
T=r*2t(基本退避时间)
k=Min[重传次数,10]
重传16次丢弃并且高层报告

这个64字节有历史遗留:dancer:
发生碰撞后线路上的其他用户可能不知道,这时发送站会人工发送信号到线路上通知所有用户发生碰撞
特性

3.3.3 使用集线器的星型拓扑
- 传统传输媒体发展:粗同轴电缆–细同轴电缆–双绞线
- 双绞线对应星型拓扑,相对总线更好组网
- 可靠性依靠集线器(hub)
*每个站到集线器的距离不超过100m

F对应光纤
特点

逻辑上还是总线型
共享带宽
工作在物理层
3.3.4 以太网的信道利用率
- 多个站可能会发生碰撞
- 碰撞后利用率低于100%
计算公式:
$$
Smax=T0/T+t=1/(1+a)
a=t/T
其中t为争用期的一半,T为帧的发送时间
$$
帧长路短就是好(S低于30%过载)
3.3.5 以太网的MAC层
*LLC层已经不用了

就类似于你家的经纬度,固定了的
*一个接口一个网卡一个MAC地址
结构

厂家就后三个字节自己定义不重复即可
分类

发一个人,发一个组,发一个班


- 适配器收到一个MAC帧会先用硬件检查帧中的MAC地址
- 是发送给自己的则接收并处理
- 不是发给自己的就丢弃
- 以混杂方式工作的有帧就收
MAC的帧格式



无效MAC帧

无效丢弃,不重传
3.4 扩展的以太网
*扩展仍然是一个网络
3.4.1 在物理层扩展以太网
使用光纤扩展(距离)

使用集线器进行扩展(用户数量)

限制:双绞线最大距离,集线器接口数
图示正好是一个冲突域,扩展越多冲突域越来越大
优缺点


3.4.2 在数据链路层扩展以太网
早期网桥,现在交换机(多接口网桥)
特点
两个都是全双工工作方式,解决了共享总线的问题
减少了碰撞域(具有并行性 )
接口有存储器
即插即用,交换表通过自学习建立
使用专用的交换结构芯片,比使用软件转发的网桥快的一
接口独享带宽,支持多类型多速率的接口
自学习

与集线器相连

更新困难,集线器没有交换表,默认广播
两台交换机相连

多台交换机相连

可能会形成回路,导致广播风暴
生成树协议

从逻辑上把两条线变成一条线(前两张图)
从总线到星型以太网

从CSMA/CD协议到全双工

3.4.3 虚拟以太网
以太网的问题

广播域


冲突域:相互发信息会冲突的区域
广播域:发送消息大家都能收到的区域
安全问题、管理问题
在一个广播域不想让某些用户接收到消息
解决方法:虚拟局域网VLAN(Virtual LAN)

只是局域网的一种服务,是一种协议,不是新型的局域网

优点

划分标准

一般基于端口
3.5 高速以太网(介绍)
3.5.1 100BASE-T 以太网

特点

3.5.2 吉比特以太网
特点

3.5.3 10吉比特以太网(10GE)和更快的以太网
特点
3.5.4 使用以太网进行宽带接入
特点

第一次考试纠错

电路交换比其他两种方式实时性都要高,分组交换主要是 时延比报文小

局域网是分组广播式网络,不需要网络层的路由功能

审题!!!这里说的是三层以下,即是1,2层,网桥交换机是数据链路层的,中继器和集线器是物理层的
三层的是三层交换机

A给B发送消息,B要回复A是否收到消息了(题目没说就忽视了)
第四章 网络层
网络层解决了什么问题

4.1 网络层提供的两种服务
观点一:网络负责可靠交付(虚电路———逻辑链接)

很容易发生数据的丢失

观点二:网络提供数据报服务

由更高层负责可靠通信(运输层)
问题是会产生失序问题,但是网络健壮性增强了
虚电路和数据报服务的对比


4.2 网际协议IP
4.2.1 虚拟互连网络
不同网络的差异

通过使用中间设备来互连不同的网络—路由器(网络层)
各种中间设备

中继器和集线器是物理层设备
IP协议


***IGMP?

数据实际上运输会由上往下封装再由下往上解码运输,但是
4.2.2 IP数据报的格式

IP数据报分为首部和数据两部分,其中首部分为固定部分20字节和可变部分
版本
前4个字节是协议版本,例如IPv4
首部长度
一比特代表4字节
为1111时首部长15*4=60字节
区分服务
一般不用
总长度
首部+数据的长度,一比特为一字节
最大为2的16次方-1字节,但是实际上传输不了这么多—MTU限制总长度,那么就要将数据分片传输
标识位
为了将分片的数据能够准确无误的重组
所有分片都有相同的标识
标志
为了将分片的数据能够准确无误的重组
标志位中有保留位,待开发
MF位:more fragment(是否最后分片),1表示后面还有分片,反之没有

DF位:don‘t fragment(是否允许分片),1表示没有分片,0表示分片

片偏移
为了将分片的数据能够准确无误的重组
判断给数据开🔪的地方在哪里
栗子:

每个MTU里面包括20字节的首部和1480字节的数据,增加了首部开销
问题:为什么不把分组平均
答:避免头重脚轻,浪费首部
计算

数据的尾巴除以8得到偏移量
生存时间
路由器之间传递一次叫跳
生存时间就是规定这个跳的次数
不同的操作系统这个TTL(生存时间)值不同
目的是不让数据在网络上无休止的浪费资源
协议
协议负责指出数据部分应该交给上层的哪个部分

首部校验和
只对首部的部分进行校验,首部变了校验和也发生变化,不用管数据部分,错了让运输层想办法

源地址,目的地址
一个接口一个IP地址,32位的二进制地址
可选字段
不怎么用
IP协议功能及报头字段总结

以上首部各部分功能
4.2.3 IP地址
IP是啥?你家的经纬度~

32位还是少了
IP地址采用2级结构

哪一个网络的哪一台主机?

分级地址优点
方便分配和数据转发

点分十进制

一个字节一个部分
分类的IP地址(old)

类别判断:A类第一个比特是0,B类前两位是10,c类前三位是110;A类网络地址8位,B类16位,C类24位
以A类地址为例

网络地址除了标识符以外,全1表示用于本地软件环回测试,全0代表本网络(?)
主机地址全1表示该网络的所有主机(广播),全0代表主机所在的网络地址(84.0.0.0)
网络大小
这个网络大小差别太大,可能会取上不足取下有余,分配不灵活

不可分配地址

子网划分(subnetting)
就是使得划分标准增加以便合理调整网络大小
栗子:

这样就能按照用户需求diy网络大小了
子网掩码(可变VLSM?)

掩码用来计算网络地址
网络和子网位为1,主机位为0,再把掩码和IP地址AND一下后,仅保留网络地址(路由器要用)
IP地址是否在同一个网络
子网掩码的位数相等
网络地址每一位都相同
优缺点

解决了网络过大的问题,没有解决网络太小的问题
无分类编制方法CIDR(new)

网络前缀可以变长度
CIDR用掩码表示网络前缀的长度

三个特殊地址块

特点
- 构造超网


分地址块就是把小数点往后面移动,构造超网就是左移(? )
- 减少路由条目

地址数量也没有增加
IP地址的特点
- 每个IP地址都由网络前缀和主机号两部分组成

- IP地址是标志一台主机(或路由器)和一条链路的接口

- 转发器或交换机连起来的若干个局域网仍为一个网络

- 在IP地址中,所有分配到网络前缀的网络都是平等的
4.3 IP分组的转发
路由器分组转发算法
255.255.255.255是广播地址但是发送这个的资源要求太大,一般情况下属于受限地址,只有直接地址可以转发
4.3.1 基于终点的转发

路由器转发表包含哪些信息?
- 终点地址
- 下一跳地址
*都是目的网络地址,为节约路由表空间
栗子

转发步骤

问题:掩码从哪来?
IP首部不能更改,但是路由表还可以更改,在转发表地址加一个后缀即可,如128.0.0.12/24
将目的地址和掩码AND后的网络号相同则转发,不同则跳过,比对下一条,全部不匹配则丢弃

4.3.2 最长前缀匹配
查找转发表的过程就是逐行寻找前缀匹配
使用CIDR时,查找转发表时可能会得到不同的匹配结果,子网掩码越大越精确(网络地址最长)
一般出现这种情况,网络有包含关系,例如学校的哪一个班
前缀最长的排更前面
特殊路由
- 主机路由a.b.c.d/32—转发表最前面
- 默认路由0.0.0.0/0—转发表最后面(兜底)
二叉线索查找

4.3.3 IP地址与MAC地址
网络层已经有了IP地址,那么MAC地址还有用吗?
上层的工作要依靠下层的服务

对比


那么怎么知道下一个路由器的MAC地址是多少呢?(由IP得到MAC地址–ARP协议)
4.3.4 地址解析协议ARP
过程

广播ARP请求
单播ARP响应
流程图
ARP高速缓存

作用

减少广播通信,节约资源
2台主机在不同的局域网地址ARP时通过路由器来代传输,首先路由器当接收者回应ARP,然后又当发送者发送ARP请求,简称又当爹当妈


使用ARP的4种情况
- 同一局域网的不同主机

- 不同局域网的不同主机

- 路由器和主机(近)

- 路由器和主机(远)

使用IP的原因

4.4 网络控制报文协议ICMP
确保一定的准确性措施
4.4.1|4.4.2 ICMP报文的格式和种类|ICMP的实际运用
- 允许主机或者路由器报告差错情况和提供有关异常情况的报告
- 由主机和路由器用于网络层的 通信
- 是网络层的协议

报文种类

某个问题的细节原因

差错单向,询问双向
ICMP差错报文
在数据丢失的时候产生报文

Traceroute/Tracert(追踪路由)

方法

- 源故意发错误信息
- 路由器丢弃
- 产生ICMP错误报文
- 回应,报文暴露路由器IP地址
但是现在一些重要的路由器IP地址会收到保护无法使用Tracert

不发ICMP的情况

- ICMP自己错误
- 第一个分片错了以后都不发(肯定错)
- 多播不发
- 特殊地址不发
ICMP询问报文

PING和ICMP
- 用于测试两个主机之间的连通性
- 使用了ICMP的回送请求与会送回答报文

- 疯狂PING一个主机可以把它的资源占用完–DDoS

- 可以通过返回的TTL值判断对方的操作系统
4.5 IPv6
4.5.1 IPv6协议概述
出现原因:
地址不足
分类不合理
NAT没有完美解决大小问题
安全问题
移动性支持弱
主要变化


看看得了,记不住
IP数据报的一般形式

基本首部+有效载荷(扩展首部加数据部分)
基本首部

版本
指明协议版本–4位(0110=6)
通信量类
8位,区分不同类别IPv6数据报或者优先级
流标号
感觉有伏笔
有效载荷长度
16位,指明有效载荷的字节数(除去基本首部)
下一个首部
告知上层该数据之后要交给哪一个协议进行处理
跳数限制
类似TTL
IPv4和IPv6报文对比

扩展首部

4.5.2 IPv6的地址
- 地址占128位
- 三种基本类型:单播、多播、任播–找最近的(广播变任播)
冒泡十六进制

16个比特转为4位16进制数
零压缩:一连串的0化简为两个冒号
这种情况只能简化较为长的一段0,只能压缩一次
点分十进制后缀


前缀的表示方法

子网掩码没了
分类(略)
零压缩

地址分配

无地址自动配置就是网络前缀加上你的MAC地址
ND:邻居发现
RS:路由器请求报文
4.5.3 从IPv4到IPv6
太先进很难适应,现在还在过渡

给v6套了个皮变成v4了

4.5.4ICMPv6
升级版!ARP没了


ND:临站发现
MLD:多播听众交付
4.6 路由选择协议
路由器怎么智能选择线路进行数据传输?
4.6.1 路由选择协议概述
策略分类

问题

采用层次路由


自治系统

每一个AS区域使用单一和一致的路由选择策略
接下来就介绍这些AS内策略,称为内部网关路由协议(IGP)
》》》》OSPF,RIP,IS-IS,IGPR,EIGRP
不同AS之间靠BGP协议
4.6.2内部网关协议RIP

工作原理

- 简单
- 基于经过路由器的数量
- 距离就是跳数

16这个数字在RIP中意为不可达
特点
- 仅和相邻路由器交换信息
- 交换路由表
- 按固定时间间隔交换信息
RIP路由表的建立
- 每个路由器刚开始知道自己的邻居
- 接着再告诉自己的其他邻居
- 若干次后谁都知道有谁了
- RIP路由表项:目的网络,距离,下一跳
- !!下一跳不变的情况下无脑更新,下一跳不同比较跳数,更新选择跳数小的
RIP2
待补充
优缺点
好消息传得快,坏消息传得慢

4.6.3内部网关协议OSPF
基于速度来判断
特点

适用于大网络,使用层次结构的区域划分,加快了收敛速度,减少了网络流量(分主干区域和普通区域)
度量值
费用,带宽,时延,距离
区域边界路由器ABR

如图R7
自治系统边界路由器ASBR

如图R6
5种分组类型

OSPF分组
好复杂。。。
可靠的洪泛法
待补充
4.6.4外部网关协议BGP
特点

BGP发言人(ASBR)
*感觉就像外交官,主管外国

内部不能通过BGP分享信息
BGP路由信息

BGP路由选择顺序

- 不能兜圈子
- AS-PATH中,不允许出现相同的AS号
4.6.5路由器工作原理

核心功能:控制层面(各种路由协议+转发表)+数据层面(传输IP数据报)
数据层面

核心层面

结构

有点像交换机
路由种类优先级

IP报文转发过程
- 链路层解封,IP头部校验
- 获取报文目的IP地址
- 基于IP地址查转发表
- 查询失败,丢弃报文
- 查询成功–》获取转发出接口和下一跳IP,TTL减一,计算校验和,链路层封装发送
交换结构

4.7 IP多播

应用

实现步骤
- 确定多播组成员

- 多播路由

转发多播数据的三种方法

4.8 VPN和NAT
4.8.1 VPN

4.8.2 NAT

NAPT

为了让公有网络进入私有网络能够分辨给哪个主机(一定程度上保护了私有网络)
优缺点

4.9 MPLS(简化路由表)

- 打标签
- 在链路层硬件转发
格式

4.10 软件定义网络SDN
优点

在路由器的控制层面工作,将每一个路由器各自计算路由升级成统一管理,路由器就只有查表转发了,效率增加了


openflow–数据层面:流表(匹配加动作)
第五章 运输层
5.1 运输层解决的问题
5.1.1 进程之间的通信
主机间的通信,本质上是两台主机的应用进程之间的通信
不同协议使用同一个运输协议叫做复用,从同一协议传输信息到不同进程叫做分用

运输层提供的服务
- 进程到进程的数据传输
- 差错检测
- 流量控制和拥塞控制
5.1.2 运输层的两个重要协议
可靠信道与不可靠信道
TCP面向连接的全双工可靠信道
UDP使用无连接的不可靠信道
协议传输数据单元(TPDU)
TCP—-TCP报文段
UDP–UDP报文段或用户数据报
二者区别


这张图很重要,他会问你哪些应用适用哪个协议
5.1.3 运输层的端口
复用和分用

端口
全称协议端口号


IP是不能重复的,端口是独立的,是可以重复的

管理部门:IANA
- 通信需要知道对方的IP地址和端口(套接字socket=(IP地址:端口号),如192.0.0.1:80)
- UDP套接字——<IP地址,端口号>
- TCP套接字——<源IP地址,目的地址,源端口号,目的端口号>
5.2 用户数据报协议UDP (单工不连接)
5.2.1 UDP概述
在IP数据报上增加了复用,分用和差错检验
特点
无连接
尽最大努力交付
面向报文(不拆分)
没有拥塞控制
支持一对一,一对多,多对一,多对多
首部8字节,开销小
适用应用

5.2.2 UDP的首部

计算检验和的时候临时将12字节的伪首部计算,计算完成后丢弃

5.3 传输控制协议TCP概述(全双工面向连接)
5.3.1 TCP概述
- 面向连接
- 提供可靠传输
- 支持一对一通信
- 全双工通信
- 面向字节流,不保留报文边界
各种面向连接

5.3.2 TCP的首部

20**字节固定首部**
1 | 1. 源端口和目的端口:各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能通过端口实现。 |
发送序号和确认序号的含义
发送序号:数据载荷中第一个字节在字节的序号
确认号:期望收到的下一个字节的序号
最大报文段MSS

- 太小网络利用率低
- 太大分片的开销大
5.4 可靠传输的工作原理
5.4.1 停止等待协议
- 每发送完一个分组就停止发送,等待对方的确认
- 全双工工作方式下既是发送方又是接收方
无差错情况

分组错误

b接收到M1时检测出错误并且丢弃
分组丢失
M1在传输过程中就丢失了,b不知道也什么都不做
解决方法–超时重传



如果确认信息也丢失了?
- 确认丢失

丢弃第二次收到的分组,向a发送确认
- 确认迟到

双方都只认第一次
b丢弃第二次收到的M1,并且重新发送确认信息,a丢弃第二次确认
特点
- 停止等待
- 暂存,为了重传
- 编号
- 超时重传
信道利用率

解决方法


5.4.2 连续ARQ协议

原理

累计确认

- 优点:容易实现,确认丢失也不需要重传
- 缺点:不能向发 送方反应出接收方已经正确收到的
Go-back-N

与停止等待的对比

5.5 TCP可靠运输的实现
5.5.1 以字节为单位的滑动窗口
- 发送方和接收方各维持一个发送窗口和接收窗口
- 发送方根据接收方给出的窗口值构建出自己的发送窗口
- 发送窗口里面的序号表示允许发送的序号
- 窗口只能往序号大的方向移动和扩张


窗口的滑动

确认号是还没有收到的数据,是期望接收到的数据的序号
发送方每收到一个接受确认,就将发送窗口向前滑动一个字节的位置
发送缓存

接收缓存

5.5.2 超时重传时间的选择
加权平均往返时间RTTs

超时重传时间RTO

RTT偏差的加权平均值

Karn算法

修正版

5.5.3 选择确认SACK
一段数据中中间部分数据未传输,怎么只传输这些数据呢?


5.6 TCP的流量控制
5.6.1 利用滑动窗口实现流量控制

按接收方的接受能力来决定发送方的发送能力

持续计时器
只要 TCP 连接的一方收到对方的零窗口通知,就启动该持续计时器。
若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带 1 字节的数据),对方在确认这个探测报文段时给出当前窗口值。
若窗口仍然是零,收到这个报文段的一方就重新设置持续计时器。
若窗口不是零,则死锁的僵局就可以打破了。
5.6.2 TCP的传输效率
- 缓存中数据到达MSS长度就组装成一个TCP报文段发送出去
- 按发送方的应用进程要求发送
- 发送方的计时器时间到了将当前的缓存数据发送出去
糊涂窗口综合征

5.7 TCP的拥塞控制
5.7.1 拥塞控制的一般原理
拥塞原因:大量分组短时间进入网络,超过网络的处理能力
- 节点缓存容量太小
- 链路容量不足
- 处理机处理速率太慢
- 拥塞本身会进一步加剧拥塞
- 资源要求大于供给
理论解决方法


5.7.2 TCP的拥塞控制方法

出现拥塞将窗口减少,没有拥塞加大窗口
拥塞发生依据
超时重传计时器超时
收到三个重复的确认
4种拥塞控制算法
慢开始
拥塞避免
快重传
快恢复
ssthresh是标准,是阈值,cwnd是变量
慢开始
慢开始就是指数增长(2的n次方)
cwnd和门限值的关系:
(1)当 cwnd < ssthresh 时,使用慢开始算法。(指数)
(2)当 cwnd > ssthresh 时,停止使用慢开始算法,改用拥塞避免算法。(线性)
(3)当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。(线性)
拥塞避免
这时候cwnd线性增加
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(重传定时器超时):
(1)ssthresh = max (cwnd/2,2)
**(2)cwnd =1
*不能完全避免拥塞,只能减轻
快重传
1.目的:让发送方尽早知道发生了个别报文段的丢失。
2.发送方只要连续收到三个重复的确认,就立即进行重传(即“快重传”),这样就不会出现超时。
3.使用快重传可以使整个网络的吞吐量提高约 20%。
4.快重传算法要求接收方立即发送确认,即使收到了失序的报文段,也要立即发出对已收到的报文段的重复确认。
收到三个确认后会立即进行快恢复!!!(和拥塞避免有一点点差别)
1.慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2 ;
2.乘法减小 MD (Multiplicative Decrease) 拥塞窗口。(?)
新拥塞窗口 cwnd = 慢开始门限 ssthresh
3.执行拥塞避免算法,使拥塞窗口缓慢地线性增大(加法增大 AI)。

5.8 TCP的运输连接管理
5.8.1 TCP的连接建立
采用三报文握手:在客户和服务器之间交换三个 TCP 报文段,以防止已失效的连接请求报文段突然又传送到了服务器,因而产生TCP连接建立错误。

5.8.2 TCP的连接释放
数据传输结束后,通信的双方都可释放连接。
TCP 连接释放过程是四报文挥手。
等待2MSL的时间的原因:
- 保证发送的最后一个ACK报文段能够到达B
- 防止以失效的请求报文段出现在连接中(?)
保活计时器:防止在TCP连接中出现长时间空闲
第六章 应用层
6.1 域名系统DNS
6.1.1域名系统概述
域名系统 DNS用来把人们使用的机器名字(域名)转换为 IP 地址。
域名采用层次树状结构的命名方法
DNS 是一个联机分布式数据库系统,采用客户服务器方式。
域名到 IP 地址的解析是由若干个域名服务器程序共同完成。
域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器
6.1.2 互联网的域名系统
命名方法:层次树状结构方法。
任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名
域 (domain):
(1)名字空间中一个可被管理的划分。
(2)可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。
- 域名结构:层次结构。由标号序列组成,各标号之间用点(.)隔开,各标号分别代表不同级别的域名

6.1.3 域名服务器
区的不同划分
区等于域,区小于域

树状结构的域名服务器

类型

域名的解析过程
靠自己/靠别人
递归查询(靠别人)
通常,主机向本地域名服务器查询时使用,若不知道,就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

迭代查询(靠自己)
本地域名服务器向根域名服务器查询时使用,要么给出所要查询的 IP 地址,要么告诉下一个要查询的域名服务器的 IP 地址,本地域名服务器继续后续查询

高速缓存域名服务器
存放最近用过的名字以及从何处获得名字映射信息的记录。
作用:大大减轻根域名服务器的负荷,使 DNS 查询请求和回答报文的数量大为减少。
6.2 文件传送协议FTP
使用了TCP
6.2.1 FTP概述

特点


主进程工作步骤

6.2.3 简单文件传送协议TFTP
概述
特点

6.3 远程终端协议TELNET
使用TCP
概述

TELNET使用网络虚拟终端NVT格式
6.4 万维网www
6.4.1 万维网概述
万维网 WWW (World Wide Web) 是一个大规模的、联机式的信息储藏所,并非某种特殊的计算机网络
访问方法:链接
提供分布式服务
万维网的工作方式:客户服务器方式
6.4.2 统一资源定位符URL
URL 的格式:由以冒号(:)隔开的两大部分组成,对字符大写或小写没有要求
一般形式:
6.4.3 超文本传送协议http
HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。
HTTP 协议本身是无连接的。
代理服务器(万维网高速缓存):
它代表浏览器发出 HTTP 请求,使用高速缓存可减少访问互联网服务器的时延。
类似于高速缓存域名服务器
6.4.4 万维网的文档
在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。
页面制作的标准语言:HTML。
注:HTML 不是应用层的协议,它只是万维网浏览器使用的一种语言。
想起了配置博客的痛苦时光
6.4.5 万维网的信息检索系统
在万维网中用来进行搜索的程序叫做搜索引擎,分为全文检索搜索和分类目录搜索。
6.4.6 博客和微博


6.4.7 社交网络

栗子:osu
6.5 电子邮件
电子邮件 (e-mail):指使用电子设备交换的邮件及其方法。
优点:使用方便,传递迅速,费用低廉,可以传送多种类型的信息(包括:文字信息,声音和图像等)
电子邮件系统的组成:
用户代理(用户与电子邮件系统的接口,又被称为电子邮件客户端软件)
邮件服务器(发送和接收邮件,同时还要向发信人报告邮件传送的情况,又被称为邮件传输代理,按照客户服务器方式工作)
邮件发送和读取协议(简单邮件发送协议 SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件。邮局协议 POP3:用于用户代理从邮件服务器读取邮件)
发送和接收电子邮件的步骤:

6.6 动态主机配置协议DHCP
概述
动态主机配置协议 DHCP提供了即插即用连网的机制,允许一台计算机加入网络和获取 IP 地址,而不用手工配置。
DHCP 使用客户服务器方式,采用请求/应答方式工作
DHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口。
DHCP中继代理

DHCP 中继代理收到主机广播发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答,收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将其发回给主机。
- 每个网络上不都需要DHCP服务器
- 每一个网络至少有一个DHCP中继代理,它配置了DHCP服务器的IP地址信息
DHCP协议的工作过程

1 | 1. DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文。 |
6.7 简单网络管理协议SNMP
6.7.1 网络管理的基本概念

被管对象

网络管理协议

6.7.2 管理信息结构SMI

功能
- 被管对象命名
- 储存被管对象的数据类型有哪些
- 管理数据怎么编码
6.7.3 管理信息库MIB(略)
6.7.4 SNMP的协议数据单元和报文


陷阱

报文格式

6.8 应用进程跨越网络的通信
6.8.1 系统调用和应用编程接口
系统调用


应用编程接口

种类

应用进程通过套接字接入到网络
套接字作用

6.9 P2P应用
6.9.1 具有集中目录服务器的P2P工作方式(Napster)
最早的P2P技术
6.9.2 具有全分布方式结构的P2P文件共享程序(eMule)
使用分散定位和分散传输技术
6.9.3 P2P文件分发的分析(略)
第三次作业改正

第一个报文丢失,b要求a重发这个报文段,而确认号就是b想要的报文段的序号
所以是100

第一次1
第二次2
3–4
4–8
5–9
6–10
7–1(门限值变成4)
8–2
9–4
10–5
11–6
大小为6

贝多芬题








