网络是一个统称,泛指把人或物连接起来的网络
计算机网络是用通信线路将分散在不同地点并具有独立功能的多个计算机系统相互连接,按照网络协议进行数据通信,实现共享资源的计算机之集合。
要点:计算机是独立,在协议的支持下进行工作,目的是实现资源共享,互联的手段是多种多样的(无线或有线)
计算机网络的精准定义未被统一,书本的定义是:
计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特殊目的。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用
由核心和边缘部分组成
边缘部分
由所有连接在互联网上的主机组成,这部分是用户直接使用的,用来进行通信和资源共享
端系统间的两种连接方式:
客户是服务请求方,服务器是服务提供方
客户程序:
- 被用户调用后运行,在通信时主动向服务器发起通信,所以客户程序必须知道服务器程序的地址
- 不需要很复杂的操作系统
服务器程序:
- 专门用来提供某种服务的程序,可以同时服务多个客户
- 系统启动后即自动调用并一直不断地运行,被动地等待并接收来自各地的客户的通信请求,所以服务器程序不需要知道客户程序的地址
- 一般需要有强大的硬件和高级的操作系统支持
对等连接方式(P2P)
两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方,只要都运行了P2P软件,他们就能镜像平等对等的连接通信
对等连接方式可以支持大量对等用户同时工作
核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
电路交换:使用交换机来使设备间可以两两通信而减少连线复杂度
连接建立后会建立一条专用的物理通路用以通信,在通话的全部时间内,这两个用户始终占用端到端的通信资源
交换:按照某种方式动态分配电路交换的资源
电路交换必定是面向连接的
分三个阶段
建立连接–>通信–>释放连接
报文交换
分组交换
原理:信息以分组为单位镜像存储转发。源结点把报文分为几组,中间节点负责存储转发,目的节点把分组合成报文。
分组:比报文还小的信息段,可定长也可变长,又称为包
高效、灵活、迅速、可靠
缺点
分组在各节点存储转发时需要排队,这就会造成一定的时延
2. 分组携带的首部会增加一定的开销
由于不能像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽
三种交换的比较
按照作用范围来分类
广域网(几十到几千km)、城域网(5~50km)、局域网(<1km)、个人区域网(<10m)
按照网络的使用者进行分类
用来把用户接入到互联网的网络
按传输技术分:广播式、点到点式
按传输速率分:低速网络、中速网络、高速网络
按传输媒体分:有线、无线
按交换方式分:电路交换、报文交换、报文分组交换
速率
数据的传送速率,也被称为数据率或比特率
带宽
在单位时间内,网络中的某信道所能通过的最高比特率,单位bit/s
吞吐量
单位时间内通过某个网络的实际数据量
时延
1MB=220*8b,1Kbps=103bps,1Mbps=10^6bps
公式:
t = 数 据 帧 长 度 ( b i t ) 发 送 速 率 ( b i t / s ) t=\frac{数据帧长度(bit)}{发送速率(bit/s)} t=发送速率(bit/s)数据帧长度(bit)
光纤中电磁波传输速率:2.0*10^5km/s
铜线:2.3*10^5km/s
自由空间:3.0*10^5km/s
公式
t = 信 道 长 度 ( m ) 电 磁 波 在 信 道 上 的 传 播 速 率 ( m / s ) t = \frac{信道长度(m)}{电磁波在信道上的传播速率(m/s)} t=电磁波在信道上的传播速率(m/s)信道长度(m)
网络的分层体系结构
OSI:七层结构,由于过度复杂败给了TCP/IP
五层结构
传输过程
发送端自上而下,应用程序发送数据给第五层,第五层添加首部传给第四层……最后由第一层通过物理链路传输数据给另一台主机,另一台主机由下而上逐层剥离首部,最终把应用程序数据送达给本机上的相关应用程序
分层
网络层
数据链路层
物理层
分层优势
各层之间是独立的:各层间通过接口彼此连接,能够起到降低问题复杂度的效果
灵活性好:某一层出现故障只要前后的接口没有发生改变其它层也不受影响,并且可以根据需求删除某层
结构上可分割:各层都可用最合适的技术来实现
易于实现和维护
能促进标准化工作
差错控制、流量控制、分段和重装、复用和分用、连接建立和释放
体系结构:计算机网络的各层以及其协议的集合就是网络的体系结构,就是这个计算机网络及其构件所应完成的功能的精确定义
网络协议
为进行网络中的数据交换而建立的规则或约定被称为网络协议
实体、协议、服务和服务访问点
数据通信系统的模型
常用术语
有关信道的几个基本概念
信道一般都是用来表示向某一个方向传送信息的媒体,因此,一条通信电路往往包含一条发送信道和一条接收信道
通信双方信息交互的方式来看
基带信号
来自信源的信号,即基本频带信号
信道的极限容量
限制码元在信道上的传输速率的因素
信道能够通过的频率范围
信噪比
噪声:噪声存在与所有电子设备和通信信道中,随机产生,瞬时值有时很大,因此会使接收端对码元的判决产生错误。但信号相对较强的话噪声的影响就会比较小,所以信噪比很重要
公式
信 噪 比 ( d B ) = 10 l g ( 信 号 的 平 均 功 率 ( S ) 噪 声 的 平 均 功 率 ( N ) ) 信噪比(dB)=10lg( \frac{信号的平均功率(S)}{噪声的平均功率(N)}) 信噪比(dB)=10lg(噪声的平均功率(N)信号的平均功率(S))
信道的极限传输速率计算公式:香农公式
C = W l o g 2 ( 1 + S / N ) ( b i t / s ) C=Wlog_2(1+S/N) (bit/s) C=Wlog2(1+S/N)(bit/s)
W为信道带宽(Hz),S为信道内所传信号平均功率,N为信道内部的高斯噪声功率
香农公式表明:信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高
编码:让每一个码元携带更多比特的信息量
在码元传输速率达到上限后提高单位时间内传输的信息量的方法
传输媒体也称为传输介质或传输媒介
双绞线
同轴电缆
同轴电缆由内导体铜制芯线(单股实心线或多股绞合线)、绝缘层、网状编织的外导体屏蔽层(也可以是单股的)以及保护塑料外层所组成。由于外导体屏蔽层的存在,同轴电缆具有很好的抗干扰特性,被广泛用于传输较高速率的数据
光缆
利用光导纤维传递光脉冲,有光脉冲相当于1,没有相当于0
短波通信
主要依靠电离层的反射通信,但电离层的不稳定因素所产生的衰落现象和电离层反射所产生的多径效应,使得短波通信的通信质量较差
多径效应:同一个信号经过不同反射路径到达同一个接收点,但各反射路径的衰减和时延都不同,使得最后得到的合成信号失真很大
采用复杂的调制解调技术后能达到几千比特每秒
微波通信
复用器和分用器总是成对使用,前者用于共享高速信道,后者作用相反
频分复用FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带,即频分用户在不同时间占用不同的带宽资源
时分复用TDM/同步时分复用
将时间划分为一段段等长的时分复用帧(TDM帧),每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙
统计时分复用(STDM)/异步时分复用
是一种改进的时分复用,集中器常使用这种
过程:
每个用户有了数据就发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,对没有数据的缓存就跳过去,当一个帧的数据放满了,就发送出去。
STDM帧不是固定分配时隙,而是按需动态分配时隙
从平均的角度看,这两种时分复用是平衡的
STDM帧中的时隙并不是固定地分配给某个用户,因此在每个时隙中还必须有用户的地址信息,这是不可避免的一些开销
波分复用就是光的频分复用
数据链路层使用的主要信道
数据链路和帧
三个基本问题
封装成帧
在一点数据的前后分别添加首部和尾部,就构成了一个帧,目的是确定帧的界限
帧同步
帧同步方法:
物理层编码违例法
差错控制
传输差错的特性
差错控制的方法
检错码:能自动发现错误的
纠错码:不仅能自动发现还能纠正错误的
编码效率:码字中信息位所占的比例
循环冗余码(CRC)
CRC是检测码,又称多项式码
原理
k位要发送的信息为->(k-1)次多项式K(x)
r位冗余位(CRC码)->(r-1)次多项式R(x)
k位信息位+r位冗余位组成的n=k+r位码字->(n-1)次多项式T(x)=x^r*K(x)=R(x)生成多项式P(x)
生成多项式P(x)一般比冗余码少一位
校验过程
发送端
生成冗余位(帧检验序列FCS)
x r K ( x ) / P ( x ) − > 余 式 R ( x ) x^rK(x)/P(x)->余式R(x) xrK(x)/P(x)−>余式R(x)
对应的余式代码为冗余码
装配成传送码字,并进入信道:
不等同于循环冗余检验CRC,CRC是一种差错控制方法,可以计算FCS,FCS只是一个冗余码,即使不用CRC,也可以用其它方法算出
接收端
用同一生成多项式P(x)去除接收到的码字多项式T(x),若余式为0,有错,若余式为0,则可认为无错
所有的运算均是模2运算,实际为亦或运算
理想模型
实用的停等协议
协议规定
发送方每发送一帧后,停下来等待接收方送回已正确接收的确认后,再继续发送下一帧
解决方法:对有噪声信道,接收数据可能出错,需要发送端重传
带来的问题
协议分析
缺点:造成信道资源浪费
信道利用率公式
U = L B + 2 R U=\frac{L}{B+2R} U=B+2RL
B为信道容量,2R为传播延迟,L为传送数据量
对传播延时长的高速信道很不利
连续ARQ协议
滑动窗口机制
引入滑动窗口机制是为了实现流量控制
工作原理
发送端
在发送端设定发送窗口,对发送端进行流量控制,发送窗口的大小Wt表示在没有收到对方确认信息的情况下能连续发送多少帧
接收端
发送窗口:允许发送的帧
接收窗口:希望接受的帧
只有在接收窗口向前移动时,发送窗口才有可能向前移动,
发送窗口的最大值
选择重传ARQ协议
特点
需满足的需求
- 简单
- 封装成帧
- 透明性
- 多种网络层协议
- 多种类型链路
- 差错检测
- 检测连接状态
- 最大传送单元
- 网络层地址协商
- 数据压缩协商
PPP协议的组成
PPP帧格式
解决透明传输问题
PPP适用于同步传输和异步传输
字符填充规则
将信息字段中每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
PPP协议的工作状态
局域网
定义
IEEE局部网络委员会对局域网有如下定义:
“局部地区网络在下列方面与其它类型的数据网络不同,其通信常被限制在中等规模的地理区域内,例如一座办公楼、一个仓库或一所学校,能够依靠具有中等到较高数据率的物理信道,并且这种信道具有始终一致的低误码率”。
LAN的特点
优点
局域网技术
局域网体系结构和标准
国际公认的LAN标准是IEEE 802系列标准
适配器
计算机与外界局域网的连接是通过通信适配器进行的
载波监听多点接入/碰撞检测
总线
最早的以太网是将很多计算机连接到一根总线上
为了通信简便采取两种措施
较灵活的无连接工作方式
不必先建立连接就可以直接发送数据
适配器对发送的数据帧不进行编号,也不要求对方发回确认
以太网提供的服务是尽最大努力的交付,即不可靠的交付
目的站收到有差错的帧时直接丢弃,其他什么也不做,对有差错的帧是否重传则由高层决定,如高层是TCP协议,经过一段时间后TCP就把这些数据重传,但是以太网并不知道这些是重传的数据,而是把它当做新的数据帧来传送
总线上同时只能允许一台计算机发送数据
以太网发送的数据都使用曼彻斯特编码信号
CSMA/CD协议的要点
多点接入
说明这是总线型网络
许多计算机以多点接入的方式连接在一根总线上。协议的实质是“载波监听”和“碰撞检测”
载波监听
通过电子技术检测总线上有没有其他计算机也在发送
载波监听就是检测信道,不管在发送前还是在发送中,每个站都必须不停地检测信道。发送前检测是为了获取发送权,发送中检测是为了及时发现有没有其他站的发送和本站发送的碰撞,这就是碰撞检测
碰撞检测
边发送边监听
适配器边发送数据边检测信道上的信号电压变化情况,以便判断自己在发送数据时其他站是否也在发送数据(几个站同时在总线上发送数据时会导致电压变化幅度增大)。当电压变化幅度超过一定的门限值时,表明产生了碰撞,即冲突。碰撞检测也称为冲突检测。
电磁波在总线上总是以有限的速率传播的
特点
使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)
发送的不确定性
每个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性,而这一段时间是不确定的。因此以太网不能保证自己的数据包能在某一时间内成功地发送出去。
吐过希望在以太网上发生碰撞的机会很小,必须使整个以太网的平均通信量远小于以太网的最高数据率
争用期
截断二进制指数退避
以太网使用这种算法来确定碰撞重传的时机。
强化碰撞
当发送数据的站一旦发现碰撞,除了立即停止发送数据外,还需要再发送32bit或48bit的人为干扰信号,以便让所有的用户都知道现在已发生了碰撞
帧间最小间隔
为了让接收站的接收缓存来得及清理做好接收下一帧的准备,而设置的发送间隔
帧间最小间隔为9.6μs
CSMA/CD要点
集线器
以太网最终发展成使用更便宜更灵活的双绞线传输数据,这种以太网采用星形拓扑,在星形的中间增加了一个可靠性非常高的设备,叫做集线器(hub)。双绞线以太网总是和集线器配对使用
IEEE 10BASE-T的标准802.3i
10代表10Mbit/s的数据率,BASE表示连接线上的信号是基带信号,T代表双绞线
适用于使用双绞线的星形以太网
此种以太网通信距离稍短,每个站到集线器的距离不超过100m
这种性价比很高的10BASE-T双绞线以太网的出现,是局域网发展历史上的里程碑
IEEE802.3标准还可使用光纤作为传输媒体,相应标准为10BASE-F,主要用作集线器之间的远程连接
集线器特点
堆叠式集线器由4-8个集线器堆叠起来使用,集线器一般都有少量的容错能力和网络管理功能
由于以太网数据传输时会发生碰撞,所以以太网总的信道利用率并不能达到100%
以太网利用率公式
a = τ / T 0 a=τ/T_0 a=τ/T0
假设不会发生碰撞,那么以太网极限信道利用率为
S m a x = T 0 T 0 + τ = 1 1 + a Smax=\frac{T_0}{T_0+τ}=\frac{1}{1+a} Smax=T0+τT0=1+a1
意义:指出了**只有当参数a远小于1才能得到尽可能高的极限信道利用率*
MAC层的硬件地址
当连接在局域网上的主机或路由器安装多个适配器时,其就拥有多个地址,更准确的说,这种48位地址应当是某个接口的标识符
地址组成
第一个字节的最低位为I/G位,当其为0时,地址字段表示单个站地址。为1表示组地址,用来进行多播(曾称为组播)
第一个字节的最低两位为G/L位,当其为0表示是全球管理(保证全球没有相同地址),厂商向IEEE购买的OUI都属于全球管理。为1时是本地管理,此时用户可任意分配网络上的地址。
采用2字节地址字段时全都是本地管理。以太网几乎不理会这个G/L位
全球管理时,每一个站的地址可用46位的二进制数字表示,即2^46,超过70万亿个。
适配器的过滤功能
每收到一个MAC帧就先用硬件检查MAC帧中的目的地址,如果是发往本站的帧则收下再处理,否则丢弃
发往本站的帧有以下三种
- 单播帧(一对一),即收到的帧的MAC地址与本站的硬件地址相同
- 广播帧(一对全体),即发送给本剧与网上所有站点的帧(全1地址)
- 多播帧(一对多),即发送给本局域网上一部分站点的帧
所有适配器都能够识别单播和广播地址,有的可通过编程方法识别多播地址
显然,只有目的地址才能使用广播地址和多播地址
混杂工作方式
MAC帧的格式
以太网V2——五个字段组成MAC帧
前两个字段分别为6字节长的目的地址和源地址字段
第三个字段是2字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议
第四个字段是数据字段,其长度在46到1500字节之间
最小长度64字节-首部尾部共18字节=46
最后一个字段是4字节的帧检验序列FCS
MAC子层辨认数据字段结束的方法
数据字段长度小于46字节
传输媒体上实际传输的要比MAC帧还多八个字节
原因:当一个站开始接收帧时,由于适配器的时钟上位与到达的比特流达成同步,因此MAC帧的最前面的若干位就无法接受,使整个MAC被弃用
解决方法:从MAC子层向下传到物理层时还要在帧前面插入8字节(由硬件生成)
由两个字段构成,第一个字段是7个字节的前同步码(0和1交替码),作用是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,与发送端时钟同步。第二个字段是帧开始定界符,定义为10101011,前六位作用和前同步码一样,最后两个连续的1就是提醒适配器准备接收MAC帧
IEEE 802.3规定的无效MAC帧
IEEE 802.3标准和以太网V2标准MAC帧差距
拓展的以太网在网络层看来任然是一个网络
使用光纤和一对光纤调制解调器拓展以太网
这是一种更常用的方法,最初使用网桥,根据MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时并不是向所有接口转发此帧而是根据此帧的目的MAC地址,查找网桥中的地址表,然后再决定把它转发给哪个端口或是丢弃。网桥及后来使用交换式集线器,称为以太网交换机
对虚拟以太网(VLAN)的定义:由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个真的计算机属于哪一个VLAN
虚拟局域网只是局域网给用户提供的一种服务而不是一种新型局域网
特点
吉比特以太网的物理层使用两种成熟技术
要求
吉比特以太网工作在半双工时必须进行碰撞检测
吉比特以太网仍保持一个网段的最大长度为100m,但采用了载波延伸的办法,使得最短帧长仍为64字节,同时将争用期增大为512字节。凡是不足512字节的MAC帧均用特殊字符填充到512字节。
但所填充的448字节造成了很大的开销,为此吉比特以太网还增加了一种功能称为分组突发。
分组突发:当有很多短帧要发送时,第一个短帧采用载波延伸进行填充,但随后的短帧可以一个接一个地发送,他们之间只需保留最小帧间隔即可,直到达到1500字节或稍多一些为止
虚电路服务
数据报服务
互联网采用的设计思路
网络层向上只提供简单灵活的、无连接的、尽量大努力交付的数据报服务
数据报(或IP数据报)就是我们经常使用的“分组”
要点
优点:网络造价大大降低,运行方式灵活,能够适应多种应用
两种服务对比
对比的方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
结点出现故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点的时间不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
IP经常要用ARP协议,另外两个协议需要用到IP协议
ipv4:第四代网际协议
特点
TCP/IP体系中的网络层常常被称为网际层或IP层
IP采用无连接的数据报机制,为不可靠传递
TCP/IP的可靠性体现在传输层,所以TCP/IP的可靠性被称为端到端可靠性
网络互连:为实现网络之间的连通性和互操作性,用户可以相互透明地交换信息而将不同的网络进行连接
网络互连使用的中间设备
网络互连使用路由器
意义
互联网可以由多种异构网络互连组成
IP地址
IP地址的编址方法
分类的IP地址
将IP地址划分为若干个固定类
每一类地址都由两个固定长度字段组成:网络号(net_id)主机号(host_id)
IP在整个互联网范围内是唯一的
IP地址::={<网络号>,<主机号>}
各类IP地址和其字段分配
IP地址的表示:点分十进制记法
以一个字节为单位,即每8位插入一个空格(计算机中没有),为了便于书写,可用其等效的十进制数字表示,并在这些数字之间加上一个点
例:10000000 00001011 00000011 00011111通过点分十进制变成128.11.3.31
子网的划分
构成超网:无分类的编址方法
常用的三种类别的IP地址
IP地址的指派范围
网络类别 | 最大可指派的落落书 | 第一个可指派的网络号 | 最后一个可指派的网络号 | 每个网络中的最大主机数 |
---|---|---|---|---|
A | 126(2^7-2) | 1 | 126 | 16777214 |
B | 16383(2^14-1) | 128.1 | 191.255 | 65534 |
C | 2097151(2^21-1) | 192.0.1 | 223.255.255 | 254 |
一般不使用的特殊IP地址
网络号 | 主机号 | 源地址使用 | 目的地址使用 | 代表的意思 |
---|---|---|---|---|
0 | 0 | √ | × | 在本网络上的本主机 |
0 | host-id | √ | × | 在本网络上的某台主机host-id |
全1 | 全1 | × | √ | 只在本网络上进行广播(各路由器均不转发) |
net-id | 全1 | × | √ | 对net-id上的所有主机进行广播 |
127 | 非全0或全1的任何数 | √ | √ | 用于本地软件环回测试 |
IP地址的重要特点
注意
IP地址和硬件地址是不一样的
通信时使用了两个地址
- IP地址
- MAC地址
作用
要点
不管网络层使用什么协议,在实际网络的链路上传输数据帧时,最终还是必须使用硬件地址
每一个主机都设有一个ARP高速缓存,里面有所有在局域网上的主机和路由器的IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(添加或超时删除)
ARP高速缓存作用:存放最近获得的IP地址到MAC地址的绑定,以减少ARP广播的数量
ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间,凡超过生存时间的项目就从高速缓存中删掉
当主机A想向本局域网上的B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址
有,则可查出其对应的硬件地址,再把这个帧写入MAC帧,然后通过局域网发送
没有
ARP进程在本局域网上广播发送一个ARP请求分组
ARP请求分组:包含发送方硬件地址/发送方IP地址/目标方硬件地址(未知时填0)
在本局域网上的所有主机上运行的ARP进程都能收到此ARP请求分组
主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求分组并向主机A发送ARP响应分组,同时在这个分组中写入自己的MAC地址
主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射
注意
IP数据报由首部和数据两部分组成
首部
前一部分是固定长度,共20字节,是所有IP数据报必须具有的。后面是一些可选字段,长度可变
- 版本
- 占四位,指IP协议的版本
- 通信双方使用的IP协议版本必须一致
- 首部长度
- 占4位,可表示的最大十进制数是15
- 首部长度字段所表示的数的单位是32位字
- 区分服务
- 占8位,只有在使用区分服务时才起作用
- 总长度
- 指首部和数据之和的长度,总长度字段为16位
- 每种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,称为最大传送单元MTU,如以太网规定MTU值为1500字节,当数据字段过长时就要把过长的数据报进行分片处理
- 使用尽可能长的IP数据报会使传输效率得到提高,但数据报短些也有好处——越短则路由器转发的速度就越快
- 标识
- 占16位,IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1
- 用途:当数据报超过MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中,相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报
- 标志
- 占3位,但目前只有两位有意义
- 标志字段中的最低位记为MF,MF=1代表后面还有分片,MF=0代表这已是若干数据报片中的最后一个
- 标志字段中的中间一位记为DF,意思是不能分片,只有当DF=0时才允许分片
- 片偏移
- 占13位,片偏移指出:较长的分组在分片之后,某片在原分组中的相对位置
- 生存时间
- 占8位,标明这是数据报在网络中的寿命
- 协议
- 占8位,指出数据报携带的数据是使用何种协议
- 首部检验和
- 占16位,只检验数据报的首部,不包含数据部分
- 源地址:占32位
- 目的地址:占32位
首部的可变部分
首部的前一部分是固定长度,共20字节
每个路由器指出到某个网络应如何转发,即可大大减少路由表的体积
根据目的网络地址确定下一跳路由器
互联网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许特定的目的主机指明一个路由,这种路由叫做特定主机路由
路由器还可以采用默认路由以减小路由表所占空间和搜索路由表所用的时间
分组转发算法
路由表并没有给出分组指明到某个网络的完整路径,而是在到达下一跳路由器后,再继续查找其路由表,一步步查找下去直到到达目的网络
IP地址划分产生问题
从两级IP地址到三级IP地址
为解决以上问题,1985年起在IP地址中新增了一个子网号字段,使两级IP地址变为三级,这种做法叫做划分子网或子网寻址或子网路由选择
划分子网基本思路
一个拥有许多物理网络的单位,可以将所属的物理网络划分为若干个子网。这完全是一个单位内部的事情,本单位以外的网络看不见这个网络是由多少子网构成,因为这个单位对外依然表现为一个网络
划分子网是从网络的主机号借用若干位作为子网号,同时主机号也就相应地减少了同样的位数
此时 IP地址::={<网络号>,<子网号>,<主机号>}
从其他地方发送给本单位某台主机的IP数据报,依然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付给目的主机
子网掩码
因从IP数据报的首部无法看出源主机或目的主机所连接的网络是否进行了子网的划分,就需要使用子网掩码
子网掩码是一个网络和子网的重要属性
变长子网掩码VLSM,可提高IP地址资源利用率。CIDR是VLSM的演进版本
特点
CIDR消除了传统的A\B\C类地址以及划分子网的概念
CIDR把32位IP地址划分为前后两个部分,前面是网络前缀,用来指明网络,后者用来指明主机
使IP地址又回到了两级地址,但这已是五分类的两级编址
采用斜线记法,或称为CIDR记法,即在IP地址后面加上/,然后写上网络前缀所占的位数
10.0.0.0/10可简写为10/10,也就是将点分十进制中的低位连续的0省略
10.0.0.0/10隐含地指出IP地址10.0.0.0的掩码是255.192.0.0
用*表示:如101000101*,表示10100101为网络号
CIDR地址块
CIDR把网络前缀都相同的连续的IP地址组成一个CIDR地址块
例:
128.14.32.0/20表示的地址块共有2^12个地址(/20表示网络前缀有20比特,则主机号的比特数是12
这个地址快的起始地址是128.14.32.0,
128.14.32.0/20地址块的最小地址是128.14.32.0
128.14.32.0/20地址块的最大地址是128.14.47.255
CIDR地址块中的地址具有相同的网络号,不同的主机编号,以此来构成不同的IP地址
路由聚合
一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,使得路由表中的一个项目可以表示很多个原来传统分类地址的路由
构成超网
最长前缀匹配
使用二叉搜索查找路由表
在网际层使用了网际控制报文协议ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告
ICMP是IP层的协议,不是高级协议
种类
ICMP前四个字节是统一格式,共三个字段:类型、代码和检验和。接着的四个字节的内容和ICMP的类型有关,最后是数据字段,长度取决于ICMP的类型
ICMP差错报告报文
不应发送ICMP差错报告报文的情况
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对每一个分片的数据报片的所有后续数据报片,都不发送
- 对具有多播地址的数据报,都不发送
- 对具有特殊地址(127.0.0.0或0.0.0.0)的数据报,不发送
ICMP询问报文
ICMP应用举例
理想的路由算法
算法必须是正确和完整的
正确的意思是:沿着各路由表所指引的路由,分组一定能够最终到达目的网络和目的主机
算法在计算上应简单
算法应能适应通信量和网络拓扑的变化,即应具有自适应性和稳健性
算法应具有稳定性
算法应是公平的
算法应是最佳的
最佳:相对于某一种特定要求下得出的较为合理的选择
静态/动态路由选择策略
互联网采用的路由选择协议主要是自适应的(动态的)、分布式路由选择协议
自治系统(AS)
内部网关协议IGP:一个AS内部使用的协议
具体的协议有很多种,如RIP和OSPE
外部网关协议EGP:用于AS间通信
目前使用的协议就是BGP
工作原理
RIP是一种基于距离向量的路由选择协议,最大优点就是简单
距离被定义如下:从以路由器到直接连接的网络的距离定义为1,从一路由器到非直接连接的网络的距离+1
RIP协议的距离也称跳数
RIP允许一条路径最多只能包含15个路由器,因此距离等于16时相当于不可达,所以RIP只适用于小型互联网
RIP不能在两个网络之间同时使用多条路由
特点
距离向量算法
RIP协议的报文格式
RIP总结
OSPF:开放最短路径优先
特点
使用分布式的链路状态协议
使用洪泛法向AS中的所有路由器发送信息,而不是仅仅向相邻的发送
发送的信息就是本路由器相邻的所有路由器的链路状态(即本路由器与哪些路由器相邻)以及该链路的度量(费用、距离、时延、带宽等)
只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此消息,而不是固定时间间隔发送消息
最终能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图,在全网范围内是一致的
更新过程收敛快
区域划分
OSPF不用UDP而直接用IP数据报传送
其他特点
OSPF五种分组类型
后四种分组都是用来进行链路状态数据库的同步
同步:指不同路由器的链路状态数据库的内容是一样的,两个同步的路由器叫做“完全邻接的”路由器
作用:
主要功能
两种不同的运输协议
逻辑通信信道对上层的表现会跟网络层使用的协议不同而不同
运输层的地位
运输层的协议设计要与下层使用的协议相适应
目的:加强和幕布通信子网的服务
TCP/IP层有两个不同的协议
两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元
TCP传送的数据单位协议是TCP报文段
UDP传送的数据单位是UDP报文段
下层使用的协议越可靠,运输层就可越简单
注意两点
运行在计算机中的进程是用进程标识符来标志的
运行在应用层的各种应用进程不应当让计算机操作系统指派它的进程标识符(每个操作系统都不一样),所以需要使用统一的方法
服务器端口
熟知端口号或系统端口号
由IANA指派给TCP/IP最重要的一些app
FTP_21
TELNET_23
SMTP_25
DNS_53
TFTP_69
HTTP_80
SNMP_161
SNMP_162
HTTPS_443
登记端口号
为没有熟知端口号的app使用,必须在IANA登记以防重复
客户端端口
UDP概述
特点
UDP是无连接的,减少了法开销和发送数据之前的时延
UDP尽最大努力交付,不保证可靠交付,因此主机也不需要维持复杂的状态连接表
UDP是面向报文的,对下层交来的报文不进行拆分和合并
应用层交给UDP多长的报文,UDP就发送那么长的完整报文
应用程序必须选择合适大小的报文
- 若报文太长,UDP交给IP层后,IP层需要分片,降低IP层的效率
- 若报文太短,UDP交给IP层后,会使得IP数据包的首部相对长度太大,也降低了IP层的效率
UDP没有拥塞控制,即使网络出现拥塞也不会使源主机发送的速率降低,很适合多媒体通信的要求
UDP支持多对一,一对多,多对一和多对多通信
UDP首部只有8个字节,小于TCP的20字节
UDP用户数据报的首部格式
TCP概述
特点
是面向连接的传输层协议
每一条TCP连接只能有两个端点,每一条TCP连接只能是一对一的
TCP提供可靠交付的服务(无差错、不丢失、不重复、不失序)
TCP提供全双工通信,双方应用进程在任何时候都可以发送数据,所以双方都有发送和接收缓存
面向字节流
流指的是流入或流出进程的字节序列
- TCP将应用程序传送来的数据看成无结构的字节流,将若干个字节组成一个报,再发送出去
- TCP中每个字节都对应有一个序号
注意
TCP主要功能
TCP报文首部格式
流量控制就是让发送方发送速率不要太快,要让接收方来得及接收
利用滑动窗口实现流量控制
TCP报文的发送时机
糊涂窗口综合征
指TCP接收方缓存已满,但是app一次只从缓存中读取1个字节,这样接收缓存空间也就只腾出了一个字节,然后向对方发送确认,窗口设置为1字节(实际发送的数据报是40字节长),接着对方发过来一个字节的数据(实际发送的IP数据报是41字节),如此往返,效率极低
解决方法:
当发生以上两种情况之一时,接收方就发送确认报文,并向发送发通知当前窗口大小,同时,发送发也不要发送太小的报文段,而是把数据积累成足够大的报文段或达到对方缓存的空间的一半大小
慢开始和拥塞避免
也叫做基于窗口的拥塞控制
发送方维持一个叫做拥塞窗口cwnd的状态变量,拥塞窗口的大小取决于网络的拥塞程度,并且动态变化,发送方让自己的窗口等于拥塞窗口
发送方控制拥塞窗口的原则
慢开始算法
当主机开始发送数据时,由于并不清楚网络的负载情况,所以如果立即吧大量数据字节注入网络没那么就有可能引发网络拥塞
拥塞避免
快重传算法
接收方窗口又称为通知窗口
发送方的发送窗口一定不能超过对方给出的接收方窗口值rwnd
见p238
习题:T3、T17、T19
习题:T7、T8、T9、T13
信道复用技术、时分、频分
物理层下的传输媒体:
ADSL 非对称数字用户线
编码方式
比特填充
*信噪比公式——香农
C = W l o g 2 ( 1 + S / N ) C=Wlog_2(1+S/N) C=Wlog2(1+S/N)
信噪比
d B = 10 l g ( S / N ) dB=10lg(S/N) dB=10lg(S/N)
习题:T1、T7、T8、T10、18、33
9、10、17、20、21、22、26、42
13、14、23