第六章 网络层
来源:互联网 发布:json转form 编辑:程序博客网 时间:2024/04/28 06:39
6.1 IPv4协议的基本内容
6.1.1 IP协议的主要特点
1. IP协议是一种无连接、不可靠的分组传送服务的协议,它提供的是一种尽力而为(best-effort)的服务;
2. IP协议是点-点的网络层通信协议;
3. IP协议屏蔽了互联的网络在数据链路层、物理层与实现技术上的差异,向高层传输的是IP分组(即IP数据报)。
6.1.2 IPv4分组格式
1. IPv4分组结构
版本(version)字段:4b。表示网络层IP的版本号。4表示IPv4,6表示IPv6。
协议(protocol)字段:1b。使用IP的高层协议类型。
分组头长度字段:4b。以4B为单位的分组头的长度。固定长度部分20B,可选部分40B,因此分组头长度字段取值范围是5~15。
总长度字段:16b。以1B为单位的分组总长度。数值等于分组头长度与数据长度之和。能表示的最大长度是2^16-1B。
服务类型(service type)字段:8b。指示路由器如何处理该分组。由4b服务类型参数TOS字段与3b优先级(precedence)字段构成,有1b保留位。TOS用4个参数指示路由器如何处理分组:延迟D、可靠性R、吞吐量T和成本C,取值为0或1。每个组合的4个参数中最多1位为1,其它3位为0。0表示normal,1分别表示low delay、high reliability、high throughput和low cost。
生存时间(time-to-live, TTL)字段:15b。由转发分组最多的路由器跳数度量。生存时间的初始值由源主机设置,经每个路由器转发后,TTL减1。当TTL为0时丢弃分组并发送ICMP报文通知源主机。
头部校验和(header checksum)字段:16b。为了保证分组头部数据的完整性。IP分组仅对分组头进行校验,因为其它部分属于高层数据,有相应的校验字段,并且经过路由器时分组头改变而数据部分不变,这样提高了路由器运行效率。校验和计算方法:二进制反码求和(校验和清0,分组16位字求和,最高位进位加到最低位,结果取反得校验和)。
地址(address)字段:源IP地址和目的IP地址均为32b。分组传输过程中始终不变,与路径和分片无关。
2. IP分组的分片与组装
最大传输单元(MTU):RFC791规定为65535=2^16-1。分组长度大于数据链路层MTU时需要分片转发。
分片的基本方法:首先确定片长度。将分组头加原始IP分组前MTU数据分为第1个片,如果剩余长度仍大于MTU,再在之前加上分组头分第2个片,直到剩余数据长度小于MTU。
标识(identification)字段:16b。可分配ID有65535个。为了防止分片到达目的主机时乱序,将同一分组设定同一标识方便找出。
标志(flags)字段:3b。最高位为0,必须复制到所有分组。第2位为不分片(Don’t Fragment, DF)位,必须复制。DF=1,接收主机不能对分组分片;DF=0,可以分片。如果长度超过MTU且不能分片,丢弃该分组并发送ICMP报文通知源主机。第3位为更多分片(More Fragment, MF)位,MF=1,接收的不是最后一个分片;MF=0表示接收的是最后一个分片。
片偏移(Fragment Offset)字段:13b。表示分片在整个分组中的相对位置。以8B为单位计数。
IP分组头选项字段:40B。主要用于控制与测试。由选项码、长度与选项数据3部分构成。其中,选项码确定源路由、记录路由、时间戳等具体功能。长度表示选项数据大小。源路由分为严格源路由SRR与松散源路由LRR。时间戳单位为ms。
6.2 IPv4地址
6.2.1 IP地址的基本概念
IPv4地址方案制定于约1981年。到2011.3最后5块IPv4地址分配完后已没有新地址可分配。
IPv4地址技术发展分为4个阶段:
第一阶段:标准分类的IP地址。A类地址网络号长度为7位,B类地址网络号长度为14位。
第二阶段:划分子网的三级地址结构。网络号-子网号-主机号的三级结构,提高地址利用率。
第三阶段:构成超网的无类别域间路由CIDR技术。分配剩余IP地址。
第四阶段:网络地址转换NAT技术。短期内解决网络地址短缺的问题,支持IP地址重用。
6.2.2 标准分类IP地址
1. 网络地址的基本概念
IP地址也称为逻辑地址,是一台主机或路由器(专门处理网络层路由与转发功能的计算机)与网络的接口。网络管理员通过软件配置为每一台主机和路由器分配一个IP地址,建立MAC地址与IP地址的一一映射关系。如果一台计算机或路由器需要通过多个Ethernet网卡分别接入多个网络,称为多归属主机(或多穴主机),须为每个网络接口分配一个相应的IP地址,因此多归属主机可以有多个IP地址。同时,也可以为一个网络接口分配多个IP地址。
网桥、Ethernet交换机属于数据链路层设备,使用MAC地址,不分配IP地址。
2. 点分十进制表示方法
3. 标准IP地址的分类
(1) A类地址
网络地址第一位为0。共有2^7=128块可以分配。可以分配的主机号有2^24-2=16777214个。网络地址覆盖范围1.0.0.0~127.255.255.255。
第1块:0.0.0.0~0.255.255.255 net ID=0 (特殊用途)
第2块:1.0.0.0~1.255.255.255 net ID=1
……
第9块:10.0.0.0~10.255.255.255 net ID=9 (专用地址)
……
第128块:127.0.0.0~127.255.255.255 net ID=127 (特殊用途)
保留的专用地址:10.×.×.×,1块。
(2) B类地址
网络地址前两位为10。共有2^14=16384块可以分配。可以分配的主机号有2^16-2=65534个。网络地址覆盖范围128.0.0.0~191.255.255.255。
保留的专用地址:172.16.×.×~172.31.×.×,共16块。
(3) C类地址
网络地址前三位为110。共有2^21=2097152块可以分配。可以分配的主机号有2^8-2=254个。网络地址覆盖范围192.0.0.0~223.255.255.255。
保留的专用地址:192.168.0.×~192.168.255.×,共256块。
(4) D类地址
网络地址前四位为1110。用于特殊用途,如多播地址。网络地址覆盖范围224.0.0.0~239.255.255.255。
(5) E类地址
暂时保留。网络地址覆盖范围240.0.0.0~247.255.255.255。
4. 特殊地址形式
直接广播地址:主机号全1。
受限广播地址:255.255.255.255。
(此网络上)特定主机地址:网络号全0。
回送地址:127.0.0.0。用于网络软件测试和本地进程间通信(Ping应用程序)。
6.2.3 划分子网的三级地址结构
三级层次IP地址格式:net ID-subnet ID-host ID。同一个子网中所有主机使用相同的网络号和子网号,子网之间的距离必须很近。
子网划分与地址空间划分的基本方法:可变长度子网掩码VLSM技术。
6.2.4 网络地址转换NAT
目的:短期内缓解地址短缺;提高网络安全性。
工作原理:维持一个IP地址池,管理全局IP地址。当需要访问Internet或外部服务器时,以动态方式为专用地址临时分配一个全局IP地址,访问结束后收回。地址转换时需要同时转换传输层端口号以避免使用同一个全局IP地址复用多个TCP连接时难以识别并起到隐藏作用。
评价:使IP成为面向连接,违反了设计初衷;违反了不同层次之间的独立性原则;使P2P实现困难;一些将IP地址插入正文的应用难以工作。总之,NAT只是暂时推迟了IPv6的使用,并未根本解决地址短缺的问题。
6.3 路由选择算法与分组交付
6.3.1 分组交付的基本概念
分组交付(forwarding):在Internet中主机、路由器转发IP分组的过程。这台路由器就是局域网主机的默认路由器,也称第一跳路由器、默认网关。
分组交付分两类:直接交付和间接交付。当分组的源主机与目的主机在同一网络时,直接交付;否则间接交付。
评价路由选择的依据:算法必须是正确、稳定和公平的;算法应该尽量简单;算法必须能够适应网络拓扑和通信量变化;算法相对上应该是最佳的。
路由选择的主要参数:跳数、带宽、延时、负载、可靠性、开销。
在Internet中,路由器是采用表驱动的路由选择算法产生路由表,传送IP分组时必须查询路由表以决定转发路径。路由表有静态和动态两种,静态路由表实现简单、开销小,动态路由表实现复杂,但能较好适应网络状态的变化。接入Internet时转发到默认路由器0.0.0.0/0。
6.3.2 IP路由汇聚
最长前缀匹配原则:路由器的路由表项数量越少,路由选择查询的时间越短,通过路由器转发分组的延迟时间越少。通过与子网划分相反的过程路由汇聚是减少路由表项数量的重要手段。
6.3.3 路由表的建立、更新与路由选择协议
解决Internet路由选择的基本思路:化整为零、分而治之。
路由选择算法:为寻找下一跳路由器生成路由表。
路由选择协议:实现路由表中路由信息的动态更新。
目前流行的内部网关协议:路由信息协议RIP、开放最短路径优先协议OSPF;外部网关协议:边界网关协议BGP。
6.3.4 路由信息协议RIP
基于向量-距离(V-D)的路由选择算法。算法来源于ARPANET,1969。
1. V-D算法的基本思想
即Bellman-Ford算法。要求路由器周期性通知相邻路由器自己可以到达的网络以及距离(跳数)。
2. V-D算法的工作原理
路由刷新报文包含(V, D)表。路由器启动时对(V, D)路由表初始化,初始表中各路由的距离均为0。
路由信息更新方法:假设R1与R2是自治系统中相邻的路由器。R1收到R2的(V, D)报文后,按如下规则更新路由表:
(1) 若R1路由表无此项记录,增加该项,且距离值D加1;
(2) 若R1表中此项记录比R2发送的距离值减1还要大,修改该项为R2提供的距离值加1。
3. RIP定时器
周期更新定时器:30s。
延迟定时器:防止更新引起广播风暴,每次产生一个1~5s之间的随机延时。
超时定时器:180s之内未更新,将该项记录置为无效(不是删除)。
清除定时器:置为无效超过120s未更新,删除该项记录。
RIP规定路径最大距离为16。允许的最大跳数为15,16表示目的网络不可达。
RIP配置与部署简单,但不适用于大型或路由变化频繁的网络环境。
6.3.5 最短路径优先协议OSPF
基于Dijkstra最短路径优先(SPF)算法。使用链路-状态协议。
OSPF要求路由器在链路状态发生变化时使用洪泛法,向所有路由器发送该信息。
- 第六章 网络层
- 第六章 应用层(网络)--基于Linux3.10
- 第六章 传输层
- 第六章 传输层
- 第六章 层的滤镜
- 第六章 层的滤镜
- 第六章 层的滤镜
- 计算机网络协议第五章应用层协议,第六章网络协议栈
- 第五章 网络层
- 第四章 网络层
- 第四章 网络层
- 第六章 解析网络数据
- 第六章-网络可靠性设计
- 第四章:网络层简介
- [网络] 第五章 运输层
- 第三章 网络访问层
- 第三章 网络访问层
- 第5章 网络层
- 6174问题
- 排序算法
- centos6.5下postgres-XC安装与配置(两台)
- ios面试总结
- OC中的NSMutableString案例讲解
- 第六章 网络层
- 一元二次方程求解递归调用调换数组元素
- Git常用命令
- WPF添加右键菜单
- Linux网络编程 - 非阻塞connect
- Android官方命令深入分析之绘制9-patch
- void ,NULL与0的区别联系
- python 求100以内素数
- uva是崩了 吗,还是我太年轻?