3. 数据链路层

第一章 网络基础知识

一. 网络基础模型

  1. OSI模型:
    (1)应用层:程序的具体内容格式。eg:邮件协议
    (2)表示层:数据格式转换。
         eg:二进制到ASCII码的转化,字符串是utf-8还是ISO8859-1 。
                 或者有的字处理软件,只能由该厂商的软件才能打开
    (3)会话层:负责建立会话,销毁会话
    -------------------
    应用层输入的数据,由表示层转化为编码,经由会话层开始发送
    -------------------
    (4)传输层:起可靠传输的作用。在通信双方节点上处理,和路由器无关
    (5)网络层:负责寻址和路由选择。路由器层面的协议
    (6)数据链路层:将01序列转化为有意义的数据帧
    (7)物理层:将0,1比特流与电压的高低,光的闪灭之间互换

二. 传输方式的分类

  1. 面向有连接,面向无连接
    (1)面向有连接:通信双方在收发数据前,需要在收发主机间连接一条通信线路

  2. 电路交换,分组交换
    (1)电路交换:独占线路,线路中可以加入交换机负责数据中转。只有一台主机传输结束后,另一台主机才能开始传输。
    (2)分组交换:将大数据分割成小块的数据包,称作报文,把源主机地址和目的主机地址,分组序号写进报文头

  3. 根据接收端的数量区分
    (1)单播(Unicast)
    (2)广播(Broadcast):
         电视信号。电视范围通常有自己的频段,只有响应频段才能接收到信息,这个频段叫广播范围
    (3)多播(Muticast):
         把消息传给某一组主机。eg:电视会议
    (4)任播(Anycast):
         从目标主机群中选择一台复合网络条件的主机作为目标主机,被选中的主机返回一个单播信号,发送段至于这台主机通信(DNS解析器)

三. 网络中的名词解释

  1. 地址
    网络通信的每一层是用的地址都不尽相同:Tcp/Ip通信使用MAC地址,IP地址,端口号作为地址标识
    (1)地址具备唯一性
    (2)地址具备分段性,便于查找

  2. 传输速率与吞吐量
    (1)传输速率:2个设备间数据流动的物理速度称为传输速率
    (2)严格来讲,某个传输媒介中信号的流动速度使恒定的,即时数据链路的传输速度忽快忽慢,物理信号的传输速度并不会变化,传输速率高,不是指单位数据流动的速度快,而是指单位时间传输的数据量大。就像行车速度一致,车道少就无法让更多车辆通行
    传输速率又称带宽

  3. 网卡:NIC,网络接口卡

  4. 中继器:物理层上延长网络的设备
    (1)用于调整放大波形传送给下一个电缆
    (2)通常中继器的两端链接的使同种材质的电缆,也有链接不同材质电缆的中继器,例如链接电缆和光缆的中继器,这种中继器只是把电信号转换成光信号传输
    (3)集线器:多个端口的中继器,每个端口都是一个独立的中继器,工作在物理层,对波形加强调整

  5. 网桥:2层交换机(数据链路层)
    (1)网桥能识别数据链路层的数据帧,并将这些数据帧存储在内存中,在声称新的信号作为一个全新帧发送给另一个网段
    (2)网桥可以校验达到的数据帧是否完整无损坏(物理层上传输的01信号,经常由于传输距离远而导致信号衰减,缺失),对损坏的数据帧进行丢弃
    (3)自学式网桥:这种网桥会记录所转发数据真的MAC地址,并将其保存在自己的内存表里,由此来判断,哪个往段拥有哪些MAC地址的设备

    (4)交换集线器:该设备有多个端口,每个端口都提供网桥的类似功能

  6. 路由器/3层交换机
    (1)网桥使2层交换机,根据MAC地址处理;路由器是3层交换机,根据IP地址处理
    (2)路由器可以链接不同的数据链路,例如一个连接以太网,另一个连接FDDI

  7. 4至7层交换机
    (1)4至7层交换机指传输层以上的交换机,是利用TCP等协议的传输层及其上面的应用层为基础分发数据的
    (2)例如负载均衡(只对数据转发,不对数据处理)

  8. 网关
    (1)网关也是工作在4到7层,但是除了4到7层交换机的数据转发功能外,他还能对数据进行处理
    (2)例如,手机邮件与互联网邮件不能互通,因为采用的邮件协议不同,这时,如果在手机和互联网上加上一层网关,对2个不同协议进行翻译,就能达到手机和电脑通信,这就是数据转换。
    (3)代理服务器也是一种网关,称为应用网关。有了代理服务器,客户端与服务器之间不能在网络上直接通信,而是由代理服务器对客户端请求做各种控制和处理

第二章 物理层

物理层考虑的是怎样连接不同传输媒体上的传输比特流,是对连接的考虑,而不是传输媒体本身

一. 描述方法:

(1)机械特性:接口所用接线器的尺寸大小,外形规格
(2)电气特性:接口电缆上出现的电压范围
(3)功能特性:某条线上,某个电压值表示什么意义
(4)过程特性:各种可能事件的出现次序

