计网笔记:

计网笔记:

第一章:概述

互联网发展的三个阶段

第一阶段:从单个网络 ARPANET 向互联网发展的过程。 
1983 年, TCP/IP 协议成为 ARPANET 上的标准协议,使得所有使用 TCP/IP 协议的计算机都能利用互连网相互通信。
人们把 1983 年作为互联网的诞生时间。
1990年,ARPANET 正式宣布关闭。

第二阶段:建成了三级结构的互联网。 
它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。

第三阶段:逐渐形成了多层次 ISP 结构的互联网。 
出现了互联网服务提供者 ISP (Internet Service Provider)。
任何机构和个人只要向某个 ISP 交纳规定的费用,就可从该 ISP 获取所需 IP 地址的使用权,并可通过该 ISP 接入到互联网。
根据提供服务的覆盖面积大小以及所拥有的 IP 地址数目的不同,ISP 也分成为不同层次的 ISP:主干 ISP、地区 ISP 和 本地 ISP。


端系统通信的含义:主机A和主机B通信:实质:主机A的某个进程和主机B的某个进程进行通信!

互联网的核心部分主要靠路由器起作用,将收到的任务分组交换,转发到目的地;

电路交换和分组交换

计算机的数据有突发性,导致很多时候线路的利用率实际很低,传输数据的时间不到10%。

使用分组转发技术:首先将数据分成多段长度较短且固定的数据段,然后在每一段的前面(左边)加上首部,
每一个首部中都包含着地址信息(目标地址和源地址)等控制信息,然后通过互联网中的分组交换机发送(根据地址信息)到下一个交换机。过程中,每个分组独立地转发,最终达到同一个目的地。接收端接收到数据后,去掉首部,将分组还原成数据报文。
优点	所采用的手段
高效	在链路中传输时动态分配带宽,对链路是逐段占用的,占用率很低
灵活	分组独立地选择路由进行转发
迅速	以分组为单位传输,不用提前建立连接
可靠	可靠的网络协议和由多路由构成的分组转发网,保证了网咯的稳定性
缺点
时延 分组在各个节点转发需要排队,可能会造成时延
开销 每个分组都要设置首部,造成额外开销

路由器处理分组

把收到的分组先放入缓存(暂时存储),
查找转发表,找出某个目的地址应从端口转发出去
将分组通过对应端口转发。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GfGFrcAL-1614863457182)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210213.png)]

五层协议的流程

image-20210226103236478

TCP/IP的协议簇

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QCwhYPrM-1614863457186)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210339.png)]

第二章:物理层

物理层的任务

怎样在连接各种计算机的媒体上传输比特流数据

尽可能不同媒体之间传输和通信的差异。

确定与传输媒体相连的接口的一些特性

常用编码方式

- 不归零制:正电平代表 1,负电平代表 0。
- 归零制:正脉冲代表 1,负脉冲代表 0。
- 曼彻斯特编码:位周期中心的向上跳变代表 0,位周期中心的向下跳变代表 1。但也可反过来定义。
- 差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表 0,而位开始边界没有跳变代表 1。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m9IqU0k1-1614863457189)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210340.png)]

物理层下面的传输媒体

引导型
双绞线:最常用的传输媒体;通信距离较远,一般为几到十几公里。
同轴电缆:抗干扰性较好,被广泛用于传输较高速率的数据;其带宽取决于电缆的质量
		50   同轴电缆 —— LAN / 数字传输常用
		75 同轴电缆 —— 有线电视 / 模拟传输常用
光纤:可见光的频率很高,所以光纤传输系统的传输带宽远大于其他媒体!
非引导型: 短波通信;微波

第三章:数据链路层

数据链路层传输的数据是帧。

信道复用技术

频分复用: 所有用户在同一段时间内占有不同带宽
时分复用: 所有用户在不同时间占用相同的频带宽度
统计时分复用: 按需动态地分配时隙
波分复用: 就是光的频分复用,使用一根光纤来同时传输多个光载信号。
码分复用: 各个用户使用特殊挑选的不同码型,不会彼此干扰!这种系统发送的信号有很强的抗干扰能力。

