计算机网络(复习自用)(已完结)

计算机网络通信技术计算机技术相结合,实现信息传输资源共享的一种信息系统

一、概述

1、互联网的组成

边缘部分:
多使用局域网
包括链接在互联网的所有的主机(端系统)(信源与信宿)
端系统之间通信方式分为C/S和P2P

核心部分:
多使用广域网
采用网状拓补结构
路由器起到分组交换的作用

电路交换:
采用存储转发技术
其是一种直接连接两个通信设备的传输方式。在电路交换中,在发送数据之前,需要在源设备和目的设备之间建立一条专用的物理电路(如电话线路)。一旦建立了电路,数据就可以在这条电路上连续传输,直到传输完成。
优点是,通信时延小;有序传输不会导致无序;适用范围广;没有多个信源传输的信息共同占用信道导致的冲突;实时性强;控制简单
不足是,建立连接需要额外的时间;线路独占,使用效率比较低,信道利用率差;灵活性差;难以规格化,不同类型、不同速率很难进行交换

分组交换:
采用存储转发技术
将一整个报文划分成一个个更小的数据段,再加上必要的控制信息作为首部,这样就形成了分组(包)
在分组在特定一个链路进行传输时,不会占用其他的链路,同理,当计算机A不在该链路传输分组时,不会占用这个路由器之间的公共链路(路由器之间的链路是所有主机所共享的,但是主机和互联网核心的链路是该主机所独享的),由此可以动态分配带宽。总结一句话就是“分段占用”
好处是,无需建立连接;线路利用率高。通信双方不是固定占用一条通信线路,在不同的时间分段部分占用物理线路;简化了存储管理:分组的从长度固定,相对的缓冲区的大小也相同;加速传输:分组是逐个传输的,后一个分组的存储操作与前一个分组的转发可以同时进行;减少出错概率和重发数据量
但是其存在三个缺点,一是当多个分组到达同一个路由器时,会产生排队的情况,这会导致时延,所以这种交换方式的时延较高;二是包中的控制信息会占用一定的额外空间,降低了空间利用率;三是对待数据报服务时,可能存在重复、失序、丢失分组的问题

报文交换:
采用存储转发技术
数据被分割成一个个独立的报文,每个报文都包含了源设备和目的设备的地址以及数据。报文交换设备(如路由器)会将收到的报文存储在缓冲区中,然后根据报文的目的地址选择合适的输出端口进行转发。
优点是,无需建立连接;动态分配线路,节点交换机先存储,然后找一条空闲的线路,然后发送出去;动态分配线路,节点交换机先存储,然后找一条空闲的线路,然后发送出去;提高线路的利用率,通信双方不是固定占用一条通信线路,在不同的时间分段部分占用物理线路;提供多目标服务:可以发送个多个目的地址
不足是,时延较高,因为报文在交换机上要存储转发的过程;需要较大的存储空间,报文的大小没有规定限制;需要传输额外的信息量,需要报文携带源地址等信息

接入网
有线接入网
无线接入网
多在局域网中使用

2、计算机网络的分类

基于地域距离:
局域网、城域网、广域网
个域网、体域网、因特网

基于传输技术:
广播式网络:分为单播(对象是单个主机)、总播(对象是全体主机)
点到点网络:主机对主机

基于传输介质:
有线网、无线网(完全意义上的无线网很少,中国移动一定意义上来讲也是有线网,只是基站到终端是无线,基站与基站之间还是有线连接)

基于管理技术:
客户机-服务器方式C/S:例如工大门户直播等,方便统一管理资源。有请求方和提供方
对等网P2P:例如迅雷下载等,可以同时下载和上传。进行平等的对等连接通信

3、网络拓补分类

总线型:
一根电缆连接所有结点
应用:主干线路、小型网络、某一网段
但是时延上限未知,且容易产生拥堵

星型:
所有结点连接到中心设备
应用:局域网连接
但是如果中心设备出现问题容易导致整个网络瘫痪
注意辨别中心设备是否是总线型

环形:
网络中所有结点连接成一个闭合的环
应用:令牌环
传输方向必须一致,且所有结点都作为转发器
但是任意时刻都只能有一个结点传输数据
有时延上限

网状:
任意两节点之间不止有一条连接
应用:广域网连接

在这里插入图片描述

4、计网体系结构

(1)协议与划分层次

组成网络协议的三要素:
①语法:规范
②语义:干什么
③同步:顺序

一般将网络分层为用户接口模块、通信服务模块、网络接入模块
下层不断向上层提供服务
用户接口模块:例如将两台主机不同格式的文件转换为统一格式
通信服务模块:让两个文件在不同的系统之间互相传输
网络接入模块:做主机接入网络的工作

网络分层的好处:
各层的功能独立,复杂问题简单化
实现模块化设计易于实现和维护
有利于标准化
各层的功能、结构相对稳定
实现功能分工

(2)实体、协议、服务和服务访问点

接口:
接口又是服务访问点(SAP):上下层之间提供服务和接受服务的接口,其之间进行交流需要用到一些命令,这些命令统称为服务原语
SOI把层与层之间交换的数据的单位称为服务数据单元(SDU),它可以与协议数据单元(PDU)不一样

服务:
是垂直的
分为面向连接的服务、无连接的服务、有确认的服务和无确认的服务

面向连接的服务:
信息有序地压入管道
服务类型:可靠的信息流、可靠的字节流、不可靠的连接(数字化声音)

无连接的服务:
信息被分成组携带报文被路由无序地传输
服务类型:不可靠的数据报、有确认的阿数据报、问答(数据查询)

协议:
水平的

(3)OSI七层协议模型

它是国际标准协议,但是复杂又不实用,目前主流的是TCP/IP四层协议模型

根据计网的概念,该模型被分为了资源共享和信息传输两层,分别叫资源子网和通信子网

通信子网:
包括物理层(第一层)、数据链路层(第二层)、网络层(第三层)
①物理层:传输信息的物理工具,包含了机械接口、电气接口、光接口和过程接口,只传输信号(比特流)
②数据链路层(点对点):白话讲是数据在传输过程中避免不了需要多次转发,这其中就会经历很多个不同的协议,那么该层就是用来规范如何转发和更换协议。其主要包含了成帧、差错控制、流量控制和链路管理,其中成帧发挥了底层作用,就是将大的信息分成小块,一块一块地传输、检错,没有成帧就无法进行差错控制和流量控制
③网络层:主要包含了寻址和路由。关于路由的具体细节后面章节会做具体介绍,这里就不叭叭了
资源子网:
包括运输层/传输层(第四层)、会话层(第五层)、表示层(第六层)、应用层(第七层)
①运输层/传输层:向两台主机(两台主机包含了端对端的意思)中进程之间的通信提供通用的数据传输服务,可以屏蔽子网不同向上提供统一接口。该层使用传输控制协议TCP和用户数据协议UDP
②会话层(概念上的一个层):同时管理不同的会话,即会话管理、同步管理、活动管理
③表示层(概念上的一个层):数据表达、数据压缩和数据加密。分为与通信有关和与通信无关两大类,是直接与应用程序接口的层
在这里插入图片描述

(4)TCP/IP四层协议结构

首先了解TCP/IP参考模型与OSI参考模型有什么区别,借此也许会对TCP/IP盛行当代的原因有些许理解
在这里插入图片描述

TCP/IP参考模型共分为四层:
分别是网络接口层、网际层、运输层和应用层
TCP/IP参考模型与OSI参考模型映射:
网络接口层映射物理层、数据链路层
网际层映射网络层
运输层映射运输层
应用层映射会话层、表示层和应用层

网络接口层:
包含WIFI、ATM、GSM等多种网络接口协议,因此允许IP协议在各式各样的网络构成的互联网上运行

网际层:
解决主机到主机的通信问题
包含IP、ARP、ICMP、IGMP等多种协议