二. 数据通信的基本知识

  1. 数据与信号
    (1)数据:运送消息的实体
    (2)信号:数据的电气或电磁表现
    i. 模拟信号:连续信号,消息的参数取值使连续的
    ii. 数字信号:离散信号,消息的参数取值是连续的
    使用事件域的波形表示数字信号时,代表不同离散值的基本波形称为码元。使用二进制编码时,只有两种码元,0状态和1状态

  2. 信道
    (1)信道不同于电路,是有方向的,用来表示某一方向传送信息的实体。一条通信线路通常包含2个信道:1条发送信道和1条接受信道
    (2)双方信息交互方式的分类:
         单向通信:只有一个方向的通信信道(单工通信),发送方和接受方的角色不能互换。eg:无线电广播,电视广播
         双向交替通信:通信双方右2个方向的通信信道,收发角色可以互换,但是统一时刻不能即做发送方,也做接收方(半双工通信)
         双向同时通信:通信双方有2个方向的通信信道,节点可以同时接受和发送信息,效率最高(全双工通信)

  3. 基带信号:
    (1)定义:来自信源,没有经过调制的原始电信号。eg:计算机输出的代表各种文字,图像文件的数据信号
    (2)基带信号使原始信号,往往带有低频和直流成分,这2中成分在传输过程中衰减的厉害,因此需要对基带信号进行调制

  4. 调制:
    (1)基带调制:调整基带信号的波形,调整后的信号还是基带信号
    (2)带通调制:调整基带信号的频率,振幅等。利用载波进行调制,调制后的信号是带通信号
    (3)带通调制的三中种方法:
         i. 调幅:载波振幅随数字信号而变化。eg:0,1分别对应无载波和有载波
         ii. 调频:载波频率随数字信号而变化。 eg:0,1分别对应频率f1和f2
         iii. 调相:载波相位随数字信号而变化。 eg:0,1分别对应于相位0度和180度
    (4)正交振幅调制QAM:采用更为多元的振幅相位混合调制

三. 信道极限容量

任何信道都不是理想的,在传输信号时会缠身各种失真。而数字通信的优点是:只要接收端可以从是真的波形中还原出原来的信号,这种失真就对通信质量没有影响

  1. 限制码元在信道上传输速率的2个因素
    (1)信道的频率范围
    任何波形,都是由不同频率的正弦波叠加而来。这些组成信号的正弦波就叫频率分量。信号中很多高频分量旺旺由于传输过程中的衰减而不能通过信道。而高频分量正是区分每个码元的标志,高频信号衰减,使得接收端收到的波形,前沿和后沿不是那么陡峭,每个码元所占时间界限也就不是很明确。这种现象叫做码间串扰。为了避免码间串扰,耐奎斯特提出了奈氏准则:理想低通信道下,码元的传输速率不能超过2w波特,否则会出现码间串扰。(1波特表示没面传输一个码元,w是带宽)而对于理想带通信道的最高码元传输速率为1w波特。奈氏准则限制了码元的传输速率,却没有限制比特位的传输速率,要想提高比特传输速率,就要使每个码元表示多个比特位信息。
    (2)信噪比
         i. 信噪比:信号S的平均功率和噪声N的平均功率之比(frac{S}{N})
         ii. 分贝:10*log((frac{S}{N}))
                        即:信噪比为1000时,分贝为30分贝
         iii. 香农公式:在计算噪声的情况下,信道的极限数据传输速率为C=(W*log{_2}{(1+frac{S}{N})})(b/s),其中W为带宽赫兹
         V. 香农定理阐述了传输比特流的最大速率,是理想情况下的最大数据传输速率。而由于码元的传输速率受到奈氏准则的限制,要想接近香农提出的最大比特传输速率,就要让1个码元,携带更多的比特信息。eg:假设基带信号101011000110111010...如果直接传输,每个码元携带1bit信息。如果把3个bit合为一组,提供8种排列,每种排列表示一种码元,这8中码元采用不同振幅,或不同频率,或不通相位进行调制。则上面的18个码元信号就变成了6个码元信号
    vi. 香农定理在推倒过程中,没有考虑脉冲干扰,传输失真等因素,因此实际的最大传输值,还要小得多。

四. 物理层下面的传输媒体

传输媒体是指,数据传输系统中,在发送器和接收器之间的物理通路。传输媒体分为导向传输媒体和费导向传输媒体。

  1. 导向传输媒体:电磁波沿着固体媒体传播(铜线,光纤)
    (1)双绞线:
    两根绝缘的铜导线扭在一起。传输距离可达到几到十几公里,距离太长家要加放大器或中继器。放大器用来放大模拟传输的信号,中继器用来对失真的数字信号进行整形。传输速率可达到几百b/s
    (2)同轴电缆:
    带宽可达1GHz
    (3)光纤

  2. 非导向传输媒体

五. 信道复用技术

每2个端点进行通信通常都要使用一个单独的信道,如果在发送端使用一个复用器,就可以让大家合起来共享通信信道。

  1. 频分复用,时分复用,统计时分复用
    (1)频分复用(Frequency Division Multiplexing):FDM
         所有用户使用不同的频度范围,用户只能使用特定范围的频度进行传输
    (2)时分复用(Time Division Multiplexing):TDM
         i. 将时间划分为等长的时分复用帧,称为TMD帧。每一个时分复用用户在每一个TMD帧里占用一段时间。
         ii. 时分复用是各用户在不同时间占用相同频率宽度
    (3)统计时分复用(Statistic TDM)
         i. 集中器通常使用这种统计时分复用:各用户有了数据会随时发往集中器的输入缓存,然后按顺序一次扫面每个端口的缓存数据,一次吧缓存中的数据放入STDM帧,当一个帧的数据放满了,就把信号发送出去。
         ii. STDM并不是给用户分配固定的时隙,而是动态的分配时隙。在输出线路上,用户所占时隙并不是周期性的出现

  2. 波分复用(Wavelength Division Multiplexing):光的频分复用
    在光纤传播介质中,人们用载波的频分复用概念,提出了波分复用。由于光的频率很高,所以一般使用波长而不是频率来描述光波。起初,人们只能在一根光纤上复用两路载波信号,现在以能做到一根光纤上复用80路或更多的光载波信号。于是有了密集波分复用DWDM(Dense Wavelength Division Multiplexing)

  3. 码分复用(Code Division Multiplexing):CDM
    码分多址复用CDMA:Code Division Multiple Access.每一个用户可以同时使用同一个频带进行通信。其频谱类似于白噪声,不易被人发现。

