计算机网络基础2

上一篇文章,咱们顺着计算机网络的发展,一直谈到了为什么计算机网络应该有路由和IP地址,接下来咱们接着上一篇继续往下讲segmentfault

路由&&IP

上一篇,咱们谈到了交换机没有办法解决广播风暴的问题,因此咱们在MAC地址的基础上增长了一个逻辑地址,即IP地址.引入了IP地址以后,全部的通讯都要靠IP地址而且,多个广播域之间使用路由器链接,这个网络变成下面的样子.网络

图片描述

这样子.一个大的广播域被路由器分割成多个小的广播域.如今两台主机之间的通讯根据通讯双方是否在同一个网段中分红了两种状况.spa

主机在同一个网段中

通讯主机在同一个网段中,也就意味着通讯不通过路由器就能够完成,通讯形式跟在交换机中通讯差很少,可是因为接收方只知道接收方IP地址.没有MAC地址,发送发没有办法把数据发送给接收方.因此整个通讯过程增长了一个步骤.计算机网络

  • 主机A经过接收方B的IP地址发现接收方跟本身在同一个网段内,可是它只知道接收方的IP地址,不知道MAC地址,因此没有办法发送数据.code

  • 因而主机A发起了一个广播询问IP地址为XX的主机的MAC地址是多少htm

  • 其余主机收到这个广播以后,跟本身的IP地址比对,发现本身的IP地址正是XX,因而就把本身的MAC地址发送给A.blog

  • A知道了接收方的MAC地址以后,就能够根据MAC地址向对方主机发送数据.接口

上面的通讯过程,A知道接收方的地址,可是不知道对方的MAC地址,因而发起了一个广播来询问.这种经过目标的IP地址来得到对方的MAC地址的过程称为地址解析协议(ARP).图片

主机在不一样网段中

通讯主机在不一样的网段中,这就意味着两台主机通讯得通过路由器. 如此,通讯过程就变成了下面这样:ip

  • 主机A经过接收方X的ip地址发现,接收方跟本身不在同一个网段中.因而直接把数据报文发送给路由器的端口R1

  • 可是,A只知道路由器接口R1的ip地址,不知道MAC地址(这个时候A跟R1的通讯仍是在同一个网段中).因此主机A经过ARP协议获取到了R1的MAC地址,而后把数据报文发送给路由器的接口R1

  • 路由器收到数据报文以后,获得接收方的IP地址.判断出接收方IP地址所在的网段,分析出能够经过R2接口能够到达这个网段,因而经过接口R2发送数据

  • 接口R2知道接收方X的IP地址,可是同网段内通讯要靠MAC地址,因此R2经过ARP协议获取到了X的MAC地址, 而后把数据发送给X.

根据上面的过程,咱们明白IP地址在整个通讯中作了两件事:

  1. 用来判断通讯双方是否在同一个网段中

  2. 根据IP地址肯定对方的MAC地址,而后才能发送数据.

如今回顾一下上面的通讯过程,仍然存在着三个疑点:

  1. 路由器中R1跟R2的MAC地址同样么?

  2. 路由器怎么知道怎么经过接收方的地址判断出接收方在哪一个网段上

  3. 为何主机A判断主机B跟本身不在同一个网段上,就会把数据发送给路由.

  4. 主机A为何经过IP地址就能够肯定接收方跟本身是否在同一个网段上

一个一个来回答这些问题:

路由器中R1跟R2的MAC地址同样么?

这个问题的本质是问路由器是否有多个MAC地址.咱们这里以家用路由器为例,通常路由器会有两个MAC地址.家里用的无线路由器通常会分有LAN(局域网)和WAN(广域网)两种接口.这两种接口分别各自对应一个MAC地址.

并且,你会发现你家无线路由器会有多个LAN接口,可是WAN接口就一个,其中

  • WAN接口接的网线是从运行商那里接过来的网线,这个网线通向了整个互联网世界~

  • 多个LAN接口是用于链接你家多台电脑设备的.

因此,你发现,若是WAN口没有接网线,你家多台电脑也能够经过链接LAN互相通讯.

路由器怎么知道怎么经过接收方的地址判断出接收方在哪一个网段上

跟交换机/网桥相似,路由器内部也维护了一张表,称为路由表,归纳的讲,这张表就记录了,这张表记录了哪一个网段应该通向哪一个接口.因此当路由器获得接收方的地址以后,经过接收方的ip地址比对路由表,就能够肯定这些数据包应该发往哪里.

为何主机A判断主机B跟本身不在同一个网段上,就会把数据发送给路由.

