博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机网络(二)网络层
阅读量:6258 次
发布时间:2019-06-22

本文共 2530 字,大约阅读时间需要 8 分钟。

网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,网络层不提供服务质量的承诺

网际协议IP

IP协议与四个协议配套使用

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

图片描述

IP地址

  1. 分类的IP地址
  2. 子网的划分
  3. 构成超网

图片描述

现在广泛使用无分类IP地址

A类地址能分配的网络号得减去全0(本网络00000000)和127(本地软件环回测试01111111)。主机发送一个环回地址的IP数据报,本主机的协议软件处理数据,不会发送到网络。主机数也得减去全0(本主机)和全1,全0代表本主机连接到的单个网络地址,全1表示所有网络上的所有主机

B类地址能分配的网络号得减去全0(10000000),主机数减去全0和全1
C类地址能分配的网络号得减去全0(11000000),主机数减去全0和全1

图片描述

图片描述

地址解析协议ARP和逆地址解析协议RARP

知道IP地址,找到相应的物理地址----ARP地址解析协议

知道MAC地址,找到对应的IP地址----RARP逆地址解析协议,由于现在DHCP协议已经包含了RARP协议,单独用RARP协议很少了,所以不介绍
ARP地址解析协议在主机的ARP高速缓存动态维护一个IP地址到硬件地址的映射表。注意这个映射表也只包含本局域网内的主机和路由器ip地址到硬件地址的映射表。发送ip数据报的时候,先查表,如果表中没有,就在本局域网内广播发起一个ARP请求分组,请求中写好本主机或者路由器IP到物理地址的映射和想要获取目的地物理地址的IP。收到这个请求的主机或路由器,如果IP和请求中描述一致,就将对方的映射信息记录下来,并且把自己的映射信息发送回去。这样的信息每一条都设置了生存时间,过期后就删除

IP数据报

图片描述

版本号:现在是4(ipv4),以后可能会用6(ipv6)

首部长度:乘以4等于整个首部的字节数
区分服务:基本没怎么用
总长度:首部和数据之和的长度,虽然允许填写的最大长度为65535,但是数据链路层一般都有最大传输单元MTU(Maximum Transfer Unit)的限制,所以实际并不会填那么大。IP数据报长度不能小于576,不得大于1500
标识:分片的时候,相同标识字段的值可以重装成原来的数据报
标志:一共三位,最低为为1,表示还有分片,中间为为1时,表示不能分片,只有当中间位是0时,才允许分片
片偏移:该字段乘以8,等于该片在原数据的起点。也就是说每个分片长度都是8的整数倍
生存时间:数据报的源点设置数据报在网络的寿命
协议:上层使用的协议类型
首部校验和:首部16位一组,反码运算求和,得到校验和。接受到IP数据报后再反码运算求和,如果为0,则保留,否则丢弃。具体方法参考
源地址:32位
目的地址:32位

IP层转发分组的流程

图片描述

注意:IP数据报的首部没有用来标明下一跳路由器的IP地址,IP数据报中始终标明的是源IP和目的IP,那么怎么找到下一跳路由器呢?路由器查找路由表,找到下一跳路由器的IP地址后,使用ARP协议将IP地址转换成硬件地址,将硬件地址放在MAC帧的首部,根据硬件地址找到下一跳路由器。

分组转发算法如下:

1.根据数据报目的主机IP地址D,取出网络地址N
2.如果N是与路由器直接相连的网络,直接交付给目的主机
3.如果路由表中有目的地址为D的特定主机路由,传递给这个路由器
4.如果有到达网络N的路由,给下一跳路由
5.若有默认路由,给默认路由
6.报告转发分组出错

划分子网和超网

早期的分类IP地址设计不合理,原因如下

  1. IP地址利用率低,A类地址,主机数超过1000万,B类网络地址主机数超6万,然而很多网络并没有那么多主机
  2. 每个物理网络一个网络号,路由表需要维护的项目太多,网络性能会变坏
  3. 不灵活,不方便临时增加网络。

划分子网的基本思路:

  1. 拥有许多物理网络的单位,将所属的物理网络划分若干子网。本单位外的网络看不见子网,对外表现为一个网络
  2. 从网络的主机号借用若干位为子网号,IP地址=<网络号><子网号><主机号>
  3. 其它网络发给本单位的IP数据报,仍然是根据IP数据报网络号找到连接在本单位网络的路由器,但该路由器收到IP数据报之后,再按目的网络号和子网号找到子网,交付给目的主机

子网掩码

一个数据报并没有记录子网信息的地方。所以路由器要使用子网掩码,来计算网络号。现在路由器和相邻路由器交换路由信息时,需要把自己所在网络的子网掩码告诉相邻路由器。路由器的路由表中的每一个项目,除了要给出目的网络地址外,还要给出该网络子网掩码。

路由器分组转发算法在有子网掩码的情况下,步骤2和4更改为将地址D与路由表每一项与操作之后,再比较是否匹配

无分类编址CIDR(Classless Inter-Domain Routing)(划分超网)

CIDR最主要的特点

  1. IP地址=<网络前缀><主机号>206.0.64.0/18
  2. 把网络前缀都相同的连续IP地址组成一个CIDR地址块

在应用了无分类编址后,查找路由表可能不止得到一个匹配结果,我们选择具有最长网络前缀的路由,叫作最长前缀匹配

路由选择协议

  1. 静态路由选择策略
  2. 动态路由选择策略

又分为

  1. 内部网关协议IGP,常用的RIP、OSPF
  2. 外部网管协议EGP,常用的EGP

RIP协议

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

距离向量算法

  1. 对X发来的RIP报文,下一跳字段地址改为X,距离字段加1,每一项:目的网络N,距离是d,下一跳是X
  2. 原来没有的目的网络N,添加进去,否则看下一跳地址,如果是X,替换,否则判断距离d和当前地址的大小关系,如果小,就替换
  3. 如果3分钟还没收到,就不可达,距离设置为16(最大的跳数为15,超过15就表示不可达)

转载地址:http://xoxsa.baihongyu.com/

你可能感兴趣的文章
Ajax核心技术之XMLHttpRequest
查看>>
使用T4模板生成不同部署环境下的配置文件
查看>>
如何把Json格式字符写进text文件中
查看>>
Linux: xclip,pbcopy,xsel用法 terminal 复制粘帖 (mac , ubuntu)
查看>>
[SVN(Ubuntu)] SVN 查看历史详细信息
查看>>
技术出身能做好管理吗?——能!
查看>>
抽象工厂模式
查看>>
如何折叠一段代码使整个代码看起来简洁
查看>>
Quartz2D绘制路径
查看>>
Java知多少(30)多态和动态绑定
查看>>
JDBC操作数据库
查看>>
Android中RelativeLayout的字符水平(垂直居中)对齐
查看>>
--@angularJS--独立作用域scope绑定策略之&符策略
查看>>
乾坤合一~Linux设备驱动之USB主机和设备驱动
查看>>
Python IDLE快捷键【转载合集】
查看>>
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound
查看>>
[C++] string与int, float, double相互转换
查看>>
ubuntu14.04安装chrome
查看>>
oracle中查询含字母的数据[正则表达式]
查看>>
1002. 写这个号码 (20)(数学啊 ZJU_PAT)
查看>>