第三章 数据链路层

一. 数据链路层的作用

  1. 计算机用二进制表示信息,而实际的通信媒介处理的却是电压的高低,光的闪灭,电波的强弱等信号,把这些信号与二进制的0,1进行转换正是物理层的作用。数据链路层处理的数据不是单纯的0,1序列。而是把他们集合成一个叫做“帧”的块进行传输。链路层重在集合。

  2. 数据链路是网络传输中的最小单位,互联网被称为“数据链路的集合”。

二. 数据链路相关技术

  1. MAC地址
    (1)MAC地址用于识别数据链路中互联的节点
          对于总线型网络,每个节点暂时获取所有目标站的帧,再跟据MAC寻址,如果是发给自己的就接收,如果不是发给自己的帧,总线型网络会丢弃,环路性网络回发送到下一个节点。

  2. 数据链路层使用2种信道
    (1)点对点信道:这种信道使用1对1点对点方式通信
    (2)广播信道:这种信道使用一对多的广播通信方式

  3. 数据链路和帧
    (1)链路(link):从一个节点到相邻节点的一段物理线路,中间没有其他交换节点。
    (2)数据链路(data link):链路 + 数据传输协议
    (3)帧:数据链路层传输的基本单位

  4. 数据链路层各种协议都要解决的3个问题
    (1)封装成帧
         i. 网络层的ip数据报,添加上帧首部,帧尾部后就构成了一个完整的帧。帧首部和帧尾部用来确定帧的界限。
         ii. 每种协议都规定了帧数据部分的最大长度上限 --- 最大传输单元MTU(Maximum Transfer Unit)
         iii. 当数据部分是ASCII码组成的时候,帧首部和帧尾部采用特定的帧定界符,均是不可打印的ASCII码字符。帧首部用SOH(start of header)01表示(00000001),帧尾部用EOT(end of transmission)04表示(00000010)。
    (2)透明传输
    透明传输是指,用户输入什么字符,就发送什么字符。当数据是一个图片等不可打印的0,1序列时,数据中往往会包含SOH或EOT,造成识别帧首尾位置错误,这时就需要在这些字0,1序列前面加上转义字符,这种方法称为字节填充/字符填充
    (3)帧检错
         i. 传输过程中产生的0,1差错称为比特差错
         ii. $frac{传输错误的比特数}{传输的总比特数} = 误码率(BER) $
         iii. 采用循环冗余校验CRC校验是否有比特差错

【注】:经过CRC检错纠错后,基本可以确定传输帧无比特差错。但无比特差错,不是无差错传输,数据链路层还是可能出现帧丢失,真重复,帧失序的错误。原先OSI模型中要求数据链路层提供可靠传输,所以在CRC基础上,增加了祯序号,确认重传等机制。但随着目前通信线路的质量提升,这种由于通讯线路造成的数据传输错误纪律大大下降,所以数据链路层不在提供无差错传输,而把这些功能转移到TCP协议实现。

三. 点对点信道的链路层

  1. ppp协议:
    用户计算机和ISP进行通信通信时使用的数据链路层协议

  2. PPP协议的特点
    (1)简单
    接收方每接收到一个数据帧,就进行CRC校验,如果正确就收下该帧,如果错误,就丢弃这个帧,然后什么也不做
    (2)封装成帧
    在数据报文的前后加上帧头和帧尾,形成帧定界符,以便接收端从接收的比特流中找出开始和结束位置
    (3)透明性
    如果数据报文中出现和帧定界符相同的比特组合时,要加上转义符进行转义
    (4)多种网络协议
    PPP协议应该支持链路上所连接的局域网和路由器上的各种网络协议
    (5)多种类型链路
         i. 主要指支持多种物理材质的信道,多种发送方式。比如支持电的或者光的,穿行发送还是并行发送(一次发送一个比特还是一次并行发送多个比特)
         ii. 1999年出现的PPPoE协议,是宽带上网使用的链路层协议。这个协议把ppp帧再封装到以太网帧中。宽带上网让多个用户使用同一条连接到ISP的线路。
    (6)差错检验:能够在检测到出错的帧后立即丢弃该帧,避免其还在网络中传输,浪费资源
    (7)检测链接状态:
    PPP协议具有一种机制,在不超过几分钟的时间内就能自动检测出链路是否处于正常状态。当出现故障的链路隔了一段时间又恢复连接时,很有用
    (8)最大传输单元
    PPP协议规定了最大传输单元,MTU,是指最大数据段长度,并不是指总共帧长。
    (9)网络地址协商
    PPP提供一种方式,使连接的两个网络层实体,能够通过协商获知彼此的网络层地址
    (10)数据压缩算法:对传输帧进行压缩

  3. PPP不需要的功能
    (1)纠错
    (2)流量控制
    (3)序号
    (4)多点线路 : PPP不支持多点线路,即一个主站轮流和链路上的多个从站进行通信,只支持点对点的链路通信。
    (5)半双工或单工链路:PPP只支持全双工通信。

  4. PPP协议的帧格式
    (1)首位的帧定界符规定为0x7E(0x表示使用的是十六进制表示,7E的二进制编码为01111110)
    (2)数据部分MTU不能超过1500字节
    (3)CRC编码加上的校验位占2个字节
    (4)下图中的FF和03没有实际意义

  5. PPP协议中的字节填充
    (1)PPP规定转义字符为0x7D
    (2)信息字段的0x7E变为(0x7D,0x5E)
    (3)信息字段的0x7D变为(0x7D,0x5D)
    (4)ASCII码的控制字符(小于0x20的字符)也要变化。例如0x03变为(0x7D,0x31)

  6. 0比特填充
    (1)当PPP协议用在同步传输的链路时,例如SONET/SDH,PPP协议就采用0比特填充进行透明传输。
    (2)因为PPP的帧定界符是0x7E,二进制01111110中包含6个连续的1,所以在信息字段中,每发现5个连续的1后,就加1个0,保证字段中不会出现6个连续的1。接收端要在数据段中发现5个连续的1后面的0删除。

