计算机网络学习笔记

计算机网络


文章目录


前言

好好学习 天天向上,冲冲冲!!

以下是本篇文章正文内容

一、概述

本章重点
(1)互联网边缘部分的核心部分作用,其中包含分组交换
(2)计算机网络的性能指标
(3)计算机网络的分层次体系结构,包含协议和服务概念

1.计算机网络的作用

*互联网:全球范围的网络
*互连网:仅局限于局部范围互联
*互连网两大特点:连通性和共享

2.互连网的概述

1.2.1 网络的网络
*计算机网络有若干个结点与链路组成;结点可以是(计算机,集线器,交换机,路由器等)

*互连网即多个网络通过路由器相连接,与网络相连的计算机称为主机

*基本概念:
网络把许多计算机连接在一起,互连网将许多网络通过路由器连接在一起。

1.2.2 互联网基础结构发展的三个阶段*
*
第一阶段:单个网络

ARPANET,第一个分组交换网

#注:
internet:通用名词,泛指多个计算机网络互连而成的计算机网络,通讯协议可以任意选择

Internet:专用名词,指全球最大的、开发的、有众多网络相互连接而成的特点互连网,它采用TCP/IP协议族作为通信规则,且其前身是美国的APRANET

第二阶段:建成三级结构互联网

1985年美国科学基金会NSFNET是一个三级计算机网络(分为主干网,地区网,校园网)

第三阶段:形成多层次ISP结构的互联网

*ISP:互联网服务提供者 例如:中国电信,中国联通和中国移动

*互联网由单个组织拥有,变为全世界无数个大大小小的ISP所共有

*ISP三层次:

主干ISP:由专门的公司创建维持,服务名面积最大,一般覆盖国家范围,拥有高速主干网
地区ISP:通过一个或多个主干ISP连接起来
本地ISP:直接给用户提供服务,可以连接到地区ISP,主干ISP。
在这里插入图片描述

由于流量数据的急剧增长,人们为了实现更快的转发分组,互联网交换点IXP诞生了

*IXP:允许两个网络直接相连并且交换分组,而不需要通过第三个网络转发分组;例如:上图两个ISP地区交换数据,无需经过上层的主干ISP。

*IXP构成十分复杂,典型的ISP由一个或者多个网络交换机组成

*万维网 WWW(由欧洲原子核研究组织CERN开发)

1.2.3 互联网标准化的工作
*互联网协会[W-ISOC]

*互联网体系结构委员会IAB ISOC下的技术组织
IAB两个工程部IETF,IRTF

*互联网正是标准要经过以下三个步骤
(1)互联网草案
(2)建议标准
(3)互联网标准

1.3 互联网组成
互联网组成分为以下两大块
(1)边缘部分 :由所有连接在互联网上的主机组成,用户可以直接使用 ,用来通信,资源共享
(2)核心部分,有大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)

1.3.1 互联网边缘部分

*处于互联网边缘部分的是连接在互联网上的所有主机,这些主机称为端系统

*主机A的某个进程和主机B的某一个进程进行通信,简称为 “计算机之间通信”

*端系统之间的通信方式分为两类:
{
客户-服务器方式C/S方式:
客户是服务请求方,服务器是服务提供方
在这里插入图片描述
服务请求方和服务提供方都需要使用网络核心部分提供服务
客户程序:
(1)被用户调用后运行,主动的向服务器发起通信。因此客户程序必须知道服务器程序地址。
(2)不需要特殊的硬件和很复杂的操作系统
服务器程序
(1)专门提供服务的程序,可以同时处理多个客户的请求
(2)系统启动后即自动调用不断运行,被动接收客户程序的通信请求,无需知道客户程序地址

对等方式P2P方式:
两台主机进行平等的,对等连接通信,从本质上来看仍然是使用客户-服务器的方式,只是对等连接的每一台主机既是客户又是服务器。在这里插入图片描述
}
1.3.2 互联网核心部分

*网络核心是互联网中最复杂的部分,网络核心部分要向网络边缘主机提供连通性。

*路由器:一种专用计算机,实现分组交换,其任务是转发收到的分组,网络核心的重要部分。


分组交换与电路交换(重点)

  • 电路交换的特点
  1. 主机端与服务端建立一条专用物理通路,且资源不会在双方通信是占用。
  2. 必须经过“建立连接”->“通话”->"释放连接"三个步骤
    在这里插入图片描述
  3. 在通话时间内,两个用户始终专用端到端的通信资源
  4. 在面对计算机突发式的数据中,传输效率很低
  • 分组交换的特点
  1. 分组交换利用存储转发技术

在这里插入图片描述

  1. 主机是为用户进行信息处理的,路由器是负责分组交换的即转发分组。路由器先接受到一个分组,储存一下,检查首部,查找转发表,按照目的地址,找到合适的接口转发出去。
  2. 在各个路由器中运行的路由选择协议找到转发分组最合适的路径

(过程图)
在这里插入图片描述

  1. . 会因为存储转发时需要排队,及造成一定时延
  • 分组交换的优点(如下图)

在这里插入图片描述

1.4 计算机在我国的发展
*1980 开始计算机实验

*1989 我国第一个公用分组交换网CNPAC建成

*1994.4.20 我国被国际正式承认接入互联网

*1994.5 中国科学院 设立第一个万维网服务器

*1994.9 我国公用计算机互联网CHINANET(中国电信互联网)启动

1.5 计算机的类别

1.5.2 几种不同的计算机网络

  • 网络作用范围进行分类{
    (1)广域网WAN:又称远程网,作用范围几十公里到几千公里.
    (2)城域网MAN:作用范围5~50KM,目前许多城域网采用以太网技术
    (3)个人区域网:又称无限个人区域网,作用范围10m左右
    }

  • 按照网络使用者分类{
    (1)公用网
    (2)专用网(军队,银行等)
    }

  • 用来把用户接入到互联网的网络{
    (1)接入网AN:又称本地接入网
    }

1.6 计算机网络的性能

1.6.1 计算机网络的性能指标
带宽
(1)在计算机网络中:在传输管道中的传输能力,通常以每秒传送周期或者赫兹(Hz)来表示
(2)在信号中:指各种不同频率的成分所占据的频率范围

速率:即数据的传送速率,又称数据率或比特率,单位bit/s
k=10^3;
M=10^6;
G=10^9;
T=10^12;
P=10^15;
与计算机中的数据量是不同的!!
网络速率指的是额定速率或是标定速率

吞吐量:在单位时间内通过某个网络的实际数据量

时延(重点):
时延分为四个部分组成的{

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

(1)发送时延:是主机或路由器发生数据帧(从第一个到最后一个)所需时间

发生时延=数据帧长度/发送速率

(2)传播时延:是电磁波在信息通道上传播一定距离所需时间

传播时延=信道长度/电磁波在信道上的速率

(3)处理时延 :路由器或主机花一定时间对分组进行处理

(4)排队时延:分组进入路由器需要排队

在这里插入图片描述
}

**时延带宽积:**代表链路可以容纳多少比特

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

往返时间RTT:信息是双向交互的,RTT即双向交互的时间

利用率
信道利用率:某信道在百分之几的时间是被利用的。
网络利用率:即全网的信道利用率的加权平均和。
在这里插入图片描述

二、物理层

1.引入库

2.读入数据

三、数据链路层

本章重点:
1,数据链路层点对点信道和广播信道的特点,以及这两种信道所使用的协议(ppp以及CSMA/CD)的特点.
2,链路层三个基本问题:封装成帧,透明传输,差错检测。
3,以太网MAC层的硬件地址
4,适配器,转发器,集线器,网桥,以太网交换机的作用以及使用场合。
H1->H2的数据流动

1.使用点对点信道的数据链路层

1.1 数据链路和帧
*链路于数据链路的区别:
(1)链路:一个结点到相邻结点的一段物理线段(有线或者无线),中间没有任何其他的交换结点。
(2)数据链路:通信协议的硬件和软件加到链路上,构成数据链路。现在最常用的是网络适配器来完成这些协议

*链路分为逻辑链路物理链路:物理链路即为链路。逻辑链路即为数据链路,是物理链路加上通信协议(通信规程)。

*点对点信道协议数据单元:帧

*网络协议层的数据单位:IP数据报(数据报,分组,包)

*网络层与数据链路层交换的过程:
数据链路层把网络层传递的数据保构成帧,把帧中的数据取出交给网络层
在这里插入图片描述
1.2
三个基本问题是:封装成帧,透明传输,差错检测