运输层:
包含TCP、UDP协议
当单播通信、大文件传输、快速性无要求等情况时,多使用TCP协议
当多播或广播通信、小文件传输、快速发送数据等情况时,多使用UDP协议
在这里插入图片描述
TCP协议要求建立联系并能确认,这个过程本身就是占据一定时间的

应用层:
没有明确的束缚
包含HTTP、FTP、DNS等多种协议,因此可以为各种各样的应用提供服务

5、网络性能指标

带宽是指在一个固定的时间内(1秒),能通过的最大位数据。可以将其想象成车道的车道数或者是水管的直径
吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。注意这里是“成功地传送”,也就是意味着吞吐量必然会收到一系列因素的影响
吞吐量throughput与带宽Max net bitrate的区分:两者的单位都是Mbps。当讨论通信链路的带宽时,一般是指链路上每秒所能传送的比特数,它取决于链路时钟速率和信道编码,在计算机网络中又称为线速。可以说以太网的带宽是10Mbps。但是需要区分链路上的可用带宽(带宽)与实际链路中每秒所能传送的比特数(吞吐量)。通常更倾向于用“吞吐量”一词来表示一个系统的测试性能。这样,因为实现受各种低效率因素的影响,所以由一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。这样就意味着,一个主机上的应用能够以2Mbps的速度向另外的一个主机发送数据。
为何吞吐量往往小于带宽?
一是要考虑上下行链路的带宽区别,二是共享路由,三是共享路由导致的数据溢出,溢出后要重新传输数据,导致传输一段数据所用的时间延长,这会严重影响吞吐量
在这里插入图片描述

时延是指数据从网络的一端传输到网络的另一端所花费的时间。具体包括发送时延(发送时延与接受时延其实是重复的)、传播时延(数量级较小)、处理时延(主机和路由器所耗费的时间)、排队时延(例如P2P传输数据中排队时延占主要部分)、接入时延(有数据发送到获得信道使用权发送出去的时间)

时延带宽积=传播时延✖带宽

时延抖动,利用缓存可以客服过量的时延抖动,例如语音通话对时延抖动的要求往往比视频通话的要求更高

往返时间RTT指发送一个信号的时间加上收到确认返回的时间

利用率包含信道利用率和网络利用率,信道利用率是有效发送的数据量所需的完整周期时间的比率;网络利用率是全网络的信道利用率的加权平均值。往往网络利用率越高时延越高

丢包率=丢失分组数/总分组数,丢包往往是因为路由器队列过满导致的数据溢出或者是出现错误被接受方或中间节点丢弃

二、物理层

1、物理层的基本概念

主要任务:确定接口特性,其中包含机械特性、电气特性、功能特性、过程特性、声音特性等

2、数据通信的基础知识

数据通信系统模型
总共分为三大类源系统(发送端)、传输系统(集中处理噪声源)、目的系统(接收端)
在这里插入图片描述

信号(数据的电磁、电气表现)分为模拟信号和数字信号:
模拟信号:是连续的,但是高频信号往往会衰减,因此音质不高
数字信号:是离散的,其中传播时不同的离散数值的基本波形叫做码元

有关信道的基本概念:
单向通信:仅一个方向的通信,广播就是如此
双向交替通信:可以双向通信,但是不可以同时双向通信
双向同时通信:字面理解

有关信道的基本概念:
基带信号:没有调制的原始信号,包括模拟、数字基带信号
基带调制、编码:仅对基带信号的波形进行变换,变换后仍是基带信号
带通调制:将基带信号经过载波调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号
带通信号:带同调制后的信号即为带通信号

编码方式:目前常用的是曼彻斯特编码
在这里插入图片描述
在这里插入图片描述

基本的带通调制方式:
在这里插入图片描述
在这里插入图片描述

信道的传输速率有上限,对于传输速率的公式如下
在这里插入图片描述
H为信道带宽(Hz)、L为几种码元或元码的离散电平数、S/N为信噪比、S为信道内所传信号的平均功率、N为信道内部的高斯噪声功率

3、传输媒体

双绞线:
分为屏蔽型(STP)和无屏蔽型(UTP)
在这里插入图片描述

同轴电缆:
抗干扰性好、传输速率高
在这里插入图片描述

光纤:
分为单模光纤和多模光纤
单模光纤的成本高于多模光纤
光纤远距离传输经济、抗雷电和电磁干扰性能好、保密性好、体积小重量轻
在这里插入图片描述

无线介质:
在这里插入图片描述

4、信道复用技术

多路复用共有时分复用、频分复用、码分复用三种

时分复用:
将提供给整个信道传输信息的时间划分成若干时间片(时隙),并将这些时隙分配给每个信号源使用(并不是平均分配这些时间)
传输数字信号更适合
其分为同步时分复用和异步时分复用
同步时分复用:时隙是固定的
异步时分复用:时隙是按需分配的,动态分配

频分复用:
将用于传输信道的总带宽划分成若干个子频带(子信道),每个子信道分配给一个信号源使用
信号在进入传输信道之前,先调制至固定的频带,在接收端再调制回原来的频段

波分复用:
光的频分复用
在同一根光纤中同时让多个光波长信号通过不同光信道传输信息

码分复用:
用一组包含互相正交的码字的码组携带都偶了信号(抗干扰能力强)
每个用户被分配给以一个专有的码型(m bit的码片序列,相当于身份证号),那么如何在同一信道中的大量信号中选出该用户发出的信号?接收信号的基站会事先知道发送数据的用户的码片序列,然后将码片序列与发送的m个码片进行内积,如果内积结果是+1,那么代表传输的数据为比特1;如果内积结果为-1,那么代表传输的数据为比特0;如果内积结果为0,那么代表不是该用户传输的信号。
因此在上述描述中出现了两个未知词:码片、内积。
码片是将一个比特时间分成多份,也就是多个短的间隔,用多个码片区分是否是该用户传输的信号以及传输的是1还是0
内积相当于向量乘积,用于具体计算结果,就好比码片是数学中中的数,内积是计算方式,内积结果就是信号结果

三、数据链路层

该层的基本功能:封装成帧、差错控制、流量控制、链路管理
那么本章的内容也会围绕这四个功能展开讲解

1、封装成帧

由帧定界符和数据报组成

字符计数法:
每一帧的起始的数表示该帧有多少个单位数据
在这里插入图片描述

特殊字符定界法:
当传输的是ASCII码组成的文本文件时,可以直接将字符放到帧中传输,即为透明传输。但是当传输由非ASCII码组成的文本文件时,则需要采用字符填充的方式实现透明传输(这是传输的基本常识,在这里先提一下)。为啥要在封装成帧这里提及透明传输呢,因为透明传输顾名思义就是让用户无法感受到网络中的信号传输,也就是不必为了传输数据而去进行额外的操作,用户只需要关心发送的数据内容即可,那么为了不让用户去额外关系数据传输带来的麻烦,就需要将帧与帧之间的界定符和数据内容冲突的问题解决掉,这样用户就可以“肆无忌惮”地进行数据内容编辑工作了。
如何解决界定符与内容冲突的问题呢?
可以在特殊字符(与界定符相同的数据)前面加上转义字符来区分
在这里插入图片描述

特殊位串定界法:
凡是遇到5个1就在其后面加一个0,解码的时候同样删去就可以了

违例法:
如曼彻斯特编码中,“高-高”、“低-低”编码是违规的,可以采用将违规的编码当作边界符使用

2、差错控制

差错包含比特差错、传输差错等,本小节中只讨论比特差错

针对比特差错,使用CRC循环冗余检验的检验技术。
在这里插入图片描述
若仅使用CRC,则只能保证凡是接收端数据链路层接受的帧均无差错(还有别的差错无法检测),并不能使得该层协议成为可靠的传输协议
在这里插入图片描述
在这里插入图片描述

3、流量控制

使用了滑动窗口协议、停等协议,最终目的都是控制发送端的流量满足接收端的流量
在这里插入图片描述