四. 使用广播信道的数据链路

  1. 局域网 :为同一个公司所有,且地理位置和节点数量均由限制
    (1)网络拓扑分类
         i. 总线型
         ii. 环形
         iii. 星型
         v. 混合型(网状与星型组合)

  2. 总线型网络使用2种协议
    (1)传统以太网的CSMA/CD协议
    (2)令牌传递总线网。(物理上的总线网,逻辑上的令牌环网络)

  3. 多用户共享通信媒体资源的2种方法:
    (1)利用物理层划分信道的方法,使多个用户即时使用一条物理线路,也会使用搁置的通信信道(eg:时分复用,频分复用,码分复用,波分复用),这种方法代价高
    (2)动态媒体接入控制(多点接入):信道并非在用户通信时固定分配给用户。有以下2类
         i. 随机接入:用户可随时发送信息,但如果线路上恰巧右其他用户也在发送信息时,这些信息就会发生碰撞,导致该时刻所有发送信息的用户全部发送失败。
         ii. 受控接入:用户不能随时发送信息,比如令牌环网络和集中控制的多点轮训

  4. 以太网
    (1)以太网的2个标准
         i. 以太网把数据链路层分为2个层:LLC(逻辑链路控制Logical Link Control)子层和MAC(媒体接入控制Medium Access Control)
         ii. 与接入和传输媒体有关的内容放在MAC子层,LLC子层和传输媒体无关。
    (2)适配器的作用
         i. 计算机通过适配器与外界局域网连接,适配器是机箱内放置的一块网络接口卡(NIC),简称网卡。适配器的功能就是进行数据的串行和并行传输的转换。网卡上还要有缓冲区来处理网络上的数据率和计算机总线数据率不同带来的数据积压。
         ii. 适配器在接收到有差错的帧后就会丢弃该帧,而不去通知计算机。如果接收到正确的帧,就使用中断通知计算机交付给协议栈中的网络层。
         iii. 计算机硬件地址放在适配器的ROM中,计算机的IP地址放在计算机的存储器中
    (3)以太网的设计思路:早期以太网都连接在一根总线上。当时认为“有源器件不可靠,而无源的电缆线才是最可靠的”。
    (4)总线网络的特点是:当一台机器发送数据时,总线上所有计算机都会检测到这个数据。所以这种情况下,为了实现一对一的通信,每个计算机适配器都要各自的地址。当数据帧的目的地至与适配器ROM中存放的硬件地址一致时,适配器接受帧,否则就直接丢弃

  5. 以太网的2种措施来实现“简单通信”
    (1)尽最大努力交付:
    以太网采用无连接模式,适配器不对数据编号,也不要求对方发回确认帧。如果发现帧存在比特差错,就直接丢弃该帧。至于有差错的帧是否会重传由高层来决定。即便高层要求重传,以太网也不知道这是重传数据帧,一样按照新帧处理。
    (2)以太网传输数据先用曼彻斯特进行编码:
    二进制基带信号通常使用电压的高低来表示传输的0和1,这样导致接收端无法从比特流中拉取同步位。因此,曼彻斯特编码再把每一个码元分割成登场的2个码元。前高电平后低电平表示0,前低后高表示1.(电平上升表示1,电平下降表示0)。

  6. 以太网协调多台机器的数据发送:CSMA/CD协议
    (1)CSMA/CD协议:载波监听,多点介入,碰撞检测
    (2)多点接入:说明这是总线型网络,许多计算机多点连接到一根总线上。
             载波监听:每个站发送数据前先检测总线上是否有其他站在发送数据,如果有九推迟发送时间,等待信道空闲。
             碰撞检测:边发边检测,适配器在发送数据时也检测信道上的电压变化,当电压发生大幅度变化,数据欧明有多个站同事发送数据,造成“碰撞”。此时适配器停止发送数据,避免浪费资源,等待信道空闲。
    (3)端到端传播时延
         适配器并不能在其他站刚开始传输数据就检测到信道上有数据,因为此时电信号还未传输到该适配器。我们把一个站电信号传输到另一个站的时间称为传播时延( au)。由于存在传播时延,导致即使适配器发现此时信道空闲而发送数据,该数据仍可能在信道上发生碰撞。因此,局域网要按最坏情况设计,取总线两端的2个站的传播时延为端到端传播时延。
    (4)以太网发送的不确定性
         载波监听需要时间,所以发送的数据存在彭转化高的可能性,这种不确定是否发生碰撞就是以太网的不确定性
    (5)碰撞窗口
         以太网端到端往返时间2( au)称为争用期,如果经过这段时间还没发现碰撞,才能肯定这次发送没有发生碰撞。
    (6)截断二进制指数避退算法
         i. 以太网规定征用期2( au)为51.2(mu)s,这个时间综合考虑了以太网端到端时延,转发器转发的时延等因素。对于10Mb/s的以太网,争用期内可以发送512bit,即64字节
         ii. 设离散集合(0,1,3,7,...,((2^k)-1))中取一个数r,重传推后时间为r*2( au).其中k的取值为Min(重传次数,10),即当重传次数大于10后,仍取10.当重传16次还不成功时,说明 同时发送的数据太多,导致连续冲突,于是丢弃该帧,向高层报告。
         iii. 因为对于10Mb/s的网络,争用期内可以传播64 bit的数据,所以小于64bit的数据不应该被发送出去,这种数据不能在传播过程中监测到碰撞。一次以太网规定最短帧长为64字节,凡是小于64 字节的帧都是由于冲突二异常种植的无效帧,这种帧会被立刻丢弃。(这种规定使得接收端根据接受帧的帧长度就能判断该帧是否发生碰撞,因为64字节内发送段如果监测到碰撞就不会继续发送帧,所以发送成功的帧都是大于64字节的)
    (7)强化碰撞
         当发送站发现发送帧出现碰撞,立刻停止发送该帧,还要接着发送一个长32bit或48bit的干扰帧,让其他发送站立刻监测到信道发生了碰撞。这个干扰帧还要在信道上传播一个( au)的时间。
    (8)帧间最小间隔:以太网规定帧间最小间隔为96(mu)s ,以便于接收端可以缓存数据。