数据链路层使用的信道

点对点通信;

广播通信

点对点

三个需要面临的问题

封装成帧

帧开始符SOH。帧截至符ETO

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WMPiIja0-1614863457191)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210343.png)]

透明传输:数据报中出现ETO字符,数据链路层错误地找到帧的边界;
解决办法:在数据报中出现的”ETO“||“SOH"前加入转义字符"ESC”。如果本来就有一个转义字符。接收端接受数据后删除插入的转义字符。

③差错检测

在传输过程中,可能会出现1变成0;传输错误的比特占所传输比特总数的比率称为误码率,误码率和信噪比有关。

  • 循环冗余检验 利用冗余码
  • 帧检验序列

CRC只能检验帧内部无差错,还可能出现帧丢失和帧失序等错误。所以CRC只能说是无差错接受,但还不是可靠传输。

点对点协议 PPP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fm82k0sc-1614863457192)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210344.png)]

PPP协议帧的格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUoN9qWe-1614863457193)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210345.png)]

PPP解决透明传输问题:同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。 当 PPP 用在异步传输时,就使用一种特殊的字符填充法。

字符填充 
将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x5E)。 
若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)。
若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。

零比特填充 
PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)。在发送端,只要发现有 5 个连续 1,则立即填入一个 0。
接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。

局域网

==可以将 802.3 局域网简称为“以太网”。==速率为10 Mbit/s

10BASE-T 以太网在局域网中的统治地位:这种 10 Mbit/s 速率的无屏蔽双绞线星形网的出现,既降低了成本,又提高了可靠性。 具有很高的性价比。

特点:
为一个单位所拥有;
一定地理范围内的站点数量有限;
具有广播功能,局域网上的主机可以共享同一个局域网下的各种硬件和软件资源;
增加了设备的灵活性和位置可调节性;
提高了系统的可靠性、可用性!

数据链路层的两个子层

逻辑链路控制层 LLC

媒体介入控制层MAC :与接入到传输媒体有关的内容都放在MAC层;

适配器

又称网络接口卡,或者网卡;网卡上有硬件地址,然后 封装成帧发送到局域网

/*
进行串行 /并行转换
对数据进行缓存
在计算机的操作系统上安装设备驱动程序
实现以太网协议
*/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uLt3d2Fo-1614863457194)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210346.png)]

为了通信的方便,以太网采用两种重要的措施;

使用较为灵活的无连接的工作方式,无连接的工作方式:

  • 不必提前建立连接,就可直接发送数据。

    对发送的数据帧不进行编号,也不要求对方发回确认。

  • 这样做是因为局域网的信道质量很好,因信道质量产生的差错的概率是很小的。

    以太网提供的服务是尽最大努力的交付,当目的站收到的错误的帧时就丢弃此帧。

使用曼切斯特编码来发送数据

  • 但是会占用两倍的基带信号。

碰撞

在数据发送碰撞后,总线上的数据会产生严重失真,无法得到有用的信息;所以总线上一旦出现碰撞,就要立即停止发送,免得继续占用网络资源,造成浪费。将会等待随机一段时间后重新发送。

碰撞发生的原因:A和B进行通信,A向B发生数据,如果在A发送的消息到达B之前B发送消息给A,这时B的载波监听检测不到A所发送的消息,导致A、B发送的帧都失效,所以在发送帧的期间有必要检测是否发生冲突。

所以在A发生数据帧的最多2t时间内就可以知道发送的数据是否遭到了碰撞,这段时间称为争用期。经过了争用期之后没有检测到碰撞才能确定这次发送没有发生碰撞。在争用期发送的数据的最短有效帧是64字节的。

CSMA/CD协议

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v3VYANay-1614863457195)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210349.png)]

10BASE-T 以太网在局域网中的统治地位:这种 10 Mbit/s 速率的无屏蔽双绞线星形网的出现,既降低了成本,又提高了可靠性。 具有很高的性价比。