4、链路管理

分为建立连接、维持连接和释放连接

5、点对点通信的PPP协议

链路分为广播链路和P2P链路,此处分析P2P链路中的PPP协议

PPP协议组成
成帧方法:网络层PDU封装到链路的方法,无歧义地定义帧边界,并支持帧的错误检测
一个控制链路层协议LCP:启动、检测、关闭线路、协商参数、支持同步和异步线路
一套网络层选项协商方法NCPs:协商网络通信的参数,用于配置网络层
不涉及MAC地址

帧格式
在这里插入图片描述
定界符:取值0x7E
地址:取值0xFF(目前没什么用)
控制:取值0x33(目前没什么用)
协议:用来指明帧的数据载荷应交给哪个协议处理
帧检验序列FCS:其值是使用CRC计算出的校验码,从地址字段到数据载荷字段
在这里插入图片描述

透明传输:(不做差错控制)
字节填充:面向字节的异步链路使用字节填充来实现透明传输
在这里插入图片描述
零比特传输:面向比特的同步链路使用零比特填充来实现透明传输
在这里插入图片描述

PPP协议的工作状态
详细内容参考《计算机网络(第七版)》P80
在这里插入图片描述

PPP协议的无差错控制
该层出现差错概率不大时,使用PPP协议较为合理
PPP协议主要承载的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的
帧检验序列FCS字段可保证无差错接受

6、使用广播信道的数据链路层——有线局域网MAC协议

上文讲述了P2P链路使用的PPP协议,那么本小节讲述采用广播链路有线局域网所使用的MAC协议

局域网工作的层次是跨越了物理层和数据链路层的!

共享信道的方式
静态划分信道,第二章所讲述的信道复用技术,本章不再讲述
动态媒体接入控制(多点接入),分为随机接入(使用了CSMA/CD协议,所有用户可随机地发送信息)、受控接入(使用了CSMA/CA协议,用户不可以随机地发送信息而必须接受统一控制)
但是值得注意的是,随机多址接入协议并不等同于CSMA/CD协议,其只是在共享信道中使用了该协议的方法,受控多址接入同理
属于随机接入的以太网在本章中将重点讲述,而动态媒体接入控制如今使用较少,不再讲述
在这里插入图片描述

网卡
实现CSMA/CD和CSMA/CA协议的设备
实现数据的串/并行转换和缓存
在计算机操作系统中安装驱动程序
在这里插入图片描述

MAC地址
又被称为硬件地址/物理地址,实际上就是接口地址(因为交换机和路由器往往具有很多个网络接口)
在P2P通信的数据链路层是不需要使用地址,但是广播通信的数据链路层需要使用地址来区分主机
网卡接收到MAC帧时,首先检查MAC帧中地址字段,如果是发往本站的则留下,否则丢弃。但是网卡如果是混杂模式,可以接收所有帧
其格式如下:
在这里插入图片描述
MAC地址发送数据如下:
在这里插入图片描述

MAC协议
用来解决多址接入问题,因此产生了多址接入协议
多址接入协议包含固定多址接入协议、随机多址接入协议、受控多址接入协议

受控多址接入协议(采用了CSMA/CA协议的方法)
基于预约的多址接入:节点在发送报文之前进行资源预约,预约成功则无冲突
基于轮询的多址接入:一个节点作为主站,其余节点在主站的控制下使用信道
基于令牌的多址接入:所有节点构成一个环形拓扑,令牌沿环进行流转,持有令牌的节点可以占用信道发送那个报文

随机多址接入协议(采用了CSMA/CD协议的方法)
三种CSMA协议
在这里插入图片描述
CSMA/CD协议的两个基本特点
无连接、无确认(错误帧直接扔);采用曼彻斯特编码方式
CSMA/CD的要点
1、载波监听:(先听后说)若检测到总线空闲96比特时间(帧最小间隔),则发送这个帧,若检测总线忙,则继续等待
2、碰撞监测:(边说边听)一旦发现总线上出现碰撞,立即停止发送,退避一段随机时间后再次从载波监听开始进行发送(“一旦冲突,立即停说,等待时机,重新再说”)(这也是为什么站点不能边发送边监听,因此是个半双工通信)
3、多址接入:多个节点连接在一根总线上
综合以上要点可知,总线的长度越长、站点越多发生碰撞的概率就越大
在这里插入图片描述
在这里插入图片描述
争用期
开始之所以讲述CSMA三种协议,是因为此处要说明CSMA/CD使用的是1-坚持CSMA协议
在这里插入图片描述
最小帧长=传播速率*争用期=64B,而出现碰撞一定是在前64B,因此如果前64B没有碰撞,那么之后的数据也不会出现碰撞
最大帧长=1500(数据载荷)+18B(首部和尾部)=1518B(MAC帧的最大帧长)
退避算法
采用截断二进制指数退避算法(以太网中的争用期为512比特时)
在这里插入图片描述
阻塞信号
占据48比特时
注意,在阻塞信号生成且传输完之后,节点若想要重新传输数据,则需要再等待一个帧最小间隔(96比特时)才能进行发送
CSMA/CD协议帧格式:
在这里插入图片描述

局域网拓扑结构:
使用集线器,看似为星状拓扑,逻辑上其实是总线网

7、使用广播信道的数据链路层——无线局域网MAC协议

WLAN:
无线局域网

WLAN协议:
本文将针对802.11系列标准进行讲述
在这里插入图片描述

802.11系列标准的相关概念
其规定无线局域网的最小构件是基本业务集(BSS),其包括一个基站(AP接入点)和若干个移动站(可以想象成手机)。在安装AP时,必须为AP分配服务集标识符(不超过32个字节)(SSID,其实就是这个无线局域网的名字,但是代表其IP地址的其实是BSSID)和一个通信信道。一个BSS覆盖的区域是基本服务区(BSA)
一个BSS可以是孤立的,也可以通过AP接入到分配系统DS中,然后再连接到另一个基本业务集,这样就构成了一个扩展的服务集(ESS)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

移动站与接入点AP的关联方式
主动扫描:移动站主动发出探测请求帧,然后等待接入点发回的探测相应帧
被动扫描:移动站等待接收AP周期性发出的信标帧
在这里插入图片描述

重建关联服务
可以把移动站的关联转移到另一个接入点,当使用分离服务时,就可以终止这种服务
在这里插入图片描述

802.11局域网的MAC层协议
使用了CSMA/CA协议(为什么不能使用CSMA/CD协议呢?因为CD要求进行信道监听,但是无线局域网无法进行信道监听,所以无线局域网是不需要进行碰撞检测的):
802.11面临的问题在这里插入图片描述
隐藏终端问题:C、B都项向A发送信息,但是两人各在分立的BSS中,因此都会检测到信道空闲,所以可能会发送碰撞信息
暴露终端问题:C、B分别想向A、D发送信息,但是在C向A发送信息的时候B会认为信道繁忙,所以B不会向D发送信息,但是B向D发送信息的信道实际上是空闲的,所以也会存在信道使用率低的问题
那么为了解决上述两个问题,采用了CSMA/CA协议
(注意:CA要求的是避免冲突,注意与CD区分,CD是检测冲突,而CA是为了降低发生冲突的可能性,但是如果发生了冲突也没有办法检测和纠正帧(或者抛弃帧)了)
——————————————————————————————————————————————————————————
CSMA/CA协议
(穿插)提前介绍一下帧间间隔的概念:
在这里插入图片描述
(正文开始)
CSMA/CA本身就是一种信道预约协议,因此在源站想要发送信息前要进行信道预约。
首先先等待一个DFS(分布协调功能帧间间隔,时间较长),是为了等待看看是否有高优先级的帧,然后向基站发送RTS(发送请求),等待SFS(短帧间间隔,时间较短)后基站发送CTS(作为回应)。
然后源站等待SFS后开始发送数据,数据发送完毕后,等待SFS后准备接收基站发送的ACK(表示基站收到了完整的帧,如果固定时间内源站没有收到ACK将会重传帧,当然,如果多次没有收到ACK就不会再传了,这个之后会讲到),最后发送帧结束
在这里插入图片描述
大家不难发现CSMA/CA里面存在如下几个问题:
①在源站发送数据帧时其他站如何做到不发送数据从而避免碰撞的?
这里就要提及CSMA/CA中采用的虚拟载波监听了。之前说到过无线局域网因为硬件限制无法进行载波监听,那么此处顾名思义就是假的载波监听。源站在发送数据帧之前会把它要占用信道的时间(包括ACK等确认帧所需的时间)通知给其他站,这样其他站就不需要时刻监听信道了,只需要计算好时间,等时间一到,等待一个DFS然后发送RTS即可,这样就大大避免了冲突(但是不会绝对意义上的避免冲突)
②如果同一时间多个站想要发送数据怎么办?
这里就要介绍CSMA/CA另一个算法了——退避机制。当多个站同时想要发送数据时,就进入退避窗口,这样就不需要时刻监听信道了。具体实现方式是:第i次退避就在 2 2 + i 2^{2+i} 22+i个时隙中随机地选择一个,当退避时间减退到0时就再次发送数据。那么这里的退避计时器所采用的算法就是BEB算法,如下第二个图
在这里插入图片描述
上图为退避机制
在这里插入图片描述
上图为BEB算法