第四章 网络层

4.1 网络层2种服务模式的设想

  1. 虚电路服务:
    (1)早期人们设想,计算机通信采用类似电信电话通信的设计,预先建立一条连接使得网络提供可靠交付。这种设计就是虚电路模式。
    (2)虚电路设计也是基于存储转发的分组交换,它要求双方预先建立一条虚电路,保证通信的一切资源。每条虚电路都有编号,发送方只要指明虚电路编号即可。这种方式不会引起丢失,重复,乱序的问题。
  2. 数据报服务:
    (1)互联网先去们认为,计算机比电话更智能,可以对错无进行检查和纠正,于是提出了数据报服务
    (2)设计思路:网络层向上之提供简单灵活,无连接的,尽最大努力交付的数据报服务。
    (3)不需要预先建立连接,每个分组独立选择路由进行发送。

4.2 网际协议:IP

一. 虚拟互联与地址分类

  1. 虚拟互联网络
    (1)将网络连接起来需要一些中间设备,这些设备工作在不同层上:

    设备
    物理层 转发器
    数据链路层 网桥,桥接器
    网络层 路由器
    网络层以上 网关

(2)当使用物理层或数据链路层上的设备进行网络扩展时,虽然存在物理网络的异构性,但是在网络层的协议逻辑上看,他们仍是一个网络。这就叫虚拟互联网络。

  1. IP地址分类
    (1)IP地址右2部分组成:<网络号>,<主机号>
    (2)IPv4地址由32位组成,长4字节。
    (3)IPV4分为A,B,C,D,E5类地址。这5类地址的网络号最前面几位表示该地址使那种类别的地址。
    (4)表示字段最长占4位(c,d类标识)

    地址类别 类标识 网络号位数 主机号占位数
    A 0 7 24
    B 10 16 16
    C 110 24 8
    D 1110 多播地址
    E 1111 未使用

(5)ABC类地址为单播地址,D类为多播地址,E类未使用
(6)特殊的主机号:
     i. 主机号全0表示该主机所在的网络号,主机号全0地址不能找到主机,只能找到网络
     ii. 主机号全1表示改网络内的所有主机,用于广播通信使用。所以主机号全0和全1都不能出现在ABC类地址中

二. ABC类地址详解

  1. A类地址
    (1)A类地址网络号最多(2^7-2)
         A类地址网络号最前面为0,因此他的网络号最多有7位可用。
         只有A类地质的网络号有可能全0,而全0的网络号表示“本网络”
         网络号127(01111111)表示该地址作为本地软件换回测试使用,这种网络号不会作为目的地址在网络上传输。
    (2)A类地质主机号最多(2^{24}-2)(出去全0全1主机)
    (3)A类地址前面的0固定,因此A类地址大约占所有ipv4地址的50%

  2. B类地址
    (1)B类地质网络号最多(2^{14}-1)
         B类地质前面的10固定,剩下14位网络号可被选用
         B类地质不存在网络号全0的可能,但是128.0网络号规定不可用,要从128.1网络号开始使用
    (2)B类地址主机号最多(2^{16}-2)
    (3)B类地址前面的10固定,因此B类地址大约占所有ipv4地址的25%

  3. C类地址
    (1)C类地址网络号最多(2^{21}-1)
         C类地址前面的110固定,可选网络号占21位
         C类地址网络号192.0.0规定不可用,从192.0.1开始
    (2)C类地址主机号最多(2^8-2)
    (3)C类地址前面的110固定,因此C类地址大约占所有ipv4地址的12.5%

    地址类别 开始主机号 结束主机号
    A类地址 1 126
    B类地址 128.1 191.255
    c类地址 192.0.1 223.255.255
  4. IP地址特点:
    (1)路由器根据地址的网络号转发分组,来减小路由表的大小
    (2)路由器连接在2个虚拟网络上,所以路由器至少有2个IP地址(至少2个网络号)
    (3)使用转发器,网桥链接的网络使用同一个网络号,是一个网段。不同网络号的局域网必须使用路由器连接

  5. IP地址特点:
    (1)路由器根据地址的网络号转发分组,来减小路由表的大小
    (2)路由器连接在2个虚拟网络上,所以路由器至少有2个IP地址(至少2个网络号)
    (3)使用转发器,网桥链接的网络使用同一个网络号,是一个网段。不同网络号的局域网必须使用路由器连接

  6. IP地址与硬件地址
    (1)MAC地址使物理层和数据链路层使用的地址,MAC帧的源地质和目的地址都是硬件地址
    (2)IP地址使逻辑地址,是软件实现的地址
    (3)整个IP数据报就是MAC帧的数据段

