TCP/IP——内外网IP+子网掩码作用+PING(网络总结)

目录:

1、如何区分内网IP和外网IP? 保留字段

2、子网掩码是起什么作用的? 将DNS和IP异或,表示哪段起作用

3、ping到底起什么作用? ping本地。ping远程

下面针对上面三个问题分别讲解:

一、 公网IP和内网IP的概念解析

(1)   tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 
  1.    10.0.0.0/8:10.0.0.0~10.255.255.255 
  2.    172.16.0.0/12:172.16.0.0~172.31.255.255 
  3.    192.168.0.0/16:192.168.0.0~192.168.255.255
    使用保留地址的网络只能在内部进行通信,而不能与其他网络互连。因为本网络中的保留地址同样也可能被其他网络使用,如果进行网络互连,那么寻找路由时就会因为地址的不唯一而出现问题。但是这些使用保留地址的网络可以通过将本网络内的保留地址翻译转换成公共地址的方式实现与外部网络的互连。这也是保证网络安全的重要方法之一。
  但是有一些宽带运营商尽管也使用了非私有地址分配给用户使用,但是由于路由设置的原因,Internet上的其他用户并不能访问到这些ip。我们将这两种情况下应用的ip称为内网IP。 
   如果自己机器上网络接口的ip地址落在上述保留地址的范围内,则可以肯定自己处于内网模式下。 
   内网IP对Internet的访问必须通过代理的方式,NAT(网络地址转换)技术是基于TCP层面的代理,能够相当好地使用于各种IP服务应用,因此被广泛应用。
   之所以说相当好,是因为NAT要求整个服务的连接是从内网向外网主动发起的,而外网的用户无法直接(主动)向内网的服务发起连接请求,除非在NAT的(所有)网关上针对服务的端口作了端口映射。NAT方式要求最外围的网关至少有一个公网的IP,通过下面的链接内网用户可以获知自己访问Internet时使用的公网IP。 
 
(2) 什么是内网、内网  
   公网、内网是两种Internet的接入方式。
   内网接入方式:上网的计算机得到的IP地址是Inetnet上的保留地址,保留地址有如下3种形式:
       10.x.x.x
       172.16.x.x至172.31.x.x
       192.168.x.x
      内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。
      公网接入方式:上网的计算机得到的IP地址是Inetnet上的非保留地址。公网的计算机和Internet上的其他计算机可随意互相访问。
(3)如何检测公网和内网
  请用上面介绍的查看IP地址的办法,检查一下您的电脑里有没有这个IP地址。如果有,您就是通过公网接入Internet,否则,就是通过内网接入Internet。
请注意:
1、如果您的浏览器里设置了使用代理服务器,请清除代理服务器设置,并刷新本页面,之后再检测。
2、有些学校或大型的机关单位虽然分配公网IP给用户,但学校或单位为了安全起见,会封闭校外对校内的访问请求。这部分用户虽然有公网IP地址,但依然要用内网动态域名来建网站。如果您通过校园网或机关单位的网络上网,并检测到自己有公网IP,请您在本机调试好网站后,把防火墙打开,请外网的朋友通过IP地址来访问您的网站。如果能访问,就是公网;如果不能访问,就是内网。
 

二、子网掩码

     无论在WINXP中还是LINUX中,每个网卡都得配置一个IP地址,与IP地址一起设置的必定还有子网掩码、默认网关、DNS服务器地址等。其实这四个要素中,必须要设置的只有IP地址和子网掩码,默认网关、DNS服务器地址有时可以不设。

  根据TCP/IP知识,IP地址分为A、B、C三大类,A类IP的第一个字节范围是1-126,B类IP的第一个字节范围是128-191,C类IP的第一个字节范围是192-223,所以看到192.X.X.X肯定是C类IP地址,这个时候,不需要子网掩码,因为大家根据IP地址的第一个字节的范围就能够推导出该IP属于A类还是B或C类。这时IP叫有类IP。