分片传输
在这里插入图片描述

802.11帧结构
在这里插入图片描述
协议版本:占2位,当前帧使用的是MAC版本,只有一个版本,编号为0
类型字段:占2位,有三种,管理帧(00)、控制帧(01)、数据帧(11)
子类型字段:占4位,例如在控制帧中,1011为RTS帧,1100为CTS帧,1101为ACk帧
去往、来自DS:各占1位,例如在控制帧中,表明帧发送到或来自于分布系统
更多分片字段:占1位,表明上层数据是否被分段
重传字段:占1位,表明当前帧为重传帧
更多数据字段:占1位,表明后面还有更多分段数据
WEP字段:占1位,表明帧内容已用WEP算法加密
顺序字段:占1位,表明数据必须严格依次进行传输
持续期字段:占2字节,第15位为0时,用于设定NAV,数值是预计占用信道多少为微秒;第14、15位位01时,为无竞争周期;11时,为休眠模式
地址字段:结合去往/来自DS来看,例如去往/来自DS为01时,前三个地址为目的地址、AP地址、源地址,地址四不用;去往/来自为10时,前三个地址为AP地址、源地址、目的地址,地址四不用。(地址四仅用于自组网)

在这里插入图片描述
序号控制字段:占16位,用于重组帧或丢弃重复帧(可以配合重传字段使用),包括4位分段编号和12位顺序编号两部分
帧主体字段:占0~2312个字节
FCS字段:占用4字节,表明检查帧数据的完整性,通常采用循环冗余校验码

WPAN个人无线局域网
支持其的技术包括:蓝牙、ZigBee、超频波段、IrDA、HomeRF等
其中蓝牙、ZigBee使用最为广泛,故下文开始介绍蓝牙和ZigBee的相关内容
蓝牙
每一个皮可网可有1个主设备和最多7个从设备
低速WPAN——ZigBee
通讯距离短、传输数据速率低、成本低
采用自组网形式建立网络拓扑
低成本、低功耗、低宽带、计算和存储能力有限,一个网络中最多包含255个结点
ZigBee协调器:负责网络整体的建立和管理,相当于一个大的“网关”
ZigBee路由器:数据转发,也可以作为端设备使用
ZigBee端设备:网络的最后一个结点

物理层互联设备
集线器:将多条信道统一发送到另一端,其上所有线路都必须以同样的速度运行。但是其属于物理层设备,不会检查链路地址
中继器:只会将信号进行放大、清理杂质,不会对信号内容本身做任何处理
网桥:如今用来连接同一类型网络(路由器用来连接不同类型的网络),如果去往地址所在端口与源端口相同,则丢弃帧,不同则发送至目的地址所在端口。**那么由此出现一个问题,网桥是如何认识这些目的地址的呢?**如果目的地址在MAC地址表中(网桥只认识MAC地址,不认识IP地址),则按照哈希表目录进行转发;如果目的地址不在MAC地址表中,那么采用洪泛的方式,除了源端口以外,向其他所有端口进行发送,如果哪一端口接收了这个帧,那么网桥会将此MAC地址记录到哈希表中,下次再出现这个目的地址时,就不会再采用洪泛的方式,直接调用哈希表然后发送到目的地址即可了
在这里插入图片描述
交换机:现代网桥的另一种称呼,但是与原始的网桥不同的是,其为了能够在局域网中弥补原始网桥的缺点,添加了P2P连接,因此接口更多
集线器不隔离冲突域和广播域;交换机隔离冲突域,不隔离广播域;路由器隔离 冲突域和广播域

四、网络层

1、网络层服务

功能:
路由、寻址、网络互联、为上层提供服务

网络层提供两种服务(不是重点):虚电路(过去)、数据报

本章节一共会介绍四个协议,分别是IP协议、ARP协议(IP地址与MAC地址映射功能)、ICMP协议(发送控制信息功能,提供通信问题的反馈)、IGMP协议(组播成员管理功能)
后三者是IP协议的配套协议,ICMP、IGMP使用IP协议,IP使用ARP

2、IP协议

数据报格式:
在这里插入图片描述
版本:4/6-4位
首部长度:用来标识首部的长度,单位是4字节,占4位,因此数值最小是5(20字节),最大是15(60字节),因此数值一定是4的整数倍
总长度:标识首部和数据的总长度(分片时,指分片后的每个分片的首部长度和改分片的数据长度的总和),单位是字节,占16位。数据报理论上最大长度是65535字节,但是受到数据链路层协议中最大传输单元(MTU:1500字节)的限制,规定整个数据报最大长度不超过576字节(512数据+60首部+4余量),如果主机和路由器可以接收超过576字节的数据则也可以传输,但是不能的话就要涉及到分片(后面会讲到)
标识:标识同一用户的不同信息用的,注意的是,IP是无连接的,不存在按序接收,所以这个号只是区分不同数据报用的,如果分片的话,同一数据报的多片的序号是一样的
标志:最低位MF=0表示若干数据报片的最后一片,MF=1表示还有分片;次低位DF=0表示允许分片,DF=1表示不允许分片
片偏移:指分片后的数据相对于原数据报中数据字段的起点,单位是8字节
生存时间TTL:经过每一个路由器则-1,占8位,防止数据报一直传送找不到目的端而占用信道
协议:数据报携带的数据是哪种协议,其中TCP是6,UDP是17,IP是4
首部检验和:只校验首部,不管数据段,采用反码算数运算,不用CRC校验码(因为运算量太大)
源地址、目的地址:各占32位
选项:最多可以记录9个中间路由地址

3、ARP协议

功能:将网络层的IP地址解析成数据链路层的MAC地址,即向下服务

如果主机中ARP高速缓存(这玩意只会存储同一局域网中的设备MAC地址,因此出局域网一定没法用这个)中有目的地址的MAC映射,则直接取,没有则使用该协议,过程如下:
如果在同一局域网,则源主机会广播ARP请求分组,然后目的主机会发送单播的相应分组;
如果不在同一局域网,则源主机会将ARP请求分组发送给默认网关(路由器),然后路由器再下一跳传输,其中值得注意的是,下一跳传输中,源IP、目的IP不变,源MAC、目的MAC会变,变成中间路由器的(若使用的是PPP协议则不会表明目的MAC地址)
在这里插入图片描述
注:中间经过6个路由器则使用7次ARP协议

4、ICMP协议

功能:实现更加有效的报文转发
实现方式:将ICMP报文装入IP数据报的数据段中

报文格式:
在这里插入图片描述