三. 地址解析协议ARP

  1. ARP的作用:
    arp协议使得在一个局域网内部的主机或路由器,根据数据报中目的主机的IP地址,获取目的主机的MAC地址

  2. ARP协议
    (1)主机都设有ARP高速缓存行,用来存放IP地址到硬件地址的映射
    (2)Ip地址到MAC地址的转换,首先通过查找ARP缓存行,发现映射就进行转换,没有映射就开始发送ARP请求帧。

  3. ARP过程
    (1)主机上的ARP进程广播发送ARP请求分组,该请求分组表明:“我的IP地址是209.0.0.5,硬件地址是XXXX,我想知道IP地址为209.0.0.6的主机的硬件地址”
    (2)本局域网上的所有其他主机都会收到该分组,一旦发现自己就是被请求的ip,就采用单播的形式,把自己的MAC地址告诉给209.0.0.5的主机,并把209.0.0.5主机和硬件地址记录在自己的ARP缓存行中。
    (3)209.0.0.5主机收到ARP响应分组后,把IP与MAC地址写入到缓存行中。

  4. ARP中的每个缓存行都有一个超时时间

  5. ARP缓存行中的地址映射,都是所在局域网的IP地址。如果主机A想要和另一个局域网的主机B通信,A不用知道B的MAC地址,A只需要用ARP协议获知本局域网中路由器R1的MAC地址,从而把帧发送给路由器R1.而后,路由器R1根据目的IP找出下一跳路由器,并用ARP协议得知对方局域网路由器R2的MAC地址,把帧转发给路由器R2。路由器R2已经根据ARP获知本局域网内主机B的MAC,所以R2根据ARP缓存行的映射找出最终的主机B的MAC

  6. 既然MAC地址是最重的通信地址,为什么还要使用能够IP地址?
    因为全世界存在着各种各样的网络,他们使用不同的mac地址。这些易购网络要想通信就必须进行负责的硬件地址转换,IP地址的出现解决了这种问题,因为及时网络异构,但是主机都有复合IP协议的逻辑地址。

四. IP数据报的格式

net1.png-52kB

  1. 数据报头:固定长20字节,160bit
    (1)版本号:4bit,声明为ipv4协议
    (2)首部长度:4bit,表示首部站多少字。每个字占4字节。4bit最多表示的数是15,所以首部最大60字节
    (3)总长度:16bit。
    表示整个数据报的长度,单位是字节。所以数据报最长65535字节。数据包的长度不能超过下层链路层规定的MTU,即1500字节。也不能小于576字节。数据包太短使得头部信息比重过大
    (4)标识:16bit。
    相同标识号的属于一个大分片,接收方根据这个数字选择把那些分片组合成仪的大分片。这个表示数字不具备顺序功能,因为Ip协议使无顺序的
    (5)标志:占3位
         最低位MF:表示后面是否还有分片。该位为1表示还有分片
         中间位DF:表示是否不能分片。该位为1,表示不能分片
         高位:无意义
    (6)片偏移:13位
         表示相同标识号的数据分片,在组合成大数据片后,数据部分所在大分片数据部分的位置。单位是8字节。所以每个分片一定是8字节的倍数(64字节的倍数)。
    (7)例题
    eg:设一个大分片长度3820字节,要求每个分片的数据部分最大1400字节,求分片后的总长度,MF,DF,片偏移为多少
    解:因为IP数据报首部固定20字节,所以数据部分总长3800字节,每个小片的数据部分分别为1400,1400,1000。因为片偏移的单位使8字节,所以片偏移的值要在字节的基础上乘以8

    分片1 总长度 MF DF 片偏移
    原始数据报 3820 0 0 0
    数据分片1 1420 1 0 0
    数据分片2 1420 1 0 175 (175*8)
    数据分片3 1020 0 0 350 (175*16)

(8)生存时间:8位
为了防止无法交付的数据报在网络中无限制的兜圈子,每当数据报转发一个路由器,TTL值就减1。当TTL值为0时,就丢弃这个数据报
(9)协议:8位
指出次数据报携带的数据,在网络层以上使用的何种协议。

  |协议名|ICMP|IGMP|TCP|EGP|IGP|UDP|IPv6|OSPF|
  |-----|-----|----|------|--------|-----|-----|----|----|
  |协议字段值|1|2|6|8|9|17|41|89|

(10)首部校验和:16位
首部校验和字段只校验IP数据报的首部。不使用CRC校验,而采用一种渐变的校验方式 :
<1> 把首部教研和字段的值设为0
<2> 把整个首部分为16位(2字节)的字序列,对这些二进制反码求和,结果写在首部校验和字段中
<3> 接收方把收到的IP数据报首部,也化分成16bit的段,再进行二进制反码求和,此时结果全1就说明传输无差错
【注】:为什么和全1就正确?
首部校验和字段=首部其他字段反码的和,而接受方把全部字段反码求和=除首部校验和外的字段反码求和+首部校验和字段= 首部校验和字段的反码+首部校验和字段
一个二进制和其本身反码的和一定是全1:因为1的反码为0,0的反码为1
(11)源地址和目标地址:各站32位
2. 路由器转发分组流程
(1)路由表结构
          目的网络地址 | 下一跳
