目录
第一章 计算机网络和因特
1.ISP(因特网服务提供商)
2.速率相关性能指标
2.1 速率
2.2 带宽
2.3 吞吐量
3.时延
3.1时延
3.2时延带宽积
3.3往返时延RTT
3.4 利用率
4.协议层次和服务模型
4.1为什么要分层,分层要做什么
4.2正式认识分层结构
4.3五层参考模型传输过程
第一章章节检测
第二章 应用层
1.应用程序体系结构
2.因特网提供的运输服务
3.应用层协议
3.1 HTTP(超文本传输协议)
3.2 FTP(文件传输协议)
3.3 电子邮件协议
3.4 DNS(域名系统)
3.5 P2P应用
第二章章节检测
第三章 传输层
1.端口号与套接字
1.1 端口号
1.2 套接字
2.多路复用与多路分解
3.UDP
3.1 UDP报文段结构
4.可靠数据传输原理
4.1 完全可靠信道上的可靠数据传输(rdt1.0)
4.2 具有比特差错信道上的可靠数据传输(rdt2.0、rdt2.1、rdt2.2)
4.3 具有比特差错的丢包信道上的可靠数据传输(rdt3.0)
4.4 流水线可靠数据传输
端系统通过通信链路和分组交换机连接到一起,组成网络。网络和网络之间通过路由器相连,组成了因特网。因此,因特网是“网络的网络”
端系统通过ISP接入因特网。每个ISP是一个由多个分组交换机和多段通信链路组成的网络。不同的ISP为端系统提供了各种不同类型的网络接入
为了允许因特网用户之间互相通信,允许用户访问世界范围的因特网内容,这些低层ISP通过国家的、国际的高层ISP互联起来。高层ISP是由通过高速光纤链路互联的高速路由器组成。每个ISP都是独立管理的,运行IP协议,遵从一定的命名和地址习惯
定义:连接在计算机网络上的主机在数字信道上传送数据位数的速率
单位:b/s,Kb/s,Mb/s,Tb/s,
如果用字节表示,则是B/s,KB/s,MB/s,TB/s
1Byte=8Bit
在计算机网络中,指的是网络设备所支持的最高速度,单位同速率,是理想条件下最高速率
指的是单位时间内通过某个网络的数据总量
速率就是实际网速,带宽是理论网速(长城宽带警告),吞吐量是一个或多个设备的综合速率,比如说1000m宽带的路由器连着三部手机,每部手机都是10mb/s看电影,那么速率就是10mb/s,带宽是宽带的1000m,路由器吞吐量是30mb/s,即三者之和
名称 | 描述 | 计算公式 |
---|---|---|
发送时延 | 数据从主机到信道上所用的时间 | 发送的数据长度/发送速率 |
传播时延 | 数据在信道上传播所花费的时间 | 信道长度/电磁波在信道上传播的速率 |
排队时延 | 数据在路由器前等待前面数据处理的时间 | 无计算方式 |
处理时延 | 数据在路由器中处理需求的时间 | 无计算方式 |
使用高速链路(提高网速),只能减小发送时延,无法减少其他三个时延
公式:时延带宽积=传播时延x带宽
意思是链路上有多少比特的数据
发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延
RTT=传播时延x2+处理时间(有时可能直接忽略)
1.信道利用率
信道利用率=有数据通过时间/有+无数据通过时间
2.网络利用率
网络利用率=所有信道利用率加权求平均值
3.时延和利用率的关系图
利用率越高,延迟越大
(1)发起通信的计算机必须将数据通信的通路进行激活。
(2)要告诉网络如何识别目的主机。
(3)发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
(4)发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
(5)确保差错和意外可以解决。
第一章章节检测
1【单选题】下图描述的网络协议要素是
- A、
语法
- B、
语义
- C、
时序
- D、
格式
我的答案:C
2【单选题】在下图所示的采用“存储-转发”方式的数据报网络中,所有链路的数据传输速率为100 Mbps,分组大小为1 000 B,其中分组头大小为20 B。若主机H1向主机H2发送一个大小为980 000 B的文件,则在不考虑分组拆装时间和传播延迟的情况下,从H1发送开始到H2接收完为止,需要的时间至少是
- A、80ms
- B、80.08ms
- C、80.16ms
- D、80.24ms
我的答案:C
3【单选题】与大多数其他接入网络相比,拨号接入网络通常具有较高时延的是【 】。
- A、排队时延
- B、传播时延
- C、传输时延
- D、处理时延
我的答案:
4【单选题】与大多数其他接入网络相比,卫星接入网络通常具有高时延是【 】?
- A、排队时延
- B、传播时延
- C、传输时延
- D、处理时延
我的答案:
5【单选题】以下哪项通常不是电路交换的特征?
- A、呼叫设置
- B、资源预留
- C、存储转发
- D、资源闲置
我的答案:C
6【单选题】下列选项中,不属于协议要素的是
- A、层次
- B、语法
- C、语义
- D、时序
我的答案:A
7【单选题】
在分组交换网络中,主要取决于网络拥塞程度的时间延迟是
- A、 排队延迟
- B、节点处理延迟
- C、传输延迟
- D、传播延迟
我的答案:A
8【单选题】在一个CDMA网络中,某站点正接收另一码序列为(-1,1,1,-1,-1,-1,1,-1)的站点发送的数据,若该站点收到(-111-1-1-11-1 1-1-1111-11 1-1-1111-11 -111-1-1-11-1),则该站点收到的数据是
- A、1001
- B、0001
- C、0110
- D、1000
我的答案:A
9【单选题】在下图所示的采用“存储-转发”方式的分组交换网络中,所有链路的数据传输速率为100 Mbps,分组大小为1 000 B,其中分组头大小为20 B。若主机H1向主机H2发送一个大小为980 000 B的文件,则在不考虑分组拆装时间和传播延迟的情况下,从H1发送开始到H2接收完为止,需要的时间至少是
- A、 80.24 ms
- B、80 ms
- C、80.08 ms
- D、80.16 ms
我的答案:D
10【多选题】各用户可以使用相同频率载波发送信息的多路复用技术是
- A、TDM
- B、CDM
- C、FDM
- D、WDM
我的答案:AB
11【填空题】实现网络互连的传输媒介(如光纤、双绞线、微波等)称为_____
12【填空题】约定计算机网络通信实体间如何通信的是 协议
13【填空题】计算机网络向用户可以提供那些服务?
14【填空题】因特网的协议栈自上向下5个层次依次为: 应用层、运输层、网络层、链路层、物理层。
15【填空题】应用层的信息分组称为报文(message); 传输层 的分组称为报文段(segment);网络层的分组称为数据报(datagram);链路层分组称为 帧。
16【填空题】 路由器 处理网络、链路和物理层(第1层到第3层)。链路层交换机处理链路层和物理层(第1层到第2层)。主机处理所有五个层协议。
17【填空题】因特网的协议栈自上向下5个层次依次为:应用层、运输层、网络层、链路层、物理层。
18【填空题】传输层 的分组名字是报文段,数据链路层的分组名字是 帧 。网络层分组的名字是 数据报 。
19【判断题】“主机”和“端系统”没有区别。√
20【判断题】电路交换更适合实时数据流传输。√
21【判断题】FDM和TDM是电路交换网络中常用的资源分配机制。√
22【判断题】分组交换网络更容易出现拥塞和排队延迟。√
23【判断题】电路交换网络具有统计复用的优势。√
24【判断题】分组交换网络更容易出现拥塞和排队延迟。√
25【判断题】电路交换技术更适合突发数据传输的网络。×
26【判断题】采用10Mbps的HFC接入Internet可能比2Mbps的ADSL接入还慢。×
网络健壮性指的是P2P模型不容易坏掉,即使一个节点坏了也没问题,可以有其他节点代替
当创建一个新的因特网应用时,首先要做出的决定是选择UDP还是TCP,它们能为应用程序提供下列服务:
除此之外,TCP具有拥塞控制机制,拥塞控制不一定能为应用程序带来直接好处,但能对整个网络带来好处。UDP没有拥塞控制
使用TCP作为运输层协议
无状态协议:服务器向客户机发送被请求的文件时,并不存储任何关于该客户机的状态信息。假如某个特定的客户机在短短的几秒钟内两次请求同一个对象,服务器并不会因为刚刚为该用户提供了该对象就不再做出反应,而是重新发送该对象
连接类型:
如果使用非持久连接,将TCP握手第三步与一个HTTP请求报文结合起来发送,服务器接收请求后响应一个对象。因此,传输一个对象消耗2个RTT。(可以同时建立多个连接并行传输)但是,由于TCP连接会分配缓冲区和变量,大量使用非持久连接会给服务器造成压力
如果使用持久连接,则客户机接收到请求对象后服务器不会发送一个TCP连接关闭请求。这个连接服务于所有web对象的传输(流水线发送),如果经过一个时间间隔仍未被使用,则HTTP服务器关闭连接
- http1.0使用非持久连接
- http1.1使用持久连接
1)HTTP报文格式(请求报文)
“Host”:请求的目标主机
“Connection:close”:浏览器告诉服务器不希望麻烦地使用持久连接,而是要求服务器在发送完请求后关闭连接
“User-agent”:用户代理,即向服务器发送请求的浏览器的类型(服务器可以正确地为不同类型的用户代理发送相同对象的不同版本)
“Accept-language”:用户想得到该对象的语法版本
方法字段:
GET与POST的区别与联系:
计算机网络总结(1)——GET和POST 的区别_计算机get_想当厨子的程序媛的博客-CSDN博客
2)HTTP报文格式(响应报文)
“Connection:close”:告诉客户机在报文发送完后关闭了TCP连接
“Date”:报文生成、发送时的日期
“Last-Modified”:web对象最后修改的日期
状态信息:
Telnet:HTTP响应报文查看工具
3)cookie
用于识别用户,可能出于下列意图:
cookie包含4个组成部分:
4)web缓存
web缓存器也叫代理服务器,用于缓存web对象。用户可以配置其浏览器,使得所有HTTP请求首先指向web缓存器
如果web缓存器没有请求的对象,会与初始服务器直接建立一条TCP连接,web缓存器进一步发送HTTP请求,获取对象,当接收到对象后,首先在本地缓存,然后生成一个HTTP响应报文,发送给客户机(因此,web缓存器既是客户机,又是服务器)
web缓存器类似于内存与处理器之间的cache,它能从整体上大大降低因特网上的web流量,从而改善所有应用的性能
条件GET:web缓存器使用条件GET向web服务器确认某个对象是否已经被修改(不是最新的对象)。如果1)请求报文使用GET方法,2)并且包含一个If-modified-since:首部行,那么这个HTTP请求报文就是一个条件GET
如果相应对象未被修改,web服务器返回一个实体为空的响应报文(也就是说并没有包含请求对象),状态码为“304 Not Modified”
FTP使用两个并行的TCP连接来传输文件:
FTP客户机发起向FTP服务器的控制连接,然后在该连接上发送用户标识和口令、改变远程目录的命令。FTP服务器收到命令后,发起一个到客户机的数据连接,在该连接上准确地传送一个文件并关闭连接
有状态的协议:FTP服务器在整个会话期间保留用户的状态信息。服务器必须把特定的用户账号和控制连接联系起来
电子邮件系统有3个主要组成部分:用户代理、邮件服务器、简单邮件传输协议(SMTP)
1)多用途因特网邮件扩展(MIME)
普通的邮件报文主体为ASCII编码的数据,报文首部适合于发送普通的ASCII文本,但是不能充分满足多媒体报文或携带非ASCII文本格式(非英文字符)的报文需求。需要额外的首部行提供对发送这些文件的支持
MIME中包含2个支持发送上述文件的首部:
2)接收方邮件拉取
SMTP是一个”推协议“,不能用于接收方代理从邮件服务器上拉取邮件,拉取邮件需要使用POP3(第三版的邮局协议)、IMAP(因特网邮件访问协议)或HTTP
POP3(第三版的邮局协议):当用户打开一个到邮件服务器端口110上的TCP连接后,POP3就开始工作了,包含3个阶段
使用POP3拉取时,可以设置为”拉取并删除“或”拉取并保留“
IMAP(因特网邮件访问协议):POP3不能提供远程文件夹功能,IMAP可以,IMAP服务器把每个报文与一个文件夹联系起来,IMAP为用户提供了创建文件夹以及在文件夹之间移动邮件的命令。除此之外,还提供在远程文件夹中查询邮件、按指定条件查询匹配文件的命令。与POP3不同,IMAP服务器维护了IMAP会话的用户状态信息
基于web的电子邮件:当使用web浏览器发送接收邮件时,推送到邮件服务器和从邮件服务器拉取邮件使用的是HTTP协议
DNS运行于UDP之上,使用53号端口,它提供下列服务:
1)DNS服务器
集中设计(单一DNS服务器)具有下列问题:
所以DNS服务器使用分布式设计方案:
除此之外,DNS服务器还有本地DNS服务器。严格来说,本地DNS服务器不属于DNS服务器的层次结构,但对DNS层次结构很重要。一台主机具有一台或多台本地DNS服务器的IP地址,本地DNS服务器起着代理的作用,将请求转发到DNS服务器层次结构中
2)DNS查询步骤
递归查询:靠别人 根服务器,顶级服务器,权限服务器一样忙
在上图中
主机先是想本地域名服务器发送请求,如果查不到的话,
本地域名服务器向根域名服务器发送请求(找别人),如果还是查不到的话,
根域名域名服务器向顶级域名服务器发送请求(找别人),如果还是查不到的话,
顶级域名服务器向权限域名服务器发送请求(找别人)
可以看到每一次向下一个查询的服务器都变了,不是本地域名系统一个个去问,而是服务器自己一个个问下去迭代查询:靠自己 本地服务器最忙
在上图中
主机先是想本地域名服务器发送请求,如果查不到的话,
本地域名服务器去向根域名服务器发送请求,如果还是查不到的话,
根域名域名服务器去向对应的顶级域名服务器发送请求(本地服务器去找,根域名给目标顶级域名服务器的IP地址),如果还是查不到的话,
顶级域名服务器让主机去向权限域名服务器发送请求(本地服务器去找,顶级域名给目标权限域名服务器的IP地址)
可以看到这里是根系统服务器一个个挨个问的地址
DNS缓存:在查询链中,当一个DNS服务器接收到一个DNS回答时,DNS服务器能将回答中的信息缓存在本地存储,以便加速后序可能的相同查询。由于主机IP和主机名之间的映射不是永久的,DNS服务器会在一段时间后丢弃缓存(本地DNS服务器可以缓存TLD服务器的IP地址,因而允许直接绕过查询链中的根DNS服务器)
3)DNS记录和报文
所有DNS服务器共同存储着资源记录,资源记录格式如下:
(Name,Value,Type,TTL)
如果一台DNS服务器是某个特定主机名的权威DNS服务器,那么会有一条包含该主机名的类型A记录(不是权威服务器,也可能在缓存中包含A记录)
如果DNS服务器不是某个主机名的权威DNS服务器,那么会包含一条类型NS记录,还将包含一条类型A记录,提供了在NS记录的Value字段中DNS服务器的IP地址
DNS报文(查询和响应报文格式相同)
nslookup:从主机直接向某些DNS服务器发送DNS查询报文
注册域名
因特网名字和地址分配机构(ICANN)向各种注册登记机构授权,可以向这些机构申请注册域名:
4)DDos带宽洪泛攻击
如,攻击者向每个DNS根服务器连续不断地发送大量的分组,从而使得大多数合法的DNS请求得不到回答
DNS根服务器配置分组过滤器可以拦截这些分组,本地DNS服务器缓存了顶级域名服务器的IP地址,也能绕过DNS根服务器,防止攻击
不同于C/S架构,P2P架构中,每个主机既是客户机也是服务器,称作对等方,由于文件分布存储在多个对等方中,因此文件分发速度更快
u
:上传速率d
:下载速率F
:文件(比特)大小假设服务器需要将文件发送到N
个对等方:
1)如果使用C/S架构:
NF
比特数据,那么至少需要NF/us
的时间dmin
为下载速率最小的对等方,那么该对等方不可能在F/dmin
内获得文件那么有:Dcs ≥ max{NF/us,F/dmin}
,服务器调度传输可使下届作为实际分发时间,即:Dcs = max{NF/us,F/dmin}
。当N足够大时,分发时间取决于NF/us
,随对等方数量线性增加
2) 如果使用P2P架构:
F/us
dmin
为下载速率最小的对等方,那么该对等方不可能在F/dmin
内获得文件utotal = us + u1 + ... + un
表示系统总上传速率。由于最终每个对等方会有一个文件,那么总共需要上传NF
比特,那么所有数据的上传时间不可能小于NF/utotal
因此又:Dp2p ≥ max{F/us,F/dmin,NF/utotal}
,如果每个对等方接收到一个比特就重新分发一个比特,可使下届作为实际分发时间,即:Dp2p = max{F/us,F/dmin,NF/utotal}
。实际上,重新分发的是文件块而不是一个个比特
下图展示了在两种架构下分发时间与对等方数量的关系,可以看出使用P2P进行文件分发速度快,具有自我扩展性:
P2P中文件的搜索方式
第二章章节检测
1【单选题】在电子邮件系统中,邮件服务器之间进行邮件发送使用的协议是【 】。
- A、HTTP
- B、SMTP
- C、IMAP
- D、POP3
我的答案:B
2【单选题】在Socket套接字编程中,仅在TCP服务端程序中需要调用的Socket API函数是【 】。
- A、socket()
- B、bind()
- C、connect()
- D、accept()
我的答案:D
3【单选题】在电子邮件系统中,邮件服务器之间进行邮件发送使用的协议是【 】。
- A、HTTP
- B、SMTP
- C、IMAP
- D、POP3
我的答案:B
4【单选题】在Socket套接字编程中,仅在TCP服务端程序中需要调用的Socket API函数是【 】。
- A、socket()
- B、bind()
- C、connect()
- D、accept()
我的答案:D
5【单选题】假设某公司申请到netutopia.com域名,除其创建和配置对应的权威域名服务器外,还须将其权威域名服务器信息在DNS系统中的哪些服务器上进行设置【 】。
- A、某个根域名服务器
- B、所有的顶级域名服务器
- C、某个权威域名服务器
- D、仅.com顶级域名服务器
我的答案:D
6【单选题】在Socket套接字编程中,无论是服务端、客服端,还是TCP、UDP中,都会调用的Socket API函数是【 】。
- A、socket()
- B、bind()
- C、accept()
- D、connect()
我的答案:A
7【单选题】在OSI参考模型中,完成路由选择功能的层次是
- A、网络层
- B、传输层
- C、数据链路层
- D、物理层
我的答案:A
8【单选题】假设在存储-转发的分组交换网络中,主机A到达主机B的路径上有4段链路,其速率分别是R1=500kbps,R2=2Mbps,R3=1Mbps,R4=100kbps,则主机A向主机B发送信息的理想吞吐量是
- A、100kbps
- B、 500kbps
- C、1Mbps
- D、 2Mbps
我的答案:A
9【单选题】如果域名服务器无缓存,当采用迭代(iterative)方法解析另一网络某主机域名时,最后一个被查询的域名服务器是
- A、权威域名服务器
- B、根域名服务器
- C、顶级域名服务器
- D、本地域名服务器
我的答案:A
10【单选题】假设网络无差错、无数据丢失,基于HTTP 1.0,传输一个引用10个JPEG图像的Web页需要的时间为
- A、22个RTT
- B、11个RTT
- C、12个RTT
- D、21个RTT
我的答案:A
11【单选题】一个DNS资源记录(RR)为(hi.edu.cn, ml.hi.edu.cn, MX, 250),则hi.edu.cn是
- A、邮件服务器的别名
- B、邮件服务器的域名
- C、本地域名服务器的域名(
- D、权威域名服务器的域名
我的答案:A
12【单选题】服务器端套接字绑定的IP地址是
- A、INADDR_ANY
- B、PF_INET
- C、AF_INET
- D、SOCK_STREAM
我的答案:A
13【单选题】通告SMTP服务器端开始发送邮件内容的SMTP命令是
- A、DATA
- B、HELO
- C、MAIL FROM
- D、RCPT TO
我的答案:A
14【多选题】若用户1与用户2之间发送和接收电子邮件的过程如下图所示,则1、2、3阶段分别使用的应用层协议可以是
- A、HTTP、SMTP、POP3
- B、HTTP、SMTP、HTTP
- C、SMTP、SMTP、POP3
- D、SMTP、SMTP、HTTP
- E、SMTP、SMTP、SMTP
- F、HTTP、HTTP、POP3
- G、SMTP、HTTP、HTTP
我的答案:CD
15【多选题】下列Socket API函数中,可以在TCP服务器端调用的是
- A、socket()
- B、bind()
- C、listen()
- D、accept()
- E、sendto()
- F、connect()
我的答案:ABCD
16【填空题】对于两个进行网络通信进程,发起通信的进程是__________;等待连接的进程是服务器端。
我的答案:第一空: 客户端
17【判断题】假设用户请求由一些文本和3幅图像组成的Web页面。对于这个页面,客户将发送1个HTTP请求报文并接收4个HTTP响应报文。
我的答案:×
18【判断题】两个不同的Web页面(例如,www.mit.edu/research.html及www.mit.edu/students.html)可以通过同一个持续连接发送。
我的答案:√
19【判断题】HTTP响应报文决不会具有空的报文体。
我的答案:×
20【判断题】在浏览器和初始服务器之间使用非持续连接的话,一个TCP报文段是可能携带两个不同的HTTP服务请求报文的。
我的答案:×
21【判断题】在HTTP响应报文中的Date:首部指出了该响应中对象最后一次修改的时间。
我的答案:×
22【判断题】客户端的UDP套接字不能使用connect()函数。
我的答案:×
23【判断题】P2P方式实现文件分发比C/S方式快。
我的答案:√
通常在一台主机上能够运行许多网络应用程序。IP地址可以标识一台主机,端口号则是用来标识这台主机上的特定进程
端口号是一个16bit的数字,大小在0~65535之间,0~1023范围的端口号称为周知端口号,保留给周知的应用层协议
应用层协议 | 端口号 | 运输层协议 |
---|---|---|
DNS | 53 | UDP |
FTP | 21(控制连接),20(数据连接) | TCP |
TELNET | 23 | TCP |
DHCP | 67(服务器),68(客户端) | UDP |
HTTP | 80 | TCP |
HTTPS | 443 | TCP |
SMTP | 25 | TCP |
POP3 | 110 | TCP |
IMAP | 143 | TCP |
网络应用由成对进程组成,进程通过一个称为套接字的软件接口在网络上发生和接收报文
套接字是同一台主机内应用层与运输层之间的接口,也可称为应用程序和网络之间的应用程序编程接口
TCP套接字:(源IP,源端口,目的IP,目的端口)
UDP套接字:(目的IP,目的端口)
出于下列原因可能使用UDP:
可以在应用程序自身中构建可靠性机制来实现UDP应用的可靠数据传输
UDP能提供运输层最低限度的两个服务:差错检测、数据交付
UDP首部只有4个字段,每个字段2个字节,一共8个字节大小的首部
校验和:对报文段中的所有16比特字(包括数据部分,不包括校验和本身)的和相加(如有溢出会卷回)的结果取反就是校验和。在接收方,会将所有16比特字的和相加,如果分组无差错,这个和会是“1111-1111-1111-1111”(为了方便阅读,使用'-'分隔)
许多链路层协议提供了差错检测,UDP还需提供校验和的原因在于,不能确保所有链路都提供了差错检测。此外,即使报文段经链路正确地传输,当其存储在某台路由器的内存中时,也可能引入比特差错。既未确保逐段链路的可靠性,也未确保内存中的差错检测,因此UDP必须在端到端基础上在运输层提供差错检测
校验和方法需要相对小的分组开销。例如,TCP和UDP中的校验和只用了16比特。然而与常用于链路层的CRC(循环冗余检测)相比,他们提供相对弱的差错保护。运输层使用校验和而链路层使用CRC的原因是:运输层通常在主机中作为用户操作系统的一部分并用软件实现,因此采用简单而快速(如校验和)的差错检测方案是重要的。另一方面,链路层的差错检测在适配器中用专业硬件实现,它能快速地执行更复杂的CRC操作
假设底层信道是完全可靠的
更现实的底层信道模型是分组中的比特可能受损
引入了自动重传请求(ARQ)协议,ARQ还需要另外3种协议来处理存在的比特差错:
对于发送方,在等待ACK或NAK状态时,不能发送更多分组。类似于rdt2.0这种行为的协议被称为停等协议
rdt2.0的问题在于没有考虑到ACK和NAK分组可能受损的情况
处理受损ACK或NAK的办法是,如果收到受损的ACK或NAK,则重传一次分组,但是这样又无法确认是一次新的分组还是重传的分组。解决办法是在分组中添加一个序号字段,接收方只需检查序号即可确定收到的分组是否是一次重传。对于rdt2.0,只需1比特序号即可,从而得到rdt2.1
如果收到受损的分组,接收方也可以发送一个对上次正确接收分组的ACK,也能实现与NAK一样的效果,也就是rdt2.2
现在假定除了比特受损外,底层信道还会丢包,因此需要引入时间机制决定何时重传分组
rdt3.0功能正确,但由于是一个停等协议,所以性能很差。如果能在收到确认之前发送多个分组,可以大大提升性能
1)回退N步(GBN)
也被称为滑动窗口协议
丢弃无序分组的优点在于接收方缓存简单,需要维护的唯一信息就是下一个按序接收的分组的序号;缺点是对于丢弃的分组,随后重传也许会丢失或出错,因此甚至需要更多的重传
下图为窗口长度为4个分组的GBN运行情况:
2)选择重传(SR)
一个单个分组的差错就可能引起GBN重传大量分组,许多分组根本没有必要重传。随着信道差错率的增加,流水线可能被这些没有必要重传的分组填满
一个SR运行的例子:
对于SR而言,接收方窗口长度必须小于等于序号空间大小的一半,否则可能无法确认一个分组是重传还是初次传送