【总结:网络把许多计算机连接在一起,而互联网则把许多网络通过路由器连接在一起;与网络相连的计算机常称为主机;一般用一朵云表示一个网络】
【了解】互联网三个发展阶段:
第一阶段:从单个网络ARPANET向互联网发展的过程。
第二阶段:建成三级结构的互联网:校园网、地区网、主干网。
第三阶段:形成多层次ISP(互联网服务提供商)结构的互联网:本地ISP、地区ISP、主干ISP。
互联网交换点IXP的作用:允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。
互联网的标准化工作的一大特色:面向公众。
所有的互联网标准都是以RFC的形式在互联网上发表的,但并非所有的RFC文档都是互联网标准的。
标准化过程:
互联网组成:
网络边缘的端系统之间的通信方式通常可划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。
【个人理解就是:C/S就是一个给另一个提供服务,P2P就是两个都可以提供服务或者被服务】
互联网核心部分:采用分组交换,关键构建:路由器(任务是转发收到的分组,这也是互联网核心部分的重要功能)。
【补:主机:进行信息处理;路由器:用来转发分组,即分组交换】
分类:
1)按照网络的作用范围分类:
◇ 广域网 ◇ 城域网 ◇ 局域网 ◇ 个人区域网
2)按照网络的使用者分类:
◇ 公用网 ◇ 专用网
3)接入网AN:用来将用户接入到互联网的网络。
性能:
1)速率(bit/s):数据传输速率/数据率/比特率
数 据 传 输 速 率 = 单 位 时 间 比 特 量 单 位 时 间 数据传输速率=\frac{单位时间比特量}{单位时间} 数据传输速率=单位时间单位时间比特量
2)带宽(bit/s):网络中某通道传输数据的能力(计算机网络中这么表示),“最高数据率”
3)吞吐量(bit/s):单位时间内通过某个网络的实际数据量。
举个例子:
4)时延:对应课后习题:1-17、1-19、1-28
发送时延(也叫传输时延):是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需要的时间。
发 送 时 延 = 数 据 帧 长 度 ( b i t ) 发 送 速 率 ( b i t / s ) [ 一 般 用 带 宽 来 计 算 ] 发送时延=\frac{数据帧长度(bit)}{发送速率(bit/s)[一般用带宽来计算]} 发送时延=发送速率(bit/s)[一般用带宽来计算]数据帧长度(bit)
传播时延:是电磁波在信道中传播一定距离需要花费的时间。
传 播 时 延 = 信 道 长 度 ( m ) 电 磁 波 在 信 道 上 的 传 播 速 率 ( m / s ) 传播时延=\frac{信道长度(m)}{电磁波在信道上的传播速率(m/s)} 传播时延=电磁波在信道上的传播速率(m/s)信道长度(m)
【注意:发送时延发生在机器内部,与传输信道无关,只与传输的数据帧长度以及发送速率(带宽)有关;传播时延发生在传输信道上,主要与信道长度以及传播速率有关】
处理时延:主机或路由器处理分组花费的时间。
排队时延:分组进入路由器后在输入输出队列中排队等候的时间。
总时延=发送时延+传播时延+处理时延+排队时延
【注意: 1 M b i t / s = 1 × 1 0 6 b i t / s 1Mbit/s=1\times 10^6bit/s 1Mbit/s=1×106bit/s,但 1 M B = 1 × 2 10 K B = 1 × 2 20 B = 1 × 2 20 × 8 b i t 1MB=1\times 2^{10}KB=1\times 2^{20}B=1\times 2^{20}\times 8bit 1MB=1×210KB=1×220B=1×220×8bit( B B B是字节, 1 1 1字节 = 8 =8 =8比特)】
5)时延带宽积(bit):即传播时延与带宽的乘积(可以理解为信道中最多能塞下多少比特信息)。
时 延 带 宽 积 = 传 播 时 延 × 带 宽 时延带宽积=传播时延 \times 带宽 时延带宽积=传播时延×带宽
6)往返时间RTT:表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。【此图很重要]
7)利用率:
信道利用率:指某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道利用率是零。
网络利用率:全网络的信道利用率的加权平均值。
令 D 0 D_{0} D0表示网络空闲时的时延, D D D表示当前网络的时延,利用率为 U U U,则:
D = D 0 1 − U D=\frac{D_{0}}{1-U} D=1−UD0
【因此并不是利用率越高越高,因为过高的利用率会产生非常大的时延】
非性能特征:【了解】费用、质量、标准化、可靠性、可扩展性和可升级性、易于管理和维护。
网络协议由三个要素组成:语法、语义、同步。
具有五层协议的计算机网络体系结构【听说此图必考】
【半期考试考过】 O S I OSI OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元(PDU),同层对等实体间进行信息交换时必须遵守的规则称为协议,下层先上层提供服务,相邻层间通过服务原语提供服务,服务通过层接口来实现,层与层之间交换的数据单位称为服务数据单元(SDU)。(协议是”水平的“,服务是”垂直的“)
一个数据通信系统可划分为三大部分,即源系统(或发送端、发送方)【包含:源点+发送器】、传输系统(或传输网络)和目的系统(或接收端、接收方)【包含:终点+接收器】。
【了解】通信的目的是传送消息,数据是运送消息的实体,信号是数据的表现形式。
三种通信基本方式:
调制分两大类:
常用的编码方式:【半期考试考过】
香农公式:
C = W l o g 2 ( 1 + S / N ) C=Wlog_2(1+S/N) C=Wlog2(1+S/N)
其中: C C C为信道的极限、无差错的信息传输速率, W W W为信道的带宽, S / N S/N S/N为信噪比。
因此,影响信道上传输速率的因素就是:1、信道带宽(后果:码间串扰,准则:奈氏准则);2、信噪比( 信 噪 比 ( d B ) = 10 l o g 10 ( S / N ) 信噪比(dB)=10log_{10}(S/N) 信噪比(dB)=10log10(S/N))
【拓展】对于频带宽度已确定的信道,如果信噪比不能再提高了,并且码元传输速率也达到了上限值,那么还有办法提高信息的传输速率吗?有!用编码的方法让每一个码元携带更多比特的信息量。 、
传输媒体分为两大类:
导引型传输媒体:【了解】双绞线、同轴电缆、光缆(光纤是光纤通信的传输媒介)。
光纤通信:【了解】
举例:
码分复用( C D M CDM CDM):用在扩频里面。【课本57-58页/PPT:51-57页】对应课后习题:2-16
在 C D M CDM CDM中,每一个比特时间再划分为 m m m个短的间隔,称为码片,每个码片序列需要满足的条件是:
因此,两个不同站的码片序列正交,内积为零;自身码片向量与该码片向量的内积为1,自身码片向量与该反码向量的内积为-1。【故,求哪个基站发消息的时候,就是将收到的信号分别与每个站的码片序列求内积(相乘),结果为0:则该站没发送信号;结果为1:则该站发送信号“1”;结果为-1:则该站发送信号“0”】
从宽带接入的媒体来看,宽带接入技术可以划分为两大类:
下面只讨论有线宽带接入。
非对称数字用户线 ( A D S L ADSL ADSL):
光纤同轴混合网( H F C HFC HFC网):
F F T x FFTx FFTx技术:举例有:光纤到户 F T T H FTTH FTTH,光纤到大楼 F T T B FTTB FTTB,光纤到路边 F T T C FTTC FTTC。
光配线网采用波分复用,上行和下行分别使用不同的波长。
另外可以看看课后习题:2-08、2-12【挺新颖的】
数据链路 = = =物理链路 + + +通信协议。
数据链路层的协议数据单元是:帧。
数据链路层协议的三个基本问题:封装成帧、透明传输和差错检测。
**封装成帧:**就是在一段数据的前后分别添加首部和尾部。
首部和尾部的一个重要作用就是进行帧定界,还包括许多控制信息。
最大传送单元(MTU):帧的数据部分长度上限。
举例:数据是由可打印的ASCII码组成的文本文件时:
**帧定界符:**首部:SOH(Start Of Head);尾部:EOT(End Of Transmission)。
透明传输:【前面的帧定界符(也叫控制字符)可以来判断帧的开始和结束,但当数据部分中也出现帧定界符,如果不进行处理,就会导致在数据部分误判,以为是某个帧的开始或结束,因此需要对数据中出现的帧定界符进行一定的处理,使得接收端不会把数据部分出现的帧定界符解释为帧的开始或结束的标志】
具体方法:字节填充/字符填充(利用转义字符)
差错检测:检错方法:循环冗余校验CRC;添加在数据后面的冗余码:帧检验序列FCS。【对应课后习题:3-07、3-08】
注意:
数据链路层使用CRC校验,只能检错,不能纠错。
数据链路层使用CRC校验,只能做到对帧的无差错传输,即认为接收的帧都是无差错的,不能提供无差错传输/可靠传输。
【无差错传输/可靠传输包括两方面:1.传输的帧没有比特出错;2.传输的帧没有顺序出错;只满足起一条叫做“无比特差错”,两条都满足才叫做“无传输差错”】
对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议PPP。
PPP协议的首要满足条件是:简单。
PPP协议有三个组成部分:
PPP帧结构:PPP帧的首部和尾部分别为四个字段和两个字段:
为实现透明传输,PPP协议中的方法:
【(个人理解)异步传输和同步传输的区别:异步传输的意思可以理解为一帧一帧的传输,也就是接收端收到的是一个个整个的帧,这样可以对整个帧进行处理;而同步传输的意思是一连串比特的连续传送,也就是接收端收到的是一个个比特,这样就不能对整个帧处理,而是要对一个个比特进行处理】
PPT:49页—57页/课本80页—82页
局域网:
1)【了解】最主要特点:网络为一个单位所拥有,且地理位置和站点数目均有限。
2)局域网中的主流传输媒体:双绞线;但数据率很高时,往往需要使用光纤作为传输媒体。
3)局域网工作的层次跨越了数据链路层和物理层。
4)共享信道:
适配器:
1)功能:
2)适配器所实现的功能包含了数据链路层和物理层。
【很重要的】CSMA/CD【名字巧记:ChiShiMA?ChiDe,仅供参考】建议还是看一下课本85—90页/PPT:70—90页【对应课后习题:3-20、3-24、3-25】
重要知识点:
1)两倍的总线端到端的传播时延,也叫总线的端到端往返传播时延( 2 τ 2\tau 2τ)。【也称为争用期,经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞】【争用期一般为51.2us,对于10Mbit/s的以太网,争用期可以说是512比特时间】
2)CSMA/CD协议的以太网是半双工通信,以太网发送数据采用曼彻斯特编码。
3)以太网的碰撞重传方法是:截断二进制指数退避算法。课本88页下/PPT:82,83,84页【由于数据在中间发生碰撞,因此数据需要重传,就需要确定一个重传的时间,计k=min(重传次数,10),之后在集合 [ 0 , 1 , 2 , . . . , ( 2 k − 1 ) ] [0,1,2,...,(2^k-1)] [0,1,2,...,(2k−1)]中随机取一个数字r,重传的时间就是r倍的争用期,即 2 τ r 2\tau r 2τr。注意一下:最多重传16次,再不成功就丢弃该帧】
4)以太网规定的最短帧长为:64字节,即512比特。以太网规定的帧间最小间隔为:9.6us,即96比特时间
5)课本90页要点归纳/PPT:90页
集线器的特点:
参数 a = τ T 0 a=\frac{\tau}{T_0} a=T0τ,反映信道利用率,其中: τ \tau τ表示以太网单程端到端时延, T 0 T_0 T0表示帧的发送时间;参数a越大,信道利用率越小。
信道利用率 = T 0 T 0 + τ + 2 n τ =\frac{T_0}{T_0+\tau+2n\tau} =T0+τ+2nτT0。
极限信道利用率 S m a x = T 0 T 0 + τ S_{max}=\frac{T_0}{T_0+\tau} Smax=T0+τT0,即理想化:各站都不会发生碰撞。可以看出:只有当参数a远小于1时,才能得到尽可能高的极限信道利用率。
硬件地址/物理地址:MAC地址。
发往本站的帧包括:
以太网V2的MAC帧结构:有五个字段组成。前两个字段分别为6字节长的目的地址和源地址字段;第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议;第四个字段是数据字段,其长度在46到1500字节之间(46字节是这样算出来的:最小长度64字节减去18字节的首部和尾部就得出数据段的最小长度)【长度不在这个范围内的直接舍去】;第五个字段是4字节的帧检验序列FCS。
☆:为了达到比特同步,在传输媒体上实际传送的要比MAC帧还多8个字节。第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧
无效MAC帧的情况(出现一种即为无效MAC帧):
在物理层扩展以太网的方法:
注意:连接在同一个集线器的所有主机及其下级的集线器构成一个碰撞域,在任一时刻,每个碰撞域中只能有一个站发送数据。【详见:课本98页下图3-24讲解/PPT:127、128页】
在数据链路层扩展以太网的方法:
以太网交换机:
以太网交换机的自学习功能【期中考过】【对应课后习题:3-33】
课本100页/PPT:137—146页
为了解决兜圈子问题,交换机采用了生成树协议(STP)。
区别:
1)总线形以太网和使用集线器的星形以太网:所有计算机都处于同一个碰撞域(或冲突域)中和同一个广播域中。
2)使用交换机的星形以太网:每个接口都处于一个独立的碰撞域(或冲突域)中,但所有计算机都处于同一个广播域中。
【也就是说:集线器:同一时刻只能服务一个设备】
虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记。
网络层可以提供的两种服务类型:虚电路服务和数据报服务。
互联网采用的设计思路是这样的:网络层向上提供简单灵活的、无连接的、尽最大努力交付(即不可靠)的数据报服务。
虚电路服务与数据报服务对比:
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
将网络互联起来可以使用的一些中间设备,按照层次不同分为:【建议记一下】
注意一下:虚拟互联网络互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。
IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32位标识符。
IP地址:【重点】
1)两级的IP地址可以记为
I P 地 址 : : = < 网 络 号 > , < 主 机 号 > IP地址::={<网络号>,<主机号>} IP地址::=<网络号>,<主机号>
2)IP地址进行分类,可分为A,B,C,D,E五类,其中A,B,C是单播地址,D是多播地址,E类地址暂时还没有使用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-egWqvAzn-1640614399013)(https://s2.loli.net/2021/12/22/TR78zGwuUYDX4gs.png)]
3)IP地址的特点:
4)PPT:51页—61页/课本122页—124页
地址解析协议ARP【重点】
1)ARP协议的作用就是:已知IP地址,找到其对应的硬件地址。
2)【网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址】
ARP协议:即每台主机的ARP高速缓存中存放一个从IP地址到硬件地址的映射表。
3)ARP高速缓存中的映射表的建立过程:当主机A要向本局域网上的某台主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。课本125-126页/PPT:65-68页
① 如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往次硬件地址。
② 如没有,则按以下步骤找到主机B的硬件地址:
【这里注意一点:ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址】
4)ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间,凡超过生存时间的项目就从高速缓存中删除掉。
5)【注意:ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题的】
6)ARP的四种典型情况:【理解就好】
发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。
发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址。
发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。
IP数据报的格式:一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
这里挑几个重点字段分析:
IP层转发分组的流程
每个路由器中都有个路由表,在路由表中,对每一条路由最主要的是以下两个信息:**(目的网络地址,下一跳地址)。**需要路由表寻找下一跳的原因是:IP数据报的首部写上的IP地址是源IP地址和目的IP地址,并没有中间经过的路由器的IP地址,因此要通过在路由表中寻找下一跳的IP地址进行IP数据报的转发。
分组转发算法如下:
划分子网:划分子网纯属一个单位内部的事情,划分之后这个单位对外仍然表示为一个网络。划分子网的方法:从网络的主机号借用若干位作为子网号,这样减少了主机号,但将二级IP地址在本单位内部就变成了三级IP地址。
I P 地 址 : : = < 网 络 号 > , < 子 网 号 > , < 主 机 号 > IP地址::={<网络号>,<子网号>,<主机号>} IP地址::=<网络号>,<子网号>,<主机号>
使用子网掩码,不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的**”与“运算(AND),就可以立即得出其对应的网络地址。【课本139页例4-2】**对应课后习题:4-20、4-29
子网数是根据子网号计算出来的,若子网号有n位,则共有 2 n 2^n 2n种可能的排列,除去全0和全1这两种情况,就得出表中的子网数( 2 n − 2 2^n-2 2n−2)。
使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。
在划分子网的情况下,路由器转发分组的算法如下:【课本140页例4-4】
无分类编制CIDR(构造超网):取消了传统的A,B,C类地址以及划分子网的概念,IP地址分为前后两部分,前面部分叫“网络前缀”,用来指明网络号,后面部分指明主机号。【也就是说主机号和网络号的长度没有固定位数的限制了】
使用**”斜线记法“,以及32位地址掩码**。对应课后习题:4-35
使用CIDR使,利用掩码进行路由选择时,采用**最长前缀匹配,即从匹配结果中选择具有最长网络前缀的路由。**例如:
互联网采用的路由选择协议主要是自适应的(即动态的)、分布式路由选择协议。
可以把整个互联网划分为许多较小的自治系统AS,在目前的互联网中,一个大的ISP就是一个自治系统。这样,互联网就把路由选择协议划分为两大类:
内部网关协议RIP:是一种分布式的基于距离向量的路由选择协议。这里“距离”定义为**”跳数“**,RIP就是在两个网络之间选择一条具有最少路由器(即跳数最小/距离最短)的路由,同时RIP允许一条路径最多只能包含15个路由器,因此“距离”等于16时即相当于不可达。RIP协议的特点是:
RIP中路由表更新的原则是找出每个目的网络的最短距离,这种更新算法又称为距离向量算法。【重点】
【课本155页上以及下面的例4-5/PPT:179页】对应课后习题:4-41、4-55
简单总结一下:
【了解】RIP存在的一个问题是:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器【即:好消息传播的快,而坏消息传播得慢】。
内部网关协议OSPF:只有当链路状态发生改变时,路由器才向所有路由器洪泛法发送信息,即采用的是触发式的;对比RIP第三条特点,RIP采用的是周期性的。
外部网关协议BGP:力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由,BGP采用了路径向量路由选择协议。在配置BGP时,每一个自治系统选择至少一个路由器作为该自治系统的BGP发言人,之后BGP路由选择每个自治系统就以其选择的BGP发言人来代替,这样BGP协议交换路由信息的结点数量级是自治系统个数的量级。
路由器的构成:【不是很重点】
1)路由器的任务是:转发分组。(多个输入端口、多个输出端口)
2)路由器由两大部分组成:路由选择部分和分组转发部分。
3)路由器的转发分组部分由三部分组成:交换结构、一组输入端口和一组输出端口。
4)三种常用的交换结构:通过存储器、通过总线、通过互联网。
【要记住】IPv6一共有128位。
IPv6数据报的目的地址可以是以下三种基本类型地址之一:
IPv6使用冒号十六进制记法,它把每个16位的值用十六进制值表示,128位分成了 128 16 = 8 \frac{128}{16}=8 16128=8块=组,各值之间用冒号分隔,如:
68 E 6 : 8 C 64 : F F F F : F F F F : 0 : 1180 : 960 A : F F F F 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
IPv6允许的几种省略表示方法:【重点】对应课后习题:4-64
允许把数字前面的0省略,如上面就把0000中前三个0省略了。【这里一定要注意:数字前面的0可以省略,但数字后面的0是不能省略的】
允许零压缩,即一连串连续的零可以为一对冒号所取代,如
F F 05 : 0 : 0 : 0 : 0 : 0 : 0 : B 3 FF05:0:0:0:0:0:0:B3 FF05:0:0:0:0:0:0:B3
可以压缩为:
F F 05 : : B 3 FF05::B3 FF05::B3
注意:为了保证零压缩有一个不含糊的解释,规定在任一地址中只能使用一次零压缩。
冒号十六进制记法可结合使用点分十进制记法的后缀。
常见的IPv6的地址分类:
地址类型 | 二进制前缀 |
---|---|
未指明地址 | 00…0(128位),可记为::/128。 |
环回地址 | 00…1(128位),可记为::1/128。 |
多播地址 | 11111111(8位),可记为FF00::/8。 |
本地链路单播地址 | 1111111010(10位),可记为FE80::/10。 |
全球单播地址 | (除上述四种外,所有其他的二进制前缀) |
从IPv4向IPv6过渡的方法:逐步演进、向后兼容
1)**双协议栈:**一部分主机(或路由器)装有双协议栈(一个IPv4和一个IPv6),它使用域名系统DNS来查询判断目的主机采用哪一种地址。
2)**隧道技术:**在IPv6数据报要进入IPv4网络时,把IPv6数据报封装成为IPv4数据报,使得整个的IPv6数据报变成了IPv4数据报的数据部分。【路由器将原IP打包,报头换为新的IP】
IP多播:目的IP与MAC地址都是多播地址,指向多播组。
当多播组的主机数很大时,采用多播方式就可明显地减轻网络中各种资源的消耗,能够运行多播协议的路由器称为多播路由器,在互联网上进行多播就叫做IP多播,IP多播所传送的分组需要使用多播IP地址。在多播数据报的目的地址写入的是多播组的标识符,也就是IP地址的D类地址。【即:多播数据报和一般的IP数据报的区别就是它使用D类IP地址作为目的地址,并且多播地址只能用于目的地址,而不能用于源地址,同时,对多播数据报不产生ICMP差错报文】
D类IP地址与以太网多播地址的映射关系:
IP多播需要的两种协议:
运输层:两个主机的进程之间的通信。由于两台主机之间可能有多个进程之间同时通信,因此,运输层有个很重要的功能:复用和分用。【这里就可以看出,网络层和运输层有明显的区别:1)网络层为主机之间提供逻辑通信;2)而运输层为应用进程之间提供端到端的逻辑通信】
运输层的两个重要协议:
运输层使用协议端口号(简称为端口),它用来标志本计算机应用层中的各个进程在和运输层交互时的层间接口。TCP和UDP的首部格式中都包含有源端口和目的端口,当运输层收到IP层交上来的运输层报文时,就能够根据其首部中的目的端口号把数据交付应用层的目的应用进程。因此,两个计算机中的进程要相互通信,不仅需要知道对方的IP地址,而且要知道对方的端口号。常用的端口号分为下面两大类:【要记一下,能区分】
**服务器端使用的端口号:**又分为两类:【对应课后习题:5-14】
【这里课本207页下面表5-2(或PPT:31页)有常用的熟知端口号,大概看一下】
客户端使用的端口号:数值为49152~65535.通信结束后,刚才已使用过的客户端口号就不复存在了,这个端口号就可以供其他客户进程使用(即客户端口号是临时的)。
TCP的主要特点:
TCP和UCP在发送报文时所采用的方式完全不同,TCP并不关心应用进程一次把多长的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。
TCP的连接:每一条TCP连接有两个端点,TCP连接的端点叫做套接字或插口。
套 接 字 s o c k e t = ( I P 地 址 : 端 口 号 ) 套接字\ socket=(IP地址:端口号) 套接字 socket=(IP地址:端口号)
【其实也就是说,相当于每个套接字的IP地址可以先确定主机,然后套接字的端口号就可以确定交给主机应用层哪个端口进程了】
每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定,即:
T C P 连 接 : : = { s o c k e t 1 , s o c k e t 2 } = { ( I P 1 : p o r t 1 ) , ( I P 2 : p o r t 2 ) } TCP连接::=\{socket1,socket2\}=\{(IP1:port1),(IP2:port2)\} TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}
同时要注意:同一个IP地址可以有多个不同的TCP连接,同一个端口号也可以出现在多个不同的TCP连接中。
为了做到可靠传输,我们的思路是当出现差错时让发送方重传出现差错的数据,同时在接受房来不及处理收到的数据时,及时告诉发送方适当降低降低发送数据的速度。
停止等待协议——保证传输的可靠性
“停止等待”就是每发送完一个分组就停止发送,等待对方的确认,在收到确认后在发送下一个分组。
1)出现差错时:
这里注意以下三点:
2)确认丢失和确认迟到:
B给A对分组M1的确认丢失时,会导致B又收到了重传的分组M1(M1并未丢失),这时B应采取两个行动:第一,丢弃这个重复的分组M1;第二,向A发送确认。
B给A对分组M1的确认迟到时,A会收到重复的确认。对重传的确认处理很简单:A这边收下后就丢弃,B这边仍然会收到重复的M1,并且同样要丢弃重复的M1,并重传确认分组。
3)信道利用率:
停止等待协议优点是:简单,但缺点是:信道利用率太低。
$$ 信道利用率\ U=\frac{T_D}{T_D+RTT+T_A} $$ **使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信,上述这种可靠传输协议常称为自动重传请求ARQ。**为了提高利用率,可采用流水线传输,就需要使用连续ARQ协议和滑动窗口协议。
连续ARQ协议
采用回退N方法进行重传。
发送方维持发送窗口,接收方一般采用累计确认的方式,就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认,这就表示:到这个分组为止的所有分组都已正确收到了。
优点是:容易实现,即使确认丢失也不必重传。缺点是:不能向发送方反映出接收方已经正确收到的所有分组的信息。【举例见课本217页上/PPT:81页】
连续ARQ协议与停止等待协议
连续ARQ协议 | 停止等待协议 | |
---|---|---|
发送的分组数量 | 一次发送多个分组 | 一次发送一个分组 |
传输控制 | 滑动窗口协议 | 停等-等待 |
确认 | 单独确认 + 累积确认 | 单独确认 |
超时定时器 | 每个发送的分组 | 每个发送的分组 |
编号 | 每个发送的分组 | 每个发送的分组 |
重传 | 回退N,多个分组 | 一个分组 |
**源端口和目的端口:**各占2个字节。
序号[重点]:占4个字节。序号范围是 [ 0 , 2 32 − 1 ] [0,2^{32}-1] [0,232−1]共 2 32 2^{32} 232个序号。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。【例如:一报文段的序号字段值是301,而携带的数据共有100字节,这就表明:本报文段的数据的第一个字节的序号是301,最后一个字节的序号是400.显然,下一个报文段(如果还有的话)的数据序号应当从401开始,即下一个报文段的序号字段值应为401,这个字段的名称也叫作**“报文段序号”**。】
确认号[重点]:占4字节,是期望收到对方下一个报文段的第一个数据字节的序号。
[也就是说]若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到。
数据偏移:占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。
……
确认ACK[重点]:仅当ACK=1时,确认号字段才有效;当ACK=0时,确认号无效。【这里,确认ACK要与确认号区分开,确认ACK只有一位,表示确认字号是否有效,而确认号的值表示希望对方下一报文段第一个数据字节的序号】
……
**同步SYN:**在连接建立时用于同步序号的。连接请求和连接接受时都需要SYN=1。
**终止FIN:**用于释放一个链接。当要释放连接时,FIN=1。
窗口:窗口指的是发送本报文段的一方的接收窗口(而不是自己的发送窗口),窗口值作为接收方让发送方设置其发送窗口的依据。
**检验和:**检验和字段检验的范围包括首部和数据这两部分。
【四句重要的话】
课本221-224页/PPT:117-131页看一遍,挺好理解的,注意几点
由于TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段,因此涉及重传时间的选择问题。
TCP采用一种自适应算法,它记录一个报文段发出的时间,以及收到相应的确认的时间,这两个时间之差就是报文段的往返时间RTT。TCP保留了RTT的一个加权平均往返时间 R T T s RTT_{s} RTTs。第一次测量时, R T T s RTT_{s} RTTs的值就取为所测量到的RTT样本值,之后更新如下:
新 的 R T T s = ( 1 − α ) × ( 旧 的 R T T s ) + α × ( 新 的 R T T 样 本 ) 新的RTT_{s}=(1-\alpha)\times (旧的RTT_{s})+\alpha \times (新的RTT样本) 新的RTTs=(1−α)×(旧的RTTs)+α×(新的RTT样本)
上式的系数 α \alpha α取值在 [ 0 , 1 ] [0,1] [0,1],推荐值为 1 8 \frac{1}{8} 81。
显然,超时计时器设置的超时重传时间RTO应略大于上面得出的加权平均往返时间 R T T s RTT_{s} RTTs,计算如下式:
R T O = R T T s + 4 × R T T D RTO=RTT_{s}+4\times RTT_{D} RTO=RTTs+4×RTTD
而 R T T D RTT_{D} RTTD是 R T T RTT RTT的偏差的加权平均值。第一次测量时, R T T D RTT_{D} RTTD的值取为测量到的 R T T RTT RTT样本值的一半,之后更新如下:
新 的 R T T D = ( 1 − β ) × ( 旧 的 R T T D ) + β × ∣ R T T S − 新 的 R T T 样 本 ∣ 新的RTT_{D}=(1-\beta)\times (旧的RTT_{D})+\beta \times |RTT_{S}-新的RTT样本| 新的RTTD=(1−β)×(旧的RTTD)+β×∣RTTS−新的RTT样本∣
上式中的系数 β \beta β小于1,推荐值为 1 4 \frac{1}{4} 41。
【注意区别TCP的流量控制和拥塞控制】
流量控制:解决端到端的问题。
拥塞控制:解决网络中的问题。
拥塞控制:为了解决网络拥堵的问题
TCP进行拥塞控制的算法有四种,即慢开始、拥塞避免、快重传和快恢复。
首先我们强调两个概念:1)这里我们使用报文段的个数作为窗口大小的单位。2)传输轮次:一个传输轮次所经历的时间其实就是往返时间RTT。
1)**慢开始:**主机刚开始发送数据时,由小到大逐渐增大发送窗口,也就是说,由小到大逐渐增大拥塞窗口的数值。每经过一个传输轮次,拥塞窗口cwnd就加倍。【这里cwnd即从1到2再到4再到8……】。这里的“慢”就是指一开始设置cwnd=1。
为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh,慢开始门限ssthresh的用法如下:
2)**拥塞避免:**让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT(一个轮次)就将cwnd加1,而不是像慢开始阶段那样加倍增长。
3)快重传:接收方立即发送确认信息,快重传算法规定,发送方只要一脸收到3个重复确认,就知道接收方确实没有收到报文段M3,因而应当立即进行重传。
4)**快恢复算法:**收到3-ACK时使用。
几个重要的时间点:
TCP的运输连接有三个阶段:连接建立、数据传送和连接释放。
TCP连接建立:三报文握手,TCP连接的建立采用客户服务器方式。【本例中:A主动打开连接,而B被动打开连接】
【重点,详看课本238-239页/PPT:222-228页】
TCP连接释放:谁数据先发完之后,谁先发FIN来释放连接。
【重点,详看课本240-241页/PPT:230-237页】
至此,计算机网络的前五章知识大纲整理完毕!