(2)默认路由:当需要转发的网络号不在路由表中时,就使用默认路由进行转发
eg:当目标网络是N1,就直接交付。当目标网络是N2,就转发给路由器R2.当不能目标网络不是N1,N2,就采用默认路由R1 。(路由表中直接交付的下一跳对应0.0.0.0,其他网络“默认”也为0.0.0.0)
luyou.png-27.7kB
(3)当路由器收到一个数据报时,不能改变数据报的源地址和目的地址,而是先查找目的网络地址在路由表中对应的下一跳。找不到就选择路由表中的默认路由。路由器中的软件查找ARP高速缓存中的IP地址和MAC地址的映射,如果找到就把下一跳的MAC地址作为目的地址写进MAC帧进行转发。
(4)路由器对数据报的转发就是不断去循环:查找ip路由表,计算下一跳MAC地址,写进MAC帧首部
(5)路由表内容的建立和更新在后面给出

  1. 划分子网
    (1)划分子网把原来的二级IP地址划分成三级iP地址。把二级地址中的主机号选出几位作为子网号,形成如下结构
            网络号 | 子网号 | 主机号
    (2)划分子网属于一个单位内部的事,外部网络看来,这些子网均属于一个网络
    (3)划分子网的路由器变为3个表目:
    目的网络地址 | 子网掩码 | 下一跳地址
    (4)使用子网掩码的路由器转发数据报的过程:把接收到的数据报从中解析出目的IP地址,用该地址与路由表中的子网掩码进行按位与。获得子网号,按照子网号进行转发或选择默认路由

  2. 无分类网址CIDR
    (1)CIDR不在采用ABCDE的分类地址,而是采用<网络前缀><主机号>的二级iP地址表示方法
    (2)CIDR不采用子网:CIDR的网络前缀中并不去声明哪几位是子网号。但是仍可以在本网络中划分出子网,只是子网的网络前缀要比整个网络的网络前缀多
    (3)eg:192.199.170.82/27:表示网络号占27位
    (4)路由表最长匹配原则
    采用CIDR编址的路由器路由表分为2项:<网络号/位数> | <下一跳>。此时一个数据报的目的地址取不同位数的网络号后,可能和路由表中的多个项匹配,此时应选择位数最多的网络号。因为网络号越长,其地址块就越少,路由就越具体。
    (5)使用二叉线索查找路由表
    因为CIDR的网络号需要使用最长匹配原则,所以当匹配到一个网络号后,并不能立刻转发,还要继续比较是否有比他匹配位数长的。因此几乎要匹配路由表中的所有项。为了提高效率采用二叉线索查找表
                  cidr.png-46.1kB

五. 网际控制报文协议

  1. ICMP是IP层的重要组成部分,用来传递差错报文和其他控制信息

  2. ICMP封装在IP数据报内部:
    (1)IP首部 | ICMP报文。
    (2)由于IP首部校验和只校验首部,所以ICMP保温中也有自己的校验和字段来校验ICMP报文的正确性。

  3. ICMP报文的种类:ICMP差错报告报文和ICMP询问报文

  4. 5种ICMP差错报告报文
    (1)终点不可达:
         路由器或主机不能按照IP数据报的目的地址交付数据时,向源点发送
    (2)源点抑制:
         当路由器或主机由于数据拥塞而丢弃数据报时,向源点发送源点抑制报文,使源点知道应当放慢数据报的发送速率。
    (3)时间超过:
         1)当路由器收到TTL为0的报文,先丢弃报文,再向源点发送超时报文。
         2)当终点在预定时间内不能收到一个数据报的全部分片时,先丢弃收到的报文分片,再向源点发送超时报文。
    (4)参数问题:
         当路由器发现IP首部的字段值不正确时,先丢弃该报文,再向源点发送参数问题报文
    (5)改变路由(重定向):
         路由器把改变路由报文发送给主机后,让主机知道下次将数据报发送给另外的路由器
    【注】:
         1)主机不会和路由器定器交换信息。而是在主机刚开始工作时,在主机路由中设置一个默认路由,所有数据报都发送到默认路由上,而这个默认路由知道每一个目的网络的最佳路由,于是该默认路由就会给主机发送改变路由报文,主机会在路由表中增加一条信息,使目的网络发送到新的路由器上
         2)ICMP差错报文不在发送差错报文
         3)只对第一个报文分片发送ICMP差错报文
         4)对于多播地址的IP数据报不去发送差错报文
         5)对于特殊地址(127.0.0.1)不发送差错报文

  5. ICMP询问报文2种
    (1)回送请求报文和此报文的回答:
    回送请求报文用来测试主机是否可达并了解该主机的状态。收到该报文的主机要对此做出回答,这种回答也是询问报文
    (2)时间戳请求回答和此报文的回答:
    请某个主机或路由器回答当前时间

  6. ping与traceroute程序
    (1)ping直接使用网络层ICMP报文,不走TCP或UDP
    (2)traceroute程序用来列出主机到达目的主机进过的路由列表
         i. traceroute会多次发送同一个无法交付的UDP报文。但每次这个报文的TTL不同
         ii. 第一个报文的TTL设置为1,这样使得收到该报文的第一个路由器发现TTL超时,丢弃报文并向源主机发送ICMP超时报文。第二个报文设置TTL为2,使第二个路由器发送TTL超时报文。这样最后发送到目的主机后,目的主机发现目的UDP不可达,所以发送ICMP终点不可达报文给源主机
         iii. 路由器回送的ICMP超时报文和ICMP终点不可达报文中包含了路由器和不敌主机的IP,因此traceroute程序就能获取主机到目的主机之间经过的路由器列表

