计算机网络之 网络层

网络层是整个网络最为核心的层之一(另外一个肯定是传输层了)。
说到网络层那首先得说说IP了,IP是什么呢,IP的愿意就是你在因特网上的身份证号,唯一识别你这个个体。因此在因特网上严格意义上讲没有两个IP一样的主机存在。IP地址总共有32位,也就是4个字节。而IP地址所代表的具体意义也改变了三次。
1.分类的IP地址,也就是人们所说的A,B,C,D,E类地址。
这类地址分类方法中 IP地址的前一部分表示网络号,后一部分表示主机号。A类地址有8位表示网络号,24位表示主机号,其中8位网络号中的第一位是0.
B类地址有16位表示网络号,16位表示主机号,其中16位主机号中前两位是10.
C类地址有24位表示网络号,8位表示主机号,其中24位主机号中前三维是110.
D类地址则不分网络号和主机号,只有前四位是1110,后面的28位是表示多播地址。
而E类地址最为少见,其中前四位是1111,后面的28位保留起来,在当初定义的时候没有说出来。
最常用的就是A,B,C类地址了,其实对我们来说最常用的肯定是c类地址了,因为192.168网段就在c类。
从现在看来这样的划分是很不合理的,因为像A类地址它的主机主机数目太多,C类地址它的网络数目太多,很不适合日常的应用。
那么接下来,人们想出来了一个办法,那就是IP发展的第二个阶段 子网划分。
划分子网的的思路是:一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网,划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成的。方法就是 从网络的主机号中借用若干位作为子网号,因此IP地址从原来的两层含义变为了三层含义。那么这个子网号是怎么具体体现出来的呢,有一个东西叫做子网掩码,就是它了,它让子网号体现了出来。子网掩码它不是独立存在的,独立存在没有意义,它和IP地址在一起才有意义。只要将IP地址与其相对应的子网掩码做与操作,得出来的就是这个IP地址的网络号。例如 192.168.0.80 与255.255.255.0相与得出来是192.168.0.0 这个就是网络地址了。
子网划分其背景还是在A B C 类划分的基础上提出来的,也就是说你给出了一个地址 路由器先判断它是哪个类别的,然后判断才算出来子网号。
接下来的IP地址划分 出现了一个 名字叫做CIDR,这种IP地址的解释方法,又将IP地址重新带回了两层结构,但是没有了A,B,C类的划分。其中IP地址的第一部分表示网络前缀,就可以通俗的理解为网络号。IP地址的第二部分是主机号。这样一来IP地址利用就更合理了。CIDR把网络前缀相同的连续IP地址组成一个CIDR地址块。同样你也可以在一个CIDR块里面,再进行子网的划分,让IP地址的利用率更高。CIDR会把路由表的项目减少不少,因为你可以这样想 前n位的地址在路由器内就只出现一次,而如果是 A B C类地址的话,没个都有可能写。这样路由器在转发的时候 就在路由表中找出 前缀匹配最长的 一项作为匹配项,因为前缀越长 表示的网络越具体。
2.IP地址只能说明主机在网络上的地址,但是不能真实反映主机的身份,这个时候MAC地址出现了,MAC地址是谁啥呢,也就是网卡的地址这个东西是烧在网卡的ROM中的,这个东西是全球唯一识别的。那MAC地址做什么用呢,这个MAC地址实际在不存在路由器中,所以它在英特网上是没有直接的用处的。MAC地址主要用在局域网中,因为 数据要在局域网中传播就得使用链路层的帧来传输,帧中就有6个字节来表示MAC地址,也就是说 在局域网中IP地址是不能直接使用的。
那IP地址与MAC地址之间有关系吗,那肯定有关系了,没关系 怎么交付数据呢。
通过IP地址找出相应的MAC地址用的协议叫做ARP协议。而要通过MAC地址找出IP地址是RARP协议。
3.IP的结构
首先IP的报头最少有20个字节。

