Bit 位
Host 主机
Mask 掩码
IP包头部格式
IPv4首部一般是20字节长。在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。 IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4个字节4个字节的扩展)
0 |
4 |
8 |
12 |
16 |
19 |
24 |
31 |
版本 |
首部长度 |
服务类型 |
长度 |
||||
认证 |
标志 |
段偏移量 |
|||||
TTL |
协议 |
校验和 |
|||||
源IP地址 |
|||||||
目的IP地址 |
|||||||
选项 ... |
IP包头字段说明
版本:4位,指定IP协议的版本号。
包头长度(IHL):4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。就是说,它表示的是包头的总字节数是4字节的倍数。
服务类型:定义IP协议包的处理方法,它包含如下子字段
过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)
延迟字段:1位,取值:0(正常)、1(期特低的延迟)
流量字段:1位,取值:0(正常)、1(期特高的流量)
可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)
成本字段:1位,取值:0(正常)、1(期特最小成本)
未使用:1位
长度:IP包的总长
认证:
标志:是一个3位的控制字段,包含:
保留位:1位
不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)
更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)
段偏移量:当数据分组时,它和更多段位(MF, More fragments)进行连接,帮助目的主机将分段的包组合。
TTL:表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。
协议:8位,这个字段定义了IP数据报的数据部分使用的协议类型。常用的协议及其十进制数值包括ICMP(1)、TCP(6)、UDP(17)。
校验和:16位,是IPv4数据报包头的校验和。
源IP地址:
目的IP地址:
IP协议是在网络层的协议.它主要完成数据包的发送作用. 下面这个表是IP4的数据包格式,IP封包格式(IPv4包首部长度为20字节)
|0......4........8..............16....................................32
-------------------------------------------------------------------------
|版本4.|首部长度|服务类型(优先级|数据包总长............................|
-------------------------------------------------------------------------
|标识...........................|RF|DF|MF|碎片偏移.....................|
-------------------------------------------------------------------------
|生存时间TTL....|协议(TCP/UDP)..|首部较验和............................|
-------------------------------------------------------------------------
|源IP地址..............................................................|
-------------------------------------------------------------------------
|目的IP地址............................................................|
-------------------------------------------------------------------------
|选项..................................................................|
=========================================================================
|数据..................................................................|
-------------------------------------------------------------------------
Version (4) Internet Header Length (4) Type of Service (8) Total Length (16)
Identification (16) Flags (3) Fragment Offset (13)
Time To Live (8) Protocol (8) Header checksum (16)
Source Address (32)
Destination Address (32)
Options (Variable) Padding (0-24)
Data
....
IP包字段含义
下面我们看一看IP的结构定义
struct ip
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int ip_hl:4;
unsigned int ip_v:4;
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned int ip_v:4;
unsigned int ip_hl:4;
#endif
u_int8_t ip_tos;
u_short ip_len;
u_short ip_id;
u_short ip_off;
#define IP_RF 0x8000
#define IP_DF 0x4000
#define IP_MF 0x2000
#define IP_OFFMASK 0x1fff
u_int8_t ip_ttl;
u_int8_t ip_p;
u_short ip_sum;
struct in_addr ip_src, ip_dst;
};
ip_v IP协议的版本号,这里是4,现在IPV6已经出来了
ip_hl IP包首部长度,这个值以4字节为单位.IP协议首部的固定长度为20个字节,如果IP包没有选项,那么这个值为5.
ip_tos服务类型,说明提供的优先权.
ip_len说明IP数据的长度.以字节为单位.
ip_id标识这个IP数据包.
ip_off碎片偏移,这和上面ID一起用来重组碎片的.
ip_ttl生存时间.没经过一个路由的时候减一,直到为0时被抛弃.
ip_p协议,表示创建这个IP数据包的高层协议.如TCP,UDP协议.
ip_sum首部校验和,提供对首部数据的校验.
ip_src,ip_dst发送者和接收者的IP地址
关于IP协议的详细情况,请参考 RFC791
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
128 64 32 16 8 4 2 1
私有地址范围
10.0.0.0-----10.255.255.255
172.16.0.0-----172.31.255.255
192.168.0.0-----192.168.255.255
实例 4个子网划分实例
可用的网段是: 每段可用的IP地址是:
192.168.1.0 192.168.1.1----192.168.1.62
192.168.1.64 192.168.1.62----192.168.1.128
192.168.1.128 192.168.1.129-----192.168.1.191
192.168.1.192 192.168.1.193---192.168.1.254
当我们进行了子网划分后,一个IP地址就分成了三段他们分别是:
主网络位:子网划分前的网络位
子网络位:向主机借位的网络位
主机位:代表计算机的二进制位
可变长子网掩码(vLsm)
VLSM允许把子网继续划分为更小的子网
192.168.100.0/{192.168.100.0/25,192.168.100.128/25}
192.168.100.128/25{192.168.100.128/26,192.168.100.192/26}
192.168.100.192/27{192.168.100.192/27,192.168.100.224/27}
这时整个网络可用的IP地址是从192.168.100.128到192.168.100.255
也就是说另一个子网没有使用。我们就可以再另一个子网中,在向主机位借一位,这样就可以又划分出了两个子网,他们分别是192.168.100.128/26---192.168.100.192/26两个子网,因为又向主机位借了一位 所以这两个的子网的掩码就变成了/26
子网规划方法
如果想划分几个子网 只需要2N>=子网数
每个子网可用的主机数据位2M-2>=主机数
例如:当N=5时 2N=32
M=3 ZM-2=6
因此,可以划分32个子网,每个子网共有6台主机
子网掩码为29位 255.255.255.248
划分子网的个数,ZN其中N是网络位向主机位所借的位数
每个子网的可用主机数:2M-2,M是借位后所剩的主机位数
划分子网后的子网掩码,在原有子网掩码的基础上借了几个主机位,就添加几个二进制的1,这就是变长子网掩码
ARP缓存的查询
Window
Arp -a arp -d 清空缓存表 ARP -d IP地址:清除某一条ARP缓存信息
在CISCO路由器上
Show ip arp
RARP是和ARP完成相反过程,ARP是已经知道IP地址,查找MAC地址,而RARP是已知MAC地址,查找IP地址
视频分享 http://www.dwz.cn/lij9D