六. 路与选择协议

  1. 分层路由
    (1)因特网中的主机数目太多,如果不划分自治区域,就会让每个机器的路由表太大。
    (2)而且某个单位的网络拓扑不想让外界知道,所以也要划分自治区域
    (3)因为自治区域AS(autonomous)的划分,使得路由选择分为内部网关协议IGP(Interior Gateway Protocal)和外部网关协议EGP(External Gateway Protocal)。IGP是自治系统内部使用的路由选择协议,BGP是当一个数据报传到自制系统边界时,将数据传输到另一个自治系统内的协议。

  2. 内部网关协议RIP:基于路径向量的路由选择协议
    (1)RIP协议的路由器记录这到目的网络的距离(跳数)
    (2)RIP协议下的路由器,每隔30s,和自己相邻的路由器交换自己路由表中的全部信息
    (3)每个RIP报文中都包含目的网络,距离,下一跳信息。接受RIP保温的路由器根据这个报文修改自己的路由表。如果超过3分钟都没有收到相邻路由器发送来的RIP报文,就把该路由器设置位不可达
    (4)更新路由表的步骤
          1)先把RIP报文中的下一跳该位这个相邻的路由器
          2)若原来没有该目的网络,则把目的网络加入自己的路由表,距离加1,下一跳和RIP一致
          3)若RIP的目的网络和下一跳地址,都和自身路由表一致,则更新距离为RIP报文中的距离+1
          4)若RIP的目的网络和自身路由表一致,但下一跳和路由表不一致,则把RIP协议中的距离+1后,若该值小于路由表中的距离,则更新路由表的下一跳为RIP报文中的下一跳,并把距离改为RIP距离+1
    (5)更新路由表带来的问题:坏消息传的慢

     eg:
     (1)路由器R1中路由表项(1,1,直接),路由器R2中的表项(1,2,R1)。
     (2)表示R1和网络1的距离是1,R1发送到网络1的数据报可以直接交付。R2到网络1的距离是2,R2发送到网络1的下一跳是R1。
     (3)若此时,R1和网络1的连接断掉,R1更新路由表项距离为16.但是可能在30秒后R1才能通知R2更新他的路由表。但在这30s的时间内,R2先把自己的路由表发送给了R1,于是R1发现可以通过R2到达网络1,因此更新距离为2+1=3。下次R1在更新路由表时,就把到网络1的距离改为了4。。。知道R1和R2路由表中到达网络1的距离都为16后,才能意识到网络1不可达
    
  3. 内部网关协议OSPF:开放最短路径优先
    (1)OSPF不受哪一家厂商控制,而是开放出来得
    (2)OSPF采用链路状态协议:
          1)路由器向所有其相邻的路由器发送信息,相邻路由器拿到该信息记录后,再把该信息转发到其他所有它相邻的路由器。使得本自系统内部的所有路由器都能接收到其他所有路由器发送的信息。---范宏法
          2)路由器所发送的信息是本路由相邻所有路由的链路状态。链路状态就是说改路由和哪些路由相邻,以及该路由的"度量"(带宽,时延,费用,距离)
          3)只有当链路状态发生变化,OSPF协议下的路由器才和本自治网下的所有路由泛洪发送信息。
    (3)最终,OSPF的每个路由器都含有全网的网络拓扑。该过程也称链路状态数据库同步
    (4)OSPF的更新收敛很快,每个路由器可以即时更新其路由表。
    (5)划分区域:
          1)可以通过使OSPF限制在每一个区域而不是整个自治网。每个区域的路由器一般不超过200个。
          2)区域边界路由器:本区域内的节点想和其他区域的节点通信必须经过的路由器(R3,R4,R7)
          3)主干路由器:OSPF使用层次划分结构,处于上层的区域叫做主干区域。主干区域内的路由器称作主干区域。(R3,R4,R5,R6,R7)
          4)自治系统边界路由器:本自制区域内和本自治区域外的节点通信都要经过的路由器(R6)
    (6)OSPF不使用UDP而使用IP数据报传送信息(IP首部协议字段值为89).OSPF数据报(IP数据报的数据部分)又划分成OSPF首部和OSPF数据部分。OSPF首部固定24字节长。OSPF数据部分分为5类
          ospf.png-27.1kB
    (7)OSPF5类数据:
          1)问候分组:发现维持临站可达性
          2)数据库描述分组:向相邻路由器发送自己链路状态数据库中所有项的摘要
          3)链路状态请求分组:请求对方向自己发送某些链路状态的项目的详细信息
          4)链路状态更新分组:用泛洪法更新全网链路状态。
          5)链路状态确认分组:对链路更新分组进行确认
    【注】:
          1)两个相邻的路由器每隔10s交换一次分组,确认对方可达。若超过40s没收到对方发来的问候分组,则认为不可打,就要修改链路状态数据库,重新计算路由表
          2)OSPF采用可靠的洪泛法,每隔节点在收到更新分组后要发送确认分组。每隔30分钟,路由器要刷新一次数据库中的链路状态

原文地址:https://www.cnblogs.com/72808ljup/p/5753148.html