报文类型:
在这里插入图片描述

差错报告类型(需要特定强调一下):
此时ICMP差错报告报文的内容是ICMP前八个字节(固定首部)+IP数据报首部+IP数据报首部后面紧跟的8个字节,再将此装入新的IP数据报的数据段
在这里插入图片描述
什么情况不会发送ICMP差错报告报文?
*ICMP差错报告的报文出现差错
*第一个分片的数据片的后续所有数据报片
*多播
*特殊地址0.0.0.0

5、IP地址(连带着6、看更好)

组成:网络ID+主机ID

八位一组,转换成十进制

网络ID:同一局域网中的主机的网络ID必须相同(路由器的每一个接口的网络ID均不相同)

IP地址分类:主要看前三类,D类是多播使用的
在这里插入图片描述

特殊IP地址: 在这里插入图片描述在这里插入图片描述

那么由此产生疑问,如何区分网络和主机的ID?——使用子网掩码
在这里插入图片描述

6、划分子网和构造超网

划分子网:默认在子网段中全0和全1是禁止的,因此n位能构造 2 n − 2 2^n-2 2n2个子网
在这里插入图片描述
实例:看了就明白了
在这里插入图片描述

构造超网(无分类编址CIDR):
形式:IP=网络前缀+主机号
例如:192.199.170.82/27,代表前27位是网络前缀,地址块最小地址是192.199.170.64(主机号全0),最大地址是192.199.170.95(主机号全1)
但是由此产生一个问题,如何在传输IP数据报时匹配CIDR的IP地址?——最长匹配原则,即匹配最长前缀

综上,IP地址常用的有以下几种分类方式,A类、B类、C类、划分子网、CIDR

7、路由

路由选择算法:
静态路由、动态路由
(没什么好讲的,自己理解就行)
其中动态路由的典型算法就是距离矢量算法(使用RIP协议)和链路状态路由算法(使用OSPF协议)

路由选择协议(分层次路由):
什么是分层次路由?
将因特网分成很多自治系统AS,不同的AS内部以及AS之间都采用不同的路由协议,以保护AS内的路由方式不被外界知道。一般情况下,AS内部的协议称为内部网关协议IGP,常使用RIPOSPF协议,AS之间的协议称为外部网关协议EGP,尝试用BGP协议,那么下文也将从这几个方面来介绍这些路由选择协议

路由选择协议——IGP-RIP协议:
该协议采用距离矢量算法,即采用跳数来计数。RIP规定一条路由中最多包含15个路由器,16个为不可达。存在路由环路的可能
RIP路由表建立:
1.路由器仅和相邻路由器交换信息。
2.交换的是自己的路由表,即自己知道的全部信息。
3.每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s(3分钟)没收到邻居路由器的通告,则判定邻居没了,距离设置为16,并更新自己路由表(失效计时器)。
4.如果失效计时器超过60s后,则会直接删除条目,然后立即进入抑制计时器,防止出现路由环路
注:路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。以下为例子:
在这里插入图片描述
上文提及有出现路由环路的可能,因此解决机制有:
在这里插入图片描述
数据报格式:
在这里插入图片描述
注意:RIP协议是应用层协议,因此在传输层中封装在UDP协议当中,然后在网络层中封装在IP协议中;一个RIP数据报可以包括25个路由,若超过则必须再传输一个数据报

路由选择协议——IGP-OSPF协议:
该协议采用Dijkstra算法(链路状态路由算法),路由器使用泛洪的方法向自治系统内的所有路由器发送信息(与本路由器相邻的所有路由器的链路状态),且只有当网络拓扑发生变化的时候,才会进行洪泛。每隔30min会更新一次数据库中的链路状态。与RIP协议的应用范围不同的是该协议适用于规模较大的网络拓扑中
交换路由信息过程:
在这里插入图片描述
在这里插入图片描述
OSPF中的“区域”的概念:
在这里插入图片描述
主干区域0.0.0.0(Area 0):是整个OSPF域的中心枢纽。一个OSPF域有且只能拥有一个 Area 0,所有的区域间路由必须通过Area0中转。主干区域的路由器都称为主干路由器(BR),也包括R3和R7,但是由于R3和R7都连接在区域边界上,所以也称为区域边界路由器。
区域边界路由器(Area Border Routers,ABR):图中R3,R4和R7都称为区域边界路由器,位于一个或多个OSPF区域边界上、将这些区域连接到主干网络的路由器。ABR被认为同时是OSPF主干和相连区域的成员,可以同时属于两个以上的区域,但其中一个必须是骨干区域(area 0)。因此,它们同时维护着描述主干拓扑和其他区域拓扑的路由选择表。
自治系统边界路由器(AS Boundary Routers,ASBR):与其他AS交换路由信息的路由器称为ASBR,使用了多种路由协议。它位于OSPF自主系统和非OSPF网络之间。ASBR可以运行OSPF和另一路由选择协议(如RIP),把OSPF上的路由发布到其他路由协议上。只要一台OSPF路由器引入了外部路由的信息,它就成为了ASBR。ASBR必须处于非存根OSPF区域中。
综上所述,ABSR一般是位于非OSPF区域和OSPF区域间互联的路由器,而ABR是OSPF中多个区域连接区域0的路由器。
数据报格式:
在这里插入图片描述

路由选择协议——EGP-BGP协议:
因为外部网关路由需要考虑较多的因素,因此BGP采用了路径向量路由协议。其封装在TCP协议中
在这里插入图片描述
BGP报文类型:
在这里插入图片描述
BGP协议数据报格式:
在这里插入图片描述

三种协议的比较:
在这里插入图片描述

8、多播及多播路由协议

IP组播地址:
IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。
组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。注意:
1.组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
2.对组播数据报不产生ICMP差错报文。
3.并非所有D类地址都可以作为组播地址。
硬件组播:
同硬件单播相同,也涉及到IP地址向MAC地址映射的问题,组播MAC地址以01-00-5E开头,剩下6个十六进制位由IP组播组地址后23位转换得到
在这里插入图片描述
此时会暴露出一个问题,如果IP组播组地址前五位不同,而后二十三位相同怎么区分不同的MAC地址?
这5位是不固定的,有 2 5 = 32 2^5=32 25=32种组合方式,假设两个IP地址中的这5位,一个是11111,一个是00000,并且后面的23位IP地址都是相同的。在组播中,IP地址到MAC地址的映射只在最后的23位进行映射,所以两个不同的组播IP地址映射为了同样的MAC地址,这是不允许的。所以为了解决这一问题,收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
例子:
在这里插入图片描述
因特网组播:
使用IGMP协议,IGMP协议是在一个路由器中使用的协议,用来在主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组,但其并不知道参与组播的成员个数以及各个成员在哪个局域网中
IGMP的两个阶段:
在这里插入图片描述
在这里插入图片描述
组播路由选择协议:
建立组播转发树(在支持组播的网络中)或采用隧道技术(在不支持组播的网络中)
组播转发树生成方法——反向路径广播(RBP):
在这里插入图片描述
组播路由选择协议中常使用的算法:
链路状态路由算法、距离矢量算法、协议无关的组播
其中,前两者在前文中已经提到过,这里简单说明一下协议无关的组播。其指给组播传播路由信息的可以是任何一种前文提到的单播协议,这说明单播协议和组播协议之间没有必要的联系,只要能够使组播的信息传递出去即可

9、VPN、NAT、MPLS

相关详细内容请见链接🔗,不再过多赘述:
计算机网络4——网络层7 VPN 和NAT,MPLS

10、IPv6

为了解决IP地址不够用的问题而诞生

