目录
1、互联网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计为可靠的呢?
3、奈氏准则和香农定理的主要区别是什么?这两个定理对数据通信的意义是什么?
4、信噪比为S/N,为什么还要取对数10log10(S/N)?
1、说明用n比特进行编号时,若接收窗口的大小为1,则仅在发送窗口的大小≤2^n-1时,连续ARQ协议才能正确运行。
3、在标准以太网中,为什么说若有冲突,则冲突一定发生在冲突窗口内?或者说一个若在冲突窗口内没有发生冲突,则该不会再发生冲突?
4、一个以太网的速率从10Mb/s升级到100Mb/s,满足CSMA/CD冲突条件。为使其正常工作,需做哪些调整?为什么?
5、关于物理层、数据链路层、网络层设备对于隔离冲突域和广播域的总结。
3、为什么超时事件发生时cwnd被置为1,而收到3个冗余ACK时cwnd减半?
5、为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号?
6、假定在一个互联网中,所有链路的传输都不出现差错,所有结点也都不会发生故障。试问在这种情况下,TCP的“可靠交付”功能是否就是多余的?
一、计算机网络体系结构
主要介绍计算机网络体系结构的一些基本概念。重点在于掌握网络的分层结构(包括5层和7层结构),无其是ISO/OSI参考模型各层的功能,以及相关协议议、接口和服务等概念。还有那些有关网络的各种性能指标,特别是时延、带宽、速率等的计算。
1.1 计算机网络概述
1.1.1 计算机网络的概念
- 网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成
- 多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(互连网)。因此,互联网是"网络的网络(Network of Networks)"
- 因特网(Internet)是世界上最大的互连网络(用TCP/IP)
- internet是通用名词,互连的网络都叫internet
注:互连、自治、集合。
1.1.2 计算机网络的组成
1.1.3 计算机网络的功能
- 数据通信
- 资源共享
- 分布式处理
- 提高可靠性
- 负载均衡
1.1.4 电路交换、报文交换和分组交换
注:分组交换最重要。
1.1.5 计算机网络的分类
1.1.6 计算机网络的性能指标
注:
- 这里的处理时延是处理时延+排队时延的总和,不过通常这两个都忽略不计(除非另有说明)
- 注意发送速率的单位换算和分组长度之间的单位换算。
注:王道书中已经将最后一个丢包率删除。
1.2 计算机网络体系结构与参考模型
1.2.1 计算机网络分层结构
1.2.2 计算机网络协议、接口、服务的概念
注:OSI参考模型将原语分为四类:
- 请求(Request)
- 指示(Indication)
- 响应(Response)
- 证实(Affirmation)
协议是透明的。
1.2.3 ISO/OSI参考模型和TCP/IP模型
注:OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式但传输层支持无连接和面向连接两种模式。这个不同点常常作为考查点
OSI:都有->有 TCP:没有->都有(不可靠)
1.3本章小结及疑难点
1、互联网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计为可靠的呢?
传统电信网的主要用途是电话通信,并且普通电话机不是智能的,因此电信公司必须花费巨大的代价把电信网设计得非常好,以保证用户的通信质量。
数据的传送显然必须非常可靠。当初在设计ARPAnet时,很重要的讨论内容之一是:“谁应当负责数据传输的可靠性?”一种意见是主张应当像电信网那样,由通信网络负责数据传输的可靠性(因为电信网的发展历史及其技术水平已经证明人们可以将网络设计得相当可靠);另一种意见则坚决主张由用户的主机负责数据传输的可靠性,理由是这样可使计算机网络便宜、灵活。
计算机网络的先驱认为,计算机网络和电信网的一个重大区别是终端设备的性能差别很大。于是,他们采用了“端到端的可靠传输”策略,即在传输层使用面向连接的TCP协议,这样既能使网络部分价格便宜且灵活可靠,又能保证端到端的可靠传输。
2、端到端通信和点到点通信有什么区别?
从本质上说,由物理层、数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务,而传输层为网络中的主机提供端到端的通信。
直接相连的结点之间的通信称为点到点通信,它只提供一台机器到另一台机器之间的通信,不涉及程序或进程的概念。同时,点到点通信并不能保证数据传输的可靠性,也不能说明源主机与目的主机之间是哪两个进程在通信,这些工作都是由传输层来完成的。
端到端通信建立在点到点通信的基础上,它是由一段段的点到点通信信道构成的,是比点到点通信更高一级的通信方式,以完成应用程序(进程)之间的通信。“端”是指用户程序的端口,端口号标识了应用层中不同的进程。
3、如何理解传输速率、带宽和传播速率?
传输速率指主机在数字信道上发送数据的速率,也称数据率或比特率,单位是比特/秒(b/s)。更常用的速率单位是千比特/秒(kb/s)、兆比特/秒(Mb/s)、吉比特/秒(Gb/s)、太比特/秒(Tb/s)。
传播速率是指电磁波在信道中传播的速率,单位是米/秒(m/s),更常用的单位是千米/秒km/s)。
举例如下。假定一条链路的传播速率为2×10^8m/s,这相当于电磁波在该媒体上1us可向前传播200m。若链路带宽为1Mb/s,则主机在1us内可向链路发送1b数据。当t=0时,开始向链路发送数据;当t=1us时,信号传播到200m处,注入链路1比特;当t=2us时,信号传播到400m处,注入链路共2比特;当t=3us时,信号传播到600m处,注入链路共3比特。
从下图可以看出,在一段时间内,链路中有多少比特取决于带宽(或传输速率),而1比特“跑”了多远取决于传播速率。
注:
- 带宽(Bandwidth)在计算机网络中指数字信道所能传送的“最高数据传输速率”,常用来表示网络的通信线路传送数据的能力,其单位与传输速率的单位相同。
- 电磁波在光纤中的传播速率约为2.0×10^8m/s,在铜线中约为2.3×10^8m/s,在空气中是3.0×10^8m/s。
- 在通信领域中的速率和表示存储容量或文件大小时是不一样的。
二、物理层
这章超级爱考选择题啊。
2.1 通信基础
2.1.1 基本概念
- 基带传输:信道上传送的信号有基带信号和宽带信号之分。基带信号首先将数字信号1和0直接用两种不同的电压表示,然后送到数字信道上传输(称为基带传输);
- 宽带传输:宽带信号首先将基带信号进行调制,形成频分复用模拟信号,然后送到模拟信道上传输(称为宽带传输)。
从通信双方信息的交互方式看,可分为以下三种基本方式:
速率、波特和带宽:
2.1.2 奈奎斯特定理与香农定理
1、奈奎斯特定理(奈氏准则)
2、香农定理
注:
- 信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高
- 对一定的传输带宽和一定的信噪比,信息传输速率的上限就确定了。
- 只要信息的传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错的传输
- 香农定理得出的为极限信息传输速率,实际信道能达到的传输速率要比它低不少。
- 从香农定理可以看出,若信道带宽W或信噪比S/N没有上限(不可能),那么信道的极限信息传输速率也就没有上限。
2.1.3 编码与调制
注:
- NRZ编码的收发双方存在同步问题;
- 曼切斯特编码被广泛应用于标准以太网;每个比特需要两个信号周期,信号率是数据率的两倍,编码效率是50%。
- 差分曼切斯特编码被广泛应用于宽带高速网;
注:2倍
2.2 传输介质
2.2.1 双绞线、同轴电缆、光纤与无线传输介质
2.2.2 物理层接口的特性
注:机电功过
2.3 物理层设备
2.3.1 中继器
中继器【Repeater,也叫放大器】:
- 同一局域网的再生信号;
- 两端口的网段必须同一协议(无存储转发功能);
- 5-4-3规程: 10BASE-5以太网中,最多串联4个中继器,5段中只能有3个连接主机;
- 可以用来连接不同介质的局域网。
注:
- 若一个网络设备有存储转发功能,则认为它能够连接两个不同的协议。
- 放大器和中继器都有放大的功能,只不过放大器放大的是模拟信号,其原理是放大衰减的信号,而中继器放大的是数字信号,其原理是整形再生衰减的信号。
2.3.2 集线器
集线器:
- 同一局域网的再生、放大信号(多端口的中继器);
- 半双工,不能隔离冲突域也不能隔离广播域。
注:两个网段在物理层进行互连时要求数据传输速率要一致,但数据链路层网络协议要相同。
2.4 本章小结及疑难点
1、传输介质是物理层吗?传输介质和物理层的主要区别是什么?
传输介质并不是物理层。因为传输介质在物理层的下面,而物理层是体系结构的第一层,所以有时称传输介质为0层。在传输介质中传输的是信号,但传输介质并不知道所传输的信号代表什么。也就是说,传输介质不知道所传输的信号什么时候是1、什么时候是0。但是,物理层因为规定了电气特性,所以能够识别所传送的比特流。图2.9描述了上述概念。
2、什么是基带传输、频带传输和宽带传输?三者的区别是什么?
在计算机内部或在相邻设备之间近距离传输时,可不经过调制就在信道上直接进行的传输方式称为基带传输。它通常用于局域网。数字基带传输就是在信道中直接传输数字信号,且传输介质的整个带宽都被基带信号占用,双向地传输信息。最简单的方法是用两个高低电平来表示二进制数字,常用的编码方法有不归零编码和曼彻斯特编码。例如,要传输1010,低电平代表0,高电平代表1,那么在基带传输下,1010需要向通信线路传输(高、低、高、低电平)。
用数字信号对特定频率的载波进行调制(数字调制),将其变成适合传送的信号后再进行传输,这种传输方式就是频带传输。当采用远距离传输或无线传输时,数字信号必须用频带传输技术进行传输。利用频带传输,不仅解决了电话系统传输数字信号的问题,而且可以实现多路复用,进而提高传输信道的利用率。同样传输1010,经过调制,一个码元对应4个二进制位,假设码元A代表1010,那么在模拟信道上传输码元A就相当于传输1010。
借助频带传输,可将链路分解成两个或多个信道,每个信道可携带不同的信号,这就是宽带传输。宽带传输中所有的信道能同时互不干地发送信号。例如,对信道进行频分复用,划分为2个互不相关的子信道,分别在两个子信道上同时进行频带传输,链路容量就会大大增加。
3、奈氏准则和香农定理的主要区别是什么?这两个定理对数据通信的意义是什么?
奈氏准则指出,码元传输的速率是受限的,不能任意提高,否则接收端就不能正确判定码元所携带的比特数据(因为码元之间存在相互干扰)。奈氏准则是在理想条件下推导出来的。在实际条件下,最高码元传输速率要比理想条件下得出的数值小很多。
值得注意的是,奈氏准则并未限制信息传输速率。要提高信息传输速率,就必须使每个码元能够携带许多比特的信息。但是,码元所载的比特数确定后,信道的极限数据率也就确定了。香农定理给出了信息传输速率的极限,即对于一定的传输带宽(单位为Hz)和一定的信噪比,信息传输速率的上限是确定的,这个极限不能突破。要想提高信息传输速率,要么设法提高传输线路的带宽,要么设法提高信道的信噪比,此外没有其他任何办法。
香农定理告诉我们,要得到无限大的信息传输速率,只有两个办法:要么使用无限大的传输带宽(这显然不可能),要么使信号的信噪比无限大,即采用没有噪声的信道或使用无限大的发送功率(这显然也不可能)。
注:奈氏准则和香农定理中“带宽”的单位都是Hz
4、信噪比为S/N,为什么还要取对数10log10(S/N)?
- 数字形式表示,如噪声功率为1,信号功率为100,信噪比为100/1=100
- 同样还是上面这些数字,以分贝形式表示的信噪比为10logioS/M=10logo100=20dB。
二者在数值上等价。区别在于,前者没有单位,后者必须加dB(分贝)。采用分贝表示的原因:很多时候,信号要比噪声强得多,如信号比噪声强10亿倍,若用数值表示,则1后面有9个0,很容易丢失0若用分贝表示,则仅为90dB,因此要简单得多,且不容易出错。分贝对于表示特别大或特别小的数值极为方便,在通信领域中用途很广。
三、数据链路层
3.1 数据链路层的功能
封装成帧、透明传输、差错检测
在不可靠的物理介质上提供可靠的传输。
Other Fuction:物理地址寻址、流量控制、数据的重发等。
信道:
- 点对点(1对1):PPP
- 广播信道(1对多):
- CSMA/CD(有线局域网)
- CSMA/CA(无线局域网)
局域网将数据链路层划分为两个子层:逻辑链路控制LLC子层和介质访问控制MAC子层,从而使LAN体系结构能适应多种传输介质。因此,对各种类型的局域网来说,其物理和MAC子层需要随着所采用介质和访问方法的不同发生改变,而这些不同对于LLC子层来说都是透明的。
- LLC作为数据链路层的一个子层,使用MAC子层为其提供的服务,通过与对等实体LLC子层的交互为它的上层网络层提供服务。
- MAC子层是用来实现介质访问控制的网络实体。MAC子层主要功能包括数据帧的封装/拆封、帧的寻址与识别、帧的接收与发送、链路的管理、帧的差错控制及MAC协议的维护等。
3.1.1 数据链路层所处的地位
3.1.2 为网络层提供服务
3.1.3 链路管理
3.1.4 封装成帧与透明传输
1、封装成帧
封装成帧是指在一段数据的前后分别添加首部和尾部,构成帧,是数据链路层的数据传送单元。长等于顿的数据部分长度加上首部和尾部的长度。首部和尾部中含有很多控制信息,它们的一个重要作用是确定的界限,即定界。接收方能从接收到的二进制比特流中区分出的起始与终止,即同步。如在HDLC协议中,用标识位F(01111110)来标识的开始和结束在通信过程中,检测到标识位F即认为其是的开始,然后一旦检测到标识位F即表示的结束。HDLC标准格式如图所示。为了提高帧的传输效率,应当使的数据部分的长度尽可能地大于首部和尾部的长度,但随着帧长的增加,传输差错发生的概率也随之提高,发生差错时重传的代价也越大,因此每种链路层协议都规定了顿的数据部分的长度上限,即最大传送单元。
2、透明传输
不论所传的数据是什么样的比特组合,都能够按原样无差错地在这个数据链路上传输。
3.1.5 流量控制
3.1.6 差错检测
3.2 组帧(封装成帧)
发送方依据一定的规则将网络层递交的分组封装成帧(也称组帧)。数据链路层之所以要将比特组合成以帧为单位传输,是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率。组帧主要解决顿定界、同步、透明传输等问题。实现组帧的方法通常有以下4种。
3.2.1 字符计数法
这种方法最大的问题在于若计数字段出错,即失去边界划分的依据,则接收方就无法判断所传输的结束位和下一的开始位,收发双方将失去同步,造成灾难性后果。
3.2.2 字节填充法(转义字符)
注意,转义字符是ASCII码中的一个字符,而不是"E","S","C"三个字符的组合。
3.2.3 零比特填充法
注:零比特填充法很容易由硬件来实现,性能优于字节填充法。
3.2.4 违规编码法
3.3 差错控制
实际通信链路都不是理想的,比特在传输过程中可能产生差错,1可能变成0,0也可能变成1,这就是比特差错。比特差错是传输差错中的一种,本节仅讨论比特差错。
通常利用编码技术进行差错控制,主要有两类:
- 自动重传请求(AutomaticRepeatreQuest,ARQ)方式:当接收方检测到差错时,就设法通知发送方重发,直到收到正确的数据为止。
- 前向纠错(ForwardErrorCorrection,FEC)方式:接收方不但能发现差错,而能确定错误的位置并加以纠正。
因此,差错控制又可分为检错编码和纠错编码。
3.3.1 检错编码
1、奇偶检验码
2、循环冗余码
注:学有余力的时候再看。
3.3.2 纠错编码(海明码)
1、确定海明码的位数
2、确定检验位的分布
3、分组以形成检验关系
4、检验位取值
5、海明码的检验原理
注:
- 海明校验码也只能检验一位的错误。(达咩)
- 海明码“纠错”d位,需要码距为2d+1的编码方案;
- 海明码“检错”d位,需要码距为d+1的编码方案;
3.4 流量控制与可靠传输机制
3.4.1 流量控制与滑动窗口机制
3.4.2 可靠传输机制
1、停止-等待协议(SW)
注:NAK是否定应答或者非应答的缩写,全拼为 Negative Acknowledgment, 没有应答。它是一个用于数字通信中确认数据收到但是有小错误的信号。
后续这两种都叫做连续ARQ:
- 连续ARQ(Automatic Repeat reQuest)协议指发送方维持着一个一定大小的发送窗口,位于发送窗口内的所有分组都可连续发送出去,而中途不需要等待对方的确认。这样信道的利用率就提高了。而发送方每收到一个确认就把发送窗口向前滑动一个分组的位置。
- 接收方一般都是采用积累确认的方式。这就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示:到这个分组为止的所有分组都已正确收到了。
- 积累确认有优点也有缺点。优点是:容易实现,即使确认丢失也不必重传。但缺点是不能向发送方反映出接收方已经正确收到的所有分组的信息。
2、回退N帧协议(GBN)
3、选择重传协议(SR)
注:
- GBN的发送窗口大小范围是2^n-1;
- SR的发送窗口大小范围是2^(n-1);
- 在SR协议中,若用nbit对帧编号,则发送窗口和接受窗口的大小关系是1<WR<=WT,此外还应该满足WR+WT<=2^n;
- 三个协议的信道利用率排行(从小到大)为:SW->SR->GBN
3.5 介质访问控制
介质访问控制所要完成的主要任务是,为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制(MediumAccessControl,MAC)子层。
3.5.1 信道划分介质访问控制
- 信道划分介质访问控制:将使用同一传输介质的多个设备的通信隔离开来,把时域和频域资源合理地分配给这些设备。信道划分介质访问控制通过复用技术实现。
- 复用:是指在发送端把多个发送方的信号组合在一条物理信道上进行传输,在接收端把收到的复用信号分离出来,并发送给对应的接收方。当传输介质的带宽超过传输单个信号所需的带宽时,通过在条介质上传输多个信号,还能提高传输系统的利用率
1、频分复用(FDM)
2、时分复用(TDM)
Pro版——统计时分复用(STDM)
注:与同步TDM相比,统计TDM需要解决的特殊的问题是封装成帧和同步。
3、波分复用(WDM)
波分复用其实就是光的频分复用。经过光调制,分别将光载波变换到不同波长。这些光波经过光复用器就可以在一根光纤中传输。到达终点后用光分用器将不同波长的光进行还原得到信息光信号传输一段距离后会衰减,对衰减的光信号必须进行放大才能继续传输。
4、码分复用(CDM)
- 码分复用(CodeDivisionMultiplexing,CDM)是采用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同,它既共享信道的频率,又共享时间。
- 实际上,更常用的名词是码分多址(CodeDivisionMultipleAccess,CDMA),其原理是将每个比特时间再划分成m个短的时间槽,称为码片(Chip),通常m的值是64或128。
3.5.2 随机访间介质访问控制
在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户都能根据自己的意愿随机地发送信息,占用信道的全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧冲突(也称碰撞),导致所有冲突用户的发送均以失败告终。为了解决随机访问发生的冲突,每个用户需要按照一定的规则反复地重传它的,直到该顿无冲突地通过,这些规则就是随机访问介质访问控制协议,其核心思想是:胜利者通过争用获得信道,进而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。
可见,若采用信道划分机制,则结点之间的通信要么共享空间,要么共享时间,要么共享空间和时间:而若采用随机访问控制机制,则结点之间的通信既不共享时间,又不共享空间。因此,随机介质访问控制实质上是一种将广播信道转换为点到点信道的机制。
1、ALOHA协议
2、CSMA协议
3、CSMA/CD协议
先听先发、边听边发、冲突停发、延迟重发。
适用于总线形网络或半双工网络环境。
注:FCS是Frame Check Sequence的缩写,即帧校验序列。在计算机网络数据链路层的协议数据单元(帧)的尾部字段中,添加了4个字节的循环冗余校验码,用于检查数据传输中数据的正确性。
注:重传16次还没传上去的话就生气啦,直接丢掉,然后向高层报告。
注:96
比特时间是指发送96
比特所需要的时间,也称为帧间最小间隔。其作用是是接收方可以检测出一个帧的结束,同时也使得其他站点都能有机会平等竞争信道并发送帧。
4、CSMA/CA协议
为了尽量避免冲突,802.11标准规定,所有站完成发送后,必须等待一段很短的时间(继续监听)才能发送下一顿。这段时间称为间间隔(InterFrameSpace,IFS)。间间隔的长短取决于该站要发送的的类型。802.11标准使用了下列三种IFS。
- SIFS(短IFS、28us):最短的IFS,用来分隔属于一次对话的各,使用SIFS的类型有ACK、CTS、分片后的数据顿,以及所有回答AP探询的等。
- PIFS(点协调IFS):中等长度的IFS,在PCF操作中使用。
- DIFS(分布式协调IFS、128us):最长的IFS,用于异步竞争访问的时延。
802.11标准还采用了虚拟载波监听机制,即让源站将它要占用信道的持续时间(包括日的站发回ACK所需的时间)及时通知给所有其他站,以便使所有其他站在这段时间内都停止发送,这样就大大减少了冲突的机会。“虚拟载波监听”表示其他站并未监听信道,而是因收到了源站的通知才不发送数据,这种效果就像是其他站都监听了信道。
CSMA/CD与CSMA/CA区别:
相同点:
都属于CSMA的思路,其核心是先听再说,即需要先监听信道,若空闲,再发送数据。
不同点:
- 传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】
- 载波检测方式不同:因传输介质的不同,CSMA/CD与CSMA/CA的检测方式也不同。
- CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随之发生变化;
- 而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
- CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有限的重传。
3.5.3 轮询访问:令牌传递协议
3.6 局域网
3.6.1 局域网的基本概念和体系结构
局域网(LocalAreaNetwork,LAN)是指在一个较小的地理范围(如一所学校)内,将各种计算机、外部设备和数据库系统等通过双绞线、同轴电缆等连接介质互相连接起来,组成资源和信息共享的计算机互连网络。主要特点如下:
- 为一个单位所拥有,且地理范围和站点数目均有限。
- 所有站点共享较高的总带宽(即较高的数据传输速率)。
- 较低的时延和较低的误码率。
- 各站为平等关系而非主从关系
- 能进行广播和多播。
决定区域网的主要因素为:网络拓扑、传输介质、介质访问控制方法(最重要)
常见的局域网拓扑结构图主要有以下4大类:
三种特殊的局域网拓扑实现如下:
- 以太网(日前使用范围最广)。逻辑拓扑是总线形结构,物理拓扑是星形结构。
- 令牌环(TokenRing,IEEE802.5)。逻辑拓扑是环形结构,物理拓扑是星形结构。
- FDDI(光纤分布数字接口,IEEE802.8)。逻辑拓扑是环形结构,物理拓扑是双环结构。
3.6.2 以太网与IEEE802.3
注:在上述标准中,10指标准的速率为10Mb/s;Base指基带以太网;早期标准Base之后的5或2指单段最大传输距离不超过500m或185m,Base之后的T指双绞线,F指光纤。
- 目的地址:6字节,在局域网上的目的适配器的MAC地址。
- 源地址:6字节,传输到局域网上的源适配器的MAC地址。
- 类型:2字节,指出数据字段中的数据应交给哪个上层协议处理,如网络层的IP协议。
- 数据:46~1500字节,承载上层的协议数据单元(如IP数据报)。以太网的最大传输单元是1500字节,若IP数据报超过1500字节,则必须将该IP数据报分片。此外,由于CSMA/CD算法的限制,以太网必须满足最小长度是64字节,当数据字段的长度小于46字节时,MAC子层就在数据字段的后面加一个整数字节的填充字段,以确保长不小于64字节。
- 检验码(FCS):4字节,检验范围从目的地址段到数据字段,算法采用32位CRC码,不但要检验MAC的数据部分,而且要检验目的地址、源地址和类型字段,但不检验前导码。
注:以太网不需要结束定界符,因为当以太网传送时,各之间必须有一定的间隙。因此,接收方只要找到开始定界符,其后面连续到达的比特流就都属于同一个。实际上,以太网采用了违规编码法的思想,因为以太网使用曼彻斯特编码,所以每个码元中间都有一次电压的跳变。发送方发完一个后,发送方网络接口上的电压不再变化,这样接收方就能很容易地找到的结束位置,这个位置往前数4字节就是FCS字段,于是就能确定数据字段的结束位置。
- 100BASE-T以太网:
- 100BASE-T是在双绞线上传送100Mb/s基带信号的星形拓扑以太网,它仍然使用CSMA/CD协议,又称快速以太网。100BASE-T既支持全双工方式,又支持半双工方式,可在全双工方式下工作而无冲突发生,因此在全双工方式下不使用CSMA/CD协议。
- 100BASE-T的MAC格式仍然是802.3标准规定的格式。保持最短长不变,但将一网段的最大长度减小到100m。帧间最小间隔从原来的9.6us改为0.96uS。
- 吉比特以太网:吉比特以太网又称千兆以太网,允许在1Gb/s速率下以全双工和半双工两种方式工作。使用802.3协议规定的格式。使用双绞线或光纤作为传输介质。在半双工方式下使用CSMA/CD协议,而在全双工方式不使用CSMA/CD协议。与10BASE-T和100BASE-T技术向后兼容。
- 10吉比特以太网:10吉比特以太网的格式与10Mb/s、100Mb/s和1Gb/s以太网的格式完全相同,还保留了802.3标准规定的以太网最小长和最大长,以便升级和向后兼容。10吉比特以太网只工作在全双工方式,不存在争用问题,当然也不使用CSMA/CD协议。
以太网从10Mb/s到10Gb/s的演进证明了以太网是可扩展的(从10Mb/s到10Gb/s)、灵活的(多种传输介质、全/半双工、共享/交换),且易于安装,稳健性好。
3.6.3 IEEE802.11无线局域网
地址1是直接接收数据顿的结点地址,地址2是实际发送数据的结点地址。
- 现在假定从一个BSS中的A站向B站发送数据。在A站发往AP的数据的控制字段中,“去往AP=1”而“来自AP=0”:地址1是AP的MAC地址,地址2是A站的MAC地址,地址3是B站的MAC地址。注意,“接收地址”与“目的地址”并不等同。
- AP接收到数据后,转发给B站,此时在数据的控制字段中,“去往AP=0”而“来自AP=1:地址1是B站的MAC地址,地址2是AP的MAC地址,地址3是A站的MAC地址。注意,“发送地址”与“源地址”也不等同。
注:对这三个地址的理解方法如下:地址1和地址2分别是无线通信中信道两端的接收地址和发送地址。(接受发送目的)
- 当主机发往AP时,接收地址不是实际的目的地址,因此用地址3来存放实际的目的地址;
- 当AP发往主机时,发送地址不是实际的源地址,因此用地址3来存放实际的源地址。
3.6.4 VLAN基本概念与基本原理
3.7 广域网
3.7.1 广域网的基本概念
3.7.2 PPP协议
- PPP协议无需满足的要求:纠错、流量控制、序号、不支持多点线路
全双工通信,点对点通信
3.8 数据链路层设备
*3.8.1 网桥的基本概念
3.8.2 以太网交换机
以太网交换机也称二层交换机,二层是指以太网交换机工作在数据链路层。以太网交换机实质上是一个多接口的网桥,它能将网络分成小的冲突域,为每个用户提供更大的带宽。对于传统使用集线器的共享式10Mb/s以太网,若共有N个用户,则每个用户的平均带宽为总带宽(10Mb/s)的1/N。使用以太网交换机(全双工方式)连接这些主机时,虽然从每个接口到主机的带宽还是10Mb/s,但是因为一个用户通信时是独占带宽的(而不是和其他网络用户共享传输介质带宽的),所以拥有N个接口的交换机的总容量为Nx10Mb/s。这正是交换机的最大优点。
以太网交换机的特点:
- 当交换机的接口直接与主机或其他交换机连接时,可工作在全双工方式,并能同时连通多对接口,使每对相互通信的主机都能像独占通信介质那样,无冲突地传输数据,这样就不需要使用CSMA/CD协议。
- 当交换机的接口连接集线器时,只能使用CSMA/CD协议且只能工作在半双工方式。当前的交换机和计算机中的网卡都能自动识别上述两种情况。
- 交换机是一种即插即用设备,其内部的转发表是通过自学习算法,基于网络中各主机的通信,自动地逐渐建立的。
- 交换机因为使用专用交换结构芯片,交换速率较高。
- 交换机独占传输介质的带宽。
3.9 本章小结及疑难点
1、说明用n比特进行编号时,若接收窗口的大小为1,则仅在发送窗口的大小≤2^n-1时,连续ARQ协议才能正确运行。
假设用3比特进行编号,可表示8个不同的序号,发送窗口的最大值似乎可以为8。但是实际上,发送窗口的大小设为8将使协议在某些情况下无法工作。下面来证明这一点。
设发送窗口为8,发送方发送完0~7号共8个数据帧后,暂停发送。假定这8个数据均已正确到达接收方,且接收方对每个数据顿都发回了确认。下面考虑两种不同的情况。
第一种情况:所有确认都正确地到达发送方,因此发送方接着又发送8个新的数据顿,其编号应是0~7。注意,序号是循环使用的。因此序号虽然相同,但8个都是新的。
第二种情况:所有确认都丢失。经过一段超时计时器控制的时间后,发送方重传这8个旧数据顿,其编号仍为0~7。于是,当接收方第二次收到编号为0~7的8个数据顿时,就无法判定这是8个新数据顿还是8个重传的旧数据。因此,将发送窗口设为8显然是不行的。
2、为什么PPP协议不使用的编号和确认机制来实现可靠传输?
PPP不使用序号和确认机制是出于以下考虑:
若使用能够实现可靠传输的数据链路层协议(如HDLC),开销就会增大。当数据链路层出现差错的概率不大时,使用比较简单的PPP较为合理。
在因特网环境下,PPP的信息字段放入的数据是IP数据报。假定我们采用了能实现可靠传输但十分复杂的数据链路层协议,当数据顿在路由器中从数据链路层上升到网络层时,仍有可能因网络拥塞而被丢弃。因此,数据链路层的可靠传输并不能保证网络层的传输也是可靠的。
PPP在帧格式中有检验序列FCS字段。对于每个收到的,PPP都要使用硬件进行CRC
检验。若发现差错,则丢弃该(一定不能把有差错的交给上一层)。端到端的差错控制最后
由高层协议负责。因此,PPP可以保证无差错接收。
3、在标准以太网中,为什么说若有冲突,则冲突一定发生在冲突窗口内?或者说一个若在冲突窗口内没有发生冲突,则该不会再发生冲突?
结点在发送数据之前,先监听信道是否有载波,若有,表示信道忙,则继续监听,直至检测到信道空闲为止。一个数据在从结点A向最远结点的传输过程中,若有其他结点也在发送数据,则会发生冲突,冲突后的信号经过冲突窗口时间后传回结点A,结点A会检测到冲突,所以说若有冲突,则一定发生在冲突窗口内,若在冲突窗口内没有发生冲突,之后若其他结点再要发送数据,则会监听到信道忙,而不会发送数据,从而不会再发生冲突。
4、一个以太网的速率从10Mb/s升级到100Mb/s,满足CSMA/CD冲突条件。为使其正常工作,需做哪些调整?为什么?
100BaseT以太网与10Mb/s以太网的格式相同,唯一不同的参数是间最小间隔时间,10Mb/s以太网的间最小间隔时间是9.6us,100BaseT以太网的间最小间隔时间是0.96us。此
外,为了保持最短长不变,将一个网段的最大长度减小到100m。所有这些调整的原因是速率提高到了原速度的10倍。
5、关于物理层、数据链路层、网络层设备对于隔离冲突域和广播域的总结。
四、网络层
4.1 网路层的功能
4.1.1 异构网络互连
互联网是由全球范围内数以百万计的异构网络互连起来的。这些网络的拓扑结构、寻址方案、差错处理方法、路由选择机制等都不尽相同。网络层所要完成的任务之一就是使这些异构的网络实现互连。网络互连是指将两个以上的计算机网络,通过一定的方法,用一些中继系统相互连接起来,以构成更大的网络系统。根据所在的层次,中继系统分为以下4种
- 物理层中继系统:转发器,集线器。
- 数据链路层中继系统:网桥或交换机
- 网络层中继系统:路由器。
- 网络层以上的中继系统:网关。
当使用物理层或数据链路层的中继系统时,只是把一个网络扩大了,而从网络层的角度看,它仍然是同一个网络,一般并不称为网络互连。因此,网络互连通常是指用路由器进行网络连接和路由选择。路由器是一台专用计算机,用于在互联网中进行路由选择。
注:由于历史原因,许多有关TCP/IP的文献也将网络层的路由称为网关。
4.1.2 路由与转发
路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。前者根据路由选择协议构造并维护路由表。后者处理通过路由器的数据
流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。
- 路由选择:根据路由协议构造路由表,同时经常或定期地与相邻路由器交换信息,获取网络最新拓扑,动态更新维护路由表,以决定分组到达目的地结点的最优路径。
- 分组转发:指路由器根据转发表将分组从合适的端口转发出去路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要最优化网络拓扑变化的计算。在讨论路由选择的原理时,往往不区分转发表和路由表,而笼统地使用路由表一词
4.1.3 网络层提供的两种服务
1、虚电路
2、数据报
注:虚电报和报文交换都是分组交换。
4.1.4 SDN的基本概念
SDN的优点:
- 全局集中式控制和分布式高速转发,既利于控制平面的全局优化,又利于高性能的网络转发。
- 灵活可编程与性能的平衡,控制和转发功能分离后,使得网络可以由专有的自动化工具以编程方式配置。
- 降低成本,控制和数据平面分离后,尤其是在使用开放的接口协议后,就实现了网络设备的制造与功能软件的开发相分离,从而有效降低了成本。
SDN的问题:
- 安全风险,集中管理容易受攻击,若奔溃,则整个网络会受到影响。
- 瓶颈问题,原本分布式的控制平面集中化后,随着网络规模扩大,控制器可能成为网络性能的瓶颈。
4.1.5 拥塞控制
因出现过量的分组而引起网络性能下降的现象称为拥塞。判断网络是否进入拥塞状态的方法是,观察网络的吞吐量与网络负载的关系;若随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,则网络就可能已进入轻度拥塞状态;若网络的吞吐量随着网络负载的增大而下降则网络就可能已进入拥塞状态。拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免因拥塞而出现分组的丢失。
拥塞控制的作用是确保网络能够承载所达到的流量,这是一个全局性的过程,涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素。单一地增加资源并不能解决拥塞。与流量控制的区别:流量控制往往是指在发送方和接收方之间的点对点通信量的控制。流量控制所要做的是抑制发送方发送数据的速率,以便使接收方来得及接收。
拥塞控制的方法有两种:
- 开环控制。在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度策略等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。
- 闭环控制。事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法。
4.2 IPV4
4.2.1 IPV4分组
1、IPv4分组的格式
IP数据报分成固定部分和可变部分,固定部分为20个字节,可变部分的长度是可变的,最大为40个字节。
- 版本:占4个比特,表示IP协议的版本,通信双方使用的IP协议版本必须一致,目前广泛使用的版本号是4。
- 首部长度:占4个比特,表示IP数据报首部的长度,该字段的取值以4字节为单位。最小取值为5,表示IP数据报首部只有20字节滚定部分;最大取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分。
- 区分服务:占8个比特,利用该字段的不同数值可以提供不同等级的服务质量。只有在使用区分服务时该字段才起作用,一般情况下都不使用该字段。
- 总长度:占16个比特,表示IP数据报的总长度,即首部加上数据载荷,最大取值为65535。
- 标识: 占16个比特,属于同一个数据报的各分片数据报应该具有相同的标识。
- 标志:占3个比特
- DF位为1表示不允许分片,为0表示允许分片;
- MF位表示后面还有分片,0表示这是最后一个分片;保留位必须为0。
- 片偏移:占13个比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位,片偏移以8个字节为单位。
- 生存时间TTL:占8个比特,表示IP数据报的生存时间。每经过一个路由器,TTL的值就减1,而如果TTL为0时,就将该数据报丢弃。在前面介绍路由环路时,就使用TTL来解决其带来的问题。
- 协议:占8个比特,指明IPv4数据报的数据部分是何种协议的数据单元,常见的协议和相应的协议字段如下。
- 首部检验和:占16个比特,用来检测首部在传输过程中是否出现差错,比CRC检验码简单,称为因特网检验和。
- 源IP地址和目的IP地址:各占32个比特,用来填写发送该IP数据报的源主机的IP地址和接收该IP数据报的目的主机的IP地址。
- 可选字段:长度从1-40字节不等,用来支持排错、测量、安全等措施,可选字段增加了IP数据报的功能,但增加了每一个路由器处理IP数据报的开销,实际上可选字段很少使用。
- 填充字段:确保首部长度为4字节的整数倍,使用全0进行填充。
注:在IP数据报首部有三个关于长度的标记,即首部长度、总长度、片偏移,它们的基本单位分别为4B、1B、8B(爱考)
4.2.2 IPv4地址与NAT
网络地址转换(NAT)
4.2.3 划分子网与路由聚合
4.2.4 网络层转发分组的过程
4.2.5 地址解析协议(ARP)
注:IP->MAC(ARP) MAC->IP(RARP)
4.2.6 动态主机配置协议(DHCP)
4.2.7 网际控制报文协议(ICMP)
注:PING工作在应用层,它是直接使用网络层的ICMP;Traceroute/Tracert工作在网络层
4.3 IPV6
4.3.1 IPv6的特点
- 更大的地址空间:IPv6将IPv4的32比特地址空间增大到了128比特,在采用合理编址方法的情况下,在可预见的未来是不会用完的。
- 扩展的地址层次结构:可划分为更多的层次,这样可以更好地反映出因特网的拓扑结构,使得对寻址和路由层次的设计更具有灵活性。
- 灵活的首部格式:与IPv4首部并不兼容。IPv6定义了许多可选的的扩展首部,不仅可提供比IPv4更多的功能,而且还可以提高路由器的处理效率,因为路由器对逐跳扩展首部外的其他扩展首部都不进行处理。
- 改进的选项:IPv6允许分组包含有选项的控制信息,因而可以包含一些新的选项。然而IPv4规定的选项却是固定不变的。
- 允许协议继续扩充:这一点很重要,因为技术总是在不断地发展,而新的应用也会层出不穷。然而IPv4的功能却是固定不变的。
- 支持即插即用(即自动配置):IPv6支持主机或路由器自动配置IPv6地址及其他网络配置参数。因此IPv6不需要使用DHCP。
- 支持资源的预分配:IPv6能为实时音视频等要求保证一定带宽和时延的应用,提供更好的服务质量保证。
- 最小的MTU变为1280字节。
4.3.2 IP6数据报的基本首部
4.3.3 IPv6地址
4.3.4 从IPv4向IP6过渡
4.4 路由算法与路由协议
4.4.1 路由算法
路由选择协议的核心是路由算法,即需要何种算法来获得路由表中的各个项目。
4.4.2 分层次的路由选择协议
4.4.3 路由信息协议(RIP)
注:好消息传得快,坏消息传的慢。
4.4.4 开放最短路径优先协议(OSPF)
分组类型
4.4.5 边界网关协议(BGP)
三种协议对比
4.5 IP多播
概念:多播是让源主机一次发送的单个分组可以抵达用一个组地址标识的若干目的主机,即一对多的通信。在互联网上进行的多播,称为IP多播。
IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的共同标识)。
IP组播使用D类地址格式。D类的前四位是1110,因此D类地址范围是 224.0.0.0 ~ 239.255.255.255。一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。
- 组播数据报也是“尽最大努力交付”,不提供可靠交付,组播一定仅应用于UDP。
- 组播地址只能用于目的地址,而不能用于源地址。
- 对组播数据报不产生ICMP差错报文。
- 并非所有的D类地址都可作为组播地址。(后23位)(多播IP)1->n(MAC地址)
网际组管理协议IGMP
IGMP和ICMP都使用IP数据报传递报文。
网际 (因特网) 组管理协议(Internet Group Management Protocol,IGMP):IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。
IGMP工作的两个阶段:
- 某主机要加入组播组时,该**主机向组播组的组播地址(路由器和同属于这个组播组的成员都收得到)发送一个IGMP报文,声明自己要称为该组的成员。本地组播路由器收到lGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
- 本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。(组播路由器知道的成员关系只是所连接的局域网内有无组播组成员,至于成员数量是无法知道的)
多播路由选择协议
多播路由选择目的就是要找出以源主机为根节点的多播转发树。(选转发路径)
其中每个分组在每条链路上只传送一次。不同的多播组对应于不同的多播转发树:同一个多播组,对不同的源点也会有不同的多播转发树。
4.6 移动IP
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。
- 移动结点:具有永久IP地址的移动设备。
- 归属代理(本地代理):一个移动结点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。(可以是路由器可以是主机)
- 外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。(移动节点移动到非归属网络时帮它完成移动管理的实体叫做外部代理)
- 永久地址(归属地址/主地址):移动站点在归属网络中的原始地址(固定的IP地址)。
- 转交地址(辅地址):移动站点在外部网络使用的临时地址。
移动IP通信过程
关于数据发送: B向主机A发送数据,如果A在归属网络内直接接受数据就行,如果不在,数据被由本地代理截获,本地代理再封装数据包,新的目的地址是转交地址。(初始数据报的目的地址是归属网络内的主地址)
4.7 网络层设备
路由器
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是连接异构网络并完成路由转发。
内部结构组成:
- 路由选择:根据所选定的路由选择协议构造出路由表,同时经常或定期和相邻路由器交换路由信息而不断地更新和维护路由表。
- 分组转发:根据转发表(路由表得来)对分组进行转发。由三部分组成,交换结构、一组输入端口、一组输出端口。
- 区别:路由选择就是找路由走的路径,转发是路由器内部走哪个端口。
不是所有有输入端口进入的分组都进行转发处理。若收到EIP/OSPF(路由信息)分组等,则把分组交由路由选择处理机,若收到的是数据分组,则查找转发表进行转发输出。
4.8 本章小结及疑难点
五、传输层
5.1 传输层提供的服务
5.1.1 传输层的功能
- 应用程序之间的逻辑通信
- 复用和分用
- 检错检测
- 提供面向连接和无连接的传输协议
5.1.2 传输层的寻址与端口
5.1.3 无连接服务与面向连接服务
5.2 UDP协议
5.2.1 UDP数据报
5.2.2 UDP检验
注:UDP检验和不是必需的,若不使用检验和,则将检验和字段设置为0。而检验和的计算结果恰好为0,则将检验和字段置为全1。
5.3 TCP协议
5.3.1 TCP协议的特点
5.3.2 TCP报文段
- 序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。
- 确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N则证明到序号N-1为止的所有数据都已正确收到。
- 数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B位单位,即1个数值是4B。
- 紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。发送数据时优先发送。
- 确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。
- 推送位PSH:PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付。接收数据时优先接受
- 复位RST:RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。
- 同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文。
- 终止位FIN:FIN=1时,表明此报文段发送方数据已发完,要求释放连接。
- 窗口:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量。接收方能接受最大的报文段长度
- 检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6。
- 紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数。
- 选项:最大报文段长度MSS、窗口扩大、时间、选择确认。
5.3.3 TCP连接管理
1、三次握手
在TCP连接建立的过程中,要解决以下三个问题:
- 要使每一方都能确知对方的存在。
- 要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项、时间戳选项等)。
- 能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
注:同一个IP地址可以有多个不同的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中。
2、四次挥手
5.3.4 TCP可靠传输
确认
重传
5.3.5 TCP流量控制
5.3.6 TCP拥塞控制
5.4 本章小结及疑难点
1、MSS设置得太大或太小会有什么影响?
规定最大报文段长度MSS,并不是考虑接收方的缓存可能放不下TCP报文段中的数据。实际上,MSS与接收窗口没有关系。TCP报文段的数据部分,至少要加上40B的首部(TCP首部至少20B和IP首部至少20B),才能组装成一个IP数据报。若选择较小的MSS值,网络的利用率就很低。设想在极端情况下,当TCP报文段只含有1B的数据时,在IP层传输的数据报的开销至少有40B(包括TCP首部和IP首部)。这样,网络的利用率就不会超过1/41。到了数据链路层还要加上一些开销,网络的利用率还会进一步降低。但反过来,若TCP报文段很长,则在IP层传输时有可能要分解成多个短数据报片。在终点还要把收到的各个短数据报片装配成原来的TCP报文段。当传输出错时,还要进行重传。这些也都会使开销增大。
因此,MSS应尽可能大一些,只要在IP层传输时不要再分片就行。因为IP数据报所经历的路径是动态变化的,所以在一条路径上确定的不需要分片的MSS,若改走另一条路径,则可能需要进行分片。因此最佳的MSS是很难确定的。MSS的默认值为536B,因此在互联网上的所有主机都应能接受的报文段长度是536+20(TCP固定首部长度)=556B。
2、TCP使用的是GBN还是选择重传?
这是一个有必要弄清的问题。
前面讲过,TCP使用累积确认,这看起来像是GBN的风格。但是,正确收到但失序的报文并不会丢弃,而是缓存起来,并且发送冗余ACK指明期望收到的下一个报文段,这是TCP方式和GBN的显著区别。例如,A发送了N个报文段,其中第k(k<N)个报文段丢失,其余N-1个报文段正确地按序到达接收方B。使用GBN时,A需要重传分组k,以及所有后继分组k+1.k+2..N。相反,TCP却至多重传一个报文段,即报文段k。另外,TCP中提供一个SACK(SelectiveACK)选项,即选择确认选项。使用选择确认选项时,TCP看起来就和SR非常相似。因此,TCP的差错恢复机制可视为GBN和SR协议的混合体。
3、为什么超时事件发生时cwnd被置为1,而收到3个冗余ACK时cwnd减半?
大家可以从如下角度考虑。超时事件发生和收到3个冗余ACK,哪个意味着网络拥塞程度更严重?通过分析不难发现,在收到3个冗余ACK的情况下,网络虽然拥塞,但至少还有ACK报文段能被正确交付。而当超时发生时,说明网络可能已经拥塞得连ACK报文段都传输不了,发送方只能等待超时后重传数据。因此,超时事件发生时,网络拥塞更严重,发送方就应该最大限度地抑制数据发送量,所以cwnd置为1:收到3个元余ACK时,网络拥塞不是很严重,发送方稍微抑制一下发送的数据量即可,所以cwnd减半。
4、为什么不采用“两次握手”建立连接呢?
这主要是为了防止两次握手情况下己失效的连接请求报文段突然又传送到服务器而产生错误。考虑下面这种情况。客户A向服务器B发出TCP连接请求,第一个连接请求报文在网络的某个结点长时间留,A超时后认为报文丢失,于是再重传一次连接请求,B收到后建立连接数据传输完毕后双方断开连接。而此时,前一个留在网络中的连接请求到达服务器B,而B认为A又发来连接请求,此时若使用“三次握手”,则B向A返回确认报文段,因为是一个失效的请求,所以A不予理踩,建立连接失败。若采用的是“两次握手”,则这种情况下B认为传输连接已经建立,并一直等待A传输数据,而A此时并无连接请求,因此不予理踩,这样就造成了B的资源白白浪费。
5、为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号?
- 假定主机A和B频繁地建立连接,传送一些TCP报文段后,再释放连接,然后又不断地建立新的连接、传送报文段和释放连接。
- 假定每次建立连接时,主机A都选择相同的、固定的初始序号,如选择1。
- 假定主机A发出的某些TCP报文段在网络中会留较长时间,以致主机A超时重传这些TCP报文段。
- 假定有一些在网络中留时间较长的TCP报文段最后终于到达主机B,但这时传送该报文段的那个连接早已释放,而在到达主机B时的TCP连接是一条新的TCP连接。
这样,工作在新的TCP连接的主机B就有可能会接收在旧的连接传送的、已无意义的、过时的TCP报文段(因为这个TCP报文段的序号有可能正好处在当前新连接所用的序号范围之中),结果产生错误。因此,必须使得退到的TCP报文段的序号不处在新连接所用的序号范围之中这样,TCP在建立新的连接时所选择的初始序号一定要和前面的一些连接所用过的序号不同。因此,不同的TCP连接不能使用相同的初始序号。
6、假定在一个互联网中,所有链路的传输都不出现差错,所有结点也都不会发生故障。试问在这种情况下,TCP的“可靠交付”功能是否就是多余的?
不是多余的。TCP的“可靠交付”功能在互联网中起着至关重要的作用。至少在以下的情况下,TCP的“可靠交付”功能是必不可少的。
- 每个IP数据报独立地选择路由,因此在到达旧的主机时有可能出现失序。
- 由于路由选择的计算出现错误,导致IP数据报在互联网中转圈。最后数据报首部中的生存时间(TTL)的数值下降到零。这个数据报在中途就被丢失。
- 某个路由器突然出现很大的通信量,以致路由器来不及处理到达的数据报。因此有的数据报被丢弃。
以上列举的问题表明:必须依靠TCP的“可靠交付”功能才能保证在目的主机的目的进程中接收到正确的报文。
六、应用层
6.1 网络应用模型
6.1.1 客户/服务器模型
6.1.2 P2P模型
6.2 域名系统(DNS)
6.2.1 层次域名空间
6.2.2 域名服务器
6.2.3 域名解析过程
6.3 文件传输协议(FTP)
6.3.1 FTP的工作原理
6.3.2 控制连接与数据连接
6.4 电子邮件
6.4.1 电子邮件系统的组成结构
6.4.2 电子邮件格式与MIME
6.4.3 SMTP和POP3
SMTP
POP3
IMAP
基于万维网的电子邮件
6.5 万维网(WWW)
6.5.1 WWW的概念与组成结构
6.5.2 超文本传输协议(HTTP)
6.6 本章小结及疑难点
1、如何理解客户进程端口号与服务器进程端口号?
通常我们所说的熟知端口号是指应用层协议在服务器端的默认端口号,而客户端进程的端口号是由客户端进程任意指定的(临时的)。
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口号,同时还要告诉服务器进程自己的临时端口号。接着,服务器进程就用自己的熟知端口号与客户进程所提供的端口号建立连接。
2、因特网和万维网的区别是什么?
因特网(Internet)是指在ARPA网基础上发展而来的世界上最大的全球性互连网络,它采用TCP/IP协议族作为通信规则。
万维网(WWW)是无数个网络站点和网页的集合,它们一起构成了因特网最主要的部分(因特网也包括电子邮件、Usenet和新闻组)。