这里要引出一个网关的概念,注意,网关并非一种网络设备,而是一个概念.可是因为历史缘由, 不少时候会把网关称为路由器.除了网关,还有一个默认网关的东西,咱们这个问题的答案就是默认网关,当A发现B跟主机不在同一个网络上,因此他没有办法把数据直接发送给B,因而查找一下本身系统里面配置了一个默认网关地址,而后就直接把数据发送给了这个地址.

经过上面的描述能够知道:主机A配置的默认网关地址就是路由器的地址,当发现接收方不在同一个网络里,主机A不知道要把数据发送到哪里,就把数据发送给了路由器.由于主机A里面配置的默认网关地址就是路由器的IP地址.

数据发送给路由器以后,路由器经过路由表查找接收方IP所在的网段,若是正好路由表里面也没有记录这个IP所在 网段的信息,路由器也会查找本身的默认官网,而后把数据发送给这个网关.

上面的描述,咱们能够得出一个结论,一台主机的默认网关确定和这台主机在同一个网段中,由于主机必需要可以发送数据给默认网关.

最后一个问题

主机A为何经过IP地址就能够肯定接收方跟本身是否在同一个网段上

这个问题,须要展开IP地址的讲解,关于IP地址的内容比较多,独立出一个话题来说.

IP地址

你确定很熟悉IP地址,可是不必定系统的了解过.你会常常看到相似192.168.1.1的字样就是IP地址.可是其实这只是简写,每一个被.分割的每一个部分实际上是一个字节(8bit)的二进制数.为了人类能够比较容易的读懂IP地址,因此通常写的时候都是使用人类友好的十进制.192.168.1.1的真正面目应该是 : 11000000.10101000.00000001.00000001因此你明白了IP地址中不可能出现大于255的数值,由于8bit能表示的最大的值就是255.

一个IPv4地址被分为网络地址和本地地址:

  • 网络地址用来表示不一样网络的

  • 本地地址用来表示同一个网络中的主机.

那么如何划分一个IP的网络部分和主机部分呢,这就要引入一个新的东西:子网掩码,你能够常常看到的:255.255.255.0就是一个子网掩码.

把一个IP地址与子网掩码按照二进制的数值进行与运算就能够得出网络地址.

好比:IP地址为:192.168.1.1的主机A,子网掩码为:255.255.255.0,那么11000000.10101000.00000001.00000001 & 11111111 11111111 11111111 00000000 = 192.168.1.0,即网络地址为192.168.1.0,那么只要有另外一个主机B的IP地址为192.168.1.X(0<X<255)那么这AB这两台主机就在同一个网络,互相通讯不用通过路由器.有时候,你也会看到这样子的写法192.168.1.1/24像这种写法就是192.168.1.1/255.255.255.0的简写,后面使用24表示的就是前面24位为网络位,即子网掩码为255.255.255.0

可是啊,IP地址不止这么简单,虽然IPv4地址一共有:2^32个,可是也不是全部地址均可以随随便便用的,你想一想你一台主机搞个1.1.1.1的地址,别人也搞个1.1.1.1的地址,那就有问题了,因此有一个机构ICANN专门来管理IP地址的分配使用.这个机构把IP地址进行了分类,也就是你可能听过的A类,B类,C类地址,这里对这种划分作一个详细的分析.

A类地址:

  • 网络位为8位,即A类地址的子网掩码为255.0.0.0

  • 如今单独对网络位的8位再进行划分,首位为0,后续的7位能够从0 000 0001 ~ 0 111 1111变化,即A类地址位于1~127

  • 可是以127开头的地址划分为内部回环地址,不能使用,因此A类地址一共有 2^7-1 = 126个.

  • 每一个网络能够容乃的主机位 2^24个,可是主机位全0的位网络地址,主机位为1的为广播地址.因此真正能够容乃的主机为2^24-2

通俗的解释一下上面的意思 :

  • 主机A的地址为:58.1.2.3/8,前面58位于1~127之间,因此这是一个A类地址.

  • 跟主机A位于同一个网络中的IP地址有 : 58.0.0.1 ~ 58.255.255.254,一共有 2^24-2个

  • 上面的范围不包括:58.0.0.0跟58.255.255.255两个地址,由于58.0.0.0是网络地址,58.255.255.255是广播地址.

  • A地址若是向58.255.255.255发送数据,那么IP地址介于 : 58.0.0.1 ~ 58.255.255.254的主机均可以收到这个数据

B类地址

