网络层经常被称为IP层。但网络层协议不只是IP协议,还包括ICMP协议,IPX协议等。
通信是一个接口和另外一个接口传递数据的过程,因为一台设备可能有两个网卡,那就有两个ip地址,所以理解成接口通信比设备通信更为精准。
ip地址的作用:
- 标识一台设备(一个接口)
- 寻址和转发
IP报文头部封装内容:
IP报文头长 20 - 60字节
其中固定长度20字节,option和padding是可选的0-40字节的长度。
- version:版本,4bit,标识IP的版本(v4、v6)
- header length:头长度,4bit,标识了IP包的头部长度
- type of service:类别服务,8bit,主要用于qos的报文优先转发,给报文不同的转发待遇,就是做区分转发用的。
- total length:总长度,16bit,标识了报头+tcp头部+数据的长度(用它减去header length的长度就是数据包的长度,解封的时候就是这样)
- identification:标识,16bit,用于标识一台主机发送的数据,用于区分不同的报文。
- flags:标志,3bit,第一个bit固定为0(保留的),第二个bit为DF bit,是否可以分片(置1-不可以分片;置0-可以分片),第三个bit为MF bit,后续是否还有分片(置1-还有分片;置0-没有分片)
- fragment offset:片偏移,13bit,用于数据分片的重新组合(上面的identification,flage,fragment offset 这三个是用来完成分片和重组的)
- Time to Live:生存时间,8bit,用于终止数据包环路的转发,最大值为255,每经过一台设备减1 当设备收到TTL=1的报文时,进行丢弃
- protocol:协议值,8bit,用于标识上层的协议信息 值为6时表示上层的TCP协议,17表示上层的UDP协议,1表示网络层的ICMP协议。(协议号用来表示上层协议类型,端口号用来表示应用层协议类型)
- header checksum:头部校验,16bit,用于校验头部的完整
- SIP:32bit,源IP
- DIP:32bit,目的IP
- option:功能选项位,长度不固定,根据所需的能力来进行添加
- padding:补全功能位,长度不固定,和option进行组合形成1组或多组32bit长度的行,使用0来补全
根据上面的5,6,7我们产生了一个疑问,什么是分片?为什么要分片?
- ip分片是网络上传输ip报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。这一过程称为分片。
- 为什么要分片,以太网技术支持帧大小最大为1518字节。通常以太网接口默认的链路MTU通常设置为1500字节。
- 每一种物理网络都会规定链路层数据帧的最大长度,称为链路层MTU。ip协议在传输数据包时,若ip数据包加上数据帧头部后长度大于链路MTU,则将数据报文分为若干分片进行传输,并在目标系统中进行重组。比如说,在以太网环境中课传输最大ip报文大小(MTU)为1500字节。如果要传输的数据帧大小超过1500字节,即ip数据报负载长度大于1472(1500-20(ip)-8(UDP)=1472,普通数据报)字节,则需要分片之后进行传输。只有首片分片才会携带传输层的信息(TCP或者UDP),非首片不携带。
在传输大数据包时,可以使用分片的方式进行数据传输
1.发送端如何指示分片的数据为一个数据?
标识字段都相同,DF bit=0,MF bit=1
2.接收端如何判断接收了所有的分片数据?
接收到MF bit=0的数据分片,对应偏移量的值
3.接收端如何组合所有的分片数据?
根据携带的偏移量,从小到大进行数据报文的排列
[AR1]ping -c 1 -s 3000 10.1.12.2
-c 指定发送报文的次数,默认是5次
-s 指定发送报文的内容数据值,默认是56字节
IPv4地址内容:
1.IPv4地址长度为32bit 2^32 大约42亿,但是依然不够,现已经有了ipv6地址。
2.IPv4地址表示方法:
1.二进制书写,比较麻烦(八个为一组)
2.点分十进制
3.ipv4地址的范围:
0.0.0.0 - 255.255.255.255
4.Ipv4地址的结构:
1.网络部分:标识一个大的网段
2.主机部分:标识网段内存在的主机数量
*如何区分网络部分和主机部分:
使用网络掩码进行区分
网络掩码:和IPv4地址进行一一对应,也是32bit 的长度
如果掩码置1对应Ipv4地址 就是网络部分
如果掩码置0对应IPv4地址 就是主机部分
5.IPv4地址的分类:
1.A类地址,第一个bit固定为0
0.0.0.0 - 127.255.255.255
私网地址:10.0.0.0 - 10.255.255.255
0.0.0.0是用于协议使用,表示不存在IP地址
127.0.0.0 - 127.255.255.255 用于本地环回测试
A类地址默认对应的网络掩码为255.0.0.0
2.B类地址,前两个bit固定为10
128.0.0.0 - 191.255.255.255
私网地址:172.16.0.0 - 172.31.255.255
B类地址默认对应的网络掩码为255.255.0.0
3.C类地址,前三个bit固定为110
192.0.0.0 - 223.255.255.255
私网地址:192.168.0.0 - 192.168.255.255
C类地址默认对应的网络掩码为255.255.255.0
4.D类地址,前四个bit固定为1110(用于组播通信)
224.0.0.0 - 239.255.255.255
5.E类地址,前四个bit固定为1111
240.0.0.0 - 255.255.255.255
255.255.255.255使用全网广播使用的
有类编址:根据IP地址的类别进行地址规划,根据类的默认掩码进行地址规划
无类编址:没有严格的类的概念,可变长度子网掩码。
1.网络地址:表示一个网段(表示了一段地址的范围)
根据网络掩码判断后,地址的网络部分不变
主机部分全部变为0
2.主机(可用)地址:在一个网段内,可以使用的IP地址
根据网络掩码判断后,将主机部分进行阶乘计算
2^(主机部分的个数)-2
3.广播地址:在一个网段内,实现一对所有的通信
根据网络掩码判断后,地址的网络部分不变
主机部分全部变为1
网络掩码的表示方法:
255.0.0.0 /8 (就是表示了有多位网络部分)
255.255.0.0 /16
255.255.255.0 /24
255.255.255.255 /32