特点:
•IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间
•IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间
•IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率
•IPv6支持即插即用(即自动配置),不需要DHCP协议(第六章会讲到)
•IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
•IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。若超过了数据链路层的MTU(最大传送单元),那么路由器只能将这一IPv6报文丢弃,再返回差错报告报文
•针对IPv6,ICMPv6会附加一系列报文类型,例如“分组过大”。
•IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用
•IPv6取消了协议字段,改成下一个首部字段。IPv4的协议部分的作用为标识分组所用的数据使用的是什么哪个协议,也就是分组的数据部分应该交给传输层的哪一个协议
•IPv6取消了总长度字段,改用有效载荷长度字段
•IPv6取消了服务类型字段

数据报格式:
基本首部40字节,有效载荷长度不固定(包含扩展首部和数据)
在这里插入图片描述
版本:占4位,指明IPv6
通信量类:占4位,对数据报进行类别和优先级区分(然而只有少数的路由器支持)
流标号:占20位,“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。
有效载荷长度:占6位,扩展首部和数据部分的大小,最大1024字节
下一个首部:占8位,标识当前数据报中下一个扩展首部。例如,对于某个数据报,这一数据报除了基本首部之外,还有3个扩展首部,对于这3个扩展首部,每个扩展首部内都有一个字段"下一个首部",用来标识下一个扩展首部。基本首部中的"下一个首部"标识的是第1个扩展首部,第一个扩展首部中的"下一个首部"标识的是第2个扩展首部,以此类推。最后一个扩展首部的"下一个首部"标识的就是IPv6报文的数据部分。
跳数限制:占8位,相当于IPv4中的TTL
源地址、目的地址:IPv6中地址长度为128位,IPv4中地址长度为32位
扩展首部:在这里插入图片描述

地址表示形式:
采用冒分16进制表示,一般为每4位2进制用1个16进制表示,每4个十六进制位一组,总共8组在这里插入图片描述

压缩形式:
4个0为一组,则写成1个0;每一组前面的0可以删去,后面的0不可以删去;一连串的0可以被一对冒号取代(双冒号仅会出现一次)
在这里插入图片描述在这里插入图片描述

地址类型:在这里插入图片描述
未指明地址:为还没有配置到一个标准的IP地址的主机当作源地址使用
回环地址: ::1,作用相当于IPv4中的127.0.0.X(都相当于127.0.0.1)

IPv6向IPv4过度策略:
在这里插入图片描述

五、传输层

1、概述

功能:实现主机内部进程之间的通信,是端对端通信
在这里插入图片描述
特点:
传输协议一般在主机的协议栈中,路由器只实现其下面的三层功能;传输层独立于网络设备
(其实总结来说,IP协议是物流公司的远程货物物流,相当于物流卡车,运输层协议是物流集散中心,相当于快递员将快递分发至你家里)

通过以上不难看出,运输层涉及到了复用和分用,复用是发送方的不同进程可以用同一个运输协议传送(协议数据报首部当然是不同的),分用是接收方能够子啊运输层将报文首部去掉后将这些数据正确地分发给各个对应的进程

根据应用程序的不同需求,传输层共有两种协议,分别是面向连接的TCP协议和无连接的UDP协议,那么下文也会从这两个大的方面进行介绍
在这里插入图片描述在这里插入图片描述

那么当一台主机运行多个进程时,如何区分这些进程?——端口
其可以类比IP地址和MAC地址,例如,IP地址是主机的逻辑标识,MAC地址是主机的物理标识,端口则是进程的逻辑标识
端口分为熟知端口号(0-1023)、登记端口(1024-49151)、客户端口号或短暂端口号(49152-65535)
以下为常用的熟知端口号:
在这里插入图片描述

套接字:
也就是传输层的传输地址,由IP地址+端口号组成

2、 UDP协议

功能:在IP协议上加了复用和分用的功能(进程通讯的基本要求)、差错检测的功能(因为IP协议只检查报文首部,不检查数据段内容)

特点:
在这里插入图片描述

协议首部格式:
在这里插入图片描述
首部中蓝色的长度是指UDP数据报的长度,包括首部和数据
UDP校验和:把伪首部、首部和数据的部分一起检验,检验方式为按反码运算求和,将得出的结果取反码,例子如下:
在这里插入图片描述

3、TCP协议

面向连接的、可靠的字节流传输协议
每一个TCP连接只能是点对点的,只能有两个端点,传输的数据单元是TCP报文段
提供可靠的服务、全双工通信(之前有提到过)、将数据看成是一连串无结构的字节流

TCP报文格式:
在这里插入图片描述
源端口、目的端口:各占2字节,可以实现复用和分用
序列号seq:占4字节,使用 m o d   2 23 mod\ 2^{23} mod 223运算,因为TCP协议传输的是数据流且是面向连接的,所以要给每个报文段都表上序号,代表表文段所发送的数据段的第一个字节的序号(再加上报文长度可以推断下一个报文段的序号)
确认号ack:占4字节,是期望收到对方下一个报文段的第一个数据字节的序号(一般出现在确认报文段中),注意,如果确认好是N,则表明到序号N-1为止的所有数据都已经正确收到,其后未知
数据偏移:占4位,指出TCP报文段的数据起始处距离报文段起始处的距离,实际上就是首部的长度(因为首部长度不确定,所以必须指出),单位是4字节,最大可以表示60字节,因此选项长度不可以超过40字节
保留:占6位,目前无用
紧急URG:URG=1表明紧急指针有效,代表高优先级
确认ACK:ACK=1表明确认号字段有效,建立连接后,必须置为1
推送PSH:希望接收方快速交付进程内容则PSH=1
复位RST:RST=1代表连接出现差错必须断开连接,或用来拒绝一个非法的报文段或拒绝打开一个连接
同步SYN:SYN=1代表该报文是一个连接请求或连接接受报文,如SYN=1,ACK=0代表连接请求报文;SYN=1,ACK=1代表接受方回复接受连接报文
终止FIN:FIN-1代表要求释放连接
窗口:占2字节,其值是接收方设置发送窗口的依据。窗口是发送方的接收窗口,告诉接收方回复的时候最多可以发送多少数据(流量控制用)
检验和:占2字节,与UDP是相同的,不再赘述
紧急指针:占2字节,搭配URG使用,指明报文段中紧急数据的字节数(单位为字节),也就是紧急数据末尾在报文段中的位置
选项:最长40字节
注意,MSS规定,数据段最大长度是536字节,没有加上20-60字节的首部

TCP的连接管理:
共分为三个阶段,建立连接、数据传输、释放连接,下面将介绍建立、释放连接的过程
建立连接——三次握手:首先说明,此处传输地址使用的是前文提到的套接字
连接请求:SYN=1、seq=x
同意连接:SYN=1、ACK=1,ack=x+1,seq=y
确认连接:ACK=1、ack=y+1、seq=x+1
在这里插入图片描述
释放连接——四次挥手
请求释放连接:FIN=1、seq=u
同意释放连接:ACK=1、seq=v、ack=u+1
请求释放连接:FIN=1、ACK=1、seq=w、ack=u+1
确认释放连接:FIN=1、seq=u+1、ack=w+1
在这里插入图片描述

TCP的可靠传输机制:
超时重传机制——停等协议:应用背景是分组错误、分组丢失、确认丢失、确认迟到
说白了就是设置一个重传计时器,归零前收到可以,没有收到就重传
在这里插入图片描述
超时重传机制——流水线协议
在停等协议的基础上,一次性发送多个数据
在这里插入图片描述
流量控制机制——滑动窗口协议
该协议是TCP协议中的精髓和重点,因此本文不写到这个块中,详细内容见下一个块

