简介:
一、网络
1. 分类
1.1 物理分类
- 网状:每台设备之间都有一条专用链路。优点:健壮,即使一条链路不可用,整个系统也不会不可用;缺点:线缆多
- 星型:每台设备与中央控制器(集线器)有一条链路,集线器负责转播信号。优点:健壮,即使一条链路不可用,整个系统也不会不可用;缺点:依赖集线器
- 总线:由一条较长的线缆作为主干,每台设备引出一条线连接主干。优点:安装简单,路径高效;缺点:总线电缆上的错误会使得所有传输中止
- 环状:由一条环型线缆,环中有若干中继器,每个中继器引出一条线连接设备。优点:信号循环,故障隔离;缺点:环中的故障会使整个网络瘫痪
- 混合型:混合上述结构
1.2 范围分类
- 局域网LAN:通常是专用的,如办公室
- 城域网MAN:通常覆盖一个城市,为高速连接而设计
- 广域网WAN:提供远距离数据传输,可跨越国家甚至更大
- 互联网:多个上述网络一起连接组成的网络
2. 模型
2.1 基本概念
- 实体:第n层的活动元素称为n层实体。同一层的实体叫对等实体
- 协议:为对等实体数据交换建立的规则,包括语法(数据的格式)、语义(数据的含义)、时序(操作的顺序)
- 接口:上层使用下层服务的入口
- 服务:下层为相邻上层提供的功能调用
2.2 OSI参考模型
OSI是由官方创立的法定标准
由物理层、数据链路层、网络层、传输层、会话层、表示层以及应用层组成
- 物理层:负责位从一个节点到另一个节点的传递
- 数据链路层:负责帧从一节点到另一节点传递。负责一个网络内的寻址
- 网络层:负责分组从源地址传递到目的地址。负责需要跨越网络的寻址
- 传输层:负责报文从一个进程到另一个进程传递。负责数据的进程(计算机程序)到进程传递
- 会话层:负责对话控制和同步
- 表示层:负责翻译、加密和压缩数据
- 应用层:负责向用户提供服务
2.3 TCP/IP模型
TCP是已经被广泛接受的事实标准,以下主要介绍其规定的协议
- 物理层和数据链路层:不定义任何协议,支持所有标准协议
- 网络层:
- 网际协议(IP):提供尽力传递服务,没有差错检错和跟踪。ip传输的数据称为数据报,每个数据报都独立传输
- 地址解析协议:将逻辑地址与物理地址相联系
- 逆地址解析协议:允许主机在仅知道物理地址的情况下寻找因特网地址
- 因特网控制报文协议:向发送方通知数据报所发生的问题
- 因特网组报文协议:用于将一个报文同时发送给一组接收者
- 传输层:
- 用户数据报协议:进程到进程的协议,将端口号、校验、差错控制及信息长度添加在数据的头部
- 传输控制协议:可靠的流传输协议,面向连接,在传输前先建立连接。 该协议划分数据流为片段,每个片段包含序号,用于接收后重新排序
- 流传输控制协议:对新应用提供支持,如音频
- 应用层: 相当于OSI模型中的会话层、表示层和应用层
2.4 寻址
以TCP/IP模型为例,地址有四部分:物理地址、逻辑地址(IP)、端口地址和专用地址
- 物理地址:局域网或广域网定义的节点地址,在数据链路层被添加在数据头部。不同网络可能有不同格式的物理地址
- 逻辑地址:逻辑地址适用于因特网,它唯一定义了连接到因特网的一台主机,通常为32位地址
- 端口地址:进程地址
- 专用地址:一些面向用户的应用,如电子邮件
寻址过程见书P32,文字表述过于麻烦
二、数据通信
1. 基础概念
模拟信号:连续的值
数字信号:离散的值
码元(信号元素):码元是一个固定时长的信号元素,其可以用带代表不同离散数值的基本波形。当一个信号的离散状态有K个时,此时码元称为K进制码元。一个K进制码元可以携带log2(K)个bit的信息量。如010101,有两种不同的码元,0,1。它是2进制码元,每个码元携带1bit信息
2. 通信模式
2.1 方向模式
- 单工:通信是单向的。两台设备只有一台能够发送,另一台只能接受
- 半双工:通信是双向的。每台设备均能发送和接受,但不能同时进行,一台设备发送时,另一台只能接收
- 全双工:通信是双向的。每台设备能同时发送和接受
2.2 数据模式
- 并行传输:一次可以发送n位数据。
- 串行传输:一次只能发送1为数据。速度慢,费用低,适用远距离
2.3 时序模式
- 同步传输:先送出一个或多个同步字符
- 异步传输:添加开始位和结束位
2.4 传输模式
- 基带传输:将数字信号1和0用不同电压表示,再送到数字信道上传输
- 宽带传输:将基带信号经过载波调制,频率范围搬移到更高频段,再送到模拟信道上去传输
3. 通信过程
为解决多台设备的通信问题,提出了交换网络的方法,交换网络由一系列节点构成,这些节点成为交换机,交换机可以在多个端系统(设备)间建立临时链接
交换网络有三种:电路交换网、分组交换网、 报文交换网,分组交换网又分为虚电路网和数据报网。
文字表述过于复杂,见书P139
4. 模拟信号与数字信号转换
4.1 数字信号转数字信号
通过编码方式
- 不归零编码(NRZ):正电平定义为1,零电平定义为0。存在问题:由于信号使用此方式会出现一整段高电平信号或低电平信号,接收方不知道这一段里又多少个1多少个0
- 归零编码(RZ):正电平定义为1,零电平定义为0,但是在每个码元后半段都会置零。和1存在同样问题,且低电平大量出现,信道利用率低
- 反向不归零编码(NRZI):信号电平和上一个电平相比,翻转表示0, 不翻转表示1。和1存在同样问题
- 曼彻斯特编码:一个码元内前半段高电平后半段低电平表示0,反之是1。该编码特点是一个码元中间出现电平跳变可以用于同步。该编码最小带宽是NRZ两倍
- 差分曼彻斯特编码:该码元前半段和上一个码元的后半段电平相同为1,反之是0。特点和曼彻斯特编码一样,但是抗干扰性更强。该编码最小带宽是NRZ两倍
- mBnL编码:用n为L进制数表示m位B进制数,L=2时用B表示,L=3时用T表示,L=4时用Q表示
- MLT-3编码:如果下一位是0,则信号保持,如果下一位是1且当前电平不是0,则下一个电平是0,如果下一位是1且当前电平是0,则下一个电平是最后一个非零电平的相反值
4.2 数字信号转模拟信号
调幅、调频、调相
4.3 模拟信号转数字信号
- 抽样:对模拟信号周期性扫描,得到一系列离散的信号。为了使得无失真代表,要求采样频率>=2*信号最高频率
- 量化:把抽样得到的电平按照一定的分级标准转化为整数
- 编码:将量化的结果转化为二进制编码
5.性能
5.1 性能指标
- 速率(比特率、数据传输率、数据率):主机在信道上传送数据位数的速率,单位为b/s,B/s,bps…
- 码元速率(信号速率、波特率):主机在信道上传送码元(信号元素)的速率,速率=码元速率*一个码元携带的信息量,单位为波特每秒
- 传播速率:信号在链路上传播的速度,单位是m/s
- 信号带宽:信号最高频率和最低频率之差,单位为Hz
- 带宽:指单位时间内从网络某一点能通过的最高数据率,单位是b/s
- 吞吐量:单位时间内通过某个网络/信道/接口的数据量,单位为b/s
- 发送时延:第一个bit被推送到信道和最后一个bit被推送到信道的时间差,发送时延=数据长度/发送速率(理想为信号带宽)
- 传播时延:信号在信道上传播的时间,传播时延=信道长度/传播速率
- 排队时延:信号等待输入可用的时间
- 处理时延:检错、找出口 等的时间
- 时延带宽积:留存在信道的数据量,时延带宽积=传播时延*带宽,单位为bit
- 信道利用率:有数据通过的时间/(有+无)数据通过的时间
- 网络利用率:信道利用率加权平均
5.2 性能干扰
奈奎斯特定理
(内部干扰)在无噪声、带宽受限条件下,为避免码间干扰,极限码元传输速率为2W,极限数据传输速率为2Wlog2(V),其中W是信号带宽,V是信号离散电平数
香农定理
(外部干扰)噪声会影响信号,信号若强,则噪声影响就弱,因此信噪比就很重要,信噪比=信号的平均功率/噪声的平均功率,记为S/N(db),其数值为10log10(S/N)。为避免信号干扰影响传输,极限数据传输速率=Wlog2(1+S/N),W是信号带宽
三、物理层
1. 有向介质
有向介质是指在设备之间提供通路的介质,包括双绞线、同轴电缆和光缆
1.1 双绞线
双绞线由两根并排绞合的相互绝缘的铜导线组成
双绞线分为非屏蔽双绞线与屏蔽双绞线,后者有一层金属薄片将导体包围起来,防止噪声或串扰
特质:
便宜、通信距离为几公里到数十公里
应用:
电话线路、局域网
1.2 同轴电缆
同轴电缆由导体铜制芯线、绝缘层、网状编制屏蔽层和塑料外壳构成
特质:
抗干扰性比双绞线强、传输距离更远,被广泛用于传输高速率数据,但是价格贵
应用:
以太局域网、模拟电话网络
1.3 光缆
光缆由纤芯和包层构成,传递光脉冲来进行通信,有光脉冲表示1,无为0
光缆的传播模式有多模和单模两种,前者代表光束沿多个不同的路径通过纤芯
特质:
带宽高、信号衰减小、无电磁干扰、抗腐蚀、重量轻、不易被窃听,但是安装维护费用高、传播单向性、成本高
应用:
混合网络、快速以太网
2. 无向介质
无线通信不适用物理导体传输电磁波,信号通过空气传播,能被任何人接收
2.1 无线电波
频率在1-3GHz之间,使用全向天线发送信号
应用:
多播通信,如收音机、电视、寻呼系统
2.2 微波
频率在1-300GHz,使用单向天线(有抛物面碟形天线和喇叭天线)发送信号
应用:
单播通信,如移动电话、卫星网络和无线局域网
2.3 红外波
频率在300GHz-400THz,频率很高不会穿透墙体,可防止系统之间相互干扰
应用:
封闭区域通信,如视线传播、遥控器
四、数据链路层
数据链路层将数据封装成帧并传输,主要任务包括成帧、寻址、流量控制、差错控制和介质访问控制。此处不讨论流量控制和介质访问控制
1. 帧
1.1 成帧
数据链路层要将位组合成帧,并且帧与帧之间要可识别。成帧方法有固定大小成帧(长度本身就用做分隔符)和可变长度成帧,其中可变长度成帧又可分为面向字符协议和面向位协议
1.1.1 面向字符协议
在帧的开始和结束增加一字节的标记。由于数据中可能出现和标记一样的字符,为区别标记和数据中作为文本的标记字符,采用字节填充,在数据段出现和标记一样的文本时,在其前面添加换义字符,同样的,如果要将换义字符作为文本传输,在换义字符前再添加换义字符即可。接收方会在接收时移走这些被额外添加的换义字符
1.1.2 面向位协议
使用8位标记01111110来作为分隔符。由于数据中可能也会出现01111110,所以采用位填充,在数据中每遇到1个0和5个连续的1便在后面添加一个0,接收方在接收时会移走这些0
2. PPP帧
PPP帧是点到点协议PPP所使用的帧,用于广域网,用于广播,所以帧中不需要寻址
2.1 帧格式
面向字节协议
帧包括:
- 标记:使用01111110的一个字节标记开始和结束
- 地址:常量11111111。预留,目前无作用
- 控制:常量11000000。预留,目前无作用
- 协议:1-2字节,指明数据字段承载什么
- 有效载荷字段:承载数据或其他信息。如果标记出现在此段,需要用转移字节01111101在前面填充
- 帧校验序列:CRC循环校验的余数
2.2 传输过程
- 闲置:链路没有被使用的阶段
- 建立:当一个节点开始通信,就进入此阶段。双方进行协商,使用链路控制协议LCP,协商成功则进入鉴别阶段,否则回到闲置阶段
- 鉴别:使用PAP口令鉴别协议或CHAP查询握手鉴别协议,或者不使用鉴别。鉴别成功或无需鉴别则进入联网阶段,否则进入终止阶段
- 联网:使用字段规定的NCP协议(包括不同的网络层协议,如互联网络协议控制协议IPCP),进行网络层的协商。因为PPP在网络层支持多协议,所以在网络层的数据进行交换之前,节点双方必须达成一个网络协定
- 打开:在此阶段,进行数据传输,直到一个终端想终止连接就进入终止阶段
- 终止:终止连接,两端交换一些分组用于关闭链路
3. MAC帧
MAC帧是用于多点到多点的帧,被用于局域网,所以它的帧要包括寻址信息
3.1 帧格式
|PC|D|地址1|地址2|地址3|序列控制|地址4|帧主体|FCS|
|-|-|-|-|-|-|-|-|-|-|
|2|2|6|6|6|2|6|0-2312|4|
D:在一个控制帧中,用来定义帧ID,其余用于定义传输间隔时间
序列控制:定义帧的序列号,用于流量控制
FCS:包含CRC-32的差错检验序列
其中:FC的内容如下:
版本协议 | 类型 | 子类型 | ToDs | FromDs | 更多标记 | 重传 | pwrmgt | 更多数据 | WEP | Rsvd |
---|---|---|---|---|---|---|---|---|---|---|
2 | 2 | 4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
类型:管理(00)、控制(01)、数据(10)
toDS和fromDs:规定了四个地址的含义,见书P286
2. 差错控制
2.1 数据差错
数据差错需要通过检错与纠错实现,即判断数据是否发生了错误,并且改正错误
2.1.1 差错类型
- 单个位差错:数据单元中仅有一位发生变化,1变成了0或0变成了1
- 突发性差错:数据单元中有两位或更多位发生了变化
2.1.2 方法
- 奇偶校验:在数据末尾添加一位奇偶校验位,使得数据中1的个数位奇数(奇校验)或偶数(偶校验),接收方查看数据中的1是否为奇数/偶数
- 多维奇偶校验:
- 循环冗余校验:约定多项式,发送方计算余数并在数据后添加该余数,接收方把接收到的数据连同余数一起重新计算,若余数为0则代表传输无误
- 汉明编码:
2.2 数据丢失
数据丢失需要用到可靠传输协议解决,可靠传输即保证接收方的接受数据的完整性、正确性和有序性
可靠传输用于
- 最简单的协议:发送方数据链路层不断发送数据,接收方数据链路层从物理层接收到帧,从帧取出数据传输到网络层
- 停止等待协议:发送方发送一个帧后必须停下来直到接收到接收方的确认(ACK帧)才能发送下一个帧
- 停止等待自动重复请求协议(SW-ARQ):发送方发送一个帧后停下来等待接收方的ACK帧,如果超过一定时间未接受到ACK帧,则发送方重传当前帧。并且,为了避免重复接收的错误,要给每个帧(包括ACK帧)使用一个bit编号。信道利用率=数据发送时延/(数据发送时延+传播时延+ACK帧发送时延),信道利用率很低。
- 回退N帧自动重发请求协议(GBN-ARQ):使用n个bit给数据编码。发送方与接收方使用滑动窗口(一种抽象的假想概念),落在滑动窗口内的帧可以被发送/接收(相当于流水线处理,滑动窗口中的第一个帧被发送后不需要等待确认就可以发送滑动窗口中的第二个帧),当接收方接收到滑动窗口的第一个帧时,滑动窗口向后滑动一格,并发送确认帧。当发送方接收到滑动窗口中的帧的确认时,就滑动到该帧之后(使用累积确认方法,接收到编号为M的确认帧,代表0-M都被正确接收)。如果超过一定时间窗口都没有滑动,则重传窗口内的所有数据。发送方的滑动窗口尺寸Wt要满足:1<Wt<=2^n-1,如果Wt=1,该协议退化为停止等待协议,如果Wt>2 ^n-1,则接收方无法辨别新旧分组。接收方的滑动窗口尺寸Wr要满足:Wr=1。
5.选择重传协议(SR-ARQ):相比与GBN-ARQ,接收方的滑动窗口尺寸满足:1<Wr<=Wt,当Wr等于1时,退化为GBN-ARQ,当Wr>Wt时无意义。且该协议抛弃累计确认方法,需要对每一个分组逐一确认。
其中1,2用于无噪声通道,即不会丢失帧、复制帧或损坏帧的通道,是理想的情况
3. 多路访问
当有多个站点存在时,发送数据可能会发生碰撞,造成冲突,未解决冲突需要用到多路访问的协议
3.1 随机访问协议
所有站点通过竞争,随机在信道上发送数据,每个站点都是平等的。然而当多个站点同时发送时,就会产生冲突,随机访问协议就用于避免冲突以及冲突产生后尽快恢复通信
纯ALOHA协议
最早的随机访问方法,每个站点只要有帧要发送即发送,解决冲突依赖于接收方的确认,当超时还未收到确认,则重发帧,如果重发次数超过最大次数,则必须放弃一段时间再尝试。
性能评估:
脆弱时间(可能发生的冲突时间的长短)=2*Tfr,其中Tfr指每个帧的发送时间
吞吐量=G * e^-2G^,其中G为一个帧传输时间内系统产生帧的平均数量
时隙ALOHA协议
把时间分隔成Tfr秒的时隙,强制站点只有在时隙开始时才能发送,一旦站点错过这个时刻,就要等待下一个时隙开始。
性能评估:
脆弱时间=Tfr
吞吐量=G * e^-G^
载波侦听多路访问协议CSMA
站点在发送帧前先监听介质是否空闲,如果空闲再发送帧,如果繁忙则等待下一个随机监听时间。这种方法仍然会导致冲突,由于传播延迟的存在,一个站点发送的一帧未到达下一个站点,导致下一个站点仍然监听到空闲的介质而发送了一个帧,导致了碰撞
性能评估:
脆弱时间=传播时间
带冲突检测的载波侦听多路访问协议CSMA/CD
再CSMA基础上引入冲突检测,同时要监测帧是否传送成功,如果不成功就要退避一段时间再重发帧,如果成功则继续发送(还可以在发生碰撞时加强冲突,发送一个短小的干扰信号以便其它站点更容易检测冲突)。为了实现该协议,需要限定最小帧长,发送方必须在发送帧的最后一位前检测冲突,因为一旦整个帧被发送了,站点就无法保留帧的副本并掌握线路的冲突检测,帧传输时间Tfr至少是最大传播时间Tp的两倍。
性能评估:
吞吐量大于ALOHA方法,当G=1是,吞吐量最大约为50%
带冲突避免的载波侦听多路访问协议CSMA/CA
CMSA/CD用于有线网络中,基本理念是没有冲突时,站点接收到它自身的信号,有冲突时,站点接收到自身的信号和第二个站点传输的信号,为区分这两种情况,不同情况接收到的信号应该明显不同,为此需要增加第一个站点产生的信号的能量。
然而无线网络中,大量能量丢失,这使得难以检测冲突,所以采用避免冲突的策略,使用三种方法
- 帧间间隔IFS:当发现通道是空闲的时,站点还需要的等待一段时间(IFS)再次发生,由于通道看上去是空闲的,其实可能有远端站点已经开始传输,只是信号还未到达这个站点
- 竞争窗口:当发现通道是空闲的后,不仅要等待IFS,还要再等待一段不同的随机时间,避免同时发送。通过计时器实现,等待IFS后启动定时器,如果在等待的时间里监听到通道繁忙,计时器停止(而非重启),直到下一次等待IFS后继续计时。当计时结束,再等待IFS后可以发送数据
- 确认:确认帧
3.2 受控访问协议
预约:站点发送数据前需要预约
轮询:由主站选择哪个站能发送数据
令牌传递:站点被组织在一个逻辑环中,如果当前站点不需要传输数据,则权限被传递给它的后驱
3.3 通道化协议
预先分配好信道,不同站点在时间上、频率上或编码来公用带宽。这类方法非常不灵活,对于突发数据信道利用率很低,通常在无线网络的物理层使用
频分多路访问FDMA
公用通道的可用带宽被分割成频带并由防护频带隔离。每一个频带都预留给特定的站点使用,该频带永远属于一个站点
时分多路访问TDMA
带宽被认为是时间上共享的一个通道。每个站点被分配一个时隙,只有在该时隙内才能发送数据。由于系统的传播延迟会难以同步,所以插入保护时间用于同步化
码分多路访问CDMA
一个通道同时承载所有的传输。该协议给每一个站点指定一个被称为芯片的数字序列(该数字序列用-1表示0,用1表示1)(要求:两两站点的芯片要不同且正交,正交即规格化内积为0),如果该站点要发送比特1则发送该芯片的值,要发送比特0则发送该芯片的反码,不发送数据则视为0。信道上发送的数据为所有站点发送的数据的叠加,接收方收到该数据后,针对每一个站点,求该站点芯片和该数据的规格化内积,如果是1代表站点发送了比特1,如果是-1代表站点发送了比特0,如果是0代表站点未发送数据。
例:
A站点芯片序列(-1 +1 -1 -1)
B站点芯片序列(+1 +1 -1 +1)
其规格化内积为:(-1 * 1+1 * 1+ -1 * -1+ -1 * +1)/4=0,符合要求
现有A站点要发送1(即发送(-1 +1 -1 -1)),B站点要发送0(即发送(-1 -1 +1 -1)),则通路发送叠加数据(-2 0 0 -2),接收方求与A站点芯片序列规格化内积为1,代表A发送了比特1,求与B站点规格化内积为-1,代表发送了比特0
五、网络层
数据链路层用于单链路通信,而多链路通信就需要用到网络层,它不仅负责主机间的传递,还负责路由器交换机的路由选择
网络层将数据分组并用数据报的形式通信,这种通信是无连接的
1. IP地址
1.1 网络号与主机号
IP地址由两个字段组成,分别为网络号和主机号,前者用于区分主机所连接的网络,后者用于区分主机
1.2 掩码
掩码和IP地址长度一样,掩码中对于IP地址网络号的部分都为1,其余都为0
斜杠标记法/无类域间路由选择CIDR:
掩码除了用二进制表示,还可以用\n表示,n代表了网络号的位数
1.3 块
块是一组IP地址的集合
1.2 IPv4
IPv4用32位二进制表示或用4个十进制表示(点分十进制)
如某一个IP地址为10000000 00000001 00000001 00000001,也可以表示为128.1.1.1
1.2.1 分类寻址结构
在该结构中,地址空间被划分为5类
- A类地址:首位为0,第一个字节为网络号,按网络号分块可分为128块,每块含2^24个地址,用于大型组织机构
- B类地址:首位为10,前两个字节为网络号,用于中型组织机构
- C类地址:首位为110,前三个字节为网络号,用于小型组织机构
- D类地址:首位为1110,没有分网络号和主机号,用于多播,这里浪费了大量地址
- E类地址:首位为1111,用作保留,也引起了浪费
可见在分类寻址结构中,大部分可用地址被浪费了
1.2.2 无类寻址结构
为克服地址耗尽的问题(可用地址被大量浪费),所以使用无类寻址替代分类寻址,该结构中当一个实体需要连接因特网时,会给它分配一个合适的块,其满足:
- 块中的地址必须时一个接着一个连续的
- 块中地址的个数必须是2的整数次幂(不含0)
- 块的起始地址必须能被块的个数整除
块地址可以用x.y.z.t/n来定义,其中:
x.y.z.t是块中的某个地址,/n为掩码
(二级结论:块内地址的最后32-n位,即主机号对应的位必是从全为0到全为1)
1.2.3 专用网络(私有网络)地址
专用网络地址用于解决地址短缺的问题,它被用于用户内部通信。一个用户有多个主机,它们在内部使用不同的专用地址通信,而在外部统一使用一个外部地址用于通信。然后当有来自外部的通信时,目的地址是内部地址统一使用的外部地址,无法区分该去往哪个内部主机,所以为了实现内部和外部的多对多通信,还需要使用网络地址转换NAT技术,使用转换表(专用地址、专用端口、外部地址、外部端口),外部地址+专用端口唯一定义了任何一台主机
被用于专用网络的地址有:
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255
1.2.4 特殊网络地址
IP地址全为0表示本地地址
主机号全为1表示广播地址
IP地址为255.255.255.255表示有限广播地址,用于主机试图在本网内通信而又不知道主机号
1.3 IPv6
IPv6用于解决地址耗尽、不支持实时音频/视频传输、数据不能加密和鉴别的问题
1.3.1 表示方法
- 二进制表示:使用128位二进制表示
- 十六进制冒号法:用八组每组四个十六进制数表示,每组用冒号连接
- 缩短形式:省略多余的0,如000F可写为F,移去多组的0,如74:0:0:0:12:0可以表示为74::12:0,注意移去多组0只能使用一次,不然无法恢复成原来的地址
1.3.2 类型前缀
如同分类寻址结构,IPv6使用一些类型前缀来区分地址类型,如前三位是010是单播地址
2. IP协议(网际协议)
IP协议定义了数据报的格式,数据报由头部+数据组成
2.1 IPv4
IPv4头部和数据由20-65536个字节组成,其中头部由20-60个字节组成
- 版本:4位,目前版本为4,如果计算机使用的版本和数据报版本就会丢弃数据报
- 头部长度:4位,该部分的值×4=头部的字节数,最小值为5,最大值为15
- 服务:8位,以前该字段为服务类型,现在为差分服务
- 服务类型:
前三位为优先位,定义了优先值,拥塞时丢弃最低优先级数据报,但IPv4中未使用优先字段。后四位为TOS,只能有一位是1 - 差分服务:
前六位为码点,后两位不用。码点最后三位都为0时,码点的含义是优先级(同服务类型),最后一位为0时,码点代表了因特网定义的服务类型,最后两位为11时 ,代表了本地组织机构的服务类型,最后两位为01时,代表了临时/实验的服务类型
- 服务类型:
- 总长度:16位,该字段值=头部+数据的总长度。尽管大多数情况接收到帧时删去头部和尾部就得到了数据报,并不需要知道总长度,但是有些情况封装在帧中的不止是数据报,如以太网协议限定帧中数据长度为46-1500字节,当数据包长度小于46字节时,必须填充字节。所以分离数据报要检查总长度
- 标识:16位,表示数据报,为使得唯一的定义一个数据报,IPv4协议使用一个计数器,当发送数据报时,标识赋值为计数器的值,然后计数器值加一。当数据被分段时,标识字段的值被复制到所有分段的标识号中
- 标记:3位,第一位保留暂不使用,第二位为不分段位,其值为1代表该数据不能被分段,如果因此导致数据报不能通过任何可用网络传递,该数据包被丢弃。第三位为多分段位,其值为1代表在该分段后还有更多的分段,其值为0代表该分段时最后的分段
- 分段偏移:13位,表示在原始的数据包中数据部分的偏移量,以8个字节为度量单位。如某分段总长度100,该字段值为0,则代表在原数据中的编号为0-99,若该字段值为2,则代表编号为16-115
- 生存时间:8位,定义了数据报通过路由器的最大跳数,约为任何两个主机之间的路由器数量的两倍。处理数据包的每一个路由器将此数-1,如果-1后值为0,则将其丢弃。这个字段是必需的,由于一些路由表可能故障,导致一个数据包在一些路由之间反复传输而无法到达目的端。另一个用途是限制分组的行程,如若要限制在局域网内,则设置此字段为1,这样就不会经过路由器转发。
- 协议:8位,定义了来自高层的协议。值和协议的对应关系如下:1:ICMP,2:IGMP,6:TCP,17:UDP,89:OSPF
- 校验和:16位,校验和只对头部进行,不对数据进行。将头部划分为每部分16位,将每部分相加,取结果的反码存入该字段。
- 源地址: 32位,定义了源端的IPv4地址,这个字段保持不变
- 目的地址:32位,定义了目的端的IPv4地址,这个字段保持不变
- 选项:头部包含固定部分(20字节)和可变部分(选项)(0-40字节),选项部分包含
- 无操作选项:1字节,用作选项间填充符
- 选项结束选项:1字节,用作选项字段结束的标志
- 记录路由选项:处理数据报的因特网路由器,可列出最多9个路由器地址,用作调试和管理
- 严格源路由选项:预先严格规定数据报传送的路由,数据报必须经过规定的所有路由器,如果数据报通过了一个未规定的路由器,就会被丢弃并发出差错报文
- 松散源路由选项:必须经过规定的所有路由器,但是仍然可以访问别的路由器
- 时间戳选项:用来记录路由器处理数据报的时间
(补充:分段:由于每个数据链路层协议规定了最大传输单元MTU(数据字段最大长度),所以如果数据报大于该最大长度,需要进行分段。对数据报分段的设备需要改变标志、分段偏移、总长度、校验和四个字段的值,并将源数据报头部的某些部分复制到所有分段中,选项可以被复制也可以不被复制)
2.2 IPv6
IPv6协议相比于IPv4的优势有:
- 更大的地址空间
- 更好的头部格式:选项和头部分开
- 新的选项
- 允许扩充
- 支持资源分配
- 加密和鉴别(安全性)
结语:
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 21009200039@stu.xidian.edu.cn