集线器的特点
各个工作站使用的还是CSMA/CD协议,并且共享逻辑上的总线。
类似于一个多接口的转发器,工作在物理层。
内部镶嵌有专门的芯片,自适应地抵消了串音;

以太网的MAC层

MAC层的硬件地址:
	地址其实是某个接口的48位标识符。/*适配器*/在收到一个MAC帧后首先就要检查MAC帧的MAC地址,如果是发往本机的帧就收下。其中收到的帧包括,三种帧:单播,广播,多播

MAC帧的格式

最前面插入的8个字节是用来保证传输过程时的比特同步。其中类型的两个字节是用来标志IP层使用的是什么协议,以便把MAC帧数据交还给IP层。数据字段的最小长度是46个字节,因为以太网最短有效帧是64个字节,当不足46字节时应当填充适当的整数字节来保证MAC帧至少有64字节。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ohotOBST-1614863457196)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210350.png)]

帧间最小间隔 :一个站在检测到总线开始空闲后,还要等待 9.6 s 才能再次发送数据。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备

在数据链路层扩展以太网

早期使用的是网桥,现在使用的是以太网交换机。

网桥工作在数据链路层;
它根据MAC帧的目的地址对收到的帧进行转发和过滤。

1990 年问世的交换式集线器 (switching hub) 可明显地提高以太网的性能。
交换式集线器常称为以太网交换机 (switch) 或第二层交换机 (L2 switch),强调这种交换机工作在数据链路层。
以太网交换机实际就是一个多接口的网桥,一般工作在全双工方式下,并且能够并行联通多个接口。相互连通的主机都是独占传输媒体,无碰撞的传输数据。内部含有帧交换表,能暂时存储接收的地址。采用存储转发的方式,先把接受到的数据缓存,然后再进行处理。接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口,因而提高了帧的转发速度。
缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。交换机使用的是自主学习的算法来保存收到的地址。详情可以自行了解。自主学习算法无法应对环形链路,所以出现了生成树协议STP

总线以太网使用 CSMA/CD 协议,以半双工方式工作。以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是以全双工方式工作。但仍然采用以太网的帧结构。

交换机在局域网中的位置!虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息(即“广播风暴”)而引起性能恶化。

虚拟局域网的帧格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pjYZOS3u-1614863457197)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210352.png)]

第四章:网络层

网络层的任务:

网络层应该向运输层提供怎样服务,是面向连接还是无连接?
这个问题实质是在通信过程中可靠交付应当由谁来负责?网络还是端系统?

网络层提供的两种服务

一种观点:让网络来负责可靠交付;让网络使用面向连接的方式,通信之前先建立虚电路(逻辑上的连接)

另一种观点:网络提供数据报服务,网络层只提供尽最大努力交付,无连接的服务;每个分组不需要建立连接,独立发送。所以网络层不保证服务质量。

网际协议IP

包括:地址解析协议ARP,网际控制报文协议ICMP,网际组管理协议 IGMP

中间设备
物理层中继系统:转发器 (repeater)。
数据链路层中继系统:网桥 或 桥接器 (bridge)。
网络层中继系统:路由器 (router)。
网桥和路由器的混合物:桥路器 (brouter)。
网络层以上的中继系统:网关 (gateway)。

IP地址及其表示方法

IP地址就是给每一个连接再互联网上的主机分配一个世界范围是唯一的32位标识符。编址方法:分类的IP地址;子网的划分;构成超网(无分类编制方法);

IP地址的重要特点

  • 一个路由器至少应当有两个不同的 IP 地址。

  • 用网桥或者转发器连接起来的若干个局域网仍然为一个网络,都具有同样的网络号。

  • 所有类型的网络都是平等的,无好坏之分

地址解析协议ARP