让我一一来给你说。

  • 1. 首先4位是表示 IP的版本号。
  • 2. 接下来4位是首部长度表示IP的包头有多长,因为IP的包头中有一个选项字段 可有可无所以需要这么一个字段来说明IP的头到底有多长。这个字段占 4位 所以最大表示的数字也就是15,但是它表示的是 报头占多少个  4个字节 是不是很绕口,其实也就是说 它表示的最大的 包头长度是 15*4字节。IP的包头固定是20字节,这样看来 可以随意变动的选项字段 也最大是40字节呀 看来也不是很随意么。
  • 3. 接下来8位是 区分服务(服务类型),这个字段在设计的时候 是区分 服务的 来使得路由器 对IP分用于不同的服务,但是一般情况下不用
  • 4. 接下来的16位是总长度,也就是 整个IP数据报的总长度,这个是包括数据部分在内的。总共16位  也就最大表示65535字节。
  • 5. 再接下来16位是标识字段,这个东西是什么意思呢,因为在数据链路层传输的时候 有最大帧长这一说 所以ip数据包可能会被切分,这个标识字段就是来唯一标识一个IP数据包的 即使被分片 也能将分了片的这些数据进行 区分。
  • 6. 在接下来 的 3位是标志位。但实际现在用的是两位 DF和MF。MF=1表示后面还有分片,MF=0表示这个是最后一片 DF=1表示不能对IP进行分片,DF=0的时候才能对IP进行分片。
  • 7. 然后是这13位表示的是片内位移 这13位表示的是 这个数据包最开始的数据在原来的分组中的位置
  • 8. 下来是8位:生存时间 就是平常所说的TTL 过一个路由器 就减1 如果是0 路由器就把他丢掉了
  • 9. 下来是8位:协议  表示IP的数据部分内的数据是什么协议,有些人第一印象认为 无非就是 tcp和udp了吧,其实不然这里面还包裹icmp,igmp以及arp等等
  • 10. 下来的16位是首部检验和,这个字段表示的是首部的校验和 而不是整个IP数据包的校验和
  • 11. 32位的 目的地址
  • 12. 32位的源地址
  • 13. 可选字段 1-40字节,也可以直接不要。
  • 14. 数据
2. ICMP这个协议最为被大家熟悉的莫过于ping了。ICMP全名叫做网际控制报文协议。
    ICMP的报文可以分为两种,一种是差错报告报文 另外一种是ICMP询问报文

对于差错报告报文  看名字就知道这个就是数据在传输的过程中,如果出现了差错 那么路由器或者主机会自动向源端发送一个ICMP的报文,这个报文的内容是这样的 假设一条IP数据报A出现了错误,现在路由器要向源端发送ICMP差错报告报文,那么首先路由器去除A的报头,然后取出 A的数据字段的前8个字段,因为数据部分的这8个字节可以取到运输层的 目的端口号,源端口号,以及运输层的报文序号
然后再加上IP的头最后发给源端。

对于ICMP询问报文,那么只有两种一种就是 回送请求或回答,另外一种就是时间戳请求或回答 看名字就知道这种类型的ICMP报文是 源段发送一个ICMP报文给目的端 如果目的端受到了ICMP报文那么它可就给源段一个回复,回复内容是就是ICMP中的字段,可以根据字段得出目的端发送过来的消息。

3. 说到网络层肯定得说网络层的路由了,要不然 还说啥呢。现在全世界的路由策略都是 分级路由策略。总的来说因特网把整个互联网划分成许多较小的自治系统 AS,在一个AS里面 他们的路由器 都是在单一的技术管理之下。并且在AS内部只运行着一种路由策略。说是路由其实就是 说明一些生成 路由器中路由表的算法而已。在AS 中有两种路由算法 一种是RIP 另外一种是 OSPF。AS内的路由也叫做域间路由。
RIP它的全名叫做距离向量路由选择协议,他的做法是把自己和全网的信息和自己的邻居交换形成路由表,也就是所说的 把全网的告诉邻居。因此每个路由器中的路由表是不同的。RIP有一个最大的问题就是 当网络出现故障的时候,要经过较长的时间才能将词信息传递到所有的路由器。所以RIP就有一个特点:好消息传播得快,坏消息传播的慢。其次为了避免循环路由RIP还限定IP中的TTL最大为15,因此这样看来使用RIP的AS其规模是不大的。RIP语用的算法是佛洛依德算法。

OSPF的全名叫做开放最短路径优先,OSPF的运行策略是把自己邻居的信息告诉给全网,也就是说把邻居告诉全网,这样当其它路由器受到网络中的信息时 可以对信息进行融合,这样就有了全网的带圈拓扑图,这样就可以用用迪杰斯特拉算法算出单源最短路径。

说完了AS内的路由在说话AS之外的路由,也就是AS之间的路由,AS之间的路由叫做EGP,其中最典型的路由算法就是BGP路由算法,BGP采用路径向量路由选择协议。也就是说BGP他记录的是路由的整个一条路,而不是说下一条是谁。


IGMP 就属于传说中的组播了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值