【Java网络编程】IP协议详解

IP协议详解

了解IP地址之前,我们需要了解MAC地址,也就是物理地址,每一台机器都以偶唯一的MAC地址,MAC地址由厂商分配。

MAC地址由厂商分配,那么我们无法通过MAC地址来获取该主机的网络地址,所以网络层就有了IP协议,制定了一套新地址,使得我们能够区分两台主机是否同属一个网络,这套地址就是网络地址,也就是所谓的IP地址。

IP地址目前有两个版本,分别是IPv4和IPv6,IPv4是一个32位的地址,常采用4个十进制数字表示。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。由于各类地址的分法不尽相同,以C类地址192.168.24.1为例,其中前24位就是网络地址,后8位就是主机地址。

而A B C 类网络地址现在已经不再使用,现在使用的是CIDR格式,CIDR标记使用一个斜线(/)分隔符,后面跟一个十进制数值表示地址中网络部分所占的位数。例如,205.123.196.183/25中的25表示地址中25位用于网络ID,相应的掩码为255.255.255.128。

因此, 如果两个IP地址在同一个子网内,则网络地址一定相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码, IP地址和子网掩码通过按位与运算后就可以得到网络地址。

我们知道网络层是帮助我们确定消息应该发向哪一台主机的,首先我们要明白第一个问题就是所有的主机都有一个自己的地址网络层是根据这个地址经过路由器分发到不同的主机上的。但是由于不同主机所处的网络结构不同由于不同物理网络的异构性,存在各自寻址方式、网络接入机制等存在差异性。如果要把全世界范围内数以百万计的网络都互联都互连起来,并且能够相互通信,那么这样的任务一定非常复杂。我们知道,如果要在全世界范围内把数以百万计的网络都互联起来,并且能够 互相通信,那么这样的任务一定会非常复杂。其中会遇到许多问题需要解决,如:

  • a、不同的寻址方案。
  • b、不同的最大分组长度。
  • c、不同的网络接入机制。
  • d、不同的超时控制。
  • e、不同的差错恢复报告。
  • f、不同的状态报告方法。
  • g、不同的路由选择技术。
  • h、不同的用户接入控制。
  • i、不同的服务。(面向连接服务和无连接服务)

由于存在以上问题,大家自然而然就在想能不能让大家都使用相同的网络,这样可使网络互连能够变得比较简单,答案是不行的。因为用户的需求是多种多样的,没有一种单一的网络能够适应所有用户的需求。另外网络技术是不断发展的,网络的制造厂家也要推出新的网络,在竞争中求生存。因此在市场上总是有很多种不同性能、不同网络协议的网络,供不同的用户使用。为了解决这些问题,我们的前辈就想到用一种虚拟的方式将各个底层结构不同的网络虚拟互联起来,这样我们可以用统一的规则去管理不同物理结构的网络分配统一规则的网络地址,再用统一的规则摒除掉我们前文说到的所有问题。那我们就一起来看看 IP 协议中是怎样进行虚拟互联的。

TCP/IP 虚拟互连方式

TCP/IP 体系在网络互连上采用的做法是在网络层(即 IP 层)采用了标准化协议,但相互连接的网络可以是异构的。图 1(a)表示有许多计算机网络通过一些路由器进行互连。由于参加互连的计算机网络都使用相同的网际协议 IP(Internet Protocal),因此可以把互连以后的计算机网络看成图 1(b)所示的一个虚拟互连网络(internet)。

在这里插入图片描述

所谓虚拟互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以把这些性能各异的网络在网络层看起来好像是一个统一的网络。这种使用 IP 协议的虚拟互连网络可简称为 IP 网。使用 IP 网通信的好处是:当 IP 网上的主机进行通信时,就好像在一个单个网络上通信一样,他们看不见互连的各网络的具体异构细节(如具体的编址方案、路由选择协议、等等)。有了虚拟网络之后接下来我们就要讨论在虚拟网络上的地址是如何的来的。

分类的 IP 地址结构

整个因特网就是一个单一的抽象的网络。IP 地址就是因特网上的每一个主机(或者路由器)的每一个接口分配一个全世界唯一的 32 位标识符。所谓的“分类的 IP 地址”就是将 IP 地址划分为若干类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号(net-id) ,它标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内是唯一的。第二个字段是主机号(host-id),它标志该主机(或路由器)。一个主

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值