IP协议及MAC帧格式

网络层

学习网络层,最重要的就是学习IP协议,它保证了我们的数据有能力从一台主机递达另外一台主机。首先来看看IP协议的报头信息。
IP协议及MAC帧格式_第1张图片
IP协议和TCP协议一样,报头都是固定的20个字节。
4位版本号:ip协议有ipv4和ipv6,这个字段标识的一般是我们的ipv4协议。
4位首部长度:即就是IP数据的报头长度。
8位服务类型:3位优先权字段以及舍弃,4位TOS字段和一位保留字段。
16位总长度:标识IP数据段的总长度,包括报头和有效载荷。
16位标识:因为下层mac规定了一次传输的最大单元MTU的大小,一旦超过这个大小,就需要IP协议对数据进行分片,由于到达对方主机的网络层还需要进行组装,因此分片的一组它们的标识id是一样的。
3位标识:一位作为保留,一位标识是否禁止分片,一旦禁止分片,超过MTU大小的数据将会直接丢弃,一位作为分片的结束标识。
13位片偏移:为了能让数据到达对方网络层按序组装,就需要片偏移来。
8位生存时间:就是数据段到达对方主机的最大路由次数,一般为64,为了防止循环路由。
8位协议:即把数据段交给上层的那一个协议。
16位首部校验和:CRC首部校验和。
剩余两项不做解释。


正是由于IP协议的存在,我们才能在全网中用IP地址标识出唯一的一台主机,IP地址分为两个部分,第一部分是网络号,第二部分是主机号。因此我们划分出了5类IP地址。
IP协议及MAC帧格式_第2张图片
但是在实际生活中,我们申请了一个类型的地址,比如B类,理论上允许主机上有六万五千多个主机,但是实际上我们用不了那么多,就会造成IP地址资源的浪费,因此我们通过划分子网的技术CIDR来解决。
引入一个子网掩码的概念,来区分网络号和主机号,子网掩码和ip地址进行按位与运算就可以得到网络号。子网掩码是由一串01组成,一般后几位为0.
IP协议及MAC帧格式_第3张图片
特殊的IP:IP地址中主机号为全0的,就代表了当前局域网,不能分给主机。
主机号为全1的为广播地址。
127.0.0.1是用于本地环回测试。
一般主机号为1的都代表这这个局域网中的路由器的IP地址。
以前我们知道,ip地址全球唯一标志着一台主机,那么ipv4协议,IP地址一共有32位,就有2的32次方,大概是43亿左右。那么除去一些特殊IP,在实际中,我们接入互联网中的主机不止43亿。那么IP资源就很匮乏,但是要怎么解决这个方法呢,目前有三种方式解决:
1.动态分配IP地址,只把要接入互联网中的主机分配IP地址,即同一个mac地址的主机,每次接入到网络中的IP地址都是不一样的。
2.NET技术。
3.使用IPV6,IPV6使用128位来标识IP地址。
这里我们着重讨论NET技术:
只要一个局域网上的主机不接入到互联网中,那么理论上他们的IP是任意的都可以。但是RFC 1918 规定用于组建私有局域网的IP必须遵循以下几点:
1.以10.*开头,前8位是网络号。
2.192.168.*前16位是网络号,
3.172.16.172.*到172.31,前12位是网络号。
包含在这三个范围之内的IP地址称之为私有IP,其余的称位共有IP.
IP协议及MAC帧格式_第4张图片
上图就是利用net技术,合理解决了IP资源的匮乏问题。
一个路由器可以分配两个IP地址,一个是wan口ip,一个是lan口ip(子网ip)。
一般运营商的路由器分配的是共有IP,所以它是全网唯一的,就可以接入到广域网中,它负责一片区域的通讯,它可以构建子网让子网中的路由器来连接,而我们的家庭用户就是这个子网中的一一个个子节点。但是家庭路由器的ip地址属于私有ip,同样的家庭路由器也可以进行子网的划分,让我们的每一个家庭成员都可以上网。每一个家庭成员分配的ip地址属于家庭路由器构建的子网中的一个。它只需要在这个局域网中有效就可以了。那么就解决了ip地址匮乏问题的,当局域网中的主机想要与外网通信的时候,他会把自己的ip地址首先替换成路由器的WAN口ip,然后逐级替换,最后替换成一个共有ip,就能在网络中进行通信,这就是NET技术。由于NET技术的存在,我们两台不同局域网中的主机想要进行直接通信,是不可以的。


路由

我们知道了IP的概念,那么数据如何在网络中传输,就要学习路由,所谓路由,就是在复杂的网络结构中,找到一条通往对方的路劲。路由的过程,就是一跳一跳的过程,所谓一跳,是指在MAC层中,源MAC地址到目的MAC地址之间的帧传输区间。
每一个路由器内都会维护一张路由表,我们可以用route命令来查看。一个数据帧到达路由器的时候,路由器会取出数据目的IP地址,然后和路由表中每一行的子网掩码进行按位与,得到网络号,然后再跟目的网络地址对比,如果是,则向目的网络转发,如果不是,则对比下一条,表中所有的对比完了,还没有结果,那么就发往默认的地址。


数据链路层

在数据链路层,数据通过一帧一帧的数据发往底层的物理层上进行传输。数据链路层主要的有以太网,令牌环网。以太网的帧格式如下:
IP协议及MAC帧格式_第5张图片
这里的源地址和目的地址,就是在网络传输中的Mac地址,协议类型是指把帧数据交给上一层的哪一个协议,这里有IP协议,ARP协议,RARP协议。
其中,在IP分片的时候,我们知道,超过了MTU就需要对数据进行分片,以太网中规定的MTU最小是46个字节,最大是1500字节,不足则进行填充,超过则进行分片。MTU是不同的网络对应物理层的限制。我们可以通过ifconfig命令来查看。
IP协议及MAC帧格式_第6张图片

你可能感兴趣的:(计算机网络)