一、子网掩码的第一个作用是分割网络
  但由于计算机数量不断增加,人们发展IP地址数量很快要不够用了,而有类IP的IP分类方法会造成许多IP地址的浪费,如某公司申请到一个A类IP地址范围,其有效IP数量可达2^24-2,即1600万之多,而公司中不可能有什么多电脑。于是人们想把着能不能把一个大的网络分割为若干个小网络。那如何来区别不同IP地址是否在同一网络呢?这里就需要使用子网掩码了,子网掩码与IP地址一样也是一个32位的二进制数,每个IP都规定一定子网掩码,把IP地址与子网掩码进行二进位的或,得到的就是网络号,如果网络号相同就表示二台电脑在同一网段,可以直接通讯,不需要路由器帮忙。这时的IP地址由于需要靠子网掩码来计算网络号,已经不再存在A、B、C类网络的概念了,这时的网络叫无类网络。

  我们也可以这样理解,需要靠IP地址的第一个字节数据的范围来区别网络号的称有类网络,靠子网掩码来计算得到网络号的叫无类网络。目前我的WINXP和LINUX在指定IP的同时都必须要指定一个子网掩码,所以都属于无类网络。

二、子网掩码的第二个作用是计算网络号:
例1:A电脑IP地址为192.168.1.1,子网掩码为255.255.255.0;B电脑IP地址为192.168.1.2,子网掩码为255.255.225.0。大家都知道这二台电脑在同一网段,相互能PING通。

例2:A电脑的IP地址为192.168.1.1,子网掩码为255.255.255.0;B电脑的IP地址为192.168.2.1,子网掩码为255.255.0.0。大家分析一下二台电脑能相互PING通吗?
分析:这个问题需要大家理解子网掩码在网络通讯时的作用。不能简单的认为A电脑处在192.168.1.0网段,B电脑处在192.168.0.0网段,所以不能PING通。正确的分析应该如下:
⑴ 每台电脑事先会把自己IP和自己的子网掩码进行“与”操作,得到自己的网段号,如A电脑处在192.168.1.0网段,B电脑处在192.168.0.0网段。
⑵ B电脑向A电脑发数据包时,会把A电脑的IPB电脑的子网掩码进行“”操作,得到网络号是192.168.0.0,B电脑会认为A电脑与自己在同一网段,所以数据包会顺利发出。
⑶ A电脑由于与B电脑在同一网段,肯定能收到B电脑发出的数据包,由于PING操作要求A电脑回应一个响应包。这样A电脑会把B电脑的IP与A电脑的子网掩码进行“与”操作,得到网络号192.168.2.0,A电脑发现网络号与自己所处的192.168.1.0不在同一网段,由于A电脑目前没有设置默认网关,所以对该数据包将进行丢弃操作,结果B电脑当然就无法收到A电脑的回应包,所以B电脑上会显示“Request timed out”,即网络超时。
⑷ 如果在A电脑上去PINGB电脑,根据前面的分析,A电脑会认为B电脑与A电脑不在网段,而A电脑又没有设置默认网关,所以会显示“Destination host unreachable”,即目标主机不可达。

 

三、Ping

(1)ping(网络诊断工具)

  Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。
 
  PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
 
  ping指的是端对端连通,通常用来作为可用性的检查, 但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑。
(2)工作流程编辑
 
  我们以下面一个网络为例:有A、B、C、D四台机子,一台路由RA,子网掩码均为255.255.255.0,默认网关为192.168.0.1
1.在同一网段内
 
  在主机A上运行“Ping 192.168.0.5”后,都发生了些什么呢? 首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.0.5”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.0.5”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并想办法得到192.168.0.5的MAC地址(物理地址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),以便交给数据链路层构建一个数据帧。关键就在这里,IP层协议通过机器B的IP地址和自己的子网掩码,发现它跟自己属同一网络,就直接在本网络内查找这台机器的MAC,如果以前两机有过通信,在A机的ARP缓存表应该有B机IP与其MAC的映射关系,如果没有,就发一个ARP请求广播,得到B机的MAC,一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本
TCP/IP——内外网IP+子网掩码作用+PING(网络总结)

机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。
 
2.不在同一网段内
在主机A上运行“Ping 192.168.1.4”后,开始跟上面一样,到了怎样得到MAC地址时,IP协议通过计算发现D机与自己不在同一网段内,就直接将交由路由处理,也就是将路由的MAC取过来,至于怎样得到路由的MAC,跟上面一样,先在ARP缓存表找,找不到就广播。路由得到这个数据帧后,再跟主机D进行联系,如果找不到,就向主机A返回一个超时的信息。
 
 
 
 
 
 
参考资料:
  1. 内网/外网IP的区分  http://blog.163.com/sunzs20113@126/blog/static/3706880920098243261254/

  2. 公网IP和内网IP的概念解析  http://blog.chinaunix.net/uid-20562990-id-1923609.html


上一篇:C#转义字符(Z)


下一篇:渣渣如我的ACM刨坑之路-001:Fliptile --POJ3279