计算机网络在信息时代中的作用:21世纪是以数字化、网络化、信息化为重要特征的信息时代,作为信息的最大载体和传输媒介,网络已成为这个信息时代的核心基础
简单定义:硬件(独立和连接)+软件(协议)+目的(共享和通信)
计算机网络就是以传输信息为基本目的,用通信线路和通信设备将多个计算机连接起来的计算机系统的集合
按网络覆盖范围进行分类
局域网(Local Area Network,LAN
,一个实验室、一幢楼、一个校园)
城域网(Metropolitan Area Network,MAN
,几个街区甚至整个城市,5-50 km)
广域网(Wide Area Network,WAN
,覆盖一个国家或地区甚至几个洲,也称为远程网)
个人区域网(Personal Area Network,PAN
,10 m以内)
按网络的使用者进行分类
公用网(所有愿意缴纳费用的人都能使用)
专用网(专门为本单位的特殊业务工作建造的,例如,军队、铁路、电力等系统)
网络
网络由若干节点(Node)和连接这些节点的链路(Link)组成
节点:可以是计算机、集线器、交换机、路由器
互连网络(internet,通用名词,注意和 Internet互联网 区分)
将网络用路由器连接起来就成了互连网络,因此互连网络是网络的网络
总结:网络把许多计算机连接在一起,而互联网络则把许多网络连接在一起
互联网(Internet,也称 因特网)
当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,采用TCP/IP协议作为通信规则,前身是美国的阿帕网(ARPANet)
边缘部分:用户直接使用的
核心部分:为边缘部分提供服务的
第一阶段:从单个网络ARPANET向互连网络发展
第二阶段:逐步建成三级结构的互联网
第三阶段:逐渐形成多层次的ISP结构的互联网
这种必须经过
建立连接
(分配通信资源)
通信
(一直占用通信资源)
释放连接
(归还通信资源)三个步骤的交换方式称为电路交换
电路交换:电路交换是指在通信开始之前,建立一条专用的物理连接,然后在通信过程中一直占用这条连接,直到通信结束。在这个过程中,数据被分成固定大小的数据包,每个数据包都被分配一个专用的物理通路。
优点:传输速度快
缺点:连接建立需要时间,且连接一旦建立就无法被其他通信使用(效率很低)
整个报文传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
缺点:转发时延高
我们通常把要发送的整块数据称为一个报文(Message)
发送报文之前,先将报文划分为一个个更小的等长的数据段,在数据段前面加上首部(又称为包头)就构成了分组(又称为包)
分组交换:分组交换是指将报文分成较小的数据包,每个数据包都带有目标地址和源地址等信息,然后通过网络传输。在传输过程中,每个数据包都独立传输,可以通过不同的路径到达目的地,由于每个分组交换机都是先存储下来再转发出去,因此该方法被称为存储转发方式
数据的传输速率,也称为数据率、比特率 1字节(byte)=8比特(bit)
单位是
bit/s 或 bps
,比特是数据量的单位,是一个二进制数字(0或1)一般来说,表示速率时
表示数据时
带宽本来是指某个信号具有的频带宽度,表示通信线路允许通过的信号频带范围,单位为赫兹
计算机网络中,带宽表示网络某通道传输能力,即最高数据率,单位为比特每秒(bit/s)
也称为吞吐率,表示单位时间内通过某个网络(或信道、接口)的数据量
时延是指数据从网络的一端传送到另外一端所需要的时间,也称为延迟或迟延
网络中的时延通常由以下几个不同的部分组成:
发送时延:主机或路由器将整个分组的所有比特发送到通信线路上所需要的时间
传播时延:是电磁波在信道中传播一定距离所花费的时间
处理时延:主机或路由器在收到分组时处理分组花费的时间(一般不方便计算)
网络协议主要由以下三要素组成:
语法:数据与控制信息的结构或格式(例如,地址字段多长以及它在分组的什么位置)
语义:各个控制信息的具体含义(需要发出何种控制信息、完成何种动作及做出何种响应)
同步:事件实现的顺序和时间的详细说明(数据何时发出以及以什么速率发出)
我们学习的是具有五层协议的原理体系结构
协议是水平的,服务是垂直的
实体:任何可发送或接收信息的硬件或软件进程
协议:控制两个或多个对等实体之间通信的规则的集合
下层通过层级接口向上层提供服务,下面的协议对上面的实体是”透明“的
透明:某个实际存在的事物看起来好像不存在一样
任务:怎样在连接各种计算机的传输媒体上传输数据比特流(使数据链路层感觉不到各种传输媒体之间的差异,只需要使用物理层服务就能传输比特流,不必关心具体怎么实现)
定义
模拟信号:消息的参数的取值是连续的
数字信号:消息的参数的取值是离散的
编码:将数字数据转换成数字信号的过程
调制:将数字数据转换成模拟信号的过程
常用编码方式
基本的调制方法
相位调制
8相位调制表示8种状态,只需要3个比特(二进制,
)即可,所以1个码元可以承载3个比特,数据传输率 = 3*波特率,以此类推
奈式准则
香农公式
知道信噪比(dB)求S/N,假设信噪比为30dB
在信道带宽一定的情况下,根据奈氏准则和香农公式,要想提高信息的传输速率就必须采用多元制(更好的调制方法)和努力提高信道中的信噪比
自从香农公式发表后,各种新的信号处理和调制方法就不断出现,其目的都是为了尽可能地接近香农公式给出的传输速率极限,但实际信道能达到的传输速率要低不少
总结:
并行传输和串行传输
并行传输速度是串行传输的n倍,但是成本高所以长距离传输使用串行传输
远距离传输使用串行传输,计算机内部使用并行传输
异步传输和同步传输
异步传输字节之间异步,但是要添加开始码和停止码作为引导
单工、半双工和全双工通信
同轴电缆
双绞线
光纤
微波
其他无线电波
红外线和可见光
复用:当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来共享传输媒体的带宽。
频分复用(Frequency-division multiplexing,
FDM
):将多路基带信号调制到不同频率载波上,再进行叠加形成一个复合信号,接收端的分用器通过滤波将各路信号滤出,将合成的复合信号恢复成原始的多路信号。
时分复用(Time Division Multiplexing,
TDM
):将传输线路的带宽资源按时间轮流分配给不同的用户,用户只能在分配的时间里使用线路传输数据(类似于时间片轮转)存在的不足:使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般不高。(如果A暂时不使用信道,其他用户正常使用,时分复用还是会给A分配时间,而且这段时间内其他用户也不能使用)
统计时分复用(statistical time division multiplexing,
STDM
):动态地按需分配共用信道的时隙,只将需要传送数据的终端接入共用信道,可以提高信道的利用率帧与帧之间留有空隙用来存储用户的地址信息,因为不是固定的分配给某个用户
波分复用(Wavelength Division Multiplexing,
WDM
)就是光的频分复用。使用一根光纤来同时传输多个光载波信号。现在已能做到在一根光纤上复用几十路或更多路数的光载波信号。
码分复用(Code Division Multiplexing,
CDM
)一种共享信道的方法。由于该技术主要用于无线多址接入(本书中我们不严格区分多址与复用)人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
每一个用户可以在同样的时间使用同样的频带进行通信。各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
最初用于军事,因为这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现
规格化内积:将码片序列先写成+1和-1的向量
例如:码片序列为(1101)>>> 向量为(+1,+1,-1,+1)
向量相乘/向量维数 = 内积
内积为1 --> 发送信号1 发送的是自己的码片序列
内积为0 --> 未发送信号 未发送数据
内积为-1 --> 发送信号0 发送的是自己的码片序列的二进制反码
任务:解决数据包在一个网络或一段链路上传输的问题
链路(Link)是指从一个节点到相邻节点的一段物理线路,而中间没有任何其他的交换节点
数据链路(Data Link)是基于链路的。当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路
计算机中的网络适配器(俗称网卡)和其相应的软件驱动程序就实现了这些协议。一般的网络适配器都包含了物理层和数据链路层这两层的功能
帧(Frame)是数据链路层的协议数据单元
2. 透明传输问题出现原因:上层应用交付的数据单元中可能含有和帧定界符相同的数据而被接收端误认为帧定界符从而导致错误。
如果不解决上述问题,则数据链路层就会对上层交付的PDU的内容有所限制,即PDU中不能包含帧定界符。显然,这样的数据链路层没有什么应用价值。
透明传输:数据链路层对上层交付的PDU的内容没有任何限制,就好像数据链路层不存在一样
字符填充(字节填充)
零比特填充
扫描要发送的信息,如果有连续的5个1,立即插入1个0,接收端逆操作即可(01111110为帧定界符)
比特差错:比特在传输过程中可能会产生差错,0可能变为1,1可能变为0,这叫比特差错,也称为误码
误码率:传输错误的比特数与所传输比特总数的比率称为误码率
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一
CRC
发送方
接收方
基本原理
发送一个数据分组
DATA0
然后等待接收方发来确认信息ACK0
后再传输下一个数据分组DATA1
,如果超时未接收到接收方发送的确认信息ACK0
或者接收到否认信息NAK
就重新发送上一个分组数据分组,数据分组和确认信息的编号都是用来区分和上一个分组或信息是否相同
停止等待协议的信道利用率
确认信息的发送时延一般忽略不计
总结:当往返时间远大于数据帧的发送时延时,信道利用率很低,如果出现超时重传,信道利用率更低(卫星链路)
PPP
)概述
点对点协议(Point-to-Point Protocol,PPP)是目前使用最广泛的点对点数据链路层协议,主要组成:
网络控制协议NCPs
封装成帧
链路控制协议LCP
PPP的帧格式
PPP的透明传输
PPP的状态图
如何协调多个发送站点和接收站点对一个共享传输媒体的占用(多个媒体同时发送信号导致冲突的问题)
频分多址
时分多址
码分多址
这种固定划分信道的方法非常不灵活,通常在物理层中使用,而不是数据链路层
CSMA/CD
协议帧发送流程图
争用期 2τ ,即端到端传播时延的2倍
最小帧长
最小帧长 = 争用期 x 数据传输速率
动态退避:发生碰撞后进行重传,随着重传次数增加,退避时间也会逐渐增加,减小了碰撞的概率
帧接收流程图
CSMA/CA
协议MAC
、IP
地址、ARP
协议MAC
地址MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识(路由器有多个接口,所以有多个MAC地址)
MAC地址格式
广播MAC地址为FF-FF-FF-FF-FF-FF
MAC帧有三种:单播、广播、多播
单播帧:一对一
广播帧:一对全体
广播地址:
FF-FF-FF-FF-FF-FF
多播帧:一对多
多播地址:第二个数是奇数代表是多播地址
IP
地址(网络层再详细介绍)
ARP
协议主机中保存了一个高速缓存表,记录了IP和MAC的对应关系
ARP协议动态获取MAC地址
总结:
ARP
协议只能逐链路(相邻)使用,不能跨网络使用(因为需要使用广播帧)
STP
为了提高以太网的可靠性,有时需要在两个以太网之间使用多个透明网桥来提供冗余链路
为了避免广播帧在环路中永久兜圈,透明网桥使用生成树协议
Spanning Tree Protocol
,可以在增加冗余链路提高网络可靠性的同时,又避免环路带来的问题
VLAN
虚拟局域网(
Virtual Local Area Network
,VLAN)是一种将局域网内的站点划分成与物理位置无关的逻辑组的技术,一个逻辑组就是一个VLAN,VLAN中的各站点具有某些共同的应用需求
广播风暴:广播风暴会浪费网络资源和各主机的CPU资源
可以使用路由器切割广播域,防止广播风暴,但是成本较高
使用vlan技术划分广播域
A
发送广播帧,Access
接口接收并打标签
,PVID
和VID
相同的Access端口可以接收该帧,进行去标签转发
Trunk
端口的PVID
如果等于该帧的VID
,也会先去标签转发,然后再打标签,否则直接转发Trunk端口是连接两个交换机的
网络层的主要任务:将分组从源主机经过多个网络和多段链路传输到目的主机,可以将该任务划分为分组转发和路由选择两种重要的功能
虚电路表示这是一条逻辑上的连接,分组沿着这条逻辑连接按照存储转发方式传送,而不是真正建立了一条物理连接
分组的首部仅在连接建立阶段使用完整的目的主机地址,之后每个分组的首部只需要携带一条虚电路编号即可
虚电路服务采用的是分组交换方式!!
TCP/IP
使用的就是这种简单灵活的、无连接的、不可靠的数据报服务核心思想:可靠通信应由用户主机来保证
由于网络自身不提供端到端的可靠传输服务,这就使得网络中的路由器可以做得比较简单,大大降低了网络造价
这种设计思想的运行方式灵活、能够适应多种应用。因特网能够发展到今日的规模,充分证明了当初采取这种设计思想的正确性
概念
网际协议(Internet Protocol
,IP
)是TCP/IP
体系结构网际层中的核心协议
IPv4
地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符
IP
IP
分类编址方法不够灵活且容易造成大量地址浪费,划分子网编址方法对其进行改进(“打补丁”)
划分子网案例
IP
无分类域间路由选择(
C
lasslessI
nter-D
omainR
outing,CIDR
)
练习
路由聚合
找出共同前缀,其余位取0
IP数据报的发送和转发过程
主机发送IP数据报
判断目的主机是否与自己在同一个网络:
若在同一个网络,则属于直接交付,直接发送给目的主机
若不在同一个网络,则属于间接交付,传输给主机所在网络的默认网关(路由器),由默认网关帮忙转发)
路由器转发IP数据报
检查IP数据报首部是否出错:
若出错,则直接丢弃该IP数据报并通告源主机
若没有出错,则进行转发
根据IP数据报的目的地址在路由表中查找匹配的条目:
若找到匹配的条目,则转发给条目中指示的下一跳;
若找不到,则丢弃该IP数据报并通告源主机;
路由器不转发广播IP数据报,即路由器隔离广播域,如果因特网中数量巨大的路由器收到广播IP数据报后都进行转发,则会造成巨大的广播风暴,严重浪费因特网资源
中继器和集线器工作在物理层,既不隔离冲突域也不隔离广播域
网桥和交换机(多端口网桥)工作在数据链路层,可以隔离冲突域,不能隔离广播域
路由器工作在网络层,既隔离冲突域,也隔离广播域
默认路由:默认路由条目中的目的网络0.0.0.0/0
,其中0.0.0.0
表示任意网络,而网络前缀“/0”(相应的地址掩码为0.0.0.0
)是最短的网络前缀
特定主机路由:特定主机路由条目中的目的网络192.168.2.1/32
,其中192.168.2.1
是特定主机的IP地址,而网络前缀“/32”(相应地址掩码为255.255.255.255
)是最长的网络前缀
路由器在查找转发表转发IP数据报时,遵循“最长前缀匹配”的原则,因此默认路由匹配优先级最低,特定主机路由条目的匹配优先级最高
错误配置静态路由有可能导致路由环路问题
为了防止IP数据报在环路中永久兜圈,在IP数据报首部设有生存时间TTL,TTL为0时会被丢弃
路由环路问题产生原因:
路由配置错误
聚合了不存在的IP地址
需要给不存在的IP地址配置黑洞路由,防止IP数据报转发到其他路由器
网络故障
可以在网络发生故障时添加一条针对该IP的黑洞路由,待网络正常后又将其设置为失效状态
路由选择分为两类
静态路由选择 | 动态路由选择 |
---|---|
采用人工配置的方式给路由器添加网络路由、默认路由和特定主机路由等路由条目 | 路由器通过路由选择协议自动获取路由信息 |
静态路由选择简单、开销小,但不能及时适应网络状态(流量、拓扑等)的变化 | 动态路由选择比较复杂、开销比较大,但能较好地适应网络状态的变化 |
静态路由选择一般只在小规模网络中采用 | 动态路由选择适用于大规模网络 |
因特网采用分层次的路由选择协议
因特网是全球最大的互联网,它所采取的路由选择协议具有以下三个主要特点:
自适应:因特网采用动态路由选择,能较好地适应网络状态的变化。
分布式:因特网中的各路由器通过相互间的信息交互,共同完成路由信息的获取和更新。
分层次:将整个因特网划分为许多较小的自治系统(Autonomous System,AS
),在自治系统内部和外部采用不同类别的路由选择协议,分别进行路由选择
RIP
路由信息协议(Routing Information Protocol,RIP
)是内部网关协议中最先得到广泛使用的协议之一
相关概念
RIP使用跳数(Hop Count
)作为度量(Metric
)来衡量到达目的网络的距离
RIP将路由器到直连网络的距离定义为1
RIP将路由器到非直连网络的距离定义为所经过的路由器数加1
RIP允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达,因此RIP只适用于小型互 联网
RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由,和传输速率和物理距离等无关
RIP的3个重要特点
RIP的工作原理
基本流程
RIP路由条目的更新规则
坏消息传播的慢
RIP的优缺点
优点 | 缺点 |
---|---|
实现简单,路由器开销小 | RIP限制了最大RIP距离为15 这就限制了使用RIP的自治系统AS的规模 |
如果一个路由器发现了RIP距离更短的路由,那么这种更新信息就传播得很快,即“好消息传播得快” | 相邻路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也随之增大 |
“坏消息传播得慢”,使更新过程的收敛时间过长。因此,对于规模较大的自治系统AS,应当使用OSPF 协议 |
OSPF
开放最短路径优先(
Open Shortest Path First,OSPF
)协议是为了克服路由信息协议RIP的缺点在1989年开发出来的
“开放”表明
OSPF
协议不是受某一厂商控制,而是公开发表的“最短路径优先”是因为使用了Dijkstra提出的最短路径算法(
Shortest Path First,SPF
)
OSPF
是基于链路状态的,而不像RIP
是基于距离向量的
OSPF
基于链路状态并采用最短路径算法计算路由,从算法上保证了不会产生路由环路
OSPF
不限制网络规模,更新效率高,收敛速度快
链路状态(Link State,LS
)是指本路由器都和哪些路由器相邻,以及相应链路的“代价(cost)”,类似RIP中的距离
“代价”用来表示费用、距离、时延和带宽等,这些都由网络管理人员来决定
OSPF
路由器邻居关系的建立和维护
如果在死亡倒计时为0时还未收到邻居的问候分组,则认为该邻居不可达,
在接受到邻居的问候分组后,刷新死亡倒计时为40s
路由器每10s会向邻居发送问候分组
链路状态数据库(Link State Database,LSDB
)
使用
OSPF
的各路由器,基于链路状态数据库LSDB进行最短路径优先计算,构建出各自到达其他各路由器的最短路径,即构建各自的路由表(根据链路状态数据库得出全局带权有向图,使用Dijkstra算法得出个路由器的最短路径)
OSPF
的五种分组类型
类型1,问候(Hello
)分组:用来发现和维护邻居路由器的可达性。
类型2,数据库描述(Database Description
)分组:向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
类型3,链路状态请求(Link State Request
)分组:向邻居路由器请求发送某些链路状态项目的详细信息。
类型4,链路状态更新(Link State Update
)分组:路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态
类型5,链路状态确认(Link State Acknowledgment
)分组:这是对链路状态更新分组的确认分组。
采用划分区域的方法,虽然使交换信息的种类增多了,同时也使OSPF协议更加复杂了,但这样做能使每一个区域内部交换路由信息的通信量大大减小,因而使OSPF协议能够用于规模更大的自治系统AS
BGP
边界网关协议(
Border Gateway Protocol,BGP
)属于外部网关协议EGP
这个类别,用于自治系统AS
之间的路由选择协议由于在不同AS内度量路由的“代价”(距离、带宽、费用等)可能不同,因此对于AS之间的路由选择,使用统一的“代价”作为度量来寻找最佳路由是不行的
AS之间的路由选择还必须考虑相关策略(政治、经济、安全等)
总结:
BGP
只能是力求寻找一条能够到达目的网络且比较好的路由(即不能兜圈子),而并非要寻找一条最佳路由
在配置BGP时,每个AS的管理员要选择至少一个路由器作为该AS的“BGP发言人”
一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器
使用
TCP
连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)BGP发言人除了运行BGP协议外,还必须运行自己所在AS所使用的内部网关协议IGP,例如RIP或OSPF
BGP发言人交换网络可达性的信息,也就是要到达某个网络所要经过的一系列自治系统
当BGP发言人相互交换了网络可达性的信息后,各BGP发言人就根据所采用的策略,从收到的路由信息中找出到达各自治系统的较好的路由,也就是构造出树形结构且不存在环路的自治系统连通图
字段 | 含义 |
---|---|
版本 | 长度为4个比特,用来表示IP协议的版本,通信双方使用的IP协议的版本必须一致,目前广泛使用的IP协议的版本号为4(即IPv4) |
首部长度 | 长度为4个比特,该字段的取值以4B为单位,用来表示IPV4数据报的首部长度。 最小取值为二进制的0101,即十进制的5,再乘以4字节单位,表示IPv4数据报首部只有20字节固定部分 最大取值为二进制的1111,即十进制的15,再乘以4字节单位,表示IPV4数据报首部包含20字节固定部分和最大40字节可变部分 |
总长度 | 长度为16个比特,该字段的取值以字节为单位,用来表示IPv4数据报的长度(首部长度+数据载荷长度) 最大取值为二进制的16个比特1,即十进制的65535(很少传输这么长的IPv4数据报) |
标识 | 长度为16个比特,属于同一个IPv4数据报的各分片数据报应该具有相同的标识 |
标志 | 最低位(More Fragment,MF )MF=1表示本分片后面还有分片 MF=0表示本分片后面没有分片 中间位( Don't Fragment,DF )DF=1表示不允许分片 DF=0表示允许分片 最高位为保留位,必须设置为0 |
片偏移 | 长度为16个比特,该字段的取值,以8B为单位,用来指出分片IPv4数据报的数据载荷偏移其在原IPv4数据报的位置有多远,只能为整数,否则必须调整前一个分片长度 |
生存时间 | 长度为8个比特,最大取值为二进制的11111111,即十进制的255。该字段的取值最初以秒为单位。因此,IPv4数据报的最大生存时间最初为255秒。路由器转发IPv4数据报时,将其首部中该字段的值减去该数据报在路由器上所耗费的时间,若结果不为0就转发,否则就丢弃 生存时间字段后来改为以“跳数”为单位,路由器收到待转发的IPv4数据报时,将其首部中的该字段的值减1,若结果不为0就转发,否则就丢弃 |
协议 | 长度为8个比特,用来指明IPv4数据报的数据载荷是何种协议数据单元PDU |
首部检验和 | 长度为16个比特,用于检测IPv4数据报在传输过程中其首部是否出现了差错 IPv4数据报每经过一个路由器,其首部中的某些字段的值(例如生存时间TTL、标志以及片偏移等)都可能发生变化,因此路由器都要重新计算一下首部检验和 |
源IP地址和目的IP地址 | 长度都为32个比特,用来填写发送(接收)IPv4数据报的源(目的)主机的IPv4地址 |
MTU
:最大传送单元,超过最大传送单元的长度的IP数据报必须分片
1.数据报格式
2.IPv4和IPv6的区别
Important
1.IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。 2.IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。 3.IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查, 大大提高了路由器的处理效率。 4.IPv6支持即插即用(即自动配置),不需要DHCP协议。 5.IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍: 6.IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。 7.ICMPv6:附加报文类型“分组过大” 8.IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。 9.IPv6取消了协议字段,改成下一个首部字段。 10.IPv6取消了总长度字段,改用有效载荷长度字段。 11.IPv6取消了服务类型字段。
3.从IPv4向IPv6过渡
双栈协议:一台设备上同时装有IPv4和IPv6两个协议栈
隧道技术:IPv6数据报要进入IPv4网络时将整个IPv6数据报封装成IPv4数据报的数据部分传输,离开IPv4网络时再将数据部分拆出IPv6数据报
ICMP
为了更有效地转发IP数据报以及提高IP数据报交付成功的机会,TCP/IP体系结构的网际层使用了网际控制报文协议(
Internet Control Message Protocol,ICMP
)主机或路由器使用ICMP来发送差错报告报文和询问报文
ICMP报文被封装在IP数据报中作为数据载荷发送
差错报告报文:用来向主机或路由器报告差错情况
终点不可达:当路由器或主机不能交付IP数据报时,就向源点发送终点不可达报文,具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种
源点抑制:当路由器或主机由于拥塞而丢弃IP数据报时,就向发送该IP数据报的源点发送源点抑制报文,使源点知道应当把IP数据报的发送速率放慢
超时:
当路由器收到一个目的IP地址不是自己的IP数据报时,会将其首部中生存时间TTL字段的值减1。若结果不为0,则路由器将该数据报转发出去;若结果为0,路由器不但要丢弃该数据报,还要向发送该IP数据报的源点发送时间超过(超时)报文
另外,当终点在预先规定的时间内未能收到一个数据报的全部数据报分片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过(超时)报文
参数问题:当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段的值发现首部在传送过程中出现了误码,就丢弃该数据报,并向发送该数据报的源点发送参数问题报文
改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将IP数据报发送给另外的路由器,这样可以通过更好的路由到达目的主机
以下情况不应发送ICMP差错报告报文:
对ICMP差错报告报文不再发送ICMP差错报告报文
对第一个分片的IP数据报片的所有后续数据报片都不发送ICMP差错报告报文
对具有多播地址的IP数据报都不发送ICMP差错报告报文
对具有特殊地址(例如127.0.0.0
或0.0.0.0
)的IP数据报不发送ICMP差错报告报文。
询问报文:用来向主机或路由器询问情况
回送请求和回答:
由主机或路由器向一个特定的目的主机或路由器发出。收到此报文的主机或路由器必须给发送该报文的源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态
时间戳请求和回答:
用来请求某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32比特的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。这种询问报文用来进行时钟同步和测量时间
PING
分组网间探测(Packet InterNet Groper,
PING
)在命令行中使用ping命令用来测试主机或路由器之间的连通性
PING是TCP/IP体系结构的应用层直接使用网际层ICMP的一个例子,它并不使用运输层的TCP或UDP
PING应用所使用的ICMP报文类型为回送请求和回答
traceroute
跟踪路由应用traceroute,用于探测IP数据报从源主机到达目的主机要经过哪些路由器
在不同操作系统中,traceroute应用的命令和实现机制有所不同:
在UNIX版本中,具体命令为
traceroute
,其在运输层使用UDP协议,在网络层使用ICMP报文类型只有差错报告报文在Windows版本中,具体命令为
tracert
,其应用层直接使用网际层的ICMP协议,所使用的ICMP报文类型有回送请求和回答报文以及差错报告报文原理:设置IP数据报TTL为1,经过第一个路由器时,TTL减为0,IP数据报被丢弃,路由器向源主机发送超时差错报告报文,这样就知道了经过的第一个路由器的IP地址,以此类推依次设置TTL为2,3,4,……,直到接收到目的主机的回送请求回答报文
VPN
虚拟专用网(
Virtual Private Network,VPN
):利用公用的因特网作为本机构各专用网之间的通信载体,这样形成的网络又称为虚拟专用网
专用地址:
10.0.0.0-10.255.255.255
(CIDR地址块10/8)
172.16.0.0-172.31.255.255
(CIDR地址块172.16/12)
192.168.0.0-192.168.255.255
(CIDR地址块192.168/16)
很显然,全世界可能有很多不同机构的专用网具有相同的专用IP地址,但这并不会引起麻烦,因为这些专用地址仅在机构内部使用
注意:在因特网中的所有路由器,对目的地址是专用地址的IP数据报一律不进行转发,这需要由因特网服务提供者ISP对其拥有的因特网路由器进行设置来实现(需要自己对路由器额外配置)
NAT
背景:尽管因特网采用了无分类编址方法来减缓IPv4地址空间耗尽的速度,但由于因特网用户数量的急剧增长,特别是大量小型办公室和家庭网络接入因特网的需求不断增加,IPv4地址空间即将耗尽的危险然仍没有解除(实际上,因特网号码分配管理局IANN于2011年2月3日宣布,IPv4地址已经分配完毕)
网络地址转换(
Network Address Translation,NAT
)技术于1994年被提出,用来缓解IPv4地址空间即将耗尽的问题
NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源
这种方法需要在专用网络连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器称为NAT路由器,它至少要有一个有效的外部全球地址IPG。这样,所有使用内部专用地址的主机在和外部因特网通信时,都要在NAT路由器上将其内部专用地址转换成IPG
NAPT
网络地址与端口号转换方法:将NAT和运输层端口号结合使用,称为网络地址与端口号转换(
Network Address and Port Translation,NAPT
)
由于目前绝大多数基于TCP/IP协议栈的网络应用,都使用运输层的传输控制协议TCP或用户数据报协议UDP,为了更加有效地利用NAT路由器中的全球IP地址,现在常将NAT转换和运输层端口号结合使用
这样就可以使内部专用网中使用专用地址的大量主机,共用NAT路由器上的1个全球IP地址,因而可以同时与因特网中的不同主机进行通信
现在很多家用路由器将家中各种智能设备(手机、平板、笔记本电脑、台式电脑、物联网设备等)接入因特网,这种路由器实际上就是一个NAPT路由器,但往往并不运行路由选择协议
由于NAT对外网屏蔽了内网主机的网络地址,能为内网的主机提供一定的安全保护
第2~4章依次介绍了计算机网络体系结构中的物理层、数据链路层和网络层,它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信
然而在计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程
如何为运行在不同主机上的应用进程提供直接的逻辑通信服务,就是运输层的主要任务,运输层协议又称为端到端协议
运行在计算机上的进程是使用进程标识符(P
rocess ld
entification,PID
)来标识的。
然而,因特网上的计算机并不是使用统一的操作系统,而不同操作系统(Windows、Linux、.MacOS) 又使用不同格式的进程标识符
为了使运行不同操作系统的计算机的应用进程之间能够基于网络进行通信,就必须使用统一的方法 对TCPP体系的应用进程进行标识
TCP/IP
体系结构的运输层使用端口号来标识和区分应用层的不同应用进程。端口号的长度为6比特,取
值范围是0~65535
端口号只具有本地意义,即端口号只是为了标识本计算机网络协议栈应用层中的各应用进程。在因特网中,不同计算机中的相同端口号是没有关系的,即相互独立。另外,
TCP
和UDP
端口号之间也是没有关系的
复用(Multiplexing):
定义: 复用是指将多个应用程序的数据流合并到一个共享的通信通道上
TCP中的复用: 在TCP中,复用通过源端口号来实现。TCP连接的两端使用IP地址和端口号来唯一标识。源端口号表示发送端的应用程序,目的端口号表示接收端的应用程序。这样,在单个TCP连接中,多个应用程序的数据可以共享同一个物理通信通道
UDP中的复用: 在UDP中,复用同样通过源端口号来实现。UDP报文的源端口号用于标识发送端的应用程序,目的端口号用于标识接收端的应用程序
分用(Demultiplexing):
定义: 分用是指根据数据流中的标识信息将合并的数据流分发给正确的应用程序
TCP中的分用: 在TCP中,分用通过目的端口号来实现。接收端根据目的端口号将接收到的数据分发给相应的应用程序。这样,TCP层能够将数据正确地传递给目标应用程序
UDP中的分用: 在UDP中,同样通过目的端口号来实现分用。接收端通过目的端口号确定应该将数据交付给哪个应用程序
常见协议的分类
TCP
和UDP
的对比注意:
TCP面向连接是逻辑连接,并非真实物理连接
TCP面向字节流,UDP面向应用报文(只是给数据报添加一个UDP首部)
TCP只支持单播,UDP支持单播、多播和广播
TCP提供可靠服务,UDP提供不可靠服务
TCP为应用程序提供了流量控制(
Flow Control
)机制,以解决因发送方发送数据太快而导致接收方来不及接收,造成接收方的接收缓存溢出的问题流量控制的基本方法:接收方根据自己的接收能力(接收缓存的可用空间大小)控制发送方的发送速率
流程
例题
快重传算法和快恢复算法(改进TCP性能,1990年Reno版本)
问题!!
快重传
采用快重传算法可以让发送方尽早知道发生了个别TCP报文段的丢失
“快重传”是指使发送方尽快(尽早)进行重传,而不是等重传计时器超时再重传
这就要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即发出对已收到的报文段的重复确认
发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等该报文段的重传计时器超时再重传
快恢复
与快重传算法配合使用的是快恢复算法,发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段,于是不启动慢开始算法,而是执行快恢复算法
快恢复算法:发送方将慢开始门限ssthresh的值和拥塞窗口cwnd的值都调整为当前cwnd值的一半,并开始执行拥塞避免算法
也有的快恢复实现是把快恢复开始时的cwnd值再增大一些,即cwnd=新ssthresh+3
TCP超时重传时间RTO的选择是TCP最复杂的问题之一
问题:
超时重传时间设置过小,在确认报文段发送给接收方的过程中,发送方重传数据报文,增大了网络负荷
超时重传时间设置过大,需要重传数据报文时,推迟时间太长,网络空闲时间大,降低了传输效率
超时重传时间
RTO
应略大于往返时间RTT
通过上述两个例子可以看出:当发送方出现超时重传后,收到确认报文段时是无法判断出该确认到底是对原数据报文段的确认还是对重传数据报文段的确认,也就是无法准确测量出RTT,进而无法正确计算RTO
TCP的窗口以字节为单位
发送方
发送窗口内的已发送数据如果迟迟未收到确认,会发生超时重传
只有处于发送窗口内的数据才能发送
接收方
接收方只能对按序收到的数据中的最高序号给出累计确认,3次重复确认会导致发送方快重传
序号落入接收窗口内的数据是允许接收的数据
总结
TCP双方连接的建立要解决的三个问题
思考:第三次确认是否多余,能不能两报文握手?
答案:不能,如下图所示
思考:为什么客户端发送完最后一个确认报文段后不立刻关闭而是等待2个MSL时间后才关闭?
答案:如图所示
TCP保活计时器的作用
参阅思维导图1
Important
伪首部只是计算校验和的时候添加的,计算完后会拆除,不参与运输!
应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分
早期基于文本的应用(电子邮件、远程登录、文件传输、新闻组)
20世纪90年代将因特网带入千家万户的万维网WWW
当今流行的即时通信、P2P文件共享及各种音视频应用
计算设备的小型化和“无处不在”,宽带住宅接入和无线接入的日益普及和迅速发展,为未来更多的新型应用提供了广阔的舞台
C/S
方式P2P
方式DHCP
动态主机配置协议(
D
ynamich
ostc
onfigurationp
rotocol)作用:
DHCP
可为计算机自动配置网络参数,包括:
IP地址
子网掩码
默认网关
DNS服务器
DHCP
基本工作过程DHCP
中继代理DNS
域名系统(
D
omainN
ameS
ystem,DNS
)
因特网采用层次树状结构的域名结构
FTP
文件传送协议(
F
ileT
ransferP
rotocol,FTP
)
基本工作原理
主动模式
被动模式
E-mail
SMTP
简单邮件传送协议(Simple Mail Transfer Protocol,
SMTP
)的基本工作过程
MIME
多用途因特网邮件扩展 (Multipurpose Internet Mail Extensions,
MIME
)
MIME
对邮件内容中的非ASCII字符转换成ASCII字符
邮局协议(Post Office Protocol,
POP
)因特网邮件访问协议(Internet Message Access Protocol,
IMAP
)
万维网(World Wide Web,
WWW
)并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网
万维网是欧洲粒子物理实验室的Tim Berners-Lee最初于1989年3月提出的
URL
统一资源定位符(
U
niformR
esourceL
ocator)
HTTP
超文本传输协议
HTTP
(HyperText Transfer Protocol)HTTP定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器
请求报文格式
响应报文格式
Cookie
早期的万维网应用非常简单,仅仅是用户查看存放在不同服务器上的各种静态的文档。因此HTTP被设计为一种无状态的协议。这样可以简化服务器的设计
现在,用户可以通过万维网进行各种复杂的应用,如网上购物、电子商务等。这些应用往往需要万维网服务器能够识别用户
Cookie提供了一种机制使得万维网服务器能够“记住”用户,而无需用户主动提供用户标识信息。也就是说,Cookie是一种对无状态的HTTP进行状态化的技术
ACK (Acknowledgement) 确认
ADSL (Asymmetric Digital Subscriber Line) 非对称数字用户线
AP (Access Point) 接入点
AP (Application) 应用程序
API (Application Programming Interface) 应用编程接口
APNIC (Asia Pacific Network Information Centre) 亚太网络信息中心
ARIN (American Registry for Internet Numbers) 美国因特网号码注册机构
ARP (Address Resolution Protocol) 地址解析协议
ARPA (Advanced Research Projects Agency) 美国国防部远景研究规划局 (高级研究计划署)
ARQ (Automatic Repeat-request) 自动重传请求
AS (autonomous system) 自制系统
BGP (Border Gateway Protocol ) 边界网关协议
BOOTP (Bootstrap Protocol) 引导程序协议
BSA (Basic Service Area) 基本服务区
BT (Bit Torrent) 一种P2P程序
CA (Certificate Authority) 认证中心
CA (Collision Avoidance) 碰撞避免
CATV ( Community Antenna Television) 有线电视
CDM (Code Division Multiplexing) 码分复用
CDMA (Code Division Multiple Access) 码分多址
CGI (Common Gateway Interface) 通用网关接口
CIDR (Classless Inter-Domain Routing) 无分类域间路由选择
CRC (Cyclic Redundancy Check) 循环冗余校验
CSMA/CD (Carrier Sense Multiple Access/Collision Detect) 载波监听 多址接入/碰撞检测
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) 载波监听多点接入/冲突避免
CTS (Clear To Send) 允许发送
DACS (Digital Access and Cross-connect System) 数字交接系统
DHCP (Dynamic Host Configuration Protocol) 动态主机配置协议
DiffServ (Differentiated Services) 区分服务
DLCI (Data Link Connection Identifier) 数据链路连接标识符
DMT (Discrete Multi-Tone) 离散多音 (调制)
DNS (Domain Name System) 域名系统
DoS (Denial of Service) 拒绝服务
DS (Distribution System) 分配系统
DSL (Digital Subscriber Line) 数字用户线
DSLAM ( DSL Access Multiplexer) 数字用户线接入复用器
DSSS (Direct Sequence Spread Spectrum) 直接序列扩频
EFM (Ethernet in the First Mile ) 第一英里的以太网
EFPHB (Expedited Forwarding Per-Hop Behavior) 迅速转发每跳行为
EGP (Exterior Gateway Protocol) 外部网关协议
EIA (Electronic Industries Association) 美国电子工业协会
FCS (Frame Check Sequence) 帧检验序列
FDDI (fiber-distributed data interface) 光纤分布式数据接口
FDM (Frequency-division multiplexing) 频分复用
FEC (Forwarding Equivalence Class) 转发等价类
FFD (Full-Function Device) 全功能设备
FHSS (Frequency-Hopping Spread Spectrum) 跳频扩频
FIFO (First In First Out) 先进先出
FQ (Fair Queuing) 公平排队
FTP (File Transfer Protocol) 文件传输协议
GIF (Graphics System for Mobile) 全球移动通信系统,GSM体制
HDLC ( High-Level Data Link Control) 高级数据链路控制
HDSL (High-speed DSL) 高速数字用户线
HSSG (High Speed Study Group) 高速研究组
HTML (Hyper Text Markup Language) 超文本标记语言
HTTP (Hyper Text Transfer Protocol) 超文本传送协议
IAB (Internet Architecture Board) 因特网体系结构委员
IANA (Internet Assigned Numbers Authority) 因特网赋号管理局
ICMP (Internet Control Message Protocol) 网际控制报文协议
IEEE (Institute of Electrical and Electronic Engineering) (美国) 电气和电子工程师学会
IFS (Inter Frame Space) 帧间间隔
IGMP (Internet Group Management Protocol) 网际组管理协议
IGP (Interior Gateway Protocol) 内部网关协议
IM (Instant Messaging) 及时传信
IMAP ( Internet Message Access Protocol) 因特网报文存取协议
IntServ (Integrated Services) 综合服务
IP (Internet Protocol) 网际协议
IPCP (IP Control Protocol) IP控制协议
IPng (IP Next Protocol) 下一代IP
IPsec (IP security) IP安全协议
ISDN (Internet Services Digital Network) 综合业务数字网
ISO (International Organization for Standardization ) 国际标准化组织
ISOC (Internet Society) 因特网协会
ISP (Internet Service Provider) 因特网服务提供者
LAN (Local Area Network) 局域网
LCP (Link Control Protocol) 链路控制协议
LDP (Label Distribution Protocol) 标记分配协议
LLC(Logical Link Control) 逻辑链路控制
LSR(Label Switched Router) 标记交换路由器
MAC(Medium Access Control) 媒体接入控制
MACA(Multiple Access with Collision Avoidance)具有碰撞避免的多点接入
MAN(Metropolitan Area Network) 城域网
MBONE(Multicast Backbone On the InterNet) 多播主干网
MCU(Multipoint Control Unit) 多点控制单元
MD(Message Digest) 报文摘要
MF(More Fragment) 还有分片
MRU(Maximum Receive Unit) 最大接收单元
MSS(Maximum Segment Size) 最长报文段
MTU(Maximum Transfer Unit) 最大传送单元
NAP(Network Access Point) 网络接入点
NAT(Network Address Translation) 网络地址转换
NAV(Network Allocation Vector) 网络分配向量
NCP(Network Control Protocol) 网络控制协议
NFS(Network File System) 网络文件系统
NOC(Network Operations Center) 网络运行中心
NSAP(Network Service Access Point) 网络层服务访问点
NSF(National Service Foundation) (美国)国家科学基金会
OFDM(Orthogonal Frequency Division Multiplexing) 正交频分复用
OSI/RM (Open Systems Interconnection Reference Model) 开发系统互连基本参考模型
OSPF(Open Shortest Path First) 开放最短通路优先
P2P(Peer-to-Peer) 对等方式
PAN(Personal Area Network) 个人区域网
PAP(Password Authentication Protocol) 口令鉴别协议
PCA(Policy Certification Authority) 政策认证中心
PCF(Point Coordination Function) 点协调功能
PCM(Pulse Code Modulation) 脉码调制
PEM(Privacy Enhanced Mail) 因特网的正式邮件加密标准
PGP(Pretty Good Privacy) 一种电子邮件的机密标准
PHB(Per-Hop Behavior) 每跳行为
PIFS(Point Coordination Function IFS) 点协调功能帧间间隔
PK(public key) 公钥,公开密钥
PoP(Point of Presence) 汇接点
POP(Post Office Protocol) 邮局协议
PPP(Point-to-Point Protocol) 点对点协议
PPPoE(Point-to-Point Protocol over Ethernet) 以太网上的点对点协议
QAM(Quadrature Amplitude Modulation) 正交幅度调制
QoS(Quality of Service) 服务质量
QPSK(Quarternary Phase Shift Keying)正交相移键控
RARP(Reverse Address Resolution Protocol)逆地址解析协议
RFD(Reduced-Function Device)精简功能设备
RG(Research Group)研究组
RIP(Routing Information Protocol)路由信息协议
RIPE(法文表示的European IP Network)欧洲的IP 网络
RTP(Real-Time Transfer Protocol)实时传送协议
RTSP(Real-Time Streaming Protocol)实时流式协议
RTT(Round-Trip Time)往返时间
SA(Security Association)安全关联
SACK(Selective ACK)选择确认
SAP(Service Access Point)服务访问点
SCTP(Stream Control Transmission Protocol)流控制传输协议
SDH(Synchronous Digital Hierarchy)同步数字系列
SMI(Structure of Management Information)管理信息结构
SMTP(Simple Mail Transfer Protocol)简单邮件传送协议
SNA(System Network Architecture)系统网络体系结构
SNMP(Simple Network Management Protocol)简单网络管理协议
SOH(Start Of Header)首部开始
SONET(Synchronous Optical Network)同步光纤网
STDM(Statistic TDM)统计时分复用
STM(Synchronous Transfer Module)同步传递模块
STS(Synchronous Transport Signal)同步传送信号
TAG(TAG Switching)标记交换
TCB(Transmission Control Block)传输控制程序块
TCP(Transmission Control Protocol)传输控制协议
TDM(Time Division Multiplexing)时分复用
TELNET(TELetype NETwork)电传机网络,一种因特网的应用程序
TFTP(Trivial File Transfer Protocol)简单文件传送协议
TIA(Telecommunications Industries Association)电信行业协会
TLD(Top Level Domain)顶级域名
TLI(Transport Layer Interface)运输层接口
TLS(Transport Layer Security)运输层安全协议
TLV(Type-Length-Value)类型-长度-值
TPDU(Transport Protocol Data Unit)运输协议数据单元
UDP(User Datagram Protocol)用户数据报协议
URL(Uniform Resource Locator)统一资源定位符
UTP(Unshield Twisted Pair)无屏蔽双绞线
UWB(Ultra-Wide Band)超宽带
VC(Virtual Circuit)虚电路
VDSL(Very high speed DSL)甚高数字用户线
VLAN(Virtual LAN)虚拟局域网
VPN(Virtual Private Network) 虚拟专用网
WAN(Wide Area Network) 广域网
WDM(Wavelength Division Multiplexing) 波分复用
WG(Working Group) 工作组
Wi-Fi(Wireless-Fidelity) 无线保真度(无限局域网的同义词)
WLAN(Wireless Local Area Network) 无线局域网
WMAN(Wireless Metrpolitan Area Network) 无线个城域网
WPAN(wireless Personal Area Network) 无线个人区域网
WSN(Wireless Sensor Network) 无线传感器网络
WWW(World Wide Web) 万维网