大话网络冲浪
我们假设现在还没有不同主机之间的数据包传送的策略,我们从头思考怎么怎么来完成这个事情。
思考步骤:
1.我们先来个简单的,假设我们有4台计算机,我们把他们互联在一起,我们暂时称为内网或是局域网。为了点对点我们需要为每一个计算机做一个唯一标示,于是我们弄了一个叫网卡的玩意,生产的时候给他个唯一标示,在一个局域网里面我们通过网络互联很容易就能得到所有机器的物理网卡,通过这个唯一标示我们就可以发送数据了,数据的发送采用最粗暴的方式广播给所有主机,数据里包含上自己的物理地址和目标物理地址,接收方回应的时候根据与自己网卡号的匹配方式作出单一响应。
2.我们这4台计算机之间的数据传输已经解决了,然后呢,我们想把别的局域网中的计算机也互联起来,再接入4台还好,可以接入8台,10,1000,10000呢?采用广播的形式是要死人的,因为你一台计算机要频繁接受无用的数据。而且这么多计算机每次传输数据的时候都要知道对方的物理号是要死人的。为了解决这个问题我们可以这样,所有的局域网都做保留,然后指定局域网中的一个机器作为这个局域网的大门(gateway网关),负责跟其他局域网的信息交互。然后不同局域网的大门再重新组成一个局域网。
3.为了快速判断这种层级关系我们发明了一个抽象概念ip,然后将其分类,我们暂时说3类。
A类 1-126.0-255.0-255.1-244
B类 128-191.0-255.0-255.1-254
C类 192-233.0-255.0-255.1-254
每一台计算机都有一个ip,那么同一个网段里的计算机或是说同一个局域网内的计算机ip有什么特点呢?我们将一个ip划分为两部分,一部分是网络地址,一部分是主机地址,位于同一网络地址的就在同一个局域网,那么这个网络地址和主机地址是怎么得来的呢?对于A,B,C类来说他们是不同的,为了快速得到网络地址和主机地址我们规定了一个“子网掩码”的概念,3类ip的子网掩码分别是:
A类 255.0.0.0
B类 255.255.0.0
C类 255.255.255.0
很明显了我们只需要用子网掩码跟ip相与运算,得到的结果如果一致说明两个ip在一个网段。
4.同一个网段不需经过网关,不同网段需要经过网关,网关也处在一个局域网中,如果这个网关跟目标ip还是不在一个网段里面,再向上走一层网关,循环如此。