​ 当我们知道一个及其的IP地址,我们可以通过ARP协议来找出其相应的硬件地址。每个主机上都有一个高速缓存表“< IP address;MAC address;TTL >”假如A向B发送数据,就会先再ARP的高速缓存中查看有无主机B的IP地址,如果有就将此硬件地址写入MAC帧,然后通过局域网转发出去。如果没有,则在本局域网上发送一个ARP请求分组,收到ARP请求响应后写入ARP的高速缓存表中,从后面的学习中,可以知道,当ARP的高速缓存表中没有找到B的IP地址并且本局域网中也没有找到,就==会由默认的地址转发出去,而不管究竟能否送达,因为网络层只尽最大努力交付!需要注意的是,ARP是解决同一个局域网上的主机或者路由器的IP和硬件地址的映射关系,若本局域网没有,则在交给路由器转发到下一个网络。

特点主机路由: 由厂家设置好的,比如你要邮寄东西到西安,你可以先邮寄到西安,,,等等之类的地址,会有一些特定的
默认路由: 默认路由乐意减少路由表占用的空间和搜索路由表所用的时间。这种方式在外部网络很少时作用才能十分明显。当一个目的地址不在该网络,就选择默认的一个路由器转发出去。

路由器的分组转发算法(工作原理):
 1.路由器从数据包中提取目的主机的IP地址D,通过这个地址得出其网络的地址。
  2.如果该网络和本路由器直接相连,则路由器直接把数据包交付给该目标。否则就是间接交付。
   3.如果路由器的特定路由刚好有和D相同的地址或者能达到N网络的路由,则把数据报转发给下一跳的路由。
   	4.如果以上都没有,就通过路由器中的默认路由,将数据报转发出去。
   	  5.如果连默认路由都没有,则会报告出错。
   	  
路由表的建立: 路由器刚开始工作的时候,路由表是空的。根据后面和相邻路由器的信息交换来实现信息同步及更新。

IP数据报

由数据和首部组成,首部前面的20个字节是所有IP数据报必须有的,各个字段的含义需要了解!!!

版本: 4位 指出IP协议所使用的版本二。

首部长度 4位 一个位可表示15个字节,所以最多可以表示60个字节。

区分服务 一般不适用 

总长度 占 16位 一位表示一个字节,最多有2^16个字节,即 65535 字节,最大传送单元MTU。 

标识(identification) ——占 16 位,
它是一个计数器,用来产生 IP 数据报的标识。

