网际协议IP-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
网际协议IP
一、IP地址
1、分类的IP地址
IP地址::={<网络号>,<主机号>}
2、无分类编址CIDR
IP地址::={<网络前缀>,<主机号>}
1网络前缀
与分类IP最大的区别就是网络前缀的位数n是不固定的可以是0~32位。
采用斜线标记法“/”后面的是网络前缀的位数。111.112.113.1/20表示前20位为网络前缀后12位为主机号。
2地址块
CIDR把网络前缀都相同的所有连续IP地址组成一个CIDR地址块。
一个大的地址块往往包含很多小的地址块所以在路由器的转发表中利用一个大的地址代替许多小的地址这种方法称为路由聚合。这样就能大大压缩转发表的空间减少了查找转发表的时间。
3地址掩码
我们人类可以通过斜线标记法快速计算出网络前缀这种斜线标记在计算机中是没有的而是通过地址掩码来计算的。
子网掩码是一串连续的1和0组成CIDR记法中斜线后面的数字即为1的个数。
111.112.113.1/20 AND 255.255.240.0 =>111.112.112.0/20
二、地址解析协议ARP
我们知道IP地址是网路层和上层使用的地址是一种逻辑地址而MAC地址是数据链路层使用的地址。IP地址放在IP数据报的首部IP数据报在数据链路层被封装成帧而MAC地址则放在MAC帧的首部所以数据链路层是看不见数据报的IP地址的是依靠MAC地址传送的。所以在数据链路层怎样知道目的地址的MAC地址呢
ARP在主机的ARP高速缓存中存放一个本局域网上的各主机和路由器的IP地址到MAC地址的映射表并且经常动态更新。
例如在某个局域网A向B发送数据报首先在ARP高速缓存中查找B的IP地址如有则将其对应的MAC地址写入MAC帧然后发送到该MAC地址。
如果找不到呢
1A的ARP进程在本局域网上广播一个ARP请求分组其中包含A的IP地址和MAC地址。
2本局域网上的所有主机都能收到该分组。
3主机B的IP地址与ARP请求分组中要查询的IP地址一致则收下该分组其他主机都不会理睬这个分组。B向A单播ARP响应分组其中包含B的MAC地址。为了避免B向A发送ARP请求分组减少网络通信量B在收到A的请求分组后也会将A的映射信息写入自己的高速缓存。
4A收到响应分组后就在其ARP高速缓存中写入主机B的IP到MAC地址的映射。
ARP对保存在高速缓存中的映射项都设置生存时间凡超过生存时间的项目就从告诉缓存中删掉。这样就能避免因某主机网络适配器损坏导致MAC地址失效而无法被别的主机找到的问题。
三、IP数据报格式
IP数据报首部格式分为2部分
1、固定部分
1版本
4位。协议IP的版本。
2首部长度
4位。以4字节位为单位。因为首部固定长度为20字节所以最小值为5。最大值为15所以首部长度最大值为60字节。当首部长度不是4字节的倍数时则需在填充字段加以填充。这样就能保证数据部分永远在4字节的整数倍开始方便实现IP协议。
3区分服务
8位。用来获得更好的服务。
4总长度
16位。首部和数据部分长度之和。最大长度为216-1=65535字节但是受链路层MTU限制超过MTU则需分片处理而且实际中也很少传送这么长的数据报。
尽可能长的IP数据报会提高传输效率但IP数据报越短路由器转发的速度就越快。因此规定主机和路由器必须能够接受长度不超过576字节的数据报。512上层数据+60首部长度+4富余。
5标识
16位。IP软件在存储器中维护一个计数器每产生一个数据报计数器就加1但这并不是为了按序接收的问题因为IP本身就是无连接的而是为了在分片时给每个分片的标识字段赋值相同字段值的数据报片就能重装为原来的数据报。
6标志
3位目前只有两位有效。
- 最低位MFmore fragment值为表示后面还有分片为0表示已是数据报片的最后一个。
- 中间位DFdon’t fragment不能分片值为0时才允许分片。
7片偏移
13位。分片后某片在原分组中的相对位置。以8字节为偏移单位也就是说除了最后一个数据报片外其他分片都是8字节的整数倍。
8生存时间
8位。TTLtime to live表明数据报在网络中的寿命。由发出数据报的源点来设置防止无法交付的数据报无限制的在互联网中兜圈子而耗费网络资源。
TTL起初以秒为单位每经过一个路由器TTL就减去数据报在该路由器所消耗的时间。随着技术的进步路由器处理数据报的时间一般都远远小于1秒TTL功能则改为了“跳数限制”。表示该数据报在互联网至多可经过多少个路由器最大值255。当TTL减为0时该数据报就会被丢弃。
9协议
8位。指出此数据报携带的数据适用何种协议以便使目的主机IP层知道应将数据部分上交给哪个协议处理。
10首部检验和
16位。只检验数据报的首部不检验数据部分。
在发送方将首部划分为16位的序列并把检验和字段置0以反码算数运算全部相加后再取反码得到检验和字段值。在接收方将所有16位序列以反码算数运算相加后取反码如果不为0则表示首部发生变化并将此数据报丢弃。
11源地址
32位。发送IP数据报的主机的IP地址。
12目的地址
32位。接收IP数据报的主机的IP地址。
2、可变部分
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |