目录
IP多播的两种协议(网际组管理协议IGMP和多播路由选择协议)
前言
最近准备找工作,把计算机网络过一遍
概述
1、互联网的组成
从下面这张图可以看出互联网由核心部分和边缘部分组成
核心部分:大量的网络和连接这些网络的路由器组成,主要就是为边缘部分提供服务的。
边缘部分:所有连接在互联网上的主机组成,这部分是用户直接使用的,用来通信和资源共享(可以理解为就是我们平常使用的电脑,手机,平板等端系统)
2、端系统之间的两种通信方式
1、客户-服务器方式
在这种方式里,客户(client)是服务的请求方,服务器(server)是服务的提供方,值得注意的是,这里的客户和服务器是指的通信中涉及的两个应用进程,而不是两个设备,它们描述的就是进程之间的服务和被服务。
上面这幅图可以看出,B作为服务器,A作为客户,A向服务器B发送请求,请求得到服务,服务器收到A发来的请求,就会给客户A响应,为A提供服务(这是宏观上的理解,为什么说是宏观的,因为实际的过程远比这个复杂,这要等到后面慢慢的学习才能理解),就比如说我们上网搜索内容,访问某个网站,要获取某个网页,或者是打游戏,这些都要请求服务器,需要得到服务器的服务。
2、对等连接方式(P2P)
对等连接模式(peer to peer,简写为P2P),指的是两个主机在通信时并不区分哪一个是服务器请求方还是服务方。只要两个主机都运行了对等连接软件,它们就可以进行平等,对等连接通信,另外,对等连接从本质看仍然是使用的客户服务器的方式,只是对等连接中的每一个主机都既是客户也是服务器。例如我们平常使用的共享文件、实时通信(语音电话/视频电话)、除此之外P2P还用与分布式计算、区块链等技术。
3、交换技术
在互联网的核心部分其关键作用的就是路由器,路由器主要是进行转发分组和交换路由信息,那么典型的交换技术分为3种:电路交换、报文交换、分组交换。
电路交换 | 整个报文的比特流连续地从原点直达终点 | 例如打电话,在数据传输是,该方式占整个带宽资源,因此当需要传输大量的数据时 选择该方式,就是传输时间远大于连接建立时间的时候,电路交换的效率是最高的 |
报文交换 | 整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点 | 报文交换和分组交换不需要预先分配带宽,在传输突发数据时可提高整个网络的信道利用率 |
分组交换 | 单个分组(报文的一部分)传递到相邻的结点,存储下来后查找转发表,转发到下一个结点 | 分组的长度往往远小于整个报文的长度,英雌分组交换的时延小,同时也具有更好的灵活性 |
注意电路交换有3个步骤:1.建立连接 ,2.数据传输,3.释放连接
4、时延
时延计算机网络性能指标之一,网络中的时延可以由以下几个不同的部分组成:发送时延、传播时延、处理时延、排队时延。
参照上图可以这样来理解网络中的几种时延:
处理时延:我们的数据在到达路由器的时候,会进行存储转发,在对这些数据进行存储的时候就会产生处理时延
排队时延:前面的数据还没发送出去,那么新来的数据需要排队等待,这时候花费的时间就是所谓的排队时延
发送时延:发送时延就是传输时延,主机或路由器发送数据所需要的时间就是传输时延,传输时延是发生在发送器上的,也就是我们的数据排完队,就要将它发送到我们的带宽通道上,那将数据发送到带宽通道上的这动作花费的时间就是传输时延(注意这里千万不要理解为传播时延,传输时延是发生在节点上的,而传播时延是发生在传输链路上的)
计算公式:发送时延=数据帧长度(bit)/发送速率(bit/s)
传播时延:数据在信道中需要传播一定距离所花费的时间
计算公式:传播时延=信道长度(m)/数据在信道上的传播速率(m/s)
5、利用率
利用率有个理论就是:当信道的利用率增大时,该信道的时延也就迅速增大,怎么理解呢?举个例子,比如一条高速路上,车越多,是不是对路的利用率也越大,但是车越多是不是越堵,一堵,那么就是车速就变慢了,所以要理解,利用率是说的对传输设备的利用绿,而时延是针对传输在设备上的数据而言的。有一个公式D=D0/1-I(D0表示网络空闲的时延,D表示网络当前的时延,I表示利用率)
6、协议
定义:网络协议,简称协议,是为了进行网络中的数据交换建立的规则,标准或约定
网络协议的三要素:语法、语义、同步
语法:数据与控制信息的结构或方式,就是规定一种格式
语义:需要发出何种控制信息,完成何种动作以及做出何种响应
同步:事件实现顺序的详细说明
7、计算机网络体系结构
为了我们整个体系结构好管理 灵活性好,就对结构进行了分层,分层带来的好处主要有:各层之间是独立的、灵活性好、结构上可分割开、易于实现和维护、能够促进标准化工作,通常我们采用的是 5层结构 从上往下依次是应用层、运输层、网络层、链路层、物理层,
应用层 | 通过应用进程间的交互来完成特定的网络应用 |
传输层 | 向两台主机中进程之间的通信提供通用的数据传输服务 |
网络层 | 分组交换网上的不同之间提供通信服务 |
链路层 | 解决三个基本问题:封装成帧、透明传输、差错校验 |
物理层 | 确定与传输媒介的接口相关的一些特性,例如电器特性、功能特性等,尽可能地屏蔽掉这些传输媒介和通信手段的差异 |
以下就是3中不同的计算机网络体系结构图,7层(OSI体系结构)、4层(TCP/IP体系结构)、5层的体系结构,通常我们用的最多的就是5层协议的,前面说了分层的一些好处,每层都有每层的作用和协议。
OSI上三层就相当于是5层结构中的应用层, 同时下两层就相当于是TCP/IP的下网际接口层,这里特别要注意一点的就是 OSI中的表示层和会话层,表示层主要是对数据格式进行转化以及加密处理等操作,会话层只要就是建立连接、管理和维护回话的作用。
每层都是相应的规则语法(协议),注意协议不能夸层作用,只能在对应的层进行作用,接口才能进行夸层作用
8、ISP
互联网服务提供商ISP(Internet Service Provider),例如移动、电信、联通。
物理层
1、作用
物理层的作用主要就是在各种媒介上传输比特流0和1,给数据链路层提供透明传输比特流的服务(给数据链路层提供服务)
物理层协议的4个主要任务就是:机械特性、电气特性、功能特性、过程特性
物理层的传输媒体主要分为两类:导引型传输媒体、非导引型传输媒体。
2、 传输方式
物理层的数据传输方式分为两种:串行传输 和 并行传输
串行传输:数据是一个比特一个比特一次发送,只需要一条数据传输线路
并行传输:一次发送n比特,需要n条数据传输线路
串行数据在传输方式上有3种:单工(双线制)、半双工(双线制)、全双工(四线制)
他们的区别是:
- 单工(Simplex)通信只允许传输的信息始终向一个方向流动,就像道路交通上的单行道一样。实际应用中,单工通信的信道采用双线制,一个用于传输数据的主信道,另一个用于传输控制信息的监测信道。(广播)
- 半双工(Half Duplex)通信允许信息流向两个方向都可传输,但同一时刻只能朝一个方向传输,不能同时进行双向传输。通信的双方都要具备发送和接收装置,每一端既可以作为发送端也可以作为接收端,信息流是轮流使用发送和接收装置的。(对讲机)
- 全双工(Full Duplex)通信是指在同一时刻,能同时进行双向通信,即通信的一方在发送信息的同时也能接收信息。它相当于两个方向相反的单工通信组合,通常采用四线制。(电话)
3、同步传输和异步传输
同步技术主要解决的是何时发送数据、双方传输速率是否一致、每个比特持续时间、比特间的时间间隔等问题,同步技术直接影响通信质量。
常用的同步技术为:同步传输方式、异步传输方式。
- 同步传输:数据块以稳定的比特流形式传输,字节之间没有间隔,接收端在每个比特的中间时刻进行检测,以判断接收到的是比特1还是0
- 异步传输:一字节为独立的传输单位,字节之间的间隔不是固定的,在每个字节的前后分别加上起始位和结束位
它们的比较
4、码元
码元的定义
码元就是一个固定时长的信号波形,不同离散数值的基本波形
数字通信中数字信号的计量单位(一个信号对应的是一个码元),从下图可以看出1对应的就是一个码元,,而这个波形的宽度就是固定时长,下图是一个二进制码元。
码元的离散状态有M个时,即有M种高低不同的信号波形,成为M进制码元。如二进制码元,只有0,1两种状态;四进制码元,有00,01,10,11四个状态注意:1码元可以携带若干比特的信息量,例如4进制码元携带2bit,16进制码元携带4bit。
速率、波特
码元传输速率:又称波特率,表示单位时间内数字通信系统所传输的码元个数(又称脉冲个数或信号变化的次数),单位波特(Baud),1波特率表示每秒传输一个码元,码元传输速率与进制数无关
信息传输速率:又称信息速率、比特率,表示单位时间内数字通信系统传输的二进制码元个数(比特数),单位是比特/秒,即每秒传输多少个bit
两者关系:若一个码元携带nbit信息量,则M波特率的码元传输速率对应的信息传输速率为Mn比特/秒
5、奈式准则和香农定理
码间串扰:具体信道所能通过的频率范围是有限的,信号中的许多高频分量往往不能通过信道,因为会在传输中衰减,导致接收端收到的信号波形失去码元之间的清晰界限。
奈奎斯特定理
在理想低通(没有噪声,带宽有限)的信道中,为了避免码间串扰,极限码元传输速率为2W波特,其中W是理想低通信道的带宽,V表示每个码元离散电平的数目,
则极限数据率为=2Wlog2(V) 单位为b/s
由于码元传输速率受奈氏准则的制约,所有要提高数据传输速率,可设法提高每个码元携带更多比特的信息量
香农定理
给出了带宽受限且有高斯白噪声干扰的信道的极限数据传输速率,
信道的极限传输速率=Wlog2(1+S/N),W为信道的带宽,S/N为信噪比,信噪比=10log10(S/N)单位为dB, 例如S/N为1000时,信噪比为30dB
6、编码与调制
信道上传送的信号有基带信号和宽带信号
基带传输:基带信号将数字信号1和0直接用两种不同的电压表示,然后在数字信道上传输,适用近距离
宽带传输:宽带信号将基带信号进行调制后形成频分复用模拟信号,然后送到模拟信道上传输,适用远距离
编码就是将数据转化为数字信号,调制就是将数据转化为模拟信号(不管原始是什么数据)
从下图就可以看出,上面部分就是将数字数据转化为数字信号(一共有4种编码方法,其中曼彻斯特(相同为反,相反为同)和差分曼彻斯特编码(相同为1,相反为0)要着重理解一下),下半部分就是将数字数据调制为模拟信号(方法有调幅、调频、调相等)
值得注意的是:信号在信道上传输一般都会受噪声、码元传输速率、传输距离、传输媒介等因素的干扰而导致信号失真。
数据链路层
数据链路层(链路层 )介于物理层和网络层之间,物理层为链路层提供服务,数据链路层为网络层提供服务,要理解数据链路,就要先理解链路的含义,链路通常是指从一个结点到相邻结点的一段物理线路
,中间没有任何其他交换结点,数据链路是把实现通信协议的硬件和软件加到链路
上,构成了数据链路,例如我们的交换机设备以及传输协议等
1、作用
数据链路层的作用就是:相邻接点之间传送数据时,数据链路层将网络层传下来的IP数据报组装成帧,在两个相邻结点之间的链路上传送帧,每个帧包括数据和必要的控制信息(如同步信息,地址信息、差错控制),同时数据链路层还要将物理层上交的数据进行提取,并进行检错、纠错。然后再上交给网络层。
2、数据链路层的协议单元
数据链路层的协议数据单元是——帧
数据链路层将网络层交下来的数据(IP数据报/分组/包)构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。
3、点对点信道传输三个基本问题
在点对点信道的数据链路层进行传输我们要考虑以下问题:
封装成帧
封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,一个帧的长等于数据部分加首部加尾部,需要注意的是:链路层协议规定了传送帧的数据部分长度上限——最大传输单元MTU
下图就是帧的组成部分:
我们加首部和尾部的一个重要作用就是进行帧定界(确定帧的界限),一般都是使用特殊的定界符,如:SOH(start of head,表示帧的开始)、EOH(end of head,表示帧的结束),当一个帧发生错误没有被完成传输时,也就是说收到的数据只有SOH 没有EOH 那么这个时候,接收端就知道该数据不完整,就会将这个数据丢弃。
透明传输
透明传输是知道不管我们在数据链路层传输什么数据,都可以被传输
我们传输的数据宏观上可分为两种一种就是由文本文件组成的数据(帧),二文本中的字符都是从键盘上输入的,其中有一部分是可以用ASCII转码,但有一部分是想二进制,或图像这样的文本文件,如果数据中的某段二进制代码恰好就是SOH或EOH,数据链路层就会错误地找到帧的边界,那么这个时候就是违背了透明传输的规定,为了避免这种情况出现,就规定在数据中出现控制字符SOH和EOH时,在它们前面插入转义字符ESC(二进制是00011011),如果转义字符也出现在数据中,同样的道理,就是在转义字符前面也加上转义字符,以上的方法就成为字节填充法或字符填充发法
差错检测
通常情况下,比特在传输过程中可能会出现差错,1可能会变成0,0可能会变成1,这也就是比特差错,这是传输差错的一种,为了保证数据传输的可靠性,在传输数据时,必须采取各种差错检测措施,目前数据链路层广泛使用的是循环冗余检验CRC技术,注意数据链路层仅仅是使用了CRC技术的检测技术,并没有使用纠错技术,所及只能做到对帧无差错的接受(注意是接受,而不是接收),只会接受无差错的帧,接收到的帧,其中有差错的帧会被丢弃。
通常被除数(10100001101)是我们发送的数据(也就是被检验的数据),而除数是我们规定的生成多项式,一般被除数需要补0,生成多项式的最高次是多少就补多少个0,这里的除数转换为多项式就是x5+x4+x2+1,最高次项为5,所以要补5个0 ,最终发送的数据是原始数据加余数(1010001101 01110)也就是将原来补0的替换为余数,最终接收端检验时,就是将这串数据进行取模运算,除数还是P ,如果能被整除,就说明没有出现差错,否则就出现了差错。
除了比特差错外,就是在传输是发生的错误:帧丢失、帧重复、帧失序(统称为传输差错)
4、点对点协议PPP
以前使用的较多的是高级数据链路控制协议HDLC,但是现在用的较少,对于点对点的链路,PPP协议用的较为广泛。
PPP协议通常用在互联网用户端和ISP进行通信的时候
PPP协议满足的要求:
1、简单(首要需求),因为把复杂的地方放在了TCP协议中。
2、封装成帧(必须规定特殊的字符作为帧的开始和结束,帧定界符)
3、透明性(如果数据出现和帧界定符一样的比特组合,PPP协议必须采取措施来解决)
4、多种网络层协议(必须在同一条物理链路上同时支持多种网络层协议,如IP、IPX等)
5、多种类型链路(必须能够在多种链路上运行,如串行、并行、同步、异步、低速高速的、电的光的、交换的非交换的点对点链路)
6、差错检测(必须在接收端进行差错检测,错误的丢弃)
7、检测连接状态(必须有一种机制在几分钟内检测链路是否处于工作状态)
8、最大传输单元(对没一种类型的点对点链路设置最大传输单元)
9、网络层地址协商(必须提供一种机制使信道的两个网络层的实体能够知道通过协商知道或配置彼此的网络层地址)
10、数据压缩协议(必须通过一种方法来协商使用数据压缩算法)
PPP协议的组成
PPP协议的组成有3部分:一个封装方法、一个链路控制协议LCP、一套网络控制协议NCP
PPP帧格式
帧格式如下图所示
信息部分一般不得超过最大传输单元MTU,默认的MTU就是1500字节
这里说一下协议字段:有三种不同的字段
1、当协议字段为0x0021时:PPP帧的信息字段就是IP数据报
2、当协议字段为0xC021时:就是PPP链路控制协议
3、当协议字段为0x8021时:就是网络层的控制数据
字符填充和零比特填充
当PPP使用异步传输时(逐个字符发送)使用字符填充
当PPP使用同步传输时(一比特一比特发送)使用零比特填充,连续5个1,就填入一个0
5、广播信道传输
广播信道可以进行一对多 ,下面讨论局域网使用广播信道。
局域网最主要的特点就是:网络为一个单位所拥有,地理范围和站点数目有限
局域网的拓扑结构主要就是以上几种,通常用的最多的结构就是星型结构
注意通常我们说的以太网,实际上就是局域网 ,局域网工作的层次跨越了物理层、链路层、网络层。
在以太网中,数据链路层又被拆分成两个子层(逻辑链路控制层LLC和媒体接入控制层MAC)
6、CSMA/CD协议
CSMA/CD就是载波监听多点接入/碰撞检测,该协议主要计时为了减少数据在局域网中传输时冲突发生的概率,从名字中的多点接入就能知道是在总线型网络中,使用电子技术检测总线上有没有其他的计算机也在发送数据,不管是在发送前 还是中、后,每个站点都必须不断地检测信道是否被占用,如果检测到信道被占用,就暂时不发数据,直到信道空闲。数据进行发送的时候也要不停的监听信道,也就是边发送边监听,如果在争用期内一直没有检测到碰撞,就说明这个帧肯定能发送成功,争用期就是端到端的往返时间2T。
当检测到碰撞的时候,就采用截断二进制指数退避算法来确定碰撞重传时机
7、MAC地址
MCA地址又称为物理地址(也叫硬件地址),通常MCA地址固化在了适配(网卡)的ROM中
MAC帧的格式:MAC帧5个字段组成,如下图所示。分别是目的地址、原地址、类型字段(用来标志上一层使用的是什么协议,例如是IP协议的话,就是0x0800)、数据字段(长度在46——1500字节之间)、帧检验序列FCS。
8、 扩展以太网的方法
物理层使用集线器扩展
链路层使用网桥或交换机扩展(交换机实际就是多接口的网桥),区别就是 网桥不能隔离冲突域,交换机可以隔离冲突域(无碰撞的传播)。
网络层
1、网络层的作用
网络层主要是负责为分组交换网上的不同主机提供通信服务。将运输层产生的报文段(TCP)或用户数据报(UDP)封装成分组或包进行传送。
2、IP协议 (Internet protocol)
IP协议又称为Kahn-Cerf协议,与IP协议配套的还有三个协议:
1、地址解析协议ARP(address resolution protocol)
2、网际控制报文协议(Internet control message protocol)
3、网际组管理协议(Internet group management protocol)
这里插入一个中间设备,也就是将网络互联起来的一些设备:
1、物理层使用的中间设备叫转发器(repeater)
2、数据链链路层的叫网桥或桥接器(bridge)
3、网络层使用的叫路由器(router)
4、网络层以上的叫网关(gateway)
3、IP地址
IP地址就是给互联网上的每台主机或路由器的每个接口分配一个全世界范围内唯一的32位的标识符IP地址的编址经历了3个阶段:
1、分类的IP地址,最基本的编址方法,1981年
2、子网的划分,对上个编址方法的改进,1985年
3、构成超网 ,新的无分类编址方法,1993年
分类IP地址就是将IP地址分为若干个固定的类,例如A类、B类、C类、D类、E类
每一个IP地址都是由网络号和主机号两部分组成,网络号由地址管理机构分配。主机号由得到该网络号的单位自行分配,需要注意的是,路由器仅根据主机所连接到的网络号来转发分组,不考虑主机号
注意:
1、局域网上的主机或路由器他们的网络号都是一样的
2、路由器具有2个或以上的IP地址,每个接口都有一个不同网络号的地址,因此它是连接异构网络的设备,多种异构网络连在一起就组成了互联网
4、地址解析协议ARP
地址解析协议用来将IP地址解析为MAC地址(硬件地址)的。通常都是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并动态更新。
5、IP数据报
IP数据报格式是重中之重,不仅要记住它的组成部分 还要记住每部分的字节长度单位以及作用。IP数据报由首部和数据部分组成。如下图所示。
上图中已经将了几种字段对的含义,下面就说其他几种的含义,下面三个字段都是在存在分片的前提下谈的,分片是因为,数据链路层规定了数据字段的最大长度,也即是最大传输单元MTU,规定的是1500字节,如果所传的数据报超过了MTU值,就必须把过长的数据报进行分片处理。
1、标识:每产生一个IP数据报,计数器就+1,并将此致赋给标识字段,方便分片后的数据报重装为原来的数据报,占16位
2、标志:占3位,但目前只有2位有用,一是最低位MF(more fragment),当MF=1时,表示后面还有分片,若为0则表示这是最后一个分片,另外一个就是中间位DF(don't fragment)不能分片,只有当DF=0时才允许分片
3、片偏移:占13位分片后,某片在原始分组中的相对位置,每个分片的长度一定是8字节的整数倍
4、总长度:分片后的每一个分片的首部长度+数据长度
首部校验和:只校验首部,不校验数据部分
6、划分子网和构造超网
划分子网
从两级IP地址到3级IP地址,为什要这么做呢?
1、IP地址空间利用率有时很低
2、给每个物理网络分配一个网络号会使路由表变得太大,使得网络性能变坏
3、两级IP地址不够灵活
为了解决上面的问题,1985年又在IP地址中增加了一个子网号字段,使两级IP地址变为了三级IP地址,这个方法就叫划分子网,或子网寻址或子网路由选择。
划分子网的基本思路:
1、将物理网络再进化划分,划分为多个子网,但是对外任然表现为一个网络,也就是说 划分子网是一个单位内部的事,外部并不知道。
2、从主机号中借若干位作为子网号,相应的主机号就减少同样的位数
3、外部其他网络发送数据给单位时,先根据目的IP地址的网络号找到本单位上的路由器,次路由收到数据报后,再按目的网络的网络号号和子网号找到目的子网,最后交给主机。
子网掩码
子网掩是为了解决路由器如何将数据报转发到子网的问题,因为IP数据报首部无法看到源主机或目的主机所连接的网络是否进行了子网划分。所以就需要使用子网掩码来找
使用子网掩码的好处就是:不管网络有没有划分子网,只要吧子网掩码和IP地址逐位相“与”,就得出了所要找的子网的网络地址
无分类编址(构造超网)
尽管划分子网在一定程度上缓解了互联网在发展中遇到的困难,但面对B类地址快用完、主干网络的路由表项目数急剧增加、整个IPv4的地址空间最终将全部耗尽(2011年2月3日,IANA宣布已耗尽),因此IETF研究出了采用无分类编址(CIDR,classless inter-domain routing)来解决上述问题。
CIDR的特点:
1、消除了传统的A类、B类和C类地址划分以及子网划分的概念,将32位IP地址划分为前后两部分。前面部分是“网络前缀”来指明网络,后面部分用来指明主机
2、CIDR把前缀相同的连续IP地址组成一个“CIDR地址块”,CIDR使用斜线记法,在IP地址后面加上“/”然后写上网络前缀所占的位数。
由于CIDR地址块中有许多地址,所以路由器表就利用CIDR地址块来查找目的网络,这种地址的聚合常称为路由聚合,路由聚合也称为构成超网 ,如下图所示。
最长前缀匹配
7、网际控制报文协议ICMP
网际控制报文协议ICMP是为了更有效地转发IP数据报和提高交付成功的机会,ICMP报文装在了IP数据报中,做为其数据部分。ICMP的一个重要应用就是ping,用来测试两台主机之间的连通性。
ICMP报文有两种,一个是差错报告报文,一个是ICMP询问报文
8、互联网的路由选择
由于互联网规模非常大,许多单位不愿意外界了解自己单位的网络布局细节,于是就把互联网划分为了许多较小的自治系统(AS,autonomous system),在目前的互联网中,一个大的ISP就是一个自治系统,互联网把路由选择协议分为两大类:内部网关协议(IGP,interior gateway protocol)、外部网关协议(EGP,external gateway protocol)
1、内部网关协议(IGP,interior gateway protocol):一个自治系统内部使用的路由选择协议,例如RIP、OSPF
2、外部网关协议(EGP,external gateway protocol):若源主机和目的主机处在不同的自治系统中,就需要外部网关协议,使用的最多的就是BGP
内部网关协议RIP
内部网关协议——RIP(routing information protocol),又叫路由信息协议,RIP是一种分布式的基于距离向量的路由选择协议,有点就是很简单,RIP协议的“距离”也称为“跳数”,在它看来好的路由是它通过的路由器数目少,最多只能包含15个路由,也就是说当距离等于16时,就为不可达,RIP只适合小的互联网。
内部网关协议OSPF
开放最短路径优先OSPF(Open shortest path first),开放表示OSPF协议不是受某一家厂商控制,是公开发表的。最短路径优先是使用了dijkstra提出的最短路径算法SPF,OSPF协议是使用的分布式链路状态协议。
RIP与OSPF的对比
外部网关协议BGP
9、路由器的构成
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务就是转发分组。
10、IPv6 IPv6
为解决IP地址耗尽问题,最根本的办法就是采用更大的地址空间的新版本的IP协议,即IPv6,
IPv6 所带来的新变化主要有:
1、更大的地址空间(采用128位的地址)
2、灵活的首部格式
3、改进的选项
4、支持即插即用
5、支持资源的预分配
6、IPv6首部改为8字节对齐
IPv6数据报的目的地址可以是单播、多播、任播
IPv6的地址使用冒号16进制记法
IPv6 过度只能采用逐步演进的方法,必须安装IPv6系统能够向后兼容。向IPv6过度可以使用双栈协议或使用隧道技术
11、IP多播
多播可以打打节约网络资源,值得注意的是 多播值适用于目的地址,不适用与原地址,下面是单播和多播的一个比较
IP多播的两种协议(网际组管理协议IGMP和多播路由选择协议)
12、虚拟专用网和网络地址转换NAT
传输层
1、作用
传输层的作用就是负责向两台主机中进程之间的通信提供通用的数据传输服务,也就是为应用进程提供逻辑通信。运输层向它上面的应用层提供服务,两台主机之间通信,其实就是两台主机之间的进程在通信。有一台主机上会有同时运行多个进程,所以运输层的一个很重要的功能就是复用和分用。
从上图可以看出,网络层是为主机之间提供逻辑通信,运输层是为应用进程之间提供端到端的逻辑通信
2、两大协议(TCP、UDP)
根据进程应用的不同需求,运输层需要两种不同的运输协议,即面向连接的TCP(可靠)和无连接的UDP(不可靠)
UDP
UDP(user datagram protocol),用户数据报协议,UDP在传输数据之前不需要先建立连接。远主机收到UDP报文后也不去要进行回复确认。因此UDP使用尽最大努力交付,不保证可靠交付,另外UDP是面向报文的(意思就是 UDP对应用层传下来的报文既不拆分也不合并)。
UDP有两个字段:数据字段和首部字段,首部字段由4个字段组成:源端口、目的端口、长度、检验和
TCP
TCP(transmission control protocol),传输控制协议,在传输数据之前必须要进行连接,数据传输结束后要释放连接。TCP除了进程可靠传输以外,它与UDP的另外一个区别就是 是面向字节流的
TCP的连接
TCP链接的连个的两个端点不是主机,不是应用进程、不是协议端口号,而是套接字(socket)或插口,套接字就是端口号和IP地址拼接到一起。
套接字 socket = (IP地址:端口号)
TCP连接:
TCP连接::= {socket1,socket2} = {(IP1:port1),(IP2:port2)}
可靠传输的工作原理
通常理想的传输就是:传输信道不出出现差错,二是不管对方以多块的速度发送数据,接收方都能来得及处理,但是实际上的网络并不能做到以上的理想条件。但是可以使用一些可靠的传输协议,来减小现实情况出现。
主要就是停止等待协议和连续ARQ协议
1、停止等待协议
停止等待就是每发完一个分组就停止发送,等待对方确认,在收到回复后再发下一个分组
2、连续ARQ协议
ARQ(automatic repeat reQuest),自动重传请求,该协议又叫后退N帧协议。 因为该协议采用的是累计确认,传输了好几个分组之后才一起确认,如果丢失了分组,那么就只确认接收到的分组,丢失的就要重传。
TCP的首部
TCP报文段分为首部和数据部分,下图是首部的格式
TCP报文段的首部前20字节是固定的,后面是4n字节的选项
1、序号:每一个字节都安顺序编号
2、确认号:期望收到对方一下个报文的第一个数据字
3、紧急URG:URG = 1时 报数系统次报文段有紧急数据 ,尽快传送,配合紧急指针使用
4、确认ACK: ACK = 1时 确认号字段才有效
5、推送PSH :PSH = 1 尽快交付接受应用进程
6、复位RST:RST = 1时,表明TCP连接中出现严重错误
7、同步SYN:SYN = 1 表示这是一个链接请求或链接接受报文
8、终止FIN: 释放连接
9、窗口:发送本报文段的一方的接受窗口
TCP可靠传输的实现
以字节单位的滑动窗口
超时重传时间的选择
选择确认SACK
TCP的流量控制
流量控制就是让发送方发送的速率不要太快,要让接收方来得及接收
利用滑动窗口实现流量控制
TCP的传输效率
TCP的拥塞控制
拥塞控制就是防止过多的数据注入到网络中,防止网络中的路由器或链路过载
慢开始
拥塞避免
快重传
快恢复
TCP的运输链接管理
运输链接有3个阶段:连接建立、数据传输、链接释放
三次握手链接建立
四次握手链接释放
3、传输层的端口
端口是协议端口号的简称,传输层的端口是应用层的各种协议进程与运输实体进行层间交互的一种地址,而不是硬件设备中的端口。运输层用一个16位端口号来标志一个端口,端口号只具有本地意义,他只是为了标志本计算机应用层中各个进程在和运输层交互是的层间接口。
两台主机中的进程要进行通信,就不仅要知道对方的IP地址,还要知道对方的端口号
运输层的端口分为两大类:
1、服务器端使用的端口号:一个是熟知的端口或系统端口号,如下图所示,数值为0~1023。另外就是登记端口号,数值为1024~49151
2、客户端使用的端口号:数值为49152~65535,这类端口号又叫短暂端口号,因为只留给客户短暂使用,通信结束后,客户使用的端口号就不存在了。
应用层
1、作用
运输层是体系结构的最高层,他的任务通常是通过应用进程的交互来完成特定网络应用
应用层涉及到的协议有HTTP、SMTP、POP3、IMAP等
2、域名系统DNS
域名系统DNS(domain name system)是互联网使用的的命名系统,用来方便人们使用的机器名字转换为IP地址,为什么要用域名系统呢?
因为在通信的时候 必须要知道对方的I地址,而IP地址有32位,对于用户来说很难记,所以为了方便用户记忆就提出了这个域名系统,域名系统DNS能够把互联网上的主机名转化为IP地址。
例如 我们平时上网使用的浏览器百度
域名到IP地址的解析过程如下:
互联网的域名结构 如下图所示,一个域名是由标号和点组成:mail.cctv.com,mail是3级域名,cctv是2级、com是顶级域名,注意每个标号不能超过63个字符,多个标号组成的域名字符不超过255个
域名服务器
域名服务器就是具体来实现域名系统的,域名服务器也是按层级结构来划分的,每一个域名服务器都只对域名体系中的一部分进行管辖,例如下图所示,除了图中的3中域名服务器,还有一个本地域名服务器,他不属于图中的层次结构,但他很重要,因为,一个主机发出DNS请求时,首先就是发送给本地域名服务器,
域名解析的方式分为两种 一种是作图所示的迭代查询,另一种是右图所示的递归查询
3、文件传送协议
文件传送协议FTP(file transfer protocol),它只提供一些基本的服务,使用可靠的TCP运输服务,FTP的主要功能就是减少或消除在不同操作系统下处理文件不兼容性。
一个FTP服务器可以同时为多个客户端进程提供服务,FTP进程的两大组成主要是:主进程(负责接收新的请求),若干从属进程(负责处理单个请求)。
主进程的工作步骤:
1、打开熟知端口21,使客户进程能够连接上
2、等待客户发出请求连接
3、启动从属进程处理客户的请求,从属进程处理完客户的请求后就终止
4、回到等待状态,接收其他客户进程的请求
注意 主进程和从属进程是并发进行的
控制进程也就是主进程,控制进程在整个会话期间都是一直保持打开,数据连接进程就是从属进程,用于传输文件。
简单文件传送协议TFTP
该文件传送协议如他的名字,是一个很小且易于实现的文件传送协议,它使用的是UDP数据报,只支持文件传输,不支持交互。他的优点一是基于UDP,二是占得内存很小。
4、万维网WWW
万维网WWW(world wide web)并不是指的某种特殊的计算机网络,他是一个大规模的、联机式的信息储藏所,万维网用连接的方法能非常方便地从互联网上的一个站点到另一个站点,从而主动的获取信息。
上图有5各站点,它们可以相隔很远,数千公里都行,但是必须连在互联网上。
万维网就是一个分布式的超媒体系统,是超文本系统的扩充。
为了解决让用户找到所需要的信息,万维网使用统一资源定位符URL(uniform resource locator)来标识万维网上的各种文档,并使每个文档在万维网范围内都是唯一的标识符,同时万维网客户程序和服务器程序之间的交互遵循超文本传送协议HTTP(hyper text transfer protocol)。
URL
URL的一般形式有4部分组成
<协议>://<主机>:<端口>/<路径>
第1部分是<协议>
第2部分是<主机>
第3、4部分<端口>/<路径>有时可以省略
现在http:// 耶可以省略 以及主机前面的WWW也能省略 方便用户使用,浏览器自动补全
HTTP
http协议规定了浏览器怎样系向万维网服务器请求万维网文档,以及服务器怎么把文档传送给浏览器。下图是万维网的工作过程。
响应报文
5、电子邮件
电子邮件是互联网上使用的最多和最受欢迎的一种应用,电子邮件的两个最重要的标准就是:简单邮件传送协议SMTP(simple mail transfer protocol)和互联网文本报文格式。SMTP只能传送可打印的7位ASCII码邮件,所有后面又提出来改进后的MIME,MIME可以同时传送多种类新的数据(文本、音频、图像等)
一个邮件系统有三个重要组成部分:用户代理、邮件服务器、以及邮件发送协议(如SMTP)和邮件读取协议(如POP3,该协议是邮局协议(post office protocol)第3版本)
差不多就是这些了
注明:上述图片均来自网络,侵权系删