标志(flag) ——占 3 位,目前只有前两位有意义。
标志字段的最低位是 MF (More Fragment)。
MF  1 表示后面“还有分片”。MF  0 表示最后一个分片。
标志字段中间的一位是 DF (Don't Fragment) 。
只有当 DF  0 时才允许分片。 

生存时间——占8 位,记为 TTL (Time To Live),
指示数据报在网络中可通过的路由器数的最大值。

协议 指出数据包携带的数据使用的何种协议,以便子啊目的主机上能讲数据传给应用层。

首部检验和	——占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。 ==采用 16 位二进制反码求和算法==


子网和超网

子网也就是从主机号借若干位来扩展为子网号,IP地址 ::= {<网络号>, <子网号>, <主机号>} ;划分了子网的好处:

  • 减少了IP地址的浪费。
  • 可以让组织内部可以更加合理的分配
  • 更有利于维护和管理

因为有了子网,所以IP不能像很简单地辨别,所以产生了子网掩码。子网掩码的1表示IP地址中的网络号和子网号。剩下的0表示主机号。

一个求网络地址的列子。不同的子网掩码得出相同的网络地址。但不同的掩码的效果是不同的。

网际控制报文协议 ICMP

ICMP占8个字节,ICMP允许主机或者路由器报告差错情况和提供有关异常的信息。其分为差错报告报文和询问报文。

差错报告报文: 终点不可达,时间超过,参数问题,重定向路由。
询问报文: 回送请求和回答报文;时间戳请求和回答报文。

ICMP的应用: ping命令。使用了ICMP的回送请求和回答报文。
			tracerote命令,它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。

互联网的一些路由选择协议:

  • 内部网关协议 RIP
  • 内部网关协议 OSPF
  • 外部网关协议 BGP
RIP: 是一种分布式的,基于距离向量的路由选择协议。RIP要求网络中的每个路由器都要维护从他自己到其他每个目标网的距离记录。距离是指没经过一个路由器,距离就+1,RIP允许一个距离的最大值为15,如果大于15就可认为两个网络不可达。


特点: 仅和主机相邻的路由器交换信息;按固定的时间间隔来交换路由信息。
	  好消息传播得很快,话消息传播得很慢。当网络出现故障时,要较长时间才能将此信息传到所有路由器。因为要交替跟新报文,直到距离超过15才能认为不可达。
	  
OSPF协议是为了克服RIP协议的缺点而开发的。原理很简单,实现很难。
BGP: 不同系统(自治区域)的路由器之间交换路由信息的协议。

其他小的知识点太多了,有印象记住就好了,不想做笔记了。

第五章:运输层

运输层要达到的目标,实现可靠通信;从运输层来说,通信的两端是主机中的进程应用的端口;其中有两个协议:面向连接的TCP和无连接的UDP;由于一台主机中有多个应用进程同时分别和另一台主机的多个进程应用通信,所以运输层还有复用和分用的功能(即一个层两个协议)

端口

用16位来表示端口

常用端口 : 0-1023
登记端口 : 1024-49151,这个范围的端口要在IANA登记,防止重复
短暂端口 : 其他剩下的

UDP

​ 无连接服务,发送数据前不需要建立连接,运输单位为UDP报文。并且对方收到数据后不需要做出收到确认的回应。UDP虽然不保证可靠传输并且没有拥塞控制,但是某些情况下却是最高效的传输。

UDP的格式: 首部只有8个字节,支持1对多,1vs1,n vs n ;发送数据时一次发送一个报文,即对收到的数据不合并不拆分。但是一个报文太长或者太短都不合适。太长了,IP要分片发送;太短了,IP层利用率太低。

TCP

提供面向连接服务。传输的信道是全双工信道,不提供多播或广播服务。也正因为提供了可靠的服务,TCP协议有了额外的开销,包括确认连接,断开连接,以及较大的数据报头部。

TCP是根据当前网络的拥塞情况和接收方给出的窗口值发送数据的,所有不保证每次的数据块大小和初始数据一样,但保证收到的数据和发送方发出的一样。两端的应用端点就叫做套接字或者端口,端口号和IP地址拼接在一起就称为套接字。

eg:{socket1, socket2} = {(IP1: port1),(IP2: port2)}

可靠传输的原理

①停止等待协议:即发送一次分组后必须等待对方确认收到后才再次发送下一个分组;如果在发送过程中,M1的数据丢失或者没被收到,则等待超时计时器达到后重发数据。但是可能还有一种情况,即数据丢失或者数据迟到。这种情况B会采取两个行动:丢弃重复的数据;向A发送确认;

连续ARQ协议

发送方每收到一个确认,就把窗口向前移动一个分组的位置。发送方维持的发送窗口,它的意义是:位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了

累积确认:

比如确认收到序号为5的数据,表示到这个分组为止的所有分组都已正确收到了。

优点:容易实现,即使确认丢失也不必重传。
缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。

可靠的具体实现:

连接的两端都必须有两个窗口:发送窗口和接收窗口。tcp发送是基于序号的发送,通过确认收到的序号来保证可靠。

TCP报文的格式

需要特别注意的是其中几个字段:
序号,确认号,保留后的几个特殊字段,窗口,紧急指针

TCP的流量控制

流量控制实质是通过滑动窗口实现的,通过控制发送窗口和接收窗口的大小限制发送的数据大小。

问题1:当B向A发送了零窗口后,B的接收缓存有了更新,但是B不能主动提醒A(B每次和A的通信都是在接受到一个消息,在回复时附带通知A),但A的发送窗口为0后无法发送数据,B会一直等下去,A也在一直等待。解决:当其中一方收到0窗口后就开启一个持续计时器,超过这个计时器后,就会发送一个仅有一个字节的探测报文,若发送探测报文的一方还是收到0窗口就重新设置,若不是零窗口,就打破僵局。

问题2:可能双方都会糊涂,每次只是一个字节字节地通信,会有一些优秀的算法来解决,比如Nagle算法。

TCP的拥塞控制

分组的丢失是网络发生拥塞的征兆而不是原因。在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因。这点应特别引起重视。

开环控制,闭环控制。开环控制:在设计时把所有问题都考虑到,力求不出错。

闭环控制:当系统出现问题以后,将会动态自动调节系统的运行以解决出现的问题。

实际采用闭环控制,TCP的发送方维持一个拥塞窗口cwnd,其大小取决于当前网络的质量,真正的发送窗口值 = Min (接收方窗口值,拥塞窗口值);只要网络没有出现拥塞,那么拥塞窗口就增大一些,以便发送更多的数据;同样地,一旦出现问题就必须把窗口减小一些。

判断拥塞:

重传定时器: 现在的网络状态都很好,所有一旦出现重传就可以认为可能出现拥塞。

收到三个相同的ACK: 个别报文段会在网络中丢失,预示可能会出现拥塞(实际未发生拥塞),因此可以尽快采取控制措施,避免拥塞。

四种拥塞控制算法:

**当网络出现拥塞时:只要发送方确认网络出现拥塞,

​ 1.ssthresh = max (cwnd/2,2);

​ 2.cwnd = 1
​ 3.执行慢开始算法

迅速减少主机发送到网络中的分组数

慢开始:逐渐增大拥塞窗口的数值,同时设置一个上限,避免cwnd过大引起拥塞。
拥塞窗口 cwnd 每次的增加量 = min (N, SMSS),N是原来没被收到,但是刚刚收到了的字节数;SMSS自行设置;		当cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。


拥塞避免:即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长。拥塞窗口 cwnd 按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。



快重传:送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”)不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。