TCP中的滑动窗口协议:
滑动窗口协议的基础内容
在这里插入图片描述
在发送窗口中,发送方默认不需要接收确认即可全部发送,每当接收到一个确认时,窗口向前挪动一格,对应于此,接收方也是采用累积确认的方式发送确认。对于丢失重传问题,这里并没有明确的丢失重传报文,因为接收方不知道确认是否丢失,也就无法知道确认之后的数据的下落,所以在一定时间内没有收到确认时,发送方就必须将上次确认的数据之后的所有数据进行重传(学名回退N帧),这也是滑动窗口的缺点之一。那么接下来详细讲述TCP协议中的滑动窗口
TCP协议中的滑动窗口
TCP中的滑动窗口是字节流(单位是字节),并且标号的,其余的与滑动窗口是基本保持一致的,字节流标号的个数为 2 32 2^{32} 232滑动窗口标号个数为 2 16 2^{16} 216
发送窗口要根据接收窗口1=的大小以及拥塞控制(下文会讲到)调整
当接收窗口减小时,发送窗口的尾部可以向前移动,头部不动,但是强烈建议不能头部向后收缩!因为可能收缩的内容已经发送出去了,会导致一些错误
在这里插入图片描述

流量控制:
在滑动窗口的基础上实现,接收方会在确认报文中提到rwnd代表接收方的接收窗口还可以最多接收多少数据流,来实现流量控制在这里插入图片描述

TCP协议中的计时器:
重传计时器:在这里插入图片描述在这里插入图片描述
持续定时器:一方收到零窗口通知时会开启,以便每隔固定时间对对方窗口进行探测,防止出现死环
保活定时器:服务器间隔75s连续发送10个探测报文,若持续无响应,则断开与客户机的连接
等待控制定时器:该定时器在断开连接时处于休眠状态使用,定义为两倍最大生存时间,以保证该连接上的所有分组在网络中消失

拥塞控制:
包含开环控制和闭环控制
其与流量控制的区别:虽然都是对传输速度进行控制,但是拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素,流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制,流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
TCP拥塞控制的方法:基于窗口的控制方法,是闭环控制,接收方维护自己的接收窗口,发送方维护拥塞窗口cwnd,发送窗口取前两者的最小值。其中使用了慢开始、拥塞避免、快重传、块恢复的算法,下面将会曾这四个方面来具体介绍TCP拥塞控制方法
慢开始和拥塞避免
慢开始是主机在起始时将拥塞窗口cwnd设为1(即最大报文段MSS的数值),之后每收到一个确认就cwnd加1(增加一个MSS的数值),以此达到指数规律增长,直到cwnd增加到规定的慢开始门限ssthresh,然后使用拥塞避免算法
拥塞避免算法是每经过一个往返时延RTT就给cwnd加1,以此达到线性规律增长,直到网络堵塞时,把ssthresh设置为出现拥塞时的发送方窗口值的一半(但不能小于2),并把拥塞窗口cwnd置为1(即最大报文段MSS的数值),重新进行慢开始
在这里插入图片描述
快重传和快恢复
当发送方连续收到三个重复确认报文ACK时,直接重传接收方没有收到的报文(快重传),不必等到计时器结束;并且将ssthresh设置为当前拥塞窗口的一半拥塞窗口设置为慢开始门限+3,然后接着执行拥塞避免算法
在这里插入图片描述
路由器的随机早期检测:
应用于路由器队列管理,方案如下:
在这里插入图片描述

六、应用层

1、基本概念

为应用程序的通信提供服务,其中包含应用进程交换的报文类型、不同类型报文的语法、字段语义、进程发送报文的规则等

在上述协议的基础上提供以下几种服务:文件传输FTP、访问和管理、电子邮件、虚拟终端TELNET、NVT、域名查询DNS、动态主机配置服务DHCP、万维网HTTP等,下文将从这几个方面进行讲述

2、DHCP协议

功能:
在较大的网络拓扑中手动为网络中各主机配置IP地址、子网掩码、默认网关、DNS服务器等相关网络配置信息较为麻烦,而使用DHCP协议后,当主机开机后会向DHCP服务器请求自己的网络配置信息,从而摆脱手动配置的麻烦(说白了就是个自动为主机配置网络配置信息的协议)

DHCP使用客户/服务器方式,在DHCP服务器上运行DHCP服务进程(使用传输层UDP协议,端口为67),在用户主机上运行DHCP客户进程(使用传输层UDP协议,端口为68),在传输层封装成UDP协议,在网络层封装成IP协议,再在数据链路层封装成帧进行发送

DHCP交互过程:
IP租用请求discover
①启动主机DHCP进程,广播发送DHCP发现报文。此时IP数据报(内部封装有事物ID、DHCP客户MAC地址)源IP地址为0.0.0.0,目的IP地址为255.255.255.255
②对于DHCP客户不会解析这个数据报,直接丢弃,对于DHCP服务器会对此做出响应
在这里插入图片描述
IP租用提供offer
③DHCP服务器收到DHCP发现报文后,根据内部封装的DHCP客户端的MAC地址查找是否有针对此MAC地址的配置信息。如果有,则使用这些信息发送DHCP提供报文,如果没有,则采用默认配置信息;在挑选IP地址时同时会采用ARP来确保此地址当前没有被其他主机使用
④发送DHCP提供报文,此时源IP地址为DHCP服务器IP地址,目的地址为广播地址,配置信息包含IP地址、子网掩码、地址租期、默认网关、DNS服务器(下文会讲到)等在这里插入图片描述
IP租用选择request
⑤DHCP客户端会根据其中封装的事物ID判断是否是自己的DHCP提供报文,是则接收,不是则丢弃(如果多个DHCP服务器同时发送DHCP提供报文,主机会选择最先接收到的)
⑥DHCP客户端接收报文后会向DHCP服务器发送请求报文,源IP地址依然为0.0.0.0,目的IP地址依然为广播地址(这样就避免了网络中存在多个DHCP服务器时需要每个都单独发一次单播),其中封装有事物ID、DHCP客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器端的IP地址等信息在这里插入图片描述
IP租用确认ack
⑦此时DHCP服务器向DHCP客户发送IP确认报文,源IP地址为DHCP服务器地址,目的地址为广播地址
⑧DHCP客户收到确认报文后即可正常使用租用到的IP地址了在这里插入图片描述
IP租用更新request
①当租用期过了一半以后,DHCP客户向DHCP服务器单播发送续租请求,源IP地址为现用IP地址,目的地址为DHCP服务器特定地址
1>若DHCP服务器同意,则继续租用
2>若DHCP服务器不同意,则立刻停止租用
在这里插入图片描述在这里插入图片描述
②若租用期使用一半以后DHCP服务器无响应,则在租用期过了四分之三之后再次向DHCP服务器单播发送续租请求,若还无响应,则发送广播,若还无响应则到期后立刻停止使用
(当然,还可以采取手动更新的方式)
在这里插入图片描述
如果最后实在没有DHCP服务器搭理DHCP客户,则会进行以下操作
在这里插入图片描述
注意:DHCP客户随时可以停止续租,发送释放报文即可

DHCP中继代理:
如果一个网路中没有DHCP服务器,此时DHCP客户就无法自动获取到IP地址,因为如上文所讲,获取时采取的是广播的方式,而路由器不能转发广播
此时就需给路由器配置DHCP服务器的IP地址并使之称为DHCP中继代理,这样路由器收到DHCP请求广播时就可以直接将广播信息单播给DHCP服务器,从而实现中继代理的功能在这里插入图片描述

DHCP报文格式:
在这里插入图片描述

3、DNS协议

域名
当访问网站时,记忆IP地址会给人造成麻烦,不便于记忆,所以我们在网址中输入的URL大多都是域名,DNS服务器再将域名映射成IP地址给Web服务器从而实现查看网页的功能
基础知识
在这里插入图片描述
域名格式及空间结构
·域名中的字符只能是A-z、0-9、“-”
·每个点分割开的字符称为一个标号,每个标号不能超过63个字符,但是为了记忆方便最好不要超过12个字符
·域名标号的级别高低是自左向右由低到高,最高级的标号被称为顶级域名,其次为二级域名,例如www.baidu.com,www为三级域名,baidu为二级域名,com为顶级域名
·除了顶级域名,二级域名,三级域名等之外,还有一个根域名,根域名的表示其实是com后的一个“.”,即www.baidu.com.
·顶级域名包括:国家顶级域名、通用顶级域名(cn、us、uk等)、基础结构域名(com、net、org等),反向域名(从IP地址解析到域名)
二级域名包括:类别域名(com、org、edu、gov等)、行政区域名、自己注册的域名在这里插入图片描述