1.2.1 封装成帧
(1) 在一段数据的前后分别添加首部和尾部,就形成了帧。

(2)每一种链路层协议都规定了帧的数据部分最大的传输长度————最大传送单元MTU
在这里插入图片描述

(3)首部与尾部的一个重要作用就是进行帧定界 ,帧定界可以使用特殊的帧定界符SOH代表帧的首部开始,EOT代表帧的结束,它们的是十六进制分别是01,04

在这里插入图片描述

(4)帧定界符的作用,在数据传输错误时,接收端会根据是否获得EOT结束符来判断帧是否完整,不完整则抛弃。

1.2.2 透明传输
*为防止传输文件中包含SOH,EOT字符会导致文件传输失败,对传输帧进行字符填充
在这里插入图片描述
1.3 点对点协议ppp
在这里插入图片描述
1.3.1 ppp协议特点
(1)简单:将接收到的帧进行CRC检测,符合即接收,不符合即抛弃
(2)将数据封装成帧
(3)透明性
(4)多种网络层协议
(5)多种链路类型
(6)差错检测
(7)检测连接状态:检测出现故障或者误差的能力
(8)最大传送单元:设置点对点链路最大传送单元的MTU的传送默认值
*MTU:指的是帧数据部分长度,而不是帧的长度
(9)网络层地址协商
(10)数据压缩协商

1.3.2 ppp协议的组成
(1)一个将IP数据报封装到串行数据链路中的方法
(2)一套支持不同网络层的网络控制协议NLP
(3)一套用于测试,建立,配置的链路控制协议LCP

1.3.3 ppp协议帧的格式
(1)由首部(4个字段),IP数据报,尾部组成(2个字段)
(2)首部的第一个字段和尾部的第二个字段是标志字段F,即定界符,为0x7E(01111110)
(3)首部的第二个字段是标志字段A,为地址字段,0xFF(11111111)
(4)首部的第三个字段是标志字段C,为控制字段,0x03
(5)首部的第四个字段是协议字段0x0021代表帧为IP数据报,0xC021为LCP数据,0x8021为网络层控制数据
在这里插入图片描述
1.3.4 字节填充
在这里插入图片描述
1.3.5 零比特填充
在这里插入图片描述
1.3.6 PPP协议工作状态
在这里插入图片描述
在这里插入图片描述

物理层建立->链路建立->LCP协商->LCP鉴别(有就鉴别)->NLP协商->链路打开->链路关闭

1.4 使用广播信道的数据链路层

1.4.1 局域网的数据链路层
*局域网的特点:网络为一个单位所拥有,且地理范围和站点数目均有限

*局域网分类:星状网,环形网,总线网。

*共享信道的接入方法:
(1)静态划分信道
(2)动态媒体接入控制:
1.静态划分信道
2.动态媒体接入控制(随机接入,受控接入)

*如今的局域网数据链路层由 媒体接入控制MAC子层构成(曾经是LLC与MAC构成)

**1.4.2 适配器的作用 **
*计算机与外界局域网联通是靠适配器运行的。
网络接口卡,又称网卡
*适配器装有处理器和存储器(RAM和ROM)
在这里插入图片描述
1.4.3 CSMA/CD协议
*总线特点:当一台计算机发送数据时,总线上所有计算机都可以检测这个数据。这就是广播通信方式。为了在总线上实现一对一的通信,可以发送数据帧是,在帧首部表明接收站地址,只有数据帧中的目的地址与适配器ROM中存放的硬件地址一致时,适配器才接受数据。

*以太网采取以下两种措施,简便通信:
1,采用较为灵活的无连接的工作方式,当出现差错帧,进行重传,由于同时间只允许一台计算机发送数据,于是便采用CSMA/CD
2,发送数据采用曼彻斯特编码信号

*CSMA/CD协议要点
1,多点接入:许多计算机以多点接入的方式连接在一根总线上
2,载波监听:每个站不管在发送前还是发送中,都必须不停的检测信道,判断信道是否空闲
3,碰撞检测(重点):
在这里插入图片描述
在这里插入图片描述
截断二进制指数退避算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.4.4 以太网MAC层
*局域网中,硬件地址物理地址MAC地址

*MAC地址固化在适配器 ROM(只读存储器)中

*IEEE 802标准规定,MAC地址可以采用6字节(48位)或者2字节(16位)中的其中一种

*MAC地址的 前三位是公司标识符 后三位是扩展标识符

在这里插入图片描述
*MAC帧分为三种帧:
单播帧(1对1)
广播帧(1对所有)
多播帧(1对多)

*适配器混杂模式:可以监听当前局域网中所有的帧,也就是黑客中的网络监听,嗅探

1.4.5 MAC帧格式

*生成树协议STP 消除网络兜圈子现象

1.4.7 虚拟局域网 VLAN
*定义:VLAN是有一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。

*注:VLAN只是局域网给用户提供的一种服务,而不是一种新型局域网

*虚拟网络VLAN帧
在这里插入图片描述

四、网络层

1.1 网络层提供的两种服务

  • 互联网采用的设计思路: 网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务

*虚电路服务,数据报服务
在这里插入图片描述

在这里插入图片描述

1.2网际协议IP

*与ip协议配套的三协议:ARP协议,ICMP协议,IGMP协议

1.2.1虚拟互连网络

*将网络互连起来所需一些中间设备
物理层:转发器
数据链路层:网桥或桥接器
网络层:路由器
网络层以上:网关

*互联网可以由多种异构网络互连组成,利用IP协议使性能各异的网络在网络层上看起来好像是一个统一的网络

*虽然各个网络形态各异,互不相同,但是如果使用同一个网际IP协议,则可以使当前的网络看起来像在使用同一个网络,又称IP网

1.2.2分类的IP地址

  • ip地址:互联网 分配给每一个主机的全世界范围内唯一的32位的标识符
    *ip编制方式的三个历史阶段:
    (1)分类IP地址
    (2)子网划分
    (3)构成超网

*ip地址由网络号和主机号组成

*含有多个IP地址的主机叫做多归属主机

1.2.3 IP地址与硬件地址

*IP地址与硬件地址的区别:
物理地址是数据链路层和物理层使用的地址
IP地址是网络层和以上各层使用的地址 是逻辑地址

*IP数据报交给链路层时 即被封装成了MAC帧

*路由器一般连接两个局域网:具有2个MAC地址

*在数据传输过程中IP地址始终不变
在这里插入图片描述

  • IP地址结构 由 {网络段:主机段}32位地址构成,IP同时指向网络,以及网络所连主机,为了方便,分为将32位地址分为8段以10进制的方式表达

*在IP地址中,网络段全为0代表This(本网络)

*在IP地址中,127.0.0.1为环回测试,意为本机中的数据报不会转发到任何网络上,只交给本机测试。

  • IP结构的特点:

1.节约路由器内存,加快路由器查找时间。路由器只需通过网络段找到所对应的网络(路由器),再由该路由器继续查找。
2.多归属主机(连接多个网络的主机)将拥有相应网络数的IP,且网络段必不相同。
3.不管使用转发器还是网桥,网络段都不变,net-id 相同
4.众生平等!!!!

在这里插入图片描述

  • 几点需要注意的
    *IP层抽象的互联网只能看到IP数据报

*路由器只能根据目的站的IP地址的网络号进行路由选择

*链路层只能看到MAC帧,且随着传输变化
在这里插入图片描述
在这里插入图片描述

1.2.3.2 IP数据报的格式

在这里插入图片描述

1.2.4 地址解析协议APP

*ARP解析机器的IP地址,找出相应的硬件地址
在这里插入图片描述
*每台主机都设有一个ARP高速缓存(存放各主机和路由器的IP:MAC地址的表)

*主机A找到主机B的硬件地址步骤

