zoukankan      html  css  js  c++  java
  • 计算机网络5_网络层

    1、网络层

             从发送主机向接受主机传送数据段(segment)

             发送主机:将数据段封装到数据报(datagram)中

             接收主机:向传输层交付数据段(segment)

             每个主机和路由器都运行网络层协议

             路由器检验所有穿越它的IP数据报的头部域:决策如何处理IP数据报

     

    网络层核心功能——转发与路由

             转发(forwarding):将分组从路由器的输入端口转移到合适的输出端口,转发表确定本路由器如何转发。

             路由(routing):确定分组从源到目的经过的路径,路由算法(routing algorithms)。

     

    网络层核心功能——连接建立

             某些网络的重要功能:ATM ,帧中继,X.25

             数据分组传输之前两端主机需要首先建立虚拟/逻辑连接

                       网络设备(如路由器)参与连接的建立

             网络层连接与传输层连接的对比:

                       网络层连接:两个主机之间(路径上的路由器等网络设备参与其中

                       传输层连接:两个应用进程之间(对中间网络设备透明)

             网络层服务模型:

                       网络层为发送端(主机)到接收端(主机)的数据报传送通道提供什么样的服务模型?

                       无连接服务:不事先为系列分组的传输确定传输路径;每个分组独立确定传输路径;不同分组可能传输路径不同;数据报网络

                       连接服务:首先为系列分组的传输确定从源到目的经过的路径(建立连接);然后沿该路径(连接)传输系列分组;系列分组传输路径相同(分组顺序得到保障);传输结束后拆除连接;虚电路网络

                       数据报网络和虚电路网络都是分组交换网络

                       类似于传输层的无连接服务(UDP)和面向连接服务(TCP),但是网络层服务:主机到主机服务,网络核心实现。

    ================================================================= 

    2、虚电路网络与数据报网络

             虚电路VC Virtual Circuit:

                      一条从源主机到目的主机,类似于电路的路径(逻辑连接):分组交换;每个分组的传输利用链路的全部带宽;源到目的路径经过的网络层设备共同完成虚电路功能。

                       通信过程:呼叫建立(call setup)——数据传输——拆除呼叫

                       每个分组携带虚电路标识,而不是目的主机地址

                       虚电路经过的每个网络设备,维护每条经过它的虚电路连接状态

                       链路、网络设备资源(如带宽、缓存等)可以面向VC进行预分配

                                预分配资源=可预期服务性能

                       VC的具体实现:每条虚电路包括:

                                从源主机到目的主机的一条路径

                                虚电路号(VCID),沿路每段链路一个编号

                                沿路每个网络层设备(如路由器),利用转发表记录经过的每条虚电路

                       沿某条虚电路传输的分组,携带对应虚电路的VCID,而不是目的地址

                       同一条VC,在每段链路上的VCID通常不同   

                                路由器转发分组时依据转发表改写/替换虚电路号,VC路径上每个路由器都需要维护VC连接的状态信息!

                       虚电路信令协议(signaling protocols)

                                用于VC的建立、维护与拆除:路径选择

                                应用于虚电路网络:如ATM、帧中继(frame-relay)网络等

                                目前的Internet不采用

             数据报网络:

                       网络层无连接

                       每个分组携带目的地址

                       路由器根据分组的目的地址转发分组

                                基于路由协议/算法构建转发表;检索转发表;每个分组独立选路。

             数据报转发表:

             Internet(数据报网络):计算机之间的数据交换,弹性服务,没有严格时间要求;链路类型众多,特点性能各异,统一服务困难。简化网络 复杂边缘;智能端系统:可以自适应、性能控制、差错恢复。

             ATM(VC网络):电话网络演化而来,核心业务是实时对话:严格的时间、可靠性需求,需要有保障的服务。“哑”端系统,非智能 电话机 传真机;简化边缘,复杂网络;

    =================================================================                            

    3、IPV4协议

             IP协议-IP数据报

             Internet网络层 是典型的数据报网络:路由和转发的功能

             路由协议:路径选择,RIP  OSPF  BGP

             转发表(路由表)

             IP协议:寻址规约、数据报(分组)格式、分组处理规约

             ICMP协议:差错报告、路由器“信令”

             IP数据报:首部+数据(包含上层的数据分组),首部包括很多域和字段(包含固定部分+可变部分)

             IP分组格式:版本号(占4位);总长度字段占16位:IP分组的总字节数;

                                首部长度:字段占4位,IP分组首部长度;

                                服务类型字段占8位:指示期望获得哪种类型的服务;

                                生存时间TTL:字段占8位,IP分组在网络中可以通过的路由器数,路由器转发一次分组,TTL减1。如果TTL=0,路由器则丢弃该IP分组,同时向IP主机发送报文。

                                协议字段占8位:指示IP分组封装的是哪个协议的数据包。

                                首部校验和字段占16位:实现对IP分组首部的差错检测,计算校验和时,该字段置全0,采用反码算数运算求和,和的反码作为首部校验和字段。

             典型的IP分组首部长度是20个字节。

                                标识ID字段占16位:标识一个IP分组,IP协议利用一个计数器,每产生一个IP分组计数器加1,作为该IP分组的标识。

                                标志位字段占3位:保留+DF(DON’T FRAGMENT)+MF(MORE FRAGMENT)

                                片偏移字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量。

                                片偏移字段以8字节为单位。

             IP分片:       

                       最大传输单元(MTU):IP数据报在网络中传输,需要封装到链路层的数据帧里面。网络链路存在MTU——链路层数据帧可封装数据的上限。不同链路的MTU是不一样的。这就涉及到IP分片和重组

             大IP分组向较小MTU链路转发时,可以被“分片”。(fragmented)路由器只管分不管装。由最终目的主机负责重组。

             1个IP分组分为多片IP分组。IP分片到达目的主机后进行“重组”。

             IP首部的相关字段用于识别分片以及确定分片的相对顺序。目的主机收不齐分片的话,会等待一段时间后,把其它分片都丢弃 。

            

             IP分片过程:

                       假设原IP分组总长度为L,待转发链路的MTU为M

                       若L>M,且DF=0,则可以/需要分片

                       分片时每个分片的标识复制原IP分组的标识

                       通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片

                       一个最大分片可封装的数据应该是8的倍数,因此,一个最大分片可封装的数据为:总需要分片数。

                       每片的片偏移字段取值为:

                       每片的总长度字段为:

                       每片的MF标志位为:

             IP编址:

                       IP分组:源地址(SA)-从哪儿来;目的地址(DA)-到哪儿去

                       接口(interface):主机/路由器与物理链接的连接:实现网络层功能;路由器通常有多个接口;主机通常只有一个或两个接口(有线的以太网接口和无线的802.11接口)。编址编的是实现网络层功能的接口

                       IP地址:32比特(IPv4) 编号标识主机、路由器的接口。分成4个8比特,每个8比特写成十进制。

                       IP地址与每个接口关联。实际上是指某个接口的IP地址。

                       怎样为接口分配IP地址?

                       IP子网:IP地址分成两个部分,高比特位表示网络号(NetID),低比特位表示(HostID)。具有相同网络号的局域网叫IP子网。

                       IP子网特点:IP地址具有相同网络号的设备接口。不跨越路由器可以彼此物理联通的接口。(第三层及以上层网络设备)

     

             有类IP地址:有类编址

             A类:NetID地址8位,HostID24位

             B类:NetID地址16位,HostID16位

             C类:NetID地址24位,HostID8位

             D类,E类 用来命名和标识互联网中一组主机。

    NetID

    HostID

    作为IP分组源地址

    作为IP分组目的地址

    用途

    全0

    全0

    可以

    不可以

    在本网范围内表示本机;在路由表中用于表示默认路由(相当于表示整个Internet网络)

    全0

    特定值

    不可以

    可以

    表示本网内某个特定主机

    全1

    全1

    不可以

    可以

    本网广播地址(路由器不转发)

    特定值

    全0

    不可以

    不可以

    网络地址,表示一个网络

    特定值

    全1

    不可以

    可以

    直接广播地址,对特定网络上的所有主机进行广播

    123

    非全0或非全1的任何数

    可以

    可以

    用于本地软件环回测试,称为环回地址

     

    私有地址

     

    IP子网划分与子网掩码:

             子网划分:如何将一个IP子网划分成更小的网络。

             IP地址继续划分:网络号(高比特)+子网号(原网络主机号部分比特)+主机号(低位比特)

             如何确定是否划分了子网?利用多少位划分子网?

             那就是子网掩码,形如IP地址:

                       32位,点分十进制形式

                       取值:NetID、SubID位全取1;HostID位全取0

             子网地址+子网掩码——可以准确确定子网大小

    路由器如何确定应该将IP分组转发到哪个子网?

             子网掩码的应用:将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址。

    =================================================================         

    4、无类域间路由(CIDR: Classless InterDomain Routing)

             消除传统的 A 类、B 类和 C 类地址界限

                       NetID+SubID——Network Prefix 可以任意长度

             融合子网地址与子网掩码,方便子网划分

                       无类地址格式:a.b.c.d/x ,其中 x 为前缀长度

             例如:Prefix+HostID

             提高 IPv4 地址空间分配效率

             提高路由效率:将多个子网聚合为一个较大的子网,构造超网,路由转发表     

    ================================================================= 

    5、 DHCP协议

             如何获得IP地址:

                       硬编码:静态配置

                       动态主机配置协议:Dynamic Host Configuration Protocol

                                从服务器动态获取:IP地址,子网掩码,默认网关地址,DNS服务器名称与IP地址

                                “即插即用”

                                允许地址重用

                                支持再用地址续租

                                支持移动用户加入网络

                                DHCP工作过程:主机广播(DHCP discover);DHCP服务器利用(DHCP offer);主机请求IP地址(DHCP request); DHCP服务器分配IP地址(DHCP ack)

    =================================================================

    6、 NAT网络地址转换

             只需/能从ISP申请一个IP地址:IPv4地址耗尽

             本地网络设备IP地址的变更,无需通告外界网络

             变更ISP时,无需修改内部网络设备IP地址

             内部网络设备对外界网络不可见,即不可直接寻址(安全)

     

             替换:利用(NAT IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号)

             记录:将每对(NAT IP地址,新端口号)与(源IP地址,源端口号)的替换信息存储到NAT转换表中

             替换:根据NAT转换表,利用(源IP地址,源端口号)替换每个进入内网IP数据报的(目的IP地址,目的端口号),即(NAT IP地址,新端口号)

            

             16-bit端口号字段:

                       可以同时支持60000多并行连接!

             NAT主要争议:

                       路由器应该只处理第3层功能

                       违背端到端通信原则

                       地址短缺问题应该由IPv6解决

             NAT的穿透问题:

    ================================================================= 

    7、 ICMP协议   互联网控制报文协议

             支持主机或路由器完成差错或异常报告;网络探询;

             两类ICMP报文:

                       差错报告报文(5种)

                                目的不可达,源抑制,超时/超期,参数问题,重定向(Redirect)

                       网络探询报文:

                                回声(Echo)请求与应答报文(Reply)

             ICMP报文封装到IP数据报中传输          

    ================================================================= 

    8、 IPv6简介

             最初动机:32位IPv4地址空间已分配殆尽

             其他动机:改进首部格式

                       快速处理/转发数据报

                       支持QoS

             IPv6数据包格式:

                       固定长度的40字节基本首部40B+有效载荷(扩展首部+数据)64KB

                       基本首部(版本+优先级+流标签+载荷长度+下一个首部+跳步限制+源地址+目的地址)

                       不允许分片

                      

                       优先级:标识数据报的优先级

                       流标签:标识同一“流”中的数据报

                       下一个首部:标识下一个选项首部或上层协议首部(如TCP首部)

             其他改变vs IPv4

                       校验和:彻底移除,以减少每跳处理时间

                       选项:允许,但是从基本首部移出,定义多个选项首部,通过“下一个首部“字段指示

                       ICMPv6:新版ICMP

                                附加报文类型, e.g. “Packet Too Big“

                                多播组管理功能

             IPv6地址表示形式:128bits

                       冒号分割的十六进制,8组16进制数

                       压缩形式:

                       一般形式:

                       IPv4-嵌入形式:

                       地址前缀:

                       URLs:

             IPv6基本地址类型:

                       单播(unicast):一对一通信

                       多播(multicast):一对多通信

                       任意播(anycast):

             IPv4向IPv6过渡

                       不可能咋某个时刻所有路由器同时被更新为IPv6

                       不会有 “标志性的日期“

                       IPv4和IPv6路由器共存的网络如何运行?

                                隧道技术:IPv6数据报作为IPv4数据报的载荷进行封装,穿越IPv4网络。

    ================================================================= 

    9、路由算法

     

    =================================================================         

    10、Internet路由

     

  • 相关阅读:
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 455 分发饼干
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    Java实现 LeetCode 454 四数相加 II
    FFmpeg解码H264及swscale缩放详解
    linux中cat more less head tail 命令区别
    C语言字符串操作总结大全(超详细)
    如何使用eclipse进行嵌入式Linux的开发
  • 原文地址:https://www.cnblogs.com/grooovvve/p/12251957.html
Copyright © 2011-2022 走看看