域名服务器:
顾名思义,存储域名和IP映射关系的服务器,因为域名繁多,且域名是分级别组成,所以域名服务器也是分多种级别去存储对应级别的域名映射关系的
在这里插入图片描述
根域名服务器:迭代查询的起点,13个
顶级域名服务器:管理多有顶级域名服务器所注册的二级域名
权限域名服务器:DNS以“区”为单位进行管理,每个区设置权限域名服务器,下面是对区的解释:
在这里插入图片描述
以下域名服务器类型均不属于域名服务器的层次结构
本地域名服务器:直接为客户机提供域名解析的域名服务器
主域名服务器:维护一个区域的所有域名信息,数据可以修改
辅助域名服务器:是主域名服务器的副本,诗句不可以修改
缓存域名服务器:直接面向客户机的服务器,将查询结果缓存到该服务器当中,方面下次直接再缓存中进行使用
转发域名服务器:转发域名服务器在收到查询请求后,会先从缓存中查找,没有的话,再将请求转发到各指定的域名服务器

域名解析过程:看图理解,不再过多赘述
迭代解析
在这里插入图片描述
递归解析
在这里插入图片描述

DNS记录:
在这里插入图片描述

DNS报文格式:
在这里插入图片描述

4、万维网

其中包含了三项关键技术,统一资源标识符(URL)、超文本标记语言(HTML)、超文本传输协议(HTTP/HTTPS),那么下文也将从以上三个方面进行介绍

HTML
就是网页页面的一种语言
语法不再赘述,请自行上网查阅
在这里插入图片描述

URL
格式:<协议>://<主机(域名或IP地址)>:<端口><路径>
URL不区分大小写

HTTP协议
定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器,即万维网的工作流程:在这里插入图片描述
基于TCP协议,默认使用80端口,服务器将数据编码成ASCII编码发送给客户机
虽然基于TCP协议,但是HTTP协议本身是无连接的,所以其在发送HTTP报文时建立的是TCP连接(三次握手)
HTTP连接方式
持续连接(分为非流水线、流水线,非流水线类比于传输层的停等协议,流水线类比于传输层的流水线协议)、非持续链接(发送一次数据就立即断开)(后面对HTTP1.0和1.1的区别说明中会有提及)
在这里插入图片描述在这里插入图片描述
HTTP报文结构
在这里插入图片描述
1>开始行:
报文的开始行可以用来区分是请求报文还是响应报文:
请求报文的开始行(请求行):
•请求方法:表示对资源期望进行何种操作在这里插入图片描述
•请求目标:通常是一个 URL ,表明了要操作的资源。
在这里插入图片描述
•版本号:表示报文使用的 HTTP 协议版本,常用的有1.0和1.1
•CRLF 换行:标识请求行的结束,首部行的开始。
2>响应报文的开始行(状态行):
•协议版本:指明了报文使用的 HTTP 协议版本
•状态码:状态码是一个三位数字,用来表示处理的结果,下面列出了状态码的类别(总共5种类别,33种状态码):
常见的状态码:在这里插入图片描述
202 Accepted(接受)
301 Moved Permanently(请求的网页转移到了新的地址):如果出现了这样的状态码,那么在首部行的“首部字段”中会标识relocation表示新的地址,并且在"值"中存放新的URL
404 Not Found(表示找不到网页:可能是请求中有错误的语法)
•短语(状态描述):这个是作为状态码的补充,是一段更详细的文字,帮助人们理解原因。
•CRLF 换行:标识请求行的结束,首部行的开始。
3>首部行:
说明浏览器、服务器和报文主体的一些信息。整个首部行结束后也会用CRLF换行来标识首部行的结束以及实体主体的开始。
4>实体主体:
实体主体在请求报文中通常是不用的,有些响应报文也是不用的。
HTTP1.0和1.1的区别
在这里插入图片描述
HTTP代理
浏览器和服务器之间插入了代理服务器及其高速缓存
在这里插入图片描述
HTTP’s Cookie
首先声明引入cookie的原因,因为HTTP协议中每个请求之间是独立的,彼此之间不存在联系,这就导致后一个请求在需要前一个请求的情况下,需要浏览器重新发一遍前一个请求,因此一些万维网需要识别用户,因此产生了cookie:在这里插入图片描述

5、电子邮件

电子邮件的信息:信封(主要内容为邮箱号)、内容(包含首部和主体)在这里插入图片描述
如上图可以看到,主体是用ASCII字符形成的内容,所以引入了MIME协议,规定主体是非ASCII码,但是传输的过程中还是要转换成ASCII编码,但是转换的过程对于用户来说是透明的。这使得电子邮件所能够传输的信息种类更加丰富在这里插入图片描述在这里插入图片描述

MUA(用户代理):
其为用户提供了一个操作更加便捷的可视化环境(可以理解为QQ邮箱中收发邮件的界面),具有撰写、显示、处理和通信的能力

邮件服务器:
分为接收和发送,其中接收服务器使用SMTP协议,发送服务器使用POP3/IMAP协议
邮件服务器本身使用C/S模式
在这里插入图片描述

SMTP协议:
使用TCP连接,端口号为25,采用C/S方式
整个阶段分为建立连接、邮件传送、连接释放
建立连接
发送方将邮件发送给发送方邮件服务器,发送方邮件服务器会定期扫描内存,若有邮件则与接收方邮件服务器建立TCP连接,建立连接后接收方邮件服务器会发送220信息,然后发送方邮件服务器会发送HELLO,最后接收方邮件服务器回复250OK,实现建立最终连接
邮件传送
在这里插入图片描述
连接释放
SMTP客户发送QUIT信号,服务器回复221即可断开连接

POP3协议/IMAP协议:
POP3协议
使用TCP连接,端口号为110,使用C/S方式
其使用离线访问模式,这使得其仅能提供下载并保存至服务器中或下载并删除的功能
IMAP协议
因为POP3协议功能受限,所以引出这个协议,其同样是在代理和邮件服务器之间运作的协议
IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部(也就是可以看到是谁发来的邮件,邮件主题等等),若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(例如,可以先看正文,有WiFi的时候再下载附件)。

6、Web邮件

其免除了用户对邮件服务软件的依赖,实现能够在网上进行邮件功能
在这里插入图片描述

7、FTP协议

文件传输协议,使用TCP建立连接

FTP客户端/服务器
FTP协议使用C/S方式,用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。

FTP连接模式
其分为主动方式(控制连接使用TCP21端口,数据连接使用TCP20端口)和被动方式(使用>1024端口,由CS自行协商)
主动方式
服务器主动高速客户端自己传输数据所用的端口号是多少,以此建立连接
被动方式
服务器被动接受客户端的连接

TFTP协议:
简单文件传输协议
是一种用于在客户机和服务器之间进行不复杂、开销不大的文件传输的协议。TFTP基于UDP协议进行文件传输,使用端口号69。TFTP没有复杂的交互存取接口和认证控制,适用于不需要复杂交互的环境。
每次传输数据(PDU)大小上限是512字节,最后一块可以不足512字节
以停等协议的方式工作

8、TELNET协议

在这里插入图片描述

9、网络虚拟终端NVT

在这里插入图片描述


完结!撒花~

感悟:
前两章半是跟着课上笔记一起总结的,所以显得整章逻辑性并不强,甚至有些杂乱。后面的内容则是期末周攒一起写的,全章分块梳理更加明确,确实也对我的复习起到很大的帮助
希望这将近四万字的博客能够对每一位学习计网的友友起到帮助,如果内容有误还请谅解,在评论区中指出我会进行修改哒~(毕竟四天赶出这篇博客确实没法保证没有错误出现)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值