B类地址的划分方式跟A类地址同样,只是在数据上有差别 :

  • 网络位为16位,即默认子网掩码为255.255.0.0

  • 对网络位的前8位再进行划分,规定前面的2位必须为10,即10 00 0000 ~ 10 11 1111,即B类地址位于128~191之间

  • 每一个网络能够容乃的主机数位 2^16-2个

C类地址

  • 网络位为24位,即默认子网掩码为255.255.255.0

  • 对网络位的前8位再进行划分,规定前面的2位必须为10,即110 0 0000 ~ 100 1 1111,即B类地址位于192~223之间

  • 每一个网络能够容乃的主机数位 2^8-2个

来一道计算机网络考试中必考的题目 : 主机IP为192.168.1.1/24,请问该网络的网络地址是多少,能够容纳多少主机?若是你清楚了上面的过程,能够很容易的得出网络地址为192.168.1.0,能够容纳的主机数位:2^8-2.

子网划分

咱们发现A类网,一个网络中就有2^24-2个网络,这些网络地址处于同一个广播域中,显然这是不合理的,并且,不多有机构可以有那么多主机来充分使用这些IP地址,因此.一般状况下,咱们须要对这个大的网络进行子网划分.

所谓子网划分就是把一个大的网络划分红多个小的网络,每一个网络之间使用路由器来分割.咱们使用一个例子来讲明.

有一个C类地址:200.1.2.0/24.当前状况下,这个网络有 2^8-2 = 62个IP地址.如今但愿把这个网络划分红两个网络.

划分子网的主要作法是:从200.1.2.0中的主机位拿出来若干位当作网络位.具体拿几位根据主机数而定.这里假设拿出2位充当网络位

图片描述

那么就有00,01,10,11四种可能,可是尽可能不去使用00,11的地址,因此如今咱们还能够划分红2个子网.

  • 第1个子网IP地址的最后8位:0100 0001 ~ 1011 1110

  • 第2个子网IP地址的最后8位 :1000 0001 ~ 0111 1110

这样子:

  • 第一个子网的IP地址为:200.1.2.65/26 ~ 200.1.2.126/26

  • 第二个子网的IP地址为:200.1.2.129/26 ~ 200.1.0.190/26.

私有IP

考虑一下对于一个公司而言,不少时候须要本身内部进行通讯,可是又不想链接到互联网,由于可能形成机密泄露.因此ICANN在分配地址的时候就划分出了一些私有地址,其中规定:

  • A类地址中 10.0.0.0/8~10.255.255.255/8的地址为私有地址

  • B类地址中 172.16.0.0/16 ~ 172.31.0.0/16为私有地址

  • C类地址中 192.168.0.0/24 ~ 192.168.255.0/24位私有地址

什么是私有地址?就是任何人均可以本身组建一个局域网使用这些IP地址,可是不可以 把这些IP拿到公网(即互联网)中使用.并且,路由器碰到这些IP也不会转发.因此你会很常常看到192.168.X.X的IP地址,就是由于当前你是处于某一个局域网中.可是你可能就疑惑了虽然你的电脑的IP地址为192.168.X.X,可是你仍然能够上网.这是由于有一个协议:地址转换协议(NAT).

这个协议大概的做用就是,把私有地址映射到共有网络,典型例子为多台私有地址主机链接到一台具备公有IP的路由器(这个路由器应当具备NAT功能), 全部须要跟外网通讯的主机都经过这台路由器,这台路由器会把私有地址转换成公有地址,这样子局域网的主机就能够访问互联网.

可是,这个协议很尴尬 ,由于他的出现破坏了如今互联网环境, 可是因为如今IPv4地址短缺,这个方法又能够有效的缓解Ipv4地址短缺的现状.因此预计在IPv6时代,这个协议就会被时代淘汰掉.

尾巴

到这里,按理咱们应该开始讲七层模型,可是后续的章节不会继续写了,由于计算机网络是一门很深的学科,不是在网上找几篇文章就能领悟的,计算机网络做为计算机必修的学科,理应值得花一些时间买上一本好书认真看看.

然而,我为何写这两篇博客,由于我发现书中的内容不少事时候没有跟生活联系起来,或多或少咱们在用电脑的时候都了解过一点路由器,IP地址,网关之类的,可是我在生活中碰到的问题,老是没有办法经过书中的知识来解决,总有一种知识跟真实状况链接不上的无奈感.这两篇就是但愿你看完这些以后,懂得了你家网络出现问题究竟是哪里出现问题?你家电脑网络配置的每一项是用来干吗的?当你了解了上面的那些以后,你再去翻阅计算机网络的书籍,就会感受熟悉不少.

相关文章
相关标签/搜索