zoukankan      html  css  js  c++  java
  • 网络层

    正文

    网络层:负责在不同的网络之间(基于数据包的IP地址)尽力转发数据包,不负责丢包重传和接收顺序。 像送快递,一个人往另一个地方寄快递,每个快递走不同的路线,可能后发的先到了,也可能丢件了。但是网络层不管这些,只管寄快递。

    一、网络层提供的两种服务

    在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。

    争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 端系统

    1. 虚电路服务

    1. 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
    2. 请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。

    2. 数据报服务(现在用的)

    1. 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
    2. 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
    3. 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

    尽最大努力交付的好处

    1. 由于传输网络层不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。
    2. 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的传输层负责(包括差错处理、流量控制等)。
    3. 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
    4. 因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。

    3. 虚电路服务与数据报服务的对比

    二、网际协议IP

    网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议:

    1. 地址解析协议 ARP(Address Resolution Protocol)
    2. 逆地址解析协议 RARP(Reverse Address Resolution Protocol)
    3. 网际控制报文协议 ICMP(Internet Control Message Protocol)
    4. 网际组管理协议 IGMP(Internet Group Management Protocol)

    1. 虚拟互连网络

    2. 网络互相连接起来 , 要使用一些中间设备

    中间设备又称为中间系统或中继(relay)系统(增强信号

    1. 物理层中继系统:转发器(repeater),就是集线器。
    2. 数据链路层中继系统:网桥或桥接器(bridge),就是交换机。
    3. 网络层中继系统:路由器(router)。
    4. 网桥和路由器的混合物:桥路器(brouter)。
    5. 网络层以上的中继系统:网关(gateway)。

    3. 网络互连使用路由器

    1. 当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。
    2. 网关由于比较复杂,目前使用得较少。
    3. 互联网都是指用路由器进行互连的网络
    4. 由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。

    4. 从网络层看 IP 数据报的传送

    5. 互连网络与虚拟互连网络

    6. 虚拟互连网络的意义

    1. 所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
    2. 使用 IP 协议的虚拟互连网络可简称为 IP 网。
    3. 使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。

    三、IP地址与子网掩码

    1. 分类 IP 地址

    每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。

    主机部分不能全为0或者全为1

    点分十进制记法

    2. 常用的三种类别的 IP 地址

    3. 特殊的几个地址

    1. 127.0.0.1 本地环回地址
    2. 保留的私网地址:172.16.0.0 --- 172.31.0.0 192.168.0.0 --- 192.168.255.0

    4. 子网掩码

    1. 子网掩码是一个网络或一个子网的重要属性。
    2. 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
    3. 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。(这样才知道给哪段网络)
    4. 若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

    与运算:全1为1,否则为0

    5. 求网络地址

    与运算:全1为1,否则为0

    四、子网划分

    1. 等分成两个子网

    注意:除了第8位,剩下的不能全为0或者全为1

    第一个做网关,最后一个做广播

    划分好子网后网络规划

    2. 等分成四个子网

    和前面的类似,

    3. 等分成八个子网

    A:1-30 B:33-62 C:65-94 D: 97-126

    E:129-158 F:161-190 G:193-222 H:225-254

    4. 对于子网掩码:

    1. 划分成两个子网就是最后10000000对应的是128(255.255.255.128)
    2. 划分成四个子网就是最后11000000对应的是192(255.255.255.192)
    3. 划分成八个子网就是最后11100000对应的是224(255.255.255.224)
    4. 点到点网络的子网掩码最好是252(11111100),因为此时网里只有两个地址,不会浪费(255.255.255.252)

    5. 变长子网划分

    不等分时每个的子网掩码不同

    下面是进行练习

    6. B类网络子网划分

    和前面的类似

    五、超网


    192.168.0.0 255.255.255.0和192.168.1.0 255.255.255.0合并之后归到192.168.0.0 255.255.255.254这个网段了

    合并后:

    合并的规律:


    但是也要注意:不能合并的情况

    例:192.168.117.0 和192.168.118.0可以合并不?

    1110101

    1110110

    看最后两位,1和2不能合并

    或看两个中小的那个是偶数就可以合并

    五、数据包转发

    1. 数据包转发过程:IP地址与MAC硬件地址

    mac地址决定数据包接受的下一跳地址,ip地址决定接受的终点站地址

    数据+ip地址=数据包,数据包不变,而加上MAC地址后称为数据帧,数据帧可变,过一个网络变一次

     

    2.数据包如何路由

    六、ARP

    IP协议:把数据包从一个网段转到另一个网段,就是用来选择路径用的。

    ARP为IP服务,IP为ICMP/IGMP服务。

    1. ARP协议的作用

    1. 将IP地址通过广播(本网段,不通过路由器),目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址。
    2. ARP是解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射关系。如果所找的主机和原主机不在同一个局域网上,那么就要通过ARP找一个位于本局域网上的某个路由器的MAC地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
    3. 从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知情的。
    4. 只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的MAC地址。

    2. 使用ARP的四种典型情况

    1. 发送方是主机,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
    2. 发送方是主机,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
    3. 发送方是路由器,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
    4. 发送方是路由器,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;

    3. 逆地址解析协议RARP

    只知道自己MAC地址就能获得其IP地址。

    七、IP数据报

    1. IP数据报的组成

    每一行32bit相当于1个字节,一共5行,共20字节。

    生存时间 TTL

    过一个路由器就减1

    2. IP数据报结构

    1. 版本:用来表示TCP/IP是哪个版本,ipv4还是ipv6.

    2. 区分服务:确定更高的传输优先级。

    3. 总长度:确定数据部分长度。一共是16位,最多有2^16-1=65535字节。

      ​ ->注意,网络层,数据包最大65535字节;而数据链路层数据最大是1500字节,是不一样的。所以说,一旦超过数据链路层的最大要求时(网络层数据部分超过1480字节),数据包会分片。最大传输单元MTU。

      ​ ->数据包分片:把数据分割,分别添加IP地址,通过网络发给目标MAC地址。目标在通过网络层拼接。传送过程中可能会丢包,或者后发的先到(泪滴攻击就是利用目标机发送破坏的IP包(重叠的包货过大的包负荷)可以通过TCP/IP协议来瘫痪各种不同的操作系统)。所以需要编号。

    4. 标识:如果出现数据包分片,那么标识用来确定哪些数据包是需要组合的。

    5. 标志:确定该数据包是完整的还是分片中的一部分。占3位,只有前两位有用,标志字段最低位是MF(More Fragment),MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间一位是DF(Don’t Fragment),只有DF=0才允许分片。

    6. 片偏移:偏移等于当前字节在数据部分的第几个再除以8

    7. 生存时间:就是TTL,time to live,每过一个路由器就减1。8位二进制。防止数据包在网络中循环。

    8. 协议:用协议号标识数据部分是什么数据。

      • ICMP协议号:1;
      • IGMP协议号:2;
      • TCP协议号:6;
      • UDP协议号:17;域名解析
      • IPv6协议号:41;
      • OSPF协议号:89;
    9. 首部检验和:16位,只检验数据报的首部,不检验数据部分。这里不是采用CRC检验码而是采用简单的计算方法。每经过一个路由器就会检验一次。

    10. 源地址和目的地址都是IP地址,32位,只符合IPv4。IPv6是128位。

    11. 可变部分:一般没用。

    八、静态路由

    需要管理员告诉路由器所有没有直连的网络下一跳给谁。

    适合于小规模网络,不能自动调整路由。

    数据路由 路由器在不同网段转发数据包

    网络畅通的条件 :能去能回

    沿途的路由器必须知道到目标网络下一跳给那个接口

    沿途的路由器必须知道到源网络下一跳给那个接口

    计算机上网关就是默认路由

    九、ICMP和IGMP

    1. ICMP



    2. ICMP的应用举例:PING (Packet InterNet Groper)

    1. PING 用来测试两个主机之间的连通性。
    2. PING 使用了 ICMP 回送请求与回送回答报文。
    3. PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。

    3. IGMP组播=多播

    点到点通信: 广播:目标MAC地址全是F,目标IP地址全是255,也就是全是1.

    全网广播不能跨越路由器。

    组播=多播:分组广播

    使用多播一般用于直播,网络会议,能够节省带宽。

    IGMP协议的作用就是周期性扫描本网段内有没有主机在访问多播数据包。

    十、动态路由协议

    1. RIP协议

    1. RIP 是一种分布式的基于距离向量的路由选择协议。

    距离

    1. 从一路由器到直接连接的网络的距离定义为 1。
    2. 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
    3. RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
    4. 这里的“距离”实际上指的是“最短距离”,

    RIP 协议的三个要点

    1. 仅和相邻路由器交换信息。
    2. 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
    3. 按固定的时间间隔交换路由信息,例如,每隔 30 秒。

    最早 周期性广播 30秒 跳数 :16

    router rip

    network

    2. OSPF

    度量值 带宽 支持多区域 触发式更新

    三个表:邻接表 hello 、链路状态表、计算路由表、

    3. BGP

    连接各个自治系统的路由器




    十一、VPN功能


    网络地址转换

    netstat -n:查看建立的会话

  • 相关阅读:
    Scala并发编程react、loop代码实战具体解释
    Linux内核通知链模块
    STL栈的应用之表达式求值
    ansi 控制码表及颜色代码
    关于substring的char[]共享
    jQuery几个经典表单应用整理回想
    ShareSDK for Android 2.3.10已经公布
    cocos2dx坐标系
    一种Android数据请求框架
    css 小问题解决方法整理
  • 原文地址:https://www.cnblogs.com/zhj868/p/12450905.html
Copyright © 2011-2022 走看看