计算机网络
计算机网络体系结构
应用层、传输层、网络层、数据链路层、物理层
OSI参考模型中应用层又包括应用层、表示层、会话层;
TCP/IP体系结构中数据链路层+物理层=网络接口层;
分层优点:各层之间互相独立;灵活性好;结构上可分开;易于实现和维护;能促进标准化工作;
协议:包括语法、语义和同步;为网络中的数据交换而建立的规则、标准或约定称位协议;
应用层:次层协议定义的是应用进程通信和交互规则,如域名系统DNS协议、万维网应用HTTP协议、电子邮件SMTP协议;
传输层:主要有传输控制协议TCP和用户数据包协议UDP;
网络层:主要有IP协议和路由选择协议;
服务:在层次结构中,在协议的控制下,某层中的两个对等的实体可实现通讯,并使得本层能够向上层提供服务,同事这一层要实现通信需要下层提供的服务;
协议是水平的,服务是垂直的;
服务实体:任何可发送或接收信息的的硬件或软件进程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6kywbHPi-1679038864842)(en-resource://database/534:1)]
物理层
物理层解决的问题是如何在链接计算机的传输媒介上传输数据比特流(传输010101001100111)。
主要任务
确定传输媒体结构的一些特性:
机械特性:规定接口形状,引线数目;
功能特性:规定电压范围;
电气特性:规定高电压表示1,低电压表示0;
过程特性:规定连接建立好之后,各个相关部件的工作步骤。
相关术语
数据:对客观事物进行记载的符号及其组合。
信号:在涮书童道中传输信息的载体,它是数据的电器或电磁表现。信号有数字信号和模拟信号两种,数字信号的离散的,模拟信号是连续的。
信道:信息传输的媒介,一般表示一个方向的信息传输媒介;
比特率:是指每秒传送的比特数,单位为bps;
波特率:信号被调制以后在单位时间内的变化,即通信通道中信号改变状态或发生变法的次数,单位为Bd。
码元:用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号成为码元。
码元传输速率:每秒钟传送码元的数目,单位为波特率。
通信:在一点精确或者近似的再生另一点的信息。
信源:产生信号并要发送信号的称之为信源。
信宿:接收信号的称之为信宿。
数据通信方式
单项通信(单工):A->B(广播);
双向通信(半双工):x: A->B, y: B->A(对讲机);
双向同时通信(双工):A<->B(电话);
并行通信和串行通信
同步通信:有公共时钟,所有相关设备按照统一的传输周期进行通信。是一种双方按照约定好的时序联络的通讯方式。
异步通信:没有公共时钟,没有统一的传输周期,采用应答方式通信,具体的联络方式有不互锁,半互锁和全互锁三种。
传输介质
导引型传输介质(有线)
双绞线(网线):传输速率高成本低;但抗干扰能力差。
同轴电缆:抗电磁干扰性好;但传输速率不够高;主要用于频带传输。
光纤::通信容量大,传输距离远,抗干扰性好,保密性好;但脆弱易断,安装复杂。
多模光纤:可允许多条不同入射角度的光线在一条光纤内传播,衰耗较大。
单模光纤:仅允许一条入射角度的光纤在一条光纤内传播,衰耗较小。
非引导型传输介质(无线)
地波传播:低频信号,沿地球表面传播。
天波传播:教高频信号,利用电离层的反射传播。
视线传播:高频信号,点对点直线传播,中继传输。
物理层设备
中继器:对在线路上的信号具有放大再生功能,用于扩展局域网网段的长度(仅用于链接相同的局域网网段)。中继器放大数字信号,放大器放大模拟信号。
集线器:收到信号,放大信号,广播信号。安全性不足。
调制与编码
调制:数字到模拟;模拟到模拟;模拟到数字。
三种调制方法:调频、调幅、调相。
频带传输:现将基带信号调制成便于在模拟信道中茶UN数的模拟信号(频带信号),再将其在模拟信道中传输的方式称为频带传输。
带通信号:把基带信号经过载波调制后的信号,这种信号的频率范围被搬移到了较高的频段以便在信道中传输。
编码:把基带信号转化为另一种波形不同的基带信号,称之为基带调制或编码。
单级不归零码:为零时无法确认是否在发送信息,需要加同步时钟。
双级不归零码:长时间为0或1时,无法确认有几个或0,需要同步时钟。
双级归零码:可区分连续的0或1。
曼彻斯特编码:可区分连续的1.
信号的极限容量
奈奎斯特公式:C = 2W×log2 (M)
C为传输速率,单位为bps,W是理想无噪声信道的带宽(信道能够通过的频率范围),单位为HZ,M为码元的种类数。
香农公式:C=W log2(1+S/N)
S为信号平均功率,N为噪声平均功率,S/N为信噪比。
S/N通分贝作为度量单位有:S/N = 10log10(S/N)
数据传输方式
电路交换:建立连接(一条专有线路),数据传输,拆除连接。
优点:实时性高,延时小。
缺点:信道利用率低,尤其对于突发性传输更为明显。
报文交换:以报文为单位,在结点间以存储转发的方式传输。
优点:无需建立连接,只有当报文在转发时才占用相应的信道。
缺点:交换结点处需要缓存空间,报文需要排队,增加了时延。
分组交换:将报文拆分成若干组,在结点间以分组为单位进行存储转发。
优点:交换结点处缓存空间要求低,交换速度快,更加公平。
缺点:分组可能在节点处排队,存在一定是时延;分组携带的控制信息造成一定的开销。
数据报(属于分组交换网)
按照目的主机的地址进行路由选择。
特点:无连接,每个数据报作为一个独立的单位进行传输,数据报可能走不通的路径,成本低,效率高,不可靠,数据报可能不按顺序到达,或者丢失。
虚电路(属于分组交换网)
特点:两个同心逐记载同心之前会实现建立连接,一条逻辑上的链接。所有的分组都将沿着这条线路有序可靠的传输。这条链接并不独占,他也可以为其他用户进行服务。根据虚电路号,眼虚电路路径按序发送分组。可靠性高,有连接建立的过程,造成效率低;为了保证分组不丢失,需要较多的节点缓存。
虚电路 | 数据报 | |
---|---|---|
连接的建立 | 必须有 | 不要 |
目的地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有目的站的全地址 |
转发分组 | 在虚电路连接建立时进行,所有分组需按同一路由转发 | 每个分组独立选择路由转发 |
途径结点故障 | 所有通过了出故障的节点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 松狮按发送顺序到达目的站 | 到达目的站时可能不按发送顺序 |
端到端的差错处理与流量控制 | 由通信子网负责 | 由主机负责 |
数据链路层
使物理层更好地传输。
把数据从一个结点可靠的传输到相邻的另一个结点。
帧:帧头—数据报—帧尾。
结点----------链路----------结点。
组帧
SOH(帧头)----------帧定界----------EOT(帧尾)
SOH、EOT不可与数据报内容重复。
若内容中含有EOT、SOH,在EOT、SOH前加转义字符ESC。
差错控制
几种处理方法
发现错误要求重发
发现错误然后接收方纠正
发现错误然后返回给发送方纠正
发现错误然后丢弃
常用的校验码
校验码原理:增加冗余码。
奇偶校验码
奇校验码:整个校验码中1的个数为奇数
偶校验码:整个校验码中1的个数为偶数
海明码
设:数据有m位,校验码有p位;
则:校验码一共有2^p种取值;
若想通过校验码指出人以为上发生的错误必须满足:2^p - 1 >= m + p
海明码放在2次方项位置,代表与其1有相同位的数据码,按奇校验或偶校验规则填充海明码
循环冗余校验码
只可以查错,不能纠错。
介质访问控制
信道划分MAC协议
频分多路复用(FDMA):在频率上,将信道划分为多个子信道。
时分多路复用(TDMA):将信道按照时间划分为多个等长时间段,分配给不同用户使用。
波分多路复用(WDMA):通过传输多路不通波长的光线来实现多路复用。
码分多路复用(CDMA):从编码方式上进行划分,使得编码后的多种信号在同一信道中传输。
CDMA的实现
一、每个站被指派一个唯一的 m bit 码片序列
发送自己的 m bit 码片序列,代表发送1;
发送自己的该码片序列的二进制反码,代表发送0(理论推导时码片中0用-1代替);
二、相关性质
每个站分配的码片序列不仅必须各不相同,并且还必须相互正交;
任何一个码片向量和他自己规格化内积的只都是1;
一个码片向量和该码片反码的向量的规格化内积都是-1;
三、优缺点
优点:当负载重的时候,信道利用率低,因为可以多路复用;
缺点:当负载低的时候,信道利用率低,无数据传输;新到的划分带来额外开销。
随机MAC协议
ALOHA协议
方式1:先随机的直接发送,然后进行侦听,发现碰撞则重发。
方式2:规定时间段,在时间段开始的时候发送,然后侦听,发生碰撞后在下一时间段开始的时候以P概率重发。
载波侦听多路访问协议(CSMA)
在发送之前先侦听是否空闲再做决定
方式1:如果侦听到线路忙,则等待一段时间后再侦听(非坚持CSMA)。
方式2:如果侦听到线路忙,则继续侦听,知道信道空闲则发送(1-坚持CSMA)。
方式3:如果侦听到线路空闲,则在最近的一个时间段内以P概率发送(P-坚持CSMA)
方式1由于等一段时间后再侦听,可能会有信道空闲的时候不能立即发送的情况;方式2,当两个发送方同事侦听信道的时候,一旦信道空闲,两者同时发送,造成碰撞。
戴鹏桩检测的载波侦听多路访问协议(CSMA/CD)
在侦听到空闲时边发送检测碰撞,检测到碰撞后等待一个随机时间并重发。
碰撞检测:计算机边发送数据边检测信道上的信号电压大小。
当发生碰撞,信号叠加会使得电压增大,当某台计算机检测到的电压信号摆动值超过一定的阈值,就认为线路上至少有两台计算机在同时发送数据,产生了碰撞。
特点:在CSMA/CD协议下,只能进行半双工通信。每个站点发送数据后的一小段时间内,存在着遭遇碰撞的可能性。这种发送的不确定性是的网络的通信量远小于该网络的最高数据率。
受控接入MAC协议
轮询访问技术(集中式控制)
可保证无碰撞,但是有询操作开销,等待时延,单点故障等问题。
令牌传递技术(分散式控制)
令牌(一个帧)在信道中循环转动,站点取得令牌才可发送数据;当站点有数据发送时取得令牌,发送数据,数据发送完毕后, 释放令牌;当站点无数据的时候,不拿令牌,让其继续转动。
特点:每个节点不随机的争用信道,不会出现碰撞,是一种确定型的介质访问控制方法,在轻负载时,由于存在等待令牌时间,效率低,在重负载时,对各结点公平,且效率高。
局域网
在某一区域内由多台计算机互联而成的计算机组,使用广播信道通信。
数据链路层寻址于地址解析协议
MAC地址
每个接口对应一个MAC地址(路由器接口、网卡接口、交换机接口等),全球唯一,长度48位,前24位是厂商标识(由IEEE分配),后24位是接口标识。
地址解析协议ARP
根据本网内目的结点的IP地址获取其MAC地址的过程,采用的是查询/相应方式。
以太网
遵循IEEE802/3标准;
采用CSMA/CD访问控制协议;
几种以太网:
传统以太网
10Base-5(介质:同轴电缆,速率:10Mbps,基带传输,单段最大传输距离是500米)
10Base-T(介质:双绞线,速率:10Mbps,基带传输,单段最大传输距离是100米)
快速以太网
100Base-TX,100Base-T4(介质:双绞线,速率:100Mbps,基带传输,单段最大传输距离100米)
100Base-FX(介质:光纤,速率:100Mbps,基带传输)
千兆以太网和万兆以太网
交换机
避免碰撞
转发与过滤
根据MAC地址来有选择性的转发到目的接口,而不是广播方式发送。
根据目的MAC地址来查找交换表实现有选择性的转发。
交换机通过自学习的方式构建交换表
优点:
无碰撞,性能高;
支持不同链路的链接;
方便网络管理(交换机连接所有结点,可以通过交换机方便的管理结点)。
虚拟局域网(VLAN)
把局域网通过交换机进行逻辑上的分割,分割得到的每一个子网(虚拟局域网)是一个广播域。
分割是逻辑上的,跟主机的物理位置无关。
可以抑制广播风暴。
根据接口,MAC地址和上层协议类型来划分。
点对点链路协议
特点:两点之间的通信,一条链路,比广播链路容易控制。因此无需介质访问控制,无需明确的MAC寻址。
点对点协议——PPP
功能
身份验证;连接时协商IP地址;差错检测(不纠错);支持多种上层协议。
满足要求
简单(首要要求);组帧(封装成帧);多种网络层协议支持;差错检测(不纠错);检测连接状态;确定最大传送单元;网络层地址协商;数据压缩协商;支持多种链路类型;透明传输。
PPP组成
组帧方法:将数据包封装到串行链路的方法,支持异步串行和同步串行介质;
一个用来建立配置和测试数据链路连接的链路控制协议(LCP);
一套网络控制协议(NCP),允许在点到点的连接上使用多种网络层协议。
PPP协议帧格式
F+A+C+协议+信息部分+FCS+F
首部:F+A+C+协议
IP数据报:信息部分(不超过1500字节)
尾部:FCS+F
协议:知识信息部分具体是什么类型的信息
FCS:使用CRC的帧检验序列
PPP的字节填充
信息字段中出现0x7E,则将其比那位(0x7D,0x5E)两个相邻的字节;
若信息字段出现一个0x7D字节,则将其变为(0x7D,0x5D)两个相邻字节;
信息字段中出现ASCII码的控制字符(值小于0x20字符),则在该字符前边加一个0x7D字节。
PPP的位填充
发送端:只要发现主角字段中出现连续的5个1,就插入一个0,保证不会出现连续的6个1;
接收端:只要发现数据流中连续的5个1,就删除其最后一个1后边的0,还原成原来的信息。
网络层
虚拟互联网
IP协议
IP地址分为网络部分和主机部分
IP地址的类别
A类网路部分(0XXXXXXX):8位 主机部分:8位 8位 8位;
可指派的网络号有126个,全0表示“本网络”,网络号位127作为本地软件“换回测试”,本主机之间的进程通信使用。全1表示广播地址。
B类网络部分(10XXXXXX):8位 8位 主机部分:8位 8位;
123.1~191.255 每个网络中一共可以有65534个主机。
C类网络部分(110XXXXX):8位 8位 8位 主机部分:8位;
192.0.1~223.255.255 每个网络中一共可以有254个主机。
(D类(1110)多播;E类(1111)做研究用)
子网掩码
是一种用来指明一个IP地址的哪些位表示的是主机所在的子网,以及哪些位表示的是主机的位掩码。与IP地址做与运算得到网络号。
子网划分
是网络中的IP地址充分利用。
子网A:192.168.2.10000000
子网B:192.168.2.00000000
新的子网掩码:255.255.255.128
地址范围问题
192.168.2.00000000(网络地址)
192.168.2.11111111(广播地址)
范围:192.168.2.00000001~192.168.2.11111110
网络192.168.2.10000000的地址范围是:192.168.2.10000001~192.168.2.11111110
变长子网划分
多分几次,导致子网大小不同。
构造超网(CIDR)
右移子网掩码,划分子网
左移子网掩码,构造超网
IP地址与MAC硬件地址
IP地址不变,MAC地址变,IP决定终点,MAC地址决定下一条方向。
ARP协议
主机发送信息时将包含目标主机的IP地址的ARP请求广播到网络上的所有主机,并接受返回消息,以此确定目标主机的物理地址。
IP数据报
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1tQ6JESa-1679038864843)(en-resource://database/518:1)]
DHCP协议
为网络内的主机提供动态IP地址分配服务。
- 发现阶段:DHCP客户机寻找DHCP服务器的阶段;
- 提供阶段:DHCP服务器提供给客户及IP地址的阶段;
- 选择阶段:DHCP客户机选择某DHCP服务器提供的IP地址的阶段;
- 确认阶段:即DHCP服务器确认所提供的IP地址的阶段。
NAT
网络地址转换协议,使用私有地址访问互联网。
私有IP地址 | ||
---|---|---|
地址类别 | 地址范围 | 网段个数 |
A类 | 10.0.0.0~10.255.255.255 | 1 |
B类 | 172.16.0.0~172.31.255.255 | 16 |
C类 | 192.168.0.0~192.168.255.255 | 256 |
NAT关联表 | ||
---|---|---|
私有IP | 公网IP+端口号 | 目的IP+端口号 |
192.168.199.111 | 116.232.172.166:1026 | 116.232.171.166:80 |
192.168.199.112 | 116.232.172.166:1492 | 116.232.171.166:80 |
ICMP协议
IP数据报的交付是不可靠的,ICMP可提高IP数据报成功交付的机会。
ICMP协议的功能
确认IP包是否成功到达目的地址;
通知在发送过程中IP包被丢弃的原因。
ICMP报文格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sepeGSTR-1679038864843)(en-resource://database/520:1)]
类型:差错报告豹纹的询问报文。
差错报告报文有五中:终点不可到达、源点抑制、超时、参数问题、改变路由。
询问报文有两种:回送请求和回答、时间戳请求和回答。
差错报告报文格式
收到的IP数据报:IP数据报首部+IP数据报数据字段(8字节+…)
差错报告报文:首部+ICMP的差错报告报文(ICMP的前8字节+IP数据包首部+8字节)
不应发送ICMP差错报告报文的情况
对ICMP差错报告报文,不应再发送ICMP差错报告报文;
对第一个分片的数据报片的所有后续数据报薄片,都不发送ICMP差错报告报文;
对具有多播地址的数据报,都不发送ICMP差错报告报文;
对具有特殊地址的数据报(如127.0.0.0和0.0.0.0),都不发送ICMP差错报告报文。
ICMP的应用举例
PING:用力按测试两台主机之间的连通性。
PIG是应用层直接是网络层ICMP的一个例子(没有通过传输层的TCP或UDP)。
Tracert:用来跟踪一个数据报从源点到终点所走过的路径
路由算法
链路状态路由选择算法
每个路由器通过从其他路由获得链路状态信息构建出整个网络的拓扑图;
采用狄杰斯特拉算法计算最短路径;
距离向量路由算法
为求的路由间的最短距离,每个路由通只需要和相邻路由器交换距离信息。
Bellman-Ford方程
层次路由
将整个互联网视为一张扁平的网络,在同一层次标识所有路由器,并不现实。
路由表过大,查找效率过低。
自治系统
聚合部分路由为一个区域称之为自自治系统(AS);
同一AS内的路由器运行相同的路由协议;
不同的AS可以选择不同的路由协议;
自治系统间有自治系统间的路由协议;
自治系统内的路由器仅仅知道自己所在的自治系统的网络拓扑结构;
自治系统间的通讯通过网关路由器实现。
网关路由器:
一个AS内可能有一个或者多个网关路由器;
网关路由器位于AS边缘;
网关路由实现跨越AS的信息交换。
自治系统间的路由任务
AS1内某路由器收到一个目的地址在AS1外的自制系统的数据报:
- AS1自治系统内的网关路由器必须学习知道,哪些网络可通过其他自治系统达到,如:AS2、AS3;
- AS1自治系统内的网关路由器把自治系统中的路由信息告知AS1内其余路由器。
RIP协议
AS内部路由协议称之为IGP,RIP协议就是一种IGP。
- RIP基于距离向量路由算法实现;
- 用跳步数来度量距离大小,每条链路算一跳,并规定了最大跳步数位15;
- 每隔30秒与相邻路由交换一次距离向量信息,称之为通告;
- 每个通告中最多包含25个目的子网的最短距离信息;
- RIP报文使用运输层的用户数据报UDP进行传输。
链路失效判断和恢复
如果180秒没有收到通告,则判断邻居路由器故障或链路故障。
- 重新计算路由;
- 向邻居发送新的通告;
- 邻居可能需要再次向外发出通告。
注意:可能发生无穷计数问题。
定义最大度量来消除无穷计数
规定最大有效代价值为15跳,16跳为无穷。
(无穷计数问题不可完全避免)
OSPF协议
- 是一种开放的协议,公众可用;
- 基于链路状态路由算法实现;(通过分组扩散获得自制系统内的整个网络拓扑结构,用狄杰斯特拉算法求最短路径)
- OSPF报文直接封装到IP数据报中(与RIP不同);
- 每一个OSPF报文需要认证以后才被采纳,安全性高(相较于RIP);
- 同时采纳多条具有相同代价的路径(RIP只选择其中一条),这样有大量数据传播的时候,可以将报文分散到不同的路径上传输,实现负载均衡;
- 对于每条链路,可以针对不同的TOS(服务类型)设置不同的开销度量;
- 单播与多播同时适用,多播的时候需要一颗最小生成树,这个恰好在计算单播最短路径的时候可以获得;
- OSPF支持大规模AS再分层。
BGP协议
将Internet链接为一个整体的关键协议。
BGP发言人:BGP协议下信息交换的对象,一般选AS边界路由器做BGP发言人;
BGP协议下发言人之间的交换网络可达性信息,即到达某个网络需要经过一系列AS,也就是一个到达某网络的路径向量,这种信息交换仅仅发生在网络拓扑结构变化的时候。
BGP报文借助传输层的TCP传输。
路由器
路由器是实现异构网络互联的一种设备。
输入端口和输出端口
交换结构:基于内存的交换结构;基于总线的交换结构;基于网络的交换结构
路由处理器:上述三种结构中的处理,依赖于路由处理器实现。
传输层
传输层提供的服务
两个进程之间的端到端的逻辑上的通信。
位于网络层之上,需要网络层提供的服务,对网络层服务进行可能的增强。
发送方:将用户进程提交的消息分成一个或多个segment,并向下传给网络层;
接收方:用户接收到的segment再组装成消息,并向上提交给传输层。
多路分用和复用
多层的一个协议对应直接上层的多个协议,则需要复用/分用
分用:在接收端,传输层把接收到的来自于网络层的报文段正确的交付给不同进程。
复用:在发送端,传输层为来自多个进程的每一块数据,封装上正确的头部信息,产生相应的报文段交付给网络层发送。
分用的工作过程
主机接受到的IP数据报包含的信息
每个数据包携带源IP地址、目的地址。数据部分是一个传输层的段(segment),段中含有源端口号和目的端口号。
端口号:用于区分进程的编号,每个应用进程一个端口号。IP区分主机,端口号区分主机内的进程。
主机接收到的IP数据报之后做的事情
传输层协议提取IP地址和端口号信息,将IP数据报数据部分的传输层段发送给相应的进程。
UDP
UDP基于IP进行了一些扩展,主要有多路复用/分用和简单的错误校验;
UDP提供一种尽力而为的服务,因此UDP段可能在传输过程中丢失,或者乱序;
UDP提供一种无连接的服务,发送方和接收方不需要建立连接,每个UDP短的处理独立于其他段。
UDP的特点
UDP无需建立连接,延迟段;
UDP实现简单,由于无连接,因此不需要维护连接的开销;
由于协议简单,因此UDP头部短小,则有效数据部分就可以更长;
没用拥塞控制,因此上层应用可以更直接的掌控发送之间和速率。
UDP的使用环境
流媒体应用(这类应用可以容忍丢包,但是对速率敏感);
还可以用于DNS和SNMP。
UDP的段结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J6UL0dWQ-1679038864844)(en-resource://database/522:1)]
源端口号(2字节)+目的端口号(2字节)+长度(2字节)+校验和(2字节)= 首部(8字节)
UDP校验和计算
UDP计算校验和的方法和IP数据报首部检验和的方法相似。
不同的是:IP数据报校验和只校验首部,UDP是把首部和舒据部分一起都校验。
伪首部
源IP地址(4字节)+目的IP地址(4字节)+0+17(协议字段,17代表UDP)+UDP长度
发送方:
- 填上伪首部
- 全0填充校验和字段
- 全0填充数据部分
- 求和,此过程中遇到最高位进位则回卷
- 把求和取反码谢雨校验和字段
- 去掉伪首部
接收方:
- 填上伪首部
- 求和,此过程中遇到最高位进位则回卷
- 若结果全1则保留,否则丢弃或不丢弃,交给上层处理并附上差错报告
停止等待协议
每发送一个报文就停下来等待接收方确认,收到确认后才继续发下一个。
具体执行流程
发送方发送报文(报文经过了差错编码,且有序号),等待接收方确认;
若结束佛昂正确结束到报文,即差错检验无误,且序号正确,则接收报文段,并向发送方发送确认信息;否则丢弃报文并向发送方发送否认信息;
发送方如果确认信息,则继续发送下一个报文段,否则重新发送刚发送的报文段。
问题和改进
由于需要等待接收方的确认,所以效率很低。
改进方案:才有流水线协议,即允许发送方在没有收到确认之前连续发送多个分组。
为了实现流水线协议,需要增加分组序号范围,且发送方和接收方都必须缓存多个分组。
滑动窗口协议
发送方:
窗口左边以及窗口中蓝色的段代表已经发送且收到的段;
窗口右边代表目前不能发送的段;
红色的短代表目前可以发送但是还未发送的段;
黄色的段代表已经发送单还未收到的确认的段。
接收方:
窗口右边代表已经成功接受的段;
窗口右边代表还不能接受的段;
红色的段代表目前还可以接收的段;
黄色的段代表在窗口内已经成功接收并发送过确认的段;
两种典型的滑动窗口协议
后退N帧协议:接收方窗口等于1
选择重传协议:接收方窗口大于1
(接收方窗口等于1且发送方窗口也等于1,即为停止等待协议)
TCP(传输控制协议)
- 面向链接;
- 点对点的连接,每条TCP连接只能有两个端;
- 可靠交付;
- 全双功通信;
- 面向字节流;
- 有流量控制和拥塞控制。
对比UDP:无连接,不保证可靠交付,可一对一、一对多、多对一和多对多,无拥塞控制。
TCP段结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U5LhYc8F-1679038864844)(en-resource://database/526:1)]
TCP的连接管理
建立连接
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGgGA7NK-1679038864845)(en-resource://database/530:1)]
释放连接
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7rHql1zg-1679038864845)(en-resource://database/532:1)]
TCP的可靠传输
靠什么实现可靠传输?
校验、序号、确认、重传和计时器。
TCP的可靠传输基于滑动窗口协议,发送窗口大小动态变化
- 封装TCP报文(包含校验、序号等);
- 每发出一个报文后启动一个计时器(在规定时间内没有收到则重传);
- 通过检验和来检错;
- 通过序号进行排序,并可发现重复的段丢弃;
- 通过调整窗口大小进行流量控制。
TCP的流量控制
TCP连接建立时,双方都为之分配固定大小的缓冲空间;TCP的接收端只允许其另一端只允许发送端发送器缓冲区所能接纳的数据量。
具体做法:接收端在给发送端发送确认段的时候,通告接收窗口大小;发送端在发送数据报的时候,确保未确认段的数据总量不超过接收端通告的接收窗口大小,从而确保接收端不会发生缓存溢出。
TCP拥塞控制
网络拥塞是全网计算机共同造成的,二流量控制是两台计算机之间的事情。
出现拥塞的条件:对资源的需求综合大于资源总和。
拥塞控制的实现
发送方设定拥塞窗口cwnd。
发送方拥塞窗口cwnd控制原则:
- 只要网络无拥塞,拥塞窗口就再大些(数据发送快一点);
- 只要网络出现拥塞,拥塞窗口就变小一些(数据发送慢一点)。
慢开始算法
窗口从1开始变化,变化规律为1,2,4,8…
拥塞避免算法
窗口数:每次增加1。
慢开始算法和拥塞避免算法的配合应用
设置慢开始门限;
窗口数小于门限,使用慢开始算法;
窗口数大于门限,使用拥塞避免算法;
当窗口为最大值时,将门限设置为窗口最大值的一半;
再将窗口数重置为1,开始新一轮慢开始算法。
快重传算法
连续三次收到重复确认段,立即重传需要的段。
快恢复算法
将窗口变为门限大小。
慢开始、拥塞避免、快重传和快恢复配合应用
应用层
网络应用模型
客户/服务器结构(C/S)
服务器:提供不间断的服务;永久可访问的地址/域名;利用大量服务器实现可扩展性。
客户机:为服务器所提供服务的消费者;通常间断性访问服务器;可使用动态IP;客户机之间不直接通信。
点对点结构(P2P)
结点地位平等;没有永远在线的结点;任意节点之间可以直接通信;结点间歇性接入网络;结点的IP地址可变。
优点:高度可伸缩;缺点:难以管理。
DNS系统
负责域名到IP地址之间的映射。
具体服务:域名想IP地址的翻译;主机别名;邮件服务器别名
负载均衡:Web服务器
DNS是一个分布式分层的数据库,之所以采用分布式,而不是集中式,有以下几种考量:
单点失败问题、流量问题、距离问题和维护性问题。
层次域名空间
由一串用点分隔的字符名字组成的Internet上某一台计算机或计算机组的名称;是一种层次树状结构的命名方法。
域名服务器
域名解析
将域名映射为IP地址的过程。
递归查询方式
迭代查询方式
域名服务器
负责域名和与之相对应的IP地址的转换工作的服务器。
根域名服务器
根域名服务器是最高层次的服务器,全球一共13组。
地址查询时:本地域名服务器无法解析的时候便访问根域名服务器,跟域名服务器并不直接把待查询的域名直接转化为IP地址返回给本地域名服务器,而是告诉本地域名服务器下一步应该查询哪个顶级域名服务器。
顶级域名服务器(TLD服务器)
负责管理在旗下注册的所有耳机域名。
地址查询时:给出相应的回答,这个回答可能是最终IP地址查询结果,也可能是下一步应当查询的权限域名服务器的地址。
权限域名服务器
负责一个区域的域名服务器。当权限域名服务器还不能给出最终查询结果的时候,会转交给另一个权限域名服务器处理。
本地名服务器
是默认的域名解析服务器,域名解析请求先发给它,若不能解决,它作为代理,将查询请求转交给其他层级体系内的域名解析服务器处理。
不严格属于层级体系。
万维网(WWW)
一个大规模的联机式信息存储所。
体系结构
客户机和服务器通信,由服务器基于TCP协议传输HTTP报文,以供客户机浏览网页。
HTTP协议(超文本传输协议)
定义了浏览器如何想Web服务器发送请求,以及Web服务器如何响应。
基于TCP实现,通讯过程中需要建立连接。
HTTP链接
- 非持久链接:一个TCP连接只能发送和接受一个HTTP请求/应答,传输结束后释放TCP;
- 非持久并行链接:一个TCP连接只能发送和接受多个HTTP请求/应答,传输结束后释放TCP;
- 非流水持久链接:使用同一个TCP连接发送和接受多个HTTP请求/应答,传输结束后不释放TCP在一个请求实现后再申请另一个;
- 流水式持久链接:使用同一个TCP连接发送和接受多个HTTP请求/应答,传输结束后不释放TCP,不停申请请求。