快恢复:当发送端收到连续三个重复的确认时,由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是执行快恢复算法 FR (Fast Recovery) 算法:
	

恢复算法 FR (Fast Recovery) 算法:

(1) 慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2 ;
(2) 新拥塞窗口 cwnd = 慢开始门限 ssthresh ;
(3) 开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hgfFegW9-1614863457198)(https://raw.githubusercontent.com/luffryfight/picgo/master/data/20210304210406.png)]

image-20210304201058284

TCP的连接管理

​ 三次握手,四次挥手。也就是建立连接需要三次交换TCP的报文,断开连接需要四次。

建立连接需要解决的问题:
	让通信的双方确认对方的存在。
	协商一些参数;
	对运输实体进行资源分配。

需要注意TCP的连接要经过2MSL(2*超时确认时间)后才真正释放掉。因为可能会出现,A发送的最后一次数据包丢失了,在B的超时计时器超时后会重新发送数据包,而A的最后一次超时计时器是2倍的。如果收到重复的数据则说明数据丢失了,就会重新发送最后一次确认。正常情况下,A发送最后一次请求后将不需要接收确认,直至超过2MSL后就断开连接。

200932942" style=“zoom:33%;” />

TCP的连接管理

​ 三次握手,四次挥手。也就是建立连接需要三次交换TCP的报文,断开连接需要四次。

建立连接需要解决的问题:
	让通信的双方确认对方的存在。
	协商一些参数;
	对运输实体进行资源分配。

需要注意TCP的连接要经过2MSL(2*超时确认时间)后才真正释放掉。因为可能会出现,A发送的最后一次数据包丢失了,在B的超时计时器超时后会重新发送数据包,而A的最后一次超时计时器是2倍的。如果收到重复的数据则说明数据丢失了,就会重新发送最后一次确认。正常情况下,A发送最后一次请求后将不需要接收确认,直至超过2MSL后就断开连接。

你可能感兴趣的:(学习,笔记)