(1)主机A广播发送ARP请求分组(我的IP时209.0.0.6,我的MAC地址是xxx-xxx-xxx,我想知道B的地址
(2)该局域网上所有主机的ARP进程都能收到
(3)主机B的IP地址和ARP请求分组的IP地址一致,就收下分组,并向A发送ARP响应分组,同时在响应分组中写入自己的硬件,其余主机的IP地址都与请求不同,所以不理睬。
ARP请求分组是广播的,而ARP响应分组是单播的
(4)主机A收到主机B的ARP响应分组后,就把主机B的MAC地址写入ARP中

在这里插入图片描述

1.2.5 IP层分组转发流程

*路由表不可能存储每一个主机的地址,这样十分耗内存,所以只会存储主机所在网段的地址
*路由表格式为{目标网络地址,下一跳地址}
***默认路由:**对于一个网络只有很少的对外连接时特别方便
在这里插入图片描述
*数据报如何找到下一跳路由器:从路由表得到下一跳路由器的IP地址。利用ARP转换为硬件地址,然后进行查找
*分组转发算法的步骤
(1)从数据报的首部提取目的主机的IP地址,得到网络地址N
(2)若N就是与此路由器相连的某个网络地址,则进行直接交付,否则执行(3)
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传给路由表中所指明的下一跳路由器,否则,执行(4)
(4)若路由表有达到网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则,执行操作(5)
(5)若路由表中有一个默认路由,则把数据报传给路由表中所指明的默认路由器,否则执行(6)
(6)报告转发分组出错

1.3 划分子网和构造超网

*二级IP的劣势:
(1)空间利用率低
(2)两级IP地址不够灵活
(3)给每一个物理网络分配网络号会使路由表变大

*三级IP地址:{网络号,子网号字段,主机号} 这种添加子网号字段的方法又叫 划分子网子网寻址子网路由选择

  • 划分子网的思路:
    (1)把一个物理网络分为若干个子网,对外表现 仍为一个网络
    (2)从网络主机号借用若干位数作为子网号
    (3)从其他网络发送给本网络的某台主机的IP数据报,任是根据网络号找到本网络上的路由器,但是本网络上的路由器,根据网络号和子网号 找到目的子网
    在这里插入图片描述
    在这里插入图片描述
    *路由器通过子网掩码寻找子网,交付IP
    在这里插入图片描述

*子网掩码中 选用 连续的1(尽量)代表16位网络号+8位子网号,连续的0带包主机号

*子网掩码与三级IP地址逐位相与,得到子网的网络地址(e)

*从外网来看 该B类网络就是普通网络 网络号为145.13.0.0,子网为连续的16个1和16个0组成
从内网来看,该网络划分了许多子网,其网络号是145.13.x.0,子网为连续的24个1和8个0组成

*每个网络必须有子网掩码,若没有进行子网划分的网络 就使用默认子网掩码
在这里插入图片描述
在这里插入图片描述
*划分子网增加了灵活性,但却减少了在网络上的主机总数

*子网掩码与网络地址的计算
在这里插入图片描述

1.3.1 无分类编址CIDR 构造超网

  • VLSM:变长子网掩码

*在VLSM基础上研发出了无分类域间路由选择CIDR

*CIDR特点:
(1)CIDR 由三级编址变为了两级编址 消除了传统的A,B,C类以及划分子网的概念
IP={网络前缀,主机号}
且使用 斜线记法 在IP地址后面添加"/“表示网络前缀占多少位
(2)CIDR把网络前缀都相同的连续IP地址组成一个"CIDR地址块”,即通过一个地址,便可以知道网络的开头到结尾。
CIDR也使用子网掩码,为了提供给还在使用子网划分的网络用,CIDR的子网掩码为32位,且/20,代表子网掩码有20个1

*这种地址聚合称为路由聚合,也称构成超网,大大减小了路由表的项目
在这里插入图片描述
*最长前缀匹配
路由器在项目中寻找的方法 也要改变,每个项目由“网络前缀”和“下一跳地址”组成,而我们要从匹配结果中选择最长的网络前缀匹配,因为前缀越长,对应主机数越少,越精确
在这里插入图片描述

  • 利用哈夫曼树的原理,构建二叉树,且所有前缀为唯一前缀,然后进行搜索,加快搜索速度
    在这里插入图片描述

1.4. 网际控制报文协议ICMP

*为了提高交付成功的机会和更有效地转发IP数据报,在网际层使用了ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况报告。

*ICMP 是作为IP层数据报的数据转发的
在这里插入图片描述

1.4.1 ICMP报文类型

*ICMP报文分为两类 ICMP差错报告报文ICMP询问报文
*ICMP前四个字节统一格式:类型,代码,检验和。
在这里插入图片描述
*改变路由(重定向) :当默认路由到某路径时发现更好的报文传送路径时,会告诉主机,更好的路由,此时主机在路由表中添加该项目。
在这里插入图片描述
*ICMP询问报文:
(1)回送请求和回答:回送请求 是主机或路由器 向别的主机发出的询问,收到该报文的主机 必须给源主机发送ICMP回送回答报文
(2)时间戳请求和回答:是指请某台主机回答当前日期和时间。

**

1.4.2 ICMP的应用

*traceroute(unix)/tracert(windows)
该命令向目标主机发送一连串IP数据报,且数据包封装的是无法交付的UDP用户数据报
发送的数据报的TTL={1,2,3…n}直到到达目的主机
TTL<=0;return ICMP时间超过差错报告报文
TTL=1&&到达目标主机;return ICMP终点不可达差错报文

1.5 有关路由选择协议的几个基本概念

*理想的路由算法六大原则:
(1)正确性和完整性
(2)公平性
(3)计算量小
(4)稳健性
(5)最佳性
(6)对通信量和网络拓扑的变化自适应

*两大类算法
网络复杂度小,变化不大,开销小:静态路由选择策略
网络复杂度大,变化大,开销大:动态路由选择策略

1.5.1 分层次的路由选择协议

*把整个互联网划分为许多较小的自治系统,记为AS

*一个AS对其他AS表现出的是一个单一的和一致的路由选择策略

*互联网把路由选择协议划分为两大类
(1)内部网关协议IGP(RIP,OSPF)
(2)外部网关协议EGP(BGP,旧的EGP协议)

*自治系统之间的路由选择叫做域间路由选择
自治系统内部的路由选择叫做域内路由选择

1.5.2 内部网关协议RIP

*工作原理:
定义:RIP是一种分布式的基于距离向量的路由选择协议
跳数:RIP协议中的距离,直连的网络定义为"1",不直连的网络定义为"+1",一条路径最多包含15个路由器,超过即不可到达。
适用:小型的互联网。
特点:
(1)仅和相邻的路由器交换信息。
(2)交换路由器的所有信息(即路由表),{到某个网络最短路径,下一跳地址}
(3)按固定的时间间隔交换路由信息。
工作流程:
路由器一开始运作时,路由表为空,然后路由器就得出直接相连的几个网络距离,每一个路由器接收到另一个路由器的全部信息后同步更新
**更新算法:**距离向量算法
1,将接收到的表中的所有信息的下一跳地址改为,发送报文的地址,且距离+1
例如:X——> Net2,3,Y——>Z
Z处理为Net2,3+1,X
2,一切以最新消息为准,如果原项目为 Net2,3,X 现在变成了Net2,4,X不管距离变大还是变小,都要改变
3,若下一跳地址不相同,距离变大,则选择距离更小的那一个
在这里插入图片描述

缺点: 当网络出现故障时容易出现坏消息传播得慢的情况,因为他们并不能知道网络的拓扑图,而只知道下一跳情况
在这里插入图片描述
RIP报文
在这里插入图片描述
*命令字段:1,请求路由器信息。2,对请求路由信息的响应或未被请求而发出的路由更新报文

1.5.3 内部网关协议OSPF

全名: 开放最短路径优先
基于算法: Dijkstra 最短路径算法
协议: 链路状态协议
更新方法: 洪泛法
特点:
1, 每一个路由器都有一个链路状态数据库 用来记录整个网络的拓扑图,以及用Dijkstra算法计算出来的最短路径路由表
2,向本自治系统的所有主机以洪泛法的方式发送信息
3,发送的信息 即为本路由器的链路状态 即该路由器和哪些路由器相邻,以及该链路的度量
(距离,代价,速度等)
4,只有当拓扑状态发生变化时才会发送信息

OSPF图示
1,OSPF使用层次结构划分会将整个自治网络划分成很多区域而洪泛法只会在该区域中进行。
2,
主干区域的路由器叫做 主干路由器
区域边界的路由器叫做区域 边界路由器
自治系统边界的路由器叫做 自治系统边界路由器
在这里插入图片描述
OSPF数据报的传输
1,OSPF用 IP数据报传输
在这里插入图片描述
OSPF五种分组的类型
类型1:问候分组: 发现和维持相邻站的可达性
类型2:数据库描述分组: 给相邻的站点发送自身数据库信息
类型3:链路状态请求: 请求对方发送某些链路状态项目信息
类型4:链路状态更新: 用洪泛法对全网进行更新
类型5:链路状态确定: 对链路更新分组的确认
在这里插入图片描述
洪泛法
在这里插入图片描述
优点
1,不会出现坏消息传播慢的情况,因为每个路由器拥有自己的网络拓扑图。
2,如果有到达某个网络,代价相同的路径,则可以实现负载平衡。
3,OSPF 具有鉴别功能
4,每个链路状态都带上一个32位的序号,且更新不超过5s一次,保证600年不重样

1.5.4 外部网关协议BGP

使用BGP的原因
1,互联网规模太大,自治系统之间路由器选择困难
2,自治系统之间的路由选择要考虑有关策略(比如军事网络,或者不同的网络协议)

自治系统之间 访问目的不是找到最短路径,而是找到最优解

BGP Speaker
在AS系统中,与其他AS系统沟通的路由器

BGP结构
在BGP中,各个自治系统是分阶级的,以主干网为根,其他子干网为叶子结点
在这里插入图片描述
BGP报文
在这里插入图片描述

1.5.5 路由器的构成

路由器构成
分为两大部分:路由选择和分组转发
在这里插入图片描述

1.路由选择
*核心构建:路由选择处理器

*作用:定期的更新路由表,与其相邻的路由器交换路由信息

2.分组转发
*构成:交换结构,输入端口,输出端口

*交换结构:根据路由表,找到合适的下一跳路由器进行转发

*输入输出端口1,2,3:物理层,链路层,网络层
1:比特接受
2:分组帧
3:按(RIP 或者 OSPF)分组转发

*影子副本:
为了使每个端口交换功能分散化,会把路由表复制在每个输入端口中

*输入端口,输出端口排队
在这里插入图片描述
在这里插入图片描述
*交换结构
在这里插入图片描述

1.6 IPv6

1.6.1 IPv6基本首部

*IPv6相对于IPv4的变化:
1,更大的地址空间:IPv4 32位,IPv6为128位
2,扩展的地址层次结构:更大的空间,让IPv6拥有更多的层次
3,灵活的首部格式
4,改进的选项
5,允许协议继续扩充
6,支持即插即用
7,支持资源预分配
8,IPv6首部改为8字节对齐

*IPv6数据报由两大部分组成:
基本首部和有效载荷
有效载荷允许有零个或多个扩展首部
在这里插入图片描述
IPv4数据报IPv4数据报
IPv6数据报
在这里插入图片描述
1,版本:6
2,通信量类:区分不同的IPv6数据报的类别或优先级
3,流标号:互联网从特定源点到特点终点的一系列数据报
4,有效载荷长度:数据报除基本首部以外的字节数
5,下一个首部:相当于IPv4的协议字段或可选字段
6,跳数限制:和IPv4一样 防止数据报无限传输

IPv6与IPv4的区别
在这里插入图片描述
由于IPv4的首部具有选项,每次经过路由器,路由器需要检测。而IPv6的选项放置在扩展首部,则路由器无需检测大部分首部,而是交给,目标主机和源主机来检测,大大提高了处理效率

扩展首部
(1)逐条选项;(2)路由选择;(3)分片;(4)鉴别;(5)封装安全有效载荷;(6)目的站选项。

1.6.2 IPv6地址

三大类型地址:

(1)单播:点对点
(2)多播:一对多
(3)任播:终点为一组计算机,数据报只交付其中一个(距离最近的一个)

冒号十六进制记法
在这里插入图片描述
允许把数字前面的0省略,称之为零压缩

例如: FF05:0:0:0:0:0:0:B3 压缩为 FF05::B3

*零压缩每个地址只准使用一次

*IPv6地址也可以进行CIDR分类
在这里插入图片描述
(1)未指明地址:主机没有配置到一个标准的IP地址
(2)环回地址:主机与自己的测试
(3)全球单播地址

1.6.3 从IPv4向IPv6过度

IPv6过渡 采用逐步演进的办法

1,双协议栈

(1)使一部分主机装有IPv4和IPv6协议,与IPv4通信 使用IPv4协议,与IPv6通信 使用IPv6协议
(2)使用域名系统DNS来查询目的主机具体使用哪个协议

(3)当IPv6数据报 经过IPv4网络时,会转换为IPv4网络,但是这种转换,会导致某些数据丢失,且不可逆
在这里插入图片描述

2,隧道技术

将IPv6 封装为 IPv4,即IPv6变为IPv4数据部分,当经过IPv4数据报时畅通无阻,当碰到IPv6网络时,则将IPv4数据部分取出,即得到IPv6数据报
要将IPv4首部协议字段值设置为41 既可以知道这为封装的IPv6
在这里插入图片描述

1.6.4 ICMPv6

在这里插入图片描述

1.6.5 IP多播

*定义:以一对多的方式传播
在这里插入图片描述

*优点:减轻网络资源消耗

*多播地址只能用于目的地址,不能用于源地址,且不产生ICMP差错报告

*一种是只在本局域网上进行硬件多播,另一种是在互联网范围进行多播
在这里插入图片描述

1.6.6 网际组管理协议IGMP和多播路由选择协议

1.6.6.1 IGMP

范围:本地使用范围
作用:让连接在本地局域网上的多播路由知道本局域网上是否有主机参加或退出某个多播组
阶段:
①:加入多播组,需发送IGMP报文,声称自己是新成员
②:试探询问,查询这些主机是否还是组成员,若有人回答,就是活跃的,若无人回答,就不转发多播组

1.6.6.2 多播路由选择协议

在这里插入图片描述
多播路由转发必须适应动态的多播组成员变化
例如:R不应该向N3网络转发分组,因为G不属于多播组①或②,但是如果此时G加入多播组②,则也应当向N3网络转发分组
多播路由器在转发多播数据报时,不能仅仅根据数据报中的目的地址,要考虑从哪来到哪去
例如:当F向E发送数据报时,R应当发送到网络N2,但是E向F发送数据报时,R应当发送到N3
且非多组成员也可以发送多组数据报

三种方法

①洪泛与剪除

适合小的多播组,所有组成员接入的局域网也是相互邻接的。
在这里插入图片描述
反向路径广播RPB算法

作用:避免兜圈子
原理:检测数据报来源是否是源点沿最小路径而来

剪除

作用:除去不必要的路线
原理:将已经不是该组成员的路线剪去

②隧道技术

适用于多播组位置在地理位置上很分散的情况
作用:如果路由器不支持多播技术,则可以使用隧道技术,传输多播分组
原理:将多播分组分装成单播数据报的数据部分,再通过"隧道“发送
在这里插入图片描述

③基于核心的发现技术

对于多播组的大小在较大范围内变化时都适合。
在这里插入图片描述

在这里插入图片描述

1.7 虚拟专用网VPN和网络地址转换NAT

1.7.1 虚拟专用网

一台主机不需要和互联网中的所有主机通信,只在本机构中通信即可,我们就无需浪费全球IP地址而是由本机构自行分配IP地址

专用地址
①只能用于一个机构的内部通信,不能与外部互联网通信。
②互联网中的所有路由器,对目的地址是专用地址的数据报一律不转发
③采用该地址的叫做专用网

vpn
①当两个不同网点的专用网需要进行通信,需要经过互联网,这种网络就叫做虚拟专用网
专用网A->互联网(通信加密)->专用网B
②隧道技术实现虚拟专用网
在这里插入图片描述
内联网:A和B的内部网络所构成的虚拟专用网VPN又称为内联网
外联网:当一个机构的VPN需要某些外部机构加入,则该VPN被称为外联网
远程接入VPN:VPN软件在个人电脑和另一端的网络建立VPN隧道

1.7.2 网络地址转换NAT

当本地专用网想和互联网通信时,需要使用网络地址转换NAT
条件:路由器具备NAT软件
在这里插入图片描述
专用网IP->转化为路由器的IP->目的网络
目的网络->路由器->转化为专用网IP->源IP地址
在这里插入图片描述
专用网内的主机不能充当服务器,因为由外部过来的目的地址,路由器不知道该转化为哪个IP,通信必须由内部主机发起

网络地址与端口号转化NAPT
在这里插入图片描述

1.8 多协议标记交换MPLS

MPLS大致原理

原理: 利用面向连接技术(双方通信需要先建立连接),使每个分组携带一个叫做标记的小整数,当分组到达交换机,交换机读取分组标记,并用标记值来检索分组转发表。这样就比查找路由表来转发分组要快得多。
特点:(1)支持面向连接的服务质量(2)支持流量工程,平衡网络负载(3)有效地支持虚拟专用网VPN

1.2.8.8.1 MPLS的工作原理
在这里插入图片描述

相比传统路由转发的好处
当网络通信量很大时,查找含有大量项目的路由表需花费很多时间。
特点:无需经过第三层查找路由表,而是直接在第二层(链路层)用硬件进行转发。

MPLS域
①支持MPLS技术的标记交换路由器LSR,彼此相邻所构成。
②LSR使用标记分配协议LDP交换报文

基本工作过程
①构造转发表:通过LDP协议交换报文,找出标记交换路径LSP,构造转发表
②IP分类:当IP数据报进入MPLS域时,对打上标记的IP数据报用硬件进行转发
③标记对换:转发并更新标记,把如标记改为出标记
在这里插入图片描述
④去除标记:数据报到达MPLS出口时将标记给去除

1.8.1 转发等价类FEC

定义:路由器按照同样的方式对待IP数据报集合
在这里插入图片描述
例:
在这里插入图片描述
MPLS数据报
在这里插入图片描述

五、 运输层

本章重点:
在这里插入图片描述

1.1 运输层协议的概述

1.1.1 进程之间的通信

  • 运输层向他上一层的应用层服务,在用户中属于最底层,在通信层中属于最高层
  • 主机通信是指 进程与进程之间的通信,通信的终点不是主机而是进程
  • 运输层一个重要的功能:复用和分用

复用:不同的进程使用一个运输层协议传输数据
分用:运输层剥去报文首部能正确交付到进程中

  • 逻辑通信与实际通信
    在这里插入图片描述
    网络层为主机提供逻辑通信,运输层为进程提供逻辑通信

1.1.2 运输层的两个主要协议

(1)用户数据报协议UDP(不可信)
(2)传输控制协议TCP(可信,不可靠)

这两协议所在位置
在这里插入图片描述

  • UDP传送数据前无需连接,远程主机的运输层收到UDP报文后,不需要给出确认,不可信,但是有效
  • TCP传送数据前必须建立连接,传送完要释放连接,TCP可信的运输服务,但是增大开销
    在这里插入图片描述

1.1.3 运输层的端口

  • 进程标志:进程标识符(整数)
  • 端口:识别用户进程,以及数据报传送终点

区分硬件端口和软件端口
硬件端口:硬件设备之间交互的接口
软件端口:应用层之间各个协议与运输实体进行层间交互的一种地址

  • 客户发起请求时必须知道对方服务器的IP地址和端口号。
  • 运输层的端口号分为下面两大类

①服务端使用端口号:(数值 0~1023)
数值查询网址
1,熟知端口号/系统端口号
在这里插入图片描述
2,登记端口号:(数值 1024~49151) 必须在IANA手续登记

②客户端使用端口号 :(49152~65535)
仅在客户进程进行时才动态选择,又称短暂端口号,通信结束,端口号不复存在。

1.2 用户数据报协议UDP

1.2.1 UDP 概述

  • 特点:
    ① UDP是无连接的
    ② UDP使用尽最大努力交付
    ③ UDP是面向报文的:UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,向他的首部添加一个首部交给IP层
    ④ UDP没有拥塞控制:可以以恒定的速率发送数据报。
    ⑤ UDP支持一对一,一对多,多对一,多对多通信
    ⑥ UDP的首部开销小:8字节

1.2.2 UDP的首部格式

在这里插入图片描述
(1) 源端口:需要对方回信时选用,不需要全0
(2) 目的端口:终点交付必须使用
(3) 长度:UDP用户数据报长度,最小值为8
(4) 检验和:检验是否有错
(5) 伪首部:不向下传,也不向上传,只用来进行检验

如果端口不正确(即不存在该端口号)则丢弃该报文。

计算检验和:将UDP首部与数据部分一起检验

1.3 传输控制协议TCP概述

1.3.1 TCP最主要特点

(1)面向连接的运输层协议:必须建立连接才能通信
(2)每一条TCP连接只能有两个端点(点对点)
(3)TCP提供全双工通信
(4)TCP提供可靠交付的服务
(5)面向字节流:流是指流入进程或从进程流出的字节序列
发送方和接收方的数据块大小可能不同,但是,内容一定要相同
在这里插入图片描述

1.3.2 TCP连接

  • TCP把连接作为最基本的抽象
  • TCP的端口,不是IP地址,也不是应用进程而是套接字或插口
  • 套接字:端口号 拼接到 IP地址即成了套接字例如 :192.168.146.5:80
    套接字socket = (IP地址:端口号)
  • 每一条TCP连接唯一地被通信两端的两个端点所确定
    TCP连接::={socket1,socket2}={(IP1,Port1),(IP2,Port2)}
  • 同一个IP可以有多个TCP连接,而同一个端口号,可以在多个TCP连接中出现

1.4 可靠传输的工作原理

  • TCP发送的报文段交给IP层传送,IP层只提供最大努力服务。
  • 理想传输条件有以下两个特点
    ①传输信道不出差错
    ②不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据

1.4.1 停止等待协议

A:发送方 B:接收方

1.无差错情况
A发送分组,暂停发送,等到B确认且发送回确认报告,暂停结束,A继续发送分组

2.出现差错
若A发送分组有差错,则丢弃,超时后,A重新发送报告
A为每个发送的分组设置了一个超时计时器

  • 注意以下三点:
    ①必须暂时保留已发送的分组副本,当收到相应的确认后,删除分组副本
    ②分组和确认分组必须进行编号
    ③超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些,当然重传时间并非固定的,因为在会有不同的因素影响传输时间

3.确认丢失和确认迟到
在这里插入图片描述
在A向B传送数据报的过程中 会出现两种情况
①:A传送没有传送给B,B没有收到
②:B收到数据报,发送的确认数据报,超时或者丢失

这个时候A会进行重传操作,此时B应该进行以下操作
①:丢掉重复分组
②:向A发送确认,但A不进行任何操作
在这里插入图片描述
上述可靠的传输协议称为自动重传请求ARQ

4. 信道利用率
在这里插入图片描述

1.4.2 连续ARQ协议(滑动窗口协议)

发送窗口:该窗口内的分组可以直接连续发送出去,无需确认
窗口前移:当每收到接收方的分组确认时,窗口前移一格
窗口后移:当分组缺失时,发送方会检测到分组丢失,往后Go-back-N
累和确认:接收方不会一个一个发送确认,而是根据按顺序接收到的分组发送最后一个确认
累和确认的缺点:无法确定接收方是否已经正确收到所有分组信息。
在这里插入图片描述

1.5 TCP报文段的首部格式

  • TCP虽然是面向字节流的,但TCP传送的数据单位却是报文段
    在这里插入图片描述

(1)源端口和目的端口:各占两个字节
(2)序号:字节流中,每一个字节都按顺序编号。例如一段报文的的序号字段值为301,携带数据有100个字节,则最后一个字节为400
(3)确认号:是期望收到下一段报文的第一个字节序号,例如一段501开头的报文,长度为200,则他应该发送则他该报文序号段为(501~700),则接收方应该发送确认号为701的确认报文
(4)数据偏移:为了指出报文段首部的长度
(5)保留:为今后使用
(6)紧急URG:当URG=1时,表明紧急指针有效,说明文档有紧急数据,无视发送顺序,优先发送该数据
(7)确认ACK:ACK=1时确认号字段才有效
(8)推送PSH:当两个进程交互式的通信时,有时希望键入一个命令后立即接收到对方响应,于是便将PSH设置为1,当接收方收到设置为1的报文时,不在等待整个缓存填满后再向上交付
(9)复位RST:RST=1时,代表连接出现差错,必须释放连接,重新连接,也可以用来拒绝一个非法报文或拒绝打开一个连接
(10)同步SYN:在建立连接时用来同步序号。当SYN=1而ACK=0时代表这是一个请求连接报文,若对方同意建立连接,响应报文段为SYN=1,ACK=1
(11)终止FIN:当FIN=1时,代表释放连接
(12)窗口:代表接收方目前允许发送方发送的数据量,例如序号为700,窗口值为1000,则代表,当前序号为700,我还能接受你发送1000个字节,即(700~1700)请注意!
(13)检验和:差错检验
(14)紧急指针:仅在URG=1时才有意义,紧急指针指向紧急报文的末尾,当执行完紧急报文,则回复正常工作阶段,窗口为0时也是可以发送紧急报文的
(15)选项:长度可变,长度可达40字节
①MSS(最大报文段长度) = TCP报文段长度-TCP首部长度=TCP数据段长度,MSS尽可能大,为了提高传输效率,减小开销
②窗口扩大选项:使窗口接受量变大,3字节,其中一字节代表位移S,即窗口增加量(16+S)
③时间戳:用于计算往返时间,防止序号绕回(即当每增加2^32个序号就会有重复,用改字段则可以进行区分)

1.6 TCP可靠传输的实现

1.6.1 以字节为单位的滑动窗口

在这里插入图片描述

  • 发送方的发送窗口长度<接收方的接受窗口长度
  • 发送窗口的位置由前沿后沿同时决定
  • 滑动窗口的只为后沿~前沿部分保存缓存
  • 后沿移动方向: 前移:收到新的确认 不动:没有收到确认
  • 前沿的移动方向 前移:接收到新的确认 不动:没收到新的确认且窗口大小不变 或者 接收到新的确认但是窗口大小缩小,正好不变 后移:窗口大小缩小(不建议这么做)

发送窗口&&接收窗口 在这里插入图片描述
从上图可以看出发送窗口需要3个指针来表示P1,P2,P3

  • A的发送窗口 = P3-P1
  • 未发送的字节 = P3-P2
  • 发送但未确认的字节 = P2-P1

在这里插入图片描述

  • 因为31号数据没有收到,所以32,33数据是未按序到达的,所以接收窗口只会返回按序到达的最大的确认号,所以此时确认号仍然为31
  • 假如此时接受窗口收到了31号数据,则向前移动3个单位,删除前3个数据,并且发送确认号为34的确认报。
    在这里插入图片描述
  • 当发送的数据报全美背确认时,P2与P3重合,可用窗口为0,不再发送数据报

窗口与缓存的关系
在这里插入图片描述

  • 发送缓存用来存放:
    (1)发送应用程序传送给发送方TCP准备发送的数据
    (2)TCP已发送但尚未收到确认的数据

  • 接受缓存用来存放:
    (1)按序到达的,但尚未被接受的应用程序已接受但是未确认的数据
    (2)未按序到达的数据

  • 如果接受应用程序不能及时读取数据,则数据会填满缓存,直至接收窗口减小为0。若数据被及时读取,则接收窗口会增大,但是不大于接受缓存

  • 注意一下三点
    ① 虽然发送窗口的大小是根据接受窗口而定的,但是并不一定是和接收窗口相等,有时还根据网络状况而定
    ② 对未按序到达的字节,接收窗口先存储,等到收到缺少的字节后,在交付给应用程序
    ③ TCP要求接收方必须有累积确认功能,减小开销,但不能过分延迟发送确认

1.6.2 超时重传时间选择

**报文段往返时间RTT:**确认时间-发出时间
加强平均往返时间RTTs: 新的RTTs = (1-a) x (旧的RTTs)+a x (新的RTT样本) (0<a<1)
超时重传时间RTO: RTO=RTTs+4*RTTd
RTT偏差的加权平均值RTTd: 新的RTTd=(1-b) x (旧的RTTd) + b x |RTTs - 新的RTT样本|

  • 如何对确认的报文进行判断(到底是重传的还是之前的)
    在这里插入图片描述
    方法:不采用报文段的往返时间样本

1.6.3 选择确认SACK

  • 问题:字节块内的字节按顺序接受了,但是字节块之间不是有顺序的,该怎么处理?
    在这里插入图片描述
  • 方法:用边界来记录每一个字节块,而使用这一方法则需使用SACK选项,且SACK只能记录最多4个字节块
    ,因为一字节块的长度为4字节,所以4个字节块为8个边界 8*4=32字节 剩下的字节用来记录SACK选项和需要占用多少字节

1.7 TCP流量控制

1.7.1 利用滑动窗口实现流量控制

  • 流量控制:点对点通信量控制,控制数据发送速率,使接收方能及时接受
    在这里插入图片描述
    (1)当B向A发送零窗口报文时,则暂停数据传输。
    (2)持续计时器:解决当B发送非零窗口报文时,B报文丢失,A无回复,出现的死锁状态。
    若连接的一方收到零窗口报文,则会开始计时,当计时器过期,则会发送一个探测报文段,而对方就在确认这个探测报文段时给出窗口值

1.7.2 TCP传输效率

  • 当数据报传送到TCP发送缓存时,则交给TCP来控制,以下有三种方法来控制:
    (1)TCP维持一个变量,它等于最大报文段长度MSS,达到这个长度时则发送
    (2)推送PUSH选项,直接推送
    (3)计时器期限到了,就把当前已有的缓存发送出去

  • Nagle算法
    在这里插入图片描述

  • 糊涂窗口综合征
    在接受方没有足够的缓存下,出现的低效率传输问题
    解决方法:让接收方等待一段时间,空出缓存。

1.8 TCP的拥塞控制

1.8.1 拥塞出现的原因

  • 当网络中的某一资源需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况叫拥塞

Sum(对资源的需求)>可用需求

?: 为什么简单扩大节点容量无法解决拥塞问题,反而会加重
!: 由于节点容量过小导致数据报无法存贮,若一味的扩大容量,数据报虽然可以容纳,但由于容量过大,需要进行排队,而输出链路和处理机的处理速度不变,导致等待的时间大大增加,上层只能重传处理(超时)

1.8.2 拥塞控制的一般原理

  • 拥塞控制是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。
  • 前提条件:网络能承受现有的网络负荷
  • 拥塞控制是一个全局性的过程

在这里插入图片描述
1,理想的网络拥塞控制,在提供负载以及吞吐量未达到饱和时是1:1呈45°角上升的,当达到饱和时,网络资源受限,达到水平阶段。
2,无网络拥塞控制时,随着提供负载增大,吞吐量增长速率减少,说明有一部分分组已经被丢失,当吞吐量明显小于理想吞吐量时,则进入轻度拥塞阶段,当吞吐量随提供负载增加而减少时,则进入拥塞阶段,直至达到死锁,无法工作
3,实际网络拥塞控制,吞吐速率随提供负载增加不断趋于平缓

  • 从控制理论角度来看,可以分为两种方法,开环控制和闭环控制
    开环控制即在设计网络时,就考虑到了有关发送拥塞的因素,力求在工作时不产生拥塞,但是在中途就无法更改了
    闭环控制采用了反馈环路的概念
    (1)监测网络何时何地发生
    (2)把拥塞发生的信息传达到可采取行动的地方
    (3)调整网络系统运行以解决出现的问题

1.8.3 TCP的拥塞控制方法

  • 四大算法:慢开始,拥塞避免,快重传,快恢复
1.8.3.1慢开始和拥塞避免

拥塞窗口(cwnd):基于窗口的拥塞控制,设定的一个状态变量,大小取决于网络的拥塞程度,发送窗口即拥塞窗口
判断网络拥塞条件:出现超时

慢开始
定义:当主机开始发送数据时,由于并不清楚网络负荷情况,利用探测的方法,由小到大的增大拥塞窗口数值
增长方式:每收到一个对新的报文段确认后,增加一个SMSS(发送方最大报文段)
在这里插入图片描述
每经过一轮次,拥塞窗口就加倍
慢开始门限(ssthresh):为防止慢开始无限增长导致网络拥塞的状态变量
在这里插入图片描述
拥塞避免算法(加法增大AI)
定义:每经过一个往返时间RTT就+1,相对于慢开始增加更加缓慢,线性规律慢速增长

1.8.3.2 快重传和快恢复

由于在传输过程中难免存在报文段丢失,但并不是网络拥塞导致的,如果发送方开启慢开始,则会导致传输效率变低。
快重传算法
目的:让发送方尽早知道发生了个别报文段的丢失
定义:当出现数据报丢失时,接收方必须立即发送对丢失的数据报的重复确认,以便让发送方知道没有收到报文段,发送方一连收到3个重复确认,就进行快重传算法。
在这里插入图片描述
快恢复算法
定义:发送方调整门限值,同时拥塞窗口为门限值
ssthresh = cwnd/2 ; cwnd = ssthresh
条件:只是数据报丢失,而不是拥塞超时

1.8.3.3 拥塞控制的流程

在这里插入图片描述
在这里插入图片描述
发送窗口的上限值 = Min[接受窗口容量,发送窗口容量]

1.8.4 主动队列管理AQM

  • TCP拥塞控制与网络层密切相关
  • 网络层策略对TCP拥塞控制影响最大的就是路由器的分组丢弃策略

分组丢弃策略:路由器队列通常按照“先进先出”FIFO的规则处理到来的分组,当队列已满时,后到达的分组将都被丢弃,这就叫尾部丢弃策略

全局同步:拥塞控制导致很多TCP连接在 同一时间进入慢开始状态,使得全网通信量下降了很多,在网络恢复正常后,通行量又突然增大很多。

主动队列管理
概念:不再等到最大值时再丢弃数据报,而是在某个值得警惕的数值时,就主动丢弃分组,提醒发送方方面发送速度
算法:随机早期检测RED算法
设定一个最小门限MIN和最大门限MAX
NOW<MIN 将新到达的放入队列
MAX>NOW>MIN 按照一定丢弃概率p把到达的分组丢弃
NOW>MAX 将新到达的丢弃

1.8.5 TCP的运输连接管理

  • TCP运输连接的三个阶段:连接建立,数据传送,连接释放

  • TCP连接建立要解决以下三问题:
    1,互相能感知对方存在
    2,设置一些重要的参数(最大窗口值,是否扩展窗口,时间戳等)
    3,能够运输实体资源(缓存大小,连接表中的项目等)进行分配

  • 主动连接:客户 ; 被动等待连接:服务器

1.8.5.1 TCP的连接建立

三报文握手

定义:TCP建立连接的过程叫做握手,其中握手需要客户服务器之间交换三个报文段
在这里插入图片描述

  • 第一次握手:A–请求报文–>B
    ① 开始,B,A都处于CLOSED阶段。
    ② B首先建立TCB传输控制块,准备接受连接请求,于是服务器处于LISTEN状态,监听请求。
    ③ A也建立TCB传输,打算建立TCP连接时,向B发出连接请求报文段,这是首部的同步位为 SYN = 1,同时选择一个初始序号 seq = x,且不能携带数据,但是要消耗一个序号
    ④ TCP客户进程进入SYS-SENT(同步已发送)状态
  • 第二次握手:B–确认报文–>A
    ① TCP收到请求报文,如同意连接,则向A发送确认
    ② 确认报文应该把SYN与ACK设置为1,确认号为ack=x+1,同时也要为自己选择一个初始序号 seq=y 且不能携带数据,但是要消耗一个序号
    ③ 服务器进入 SYN-RCVD(同步收到状态)
  • 第三次握手: A–确认报文–>B
    ① 当A收到B的确认后,也要给B进行确认。
    ② 确认报文ACK置1,确认号 ack=y+1,自己的序号 seq=x+1
    注:TCP规定ACK报文段可以携带数据,但如果不携带将不消耗序号
    ③ A进入ESTABLISHED(已建立连接)
    ④ B收到A的状态也进入ESTABLISHED

第三次报文的作用: 防止已失效的连接请求报文在未来某个时段传输到服务器,浪费服务器资源。

1.8.5.2 TCP的连接释放

连接释放

在这里插入图片描述

  • A–连接释放报文段–>B:
    ① A的应用进程先向其TCP发出连接释放报文段,并且停止发送数据,主动关闭TCP连接。
    ② FIN=1,序号seq=u
    ③ A进入FIN-WAIT-1
  • B–确认报文–>A
    ① B接收到释放报文发出确认报文
    ② ack=u+1,seq=v,ACK=1
    ③ B进入CLOSE-WAIT状态
    ④ A->B方向的连接释放,TCP连接处于半关闭状态
    ⑤ A接收到B的确认后,就进入FIN-WAIT-2状态,等待B发出的连接释放报文
  • B->连接释放报文段->A
    ① 若B已经没有要向A发送的数据,应用进程通知TCP释放连接。
    ② B发出连接释放报文段
    ③ FIN=1,ACK=1,seq=w(可能B又发送了一些数据),ack=u+1
    ④ B进入LAST-ACK(最后的确认)
  • A->确认释放报文段->B
    ① 接收到释放报文,并对此发送确认
    ② ACK=1,seq=u+1,ack=w+1
    ③ 进入TIME-WAIT状态,此时TCP连接并没有被释放掉
    ④ 经过时间等待计时器设置的时间2MSL后,A进入CLOSED
    MSL 叫做 最长报文段寿命
    ⑤ A撤销传输控制块 TCB 结束TCP连接

为什么要有TIME-WAIT状态?
① 当A的FIN-ACK确认数据报丢失后,B可以在时间段重传,A接受到后,再次重传且重设计时器,如果A直接关闭,则B无法正常进入CLOSED状态。
②使本连接持续时间内的所有报文段在网络中消失,防止已失效的连接请求报文段出现。

  • 保活计时器:以防客户机出故障,存在长时间不通信导致连接无法正常关闭的状况。

1.8.5.3 TCP有限状态机

在这里插入图片描述

六、应用层

  • 不同的网络的应用与应用之间有不同的通信协议,这些由应用层协议来决定
  • 通过位于不同主机的多种应用进程之间的通信与协同工作来解决应用层协议的问题。
  • 万维网应用包含部件:万维网浏览器,万维网服务器,万维网文档和格式标准,一个应用层协议(HTTP)
  • 许多协议基于 客户服务器方式

1.1 域名系统DNS

1.1.1 概述

  • 域名系统DNS:互联网使用的命名系统,把及其名字转为IP地址

使用DNS的原因
32位的二进制主机地址复杂难记,于是可以将便于用户记忆的主机名字转换成IP
处理IP数据报为什么不使用域名?
IP地址是定长的,域名长度不是

分布式域名系统DNS

  • 概念:DNS被设计成一个联机分布式数据库系统,并采用客户服务器方式。
  • 域名到IP地址由分布在互联网上的许多域名服务器程序共同完成的。
  • 域名->IP地址的解析过程要点:
    当进程需要把主机名解析为IP地址时,该应用用解析程序,并成为DNS的一个客户把待解析的域名放在DNS请求报文中,以UDP数据报方式发给本地域名服务器。本地域名服务器查找域名后,把对应的IP放在回答报文中返回。

6.1.2 互联网的域名结构

  • 域名:主机或路由器唯一层次结构的名字
    域可划分为子域,子域可以接着划分
    在这里插入图片描述

  • 命名规则:
    ①每一个标号不超过63个字符(数字和字母)
    ②不区分大小写
    ③除 - 号不能使用其他标点符号
    ④级别最低在左,级别最高在右
    ⑤完整域名不超过255个字符

  • 域名只是逻辑概念,不代表计算机所在的物理地点,便于人类使用,IP地址便于机器使用

  • 顶级域名分类:
    国家顶级域名:cn(中国),us(美国)
    通用顶级域名:
    在这里插入图片描述
    基础结构域名:只有一个,arpa,用于反向域名解析,又称反向域名

  • 我国二级域名划分为:类别域名和行政区域名

  • 域名空间结构
    在这里插入图片描述

1.1.3 域名服务器

  • 一个服务器负责管辖的范围叫做,区<=域
  • 每一个区的节点必须能够连通,每一个区设置相应的权限域名服务器
  • 不同的划分如下图:
    在这里插入图片描述
  • DNS分布式结构
    根域名服务器->顶级域名服务器->权限域名服务器
    在这里插入图片描述

(1) 根域名服务器
1,最高层次,最重要的域名服务器.
2,至今已有588个地点安装了根域名,但却只有13个不同的IP地址的域名
3,人们用前13个英语字母来表示某组根域名服务器。
4,一个根域名服务器由多个机器组成,且采用任播技术找到距DNS客户最近的一个根域名服务器。
5,不管是哪一个本地域名服务器,自己解析不了,就首先求助于根域名服务器
(2) 顶级域名服务器(TLD服务器)
(3) 权限域名服务器
(4) 本地域名服务器

  • 为了保证域名服务器的可靠性,将采用一个主域名服务器,多个辅助域名服务器进行数据保存。

域名解析过程
① 递归查询 (主机向本地域名的查询方式 || 本地服务器查询方式)
主机–>本地域名服务器(不知道)–变成DNS客户–>向其他根域名服务器发出请求。
② 迭代查询 (本地域名向根域名服务器的查询方式)
当根域名服务器收到本地服务器的请求报文时,要么给出IP要么告诉本地服务器“你下一步应该向谁去查询"
在这里插入图片描述
在这里插入图片描述

  • 高速缓存
    作用:用来存放最近查询过的域名以及域名映射信息
    例如:
    ① 本地域名服务器存放了某个正在查询地址的IP就可以进行直接访问
    ② 本地域名服务器存放了顶级域名服务器,那么本地域名服务器不再向根域名服务器进行查询,而是向顶级域名服务器进行查询。

1.2 文件传送协议

1.2.1 FTP概述

  • 文件传输复制整个文件:存取,修改都是在副本上进行的
  • 联机访问:多个程序对同一个文件进行存取。

与数据库系统不同的是,用户使用操作系统提供对远地文件进行访问的服务,就如同本地文件访问一样。
操作系统中的文件系统则提供对共享文件的透明存取,而透明存取采用原理处理本地文件的应用程序处理远地文件,不想需要对应用程序进行改动。

1.2.2 FTP的基本工作原理

  • 文件传输的问题

① 计算机存储数据格式不同
② 文件的目录结构与命名规定不同
③ 对于相同的文件存取功能,操作系统的命令不同
④ 访问控制方法不同

  • FTP采用的是TCP协议,主要功能是减少和消除不同操作系统下的文件不兼容性。

  • FTP由两大部分组成:
    (一个)主进程:负责接受新的请求
    (若干个)从属进程:负责处理单个请求

  • FTP主进程的工作步骤如下:
    (1) 打开端口21,是客户进程连接上
    (2) 等待客户进程发出连接请求
    (3) 启动从属进程处理客户进程发来的请求。从属进程处理客户进程的请求即终止,但从属进程在运行期间根据需要还可能创建其他的一些子进程。
    (4) 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的

在这里插入图片描述
① FTP拥有两个从属进程:控制进程,数据传输进程
② 控制进程负责控制连接,数据传输进程负责数据传输
③ 控制进程的端口为21,数据传输进程端口为20,所以连接时不会发送冲突

  • 如果有个很大的文件,但只需更改一小部分数据,该怎么办?

NFS允许应用进程打开一个远地文件,并在该文件的某一特定的位置上开始读写数据,所以NFS只需要复制大文件中的一小部分,并传输给目的服务器。

1.2.3 简单文件传送协议TFTP

  • TFTP 采用的是UDP数据报,因此TFTP拥有差错改正措施。

  • 只支持文件传输,不支持交互。

  • TFTP的优点和特点:
    ① 由于UDP环境,可以供多个机器下载
    ② 由于TFTP代码所占内存小,对于小型电脑,和无硬盘的设备十分重要
    ③ 每次传送数据报有512字节的数据,但最后一次可不足512字节
    ④ 支持ASII码或二进制传送
    ⑤ 可对文件进行读写
    ⑥ 使用很简单的首部

  • 端口号69,传输失败要重新发送PDU

1.3 远程终端协议TELNET

  • TELNET(终端仿真协议):一个简单的远程终端协议,用户可以通过TELNET远程连接到另一台主机上。
  • 网络虚拟终端NVT:TELNET定义的数据和命令应怎样通过互联网。
    在这里插入图片描述

1.4 万维网

1.4.1 万维网概述

  • 万维网是一个大规模的,联机式的信息储藏所
  • 通过链接将文本从一个节点传输到另一个节点
  • 超文本:一个文本中包含其他文本的链接,由多个地方的信息源组成
  • 超媒体:超文本的扩充,包含视频,音乐,图片等多媒体。
  • 万维网是一个分布式的超媒体系统
  • 非分布式:所有信息都停留在单个计算机的磁盘中。
  • 分布式:大量信息分布在整个参与管理的电脑集群中,每台可以对这些文档进行独立的管理,也无需向互联网进行通知。

万维网需解决的几个问题:
① 怎么样标志分布在整个互联网上的万维网文档?
答:统一资源定位符URL
② 用什么协议来实现万维网上的各种链接?
答:超文本传送协议HTTP
③ 怎么样使不同的创作者创作的页面在不同的主机上实现出来?
答:超文本标记语言HTML
④ 怎么样使用户能够很方便的找到所需信息
答:搜索引擎

1.4.2 统一资源定位符URL

1.4.2.1 URL格式

协议://主机:端口/路径

1.4.2.2 使用HTTP的URL

不介绍了。。。。

1.4.3 超文本传送协议HTTP

1.4.3.1 HTTP操作过程
  • HTTP是面向事务的,而面向事务则是进行一系列信息交换,且必须完整执行,要么 不进行,要么进行到底。
  • HTTP协议本身无连接,使用的是TCP连接,HTTP客户与服务器之间的交互由一个ASCII码串构成请求和一个通用互联网扩充组成。
  • HTTP协议是无状态的,不会记录用户访问页面的次数,以方便大量用户进行访问连接

在这里插入图片描述
在这里插入图片描述

  • 三报文握手前两部分完成后,第三次握手的报文就放入客户的http请求报文,然后服务器在发送响应报文
  • 由于一个网页就有很多数据资料需要传输,一次传输时间是2*RTT,于是HTTP采用持续连接,也就是TCP连接建立后会持续一段时间,用户可以持续发送HTTP请求和接受HTTP响应报文,减少了多次TCP连接的开销
  • 非流水线模式:非流水线模式的特点就是,每次发送一个请求,必须等到收到响应后,才会开始下一个请求,传输时间为RTT,减少了时间开销,但是TCP等待下一个请求时,连接会处于空闲状态,造成不必要的开销。
  • 流水线模式:流水线模式的特点是,一次性发完所有请求,发完所有请求的时间为RTT,极大提高了文档下载的效率
1.4.3.2 代理服务器
  • 代理服务器是一个网络实体
  • 代理服务器是互联网高速缓存:将用户访问的网页信息临时存放在本地磁盘中,再用户下一次访问该网页时,就可以不用再向主服务器请求,减少网络负载。

在这里插入图片描述
代理服务器步骤:
1,客户机发出HTTP请求,和代理服务器进行TCP连接
2,代理服务器查看是否已经存放该对象,若存放则返回对象给客户机
3,若没存放,则代理服务去作为客户机器与R1进行TCP连接,将请求发送给R1
4,R1接受到请求后,返回对象以及响应给代理服务器
5,代理服务器收到后,先将对象复制一份保存,并把对象与响应报文返还给客户机

1.4.3.3 HTTP报文
  • HTTP协议是面向文本
  • HTTP报文分以两类型三结构
    两类型:请求报文,响应报文
    三结构:
    开始行(区分请求报文和响应报文)
    首部行(说明浏览器,服务器信息)
    实体部分
    在这里插入图片描述

① 请求报文

开始行(请求行)格式:方法 URL 版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

② 响应报文

开始行(状态行)格式:版本 状态码 短语
在这里插入图片描述

1.4.3.5 在服务器上存储用户信息
  • Cookie

1.4.4 万维网文档

  • HTML 超文本标记语言:制作网页的标准语言
  • XML 可扩展标记语言:进行数据传输,标记电子文档等数据的允许用户对自己的标记语言进行定义的源语言。
  • CSS 层叠样式表:用于修饰HTML,装饰网页的
  • 动态万维网文档:静态文档的内容不会改变,而动态文档的内容数据会变化,浏览器发送请求给服务器,服务器运行另一个应用程序,并把控制转给应用程序,应用程序输出作为浏览器的响应。
  • CGI:通用网关接口,一种古老的网关程序,java的servlet与其类似,是一种脚本,用于处理协议,访问其他服务器资源,动态网页生成等,但由于每一次浏览器的访问都要开启一个CGI线程且新的网关程序的诞生,已经风中残烛,很少使用了,可能在c/c++的网页制作中还能有一些身影。
    在这里插入图片描述
  • 活动万维网文档:与动态文档的不同点在于,动态文档的数据内容是固定的,也就是说,想要实时获取更新的数据,必须要使浏览器屏幕显示连续更新,我们便来介绍两种技术
    服务器推送:服务器不断地更新文档,并将文档发送给浏览器。(工作全交给服务器)
    缺点:当有多个用户时,必须开启很多进程去运行服务器推送程序,且每次都要建立一个TCP连接,浪费了很多开销,增大了服务器压力
    活动文档: 每当浏览器需要请求一个活动文档时,向服务器发起请求,服务器收到请求后,返回一段活动文档程序副本,该程序副本可以与用户直接交互,并且持续的改变屏幕显示。(工作全交给浏览器)
    在这里插入图片描述

1.4.5 万维网的信息检索系统

  • 全文检索:利用搜索引擎搜索,像蜘蛛一样从一个网站的链接中爬取到另一个网站,把这些收集下来的信息全部存放在数据库,供用户使用,数量多,精确度低。
  • 分类目录检索:各个网站提交信息给此网站,经过人工审核,对网站进行分类,但是数量不全,精确度高。
  • 垂直搜索引擎:专门为某一部分专业人群使用。
  • 元搜索引擎:把检索请求交给多个独立的搜索引擎去搜索,并把结果进行统一的处理。
  • Google搜索技术的特点:
    对网页进行排名,当一个链接被其他链接指向的次数越多就说明该链接越重要权重越高。

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值