计算机经过网络接口设备好比网络适配器与网络进行通讯,网络接口设备具备惟一的物理地址,用于接收发向该地址的数据。像以太网网卡这样的设备对于上层协议层的细节是一点也不了解的,它不知道IP地址,它只是监听是否收到了数据帧,发现其中目标地址与本身物理地址相符的帧,并把这个帧传递给上层协议栈。缓存
这种物理寻址方式适合单个局域网网段。由不间断介质链接在一块儿的若干台计算机利用物理地址就能够实现所需的功能。网络
可是,在路由式网络中,不能利用物理地址实现数据传输,由于根据物理地址进行传输所需的过程不能跨越路由接口来运行。即便这样是可行的,根据物理地址传输数据也是很是麻烦的,由于内置在网卡里的固定物理地址不能在地址空间上引入逻辑结构测试
所以,TCP/IP隐藏了物理地址,以一种逻辑化的寻址方式对网络进行组织。这个逻辑寻址方案由网际层的IP协议维护。ARP是另外一种网际层协议,它维护一个表格,用于把IP地址映射到物理地址。这个ARP表链接了IP地址与网卡物理地址。调试
发送数据的过程:排序
IP协议提供了一种分层的、与硬件无关的寻址系统,具备在复杂的路由式网络中传递数据所需的服务。每一个网络适配器都有一个惟一的IP地址接口
IP地址分为两个部分:ip
主机ID内存
C类地址使用前24位做为网络ID路由
每一个IP数据报都以一个IP报头开始。源计算机构造这个报头的目的是TCP软件利用IP报头中封装的信息处理数据。IP报头的最小长度是20字节。报头字段以下:同步
IP地址是一个32位的地址,被分为4个8位段(八位组)。人们不习惯使用32位的二进制地址或8位的二进制八位组,因此IP地址最经常使用的表达形式是“点分十进制形式”。在这种形式里,每一个八位组都以相应的十进制数值表示,4个十进制数值以句号分割。
IP地址一部分是网络ID,另外一部分是主机ID。划分网络ID和主机ID最初方案是使用地址分类。最近出现的CIDR无类别寻址下降了地址分类的重要性,但做为理解TCP/IP寻址的一个出发点,地址分类仍是值得讨论的。
地址分类系统把IP地址划分到不一样的地址类。绝大多数IP地址属于如下几类
关于D类和E类地址:
怎么判断二进制地址的前几个位说明了地址属于哪一类?
全0的主机ID表示网络自己。好比IP地址129.152.0.0是指网络ID为129.152的B类网络。
全1的主机ID表示广播。广播是向网络中所有主机发送的消息。IP地址129.152.255.255就是网络ID为129.152的B类网络的广播地址
以十进制127开头的地址是环回地址。目的地址为环回地址的消息是由本地软件发送的,其目的在于测试TCP软件是否工做正常
RFC1597保留了一些IP地址范围用于私有网络,其设想是,这些私有网络不会链接到internet,因此没必要要求是惟一的。目前,这些私有地址范围常常用于“网络地址转换”设备背后的受保护网络。
因为私有地址范围没必要与其他地址同步,因此整个地址范围对于任何网络都是可用的,网络管理员利用这些私有地址能够得到更大的子网空间和可用地址范围。
网段上每台主机在内存中都保存着一个被称为ARP表或ARP缓存的表格,其中包含网段上其余主机IP与其物理地址对应关系。当主机须要向网段上的其余主机发送数据时,它会查看ARP缓存来得到目的的物理地址。若是要接收数据的地址当前并不存在于ARP缓存,主机就会发送一个名为ARP请求帧的广播。
ARP请求帧包含未解析的IP地址,还包含发送这个请求的主机IP和物理地址。网段上的其余主机接收到这个ARP请求,未解析IP地址的主机会向发出请求的主机发送主机的物理地址。这个新的IP地址与物理地址的对应关系就会添加到请求主机的ARP缓存里。
通常来讲,ARP缓存里的条目在必定时间以后会过时,条目就会被从表里删除。当主机须要向这个条目所包含的IP地址发送数据时,解析过程会再次重复
RARP的含义是逆向ARP,也就是ARP的逆过程。当咱们知道IP地址而不是物理地址时,可使用ARP;而在知道物理地址而不知道IP地址时,则应使用RARP。
发送到远程计算机的数据一般会通过一个或多个路由器,这些路由器在把数据传输到最终目的地的过程当中可能发生多种问题。路由器利用Internet控制消息协议(ICMP)消息把问题通知给源IP。ICMP还有用于其余调试和排错的功能。
下面列出了最多见的ICMP消息: