ip协议

IP 协议是TCP/IP协议栈中非常重要的一个协议

组成

ip 地址 由 32位二进制数字组成(IPV4版本),分成两个部分: 网络ID 和 主机ID

网络id 在整个互联网是唯一的,而主机id在所在的网络id中是唯一的, 这样每一个ip地址都是唯一的。

ip地址分类

  1. A类地址: 网络id占用一个字节,首位固定0,可用编号 0-127
  2. B类地址: 网络id占用两个字节,前两位固定10 ,可用编号 128-191
  3. C类地址: 网络id占用三个字节,前三位固定110 ,可用编号 192-223
  4. D类地址:多播
  5. E类 研究

IP地址的结构为啥是分级组成

  1. 方便管理,ip地址分配管理者只需要把网络id分配出去,即可,否则每一个主机的ip都需要分配的话,会死人的。
  2. 减少路由器内存,减少路由查询时间。不同的网络之间通信,通过路由器查询网络id来找到要送达的网络,而至于送到某个主机则由所在网络的路由器去完成,这样能很大程度上减少路由表的数据,减少路由查找时间。

ip地址为啥要分成这些类

  1. 因为需求不一样,有些公司接入的主机很多,需要一个能容纳很多主机的ip地址,有些则需要比较少的ip地址。

ip数据报传输过程

  1. 主机A发送数据报,本网络路由器查看路由表,目的主机B是否在同一网络,如果是同一个网络,那么就直接交付,不需要经过其他的路由器;如果不是,本网络路由器查找路由表找出下一跳的路由器,直到找到主机B所在网络的路由器,由它进行直接交付。

IP地址是逻辑上的地址,类似小明家这个概念。你去小明家肯定去的是一个具体的物理地址(坐标)。IP数据报在真正传输的过程中也需要找到目的主机IP地址对应的物理地址,才能交付。ARP(address resolution protocal)地址解析协议就是做这个工作的。对应的还有RARP(逆地址解析协议, 已经被DHCP协议替代)

ARP协议实现原理

  1. 每一个主机都有一个ARP高速缓存(ARP cache),存储着各个主机和路由器的ip地址和硬件地址的映射表。那这个主机是怎么知道这些数据的呢?
    利用广播的原理,当一次通信请求过来时候,需要找下一跳的目的主机,如果发现目的主机的ip地址和物理地址不在自己的cache中的时候 就自动运行ARP进程发出一个广播:我是主机A,IP地址是128.0.1.xxx (可能通过逆地址解析出来),物理地址是xxx,想要找IP地址是128.0.1.xxx的硬件地址。
  2. 然后本局域网中的所有主机都会收到这个广播,发现找的是自己就记录下主机A的ip地址和物理地址(以备后用),并响应:我的IP是xxx,物理地址是xxx。

TIPS:

  1. 高速缓存有生存周期,方便物理地址发生更改的时候,再次发起ARP广播,否则一直都是走cache 就over了。
  2. ARP协议只是解决了局域网内ip地址到物理地址的转换。不同网络的传输,交给路由器来完成ARP解析。
文章作者: webaifei
文章链接: http://yoursite.com/2017/11/09/network-ip/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 个人博客