8.关于127.0.0.1(转载)

127.0.0.1详解
本文详细介绍了127.0.0.1作为回送地址的作用及其在网络测试中的应用,包括基本概念、特殊地址类别、在批处理中的使用技巧以及ping命令的应用细节。

关于127.0.0.1(转载)

    本文来自:百度百科  地址:http://baike.baidu.com/view/971216.htm

    127.0.0.1是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。

 

基本简介
    IP地址由两部分组成,即网络地址和主机地址。网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机。二者是主从关系。IP地址的四大类型标识的是网络中的某台主机。 IPv4的地址长度为32位,共4个字节,但实际中我们用点分十进制记法。
IP地址根据网络号和主机号来分,分为A、B、C三类及特殊地址D、E。全0和全1的都保留不用。 
A类:第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。
B类:前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络。
C类:前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络。

 

特殊地址
   D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户。
E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。
回送地址:127.0.0.1。一般用于测试使用。例如:ping127.0.0.1 来测试本机TCP/IP是否正常。
在有类IP地址的规定中,第一部分是1~126为A类地址,128~191为B类地址,那么中间留的127.0.0.1被称为本地回环地址,主要作用有两个:一是测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和IP协议安装都没有问题;另一个作用是某些SERVER/CLIENT的应用程序在运行时需调用服务器上的资源,一般要指定SERVER的IP地址,但当该程序要在同一台机器上运行而没有别的SERVER时就可以把SERVER的资源装在本机,SERVER的IP地址设为127.0.0.1也同样可以运行。
对于大多数习惯用localhost的来说,实质上就是指向127.0.0.1这个本地IP地址。在操作系统中有个配置文件(windows中路径为C:\WINDOWS\system32\drivers\etc\hosts)将localhost与127.0.0.1绑定在了一起。
127.0.0.1对于网站建设者来说是常常用到的。
大家常用“ping 127.0.0.1”命令在本机上做回路测试,用来验证本机的TCP/IP协议簇是否被正确安装。但你发现了吗?使用“ping 127.1”这个命令也能得到同样的测试结果,其实“ping 127.1”和“ping 127.0.0.1”这两条命令是一样的,都是在进行回路测试。
为什么会这样呢?这就是Ping命令应用中IP地址的使用技巧。大家都知道,IP地址由32位二进制数字组成,为了方便大家记忆,将每8位二进制数字换算成十进制数字,因此就形成了容易记忆的由四部分十进制数字组成的IP地址(如127.0.0.1)。由于,Windows操作系统具有自动填充 “.0”的功能,因此我就可将“127.0.0.1”变为“127.1”。
但是,这个“.0”的省略是有条件限制的,并不能任意省略。在Ping命令的应用中,只能将在IP地址的最后一部分十进制数字前出现的一个或多个“.0”省略,如把“ping 127.0.0.1”命令改写成“ping 127.1”。

 

其他信息
ping注意事项:
   如果这一个或多个 “.0”没有紧挨着最后一部分的十进制数字,而是在其他位置,则这个“.0”不能省略,如“ping 202.0.96.1”就不能写成“ping 202.96.1”。这是因为“ping 202.96.1”返回的结果是“202.96.0.1”的应答信息,而不是“202.0.96.1”的应答信息。
在批处理中的应用:
1在批处理中
相信大多数懂一点批处理的人都见过类似于“ping 127.1 -n 5 >nul”这样的命令。
其实批处理作者的目的肯定不是测试网络,而是为了让批处理运行延时。
这个命令的意思是让批处理运行到这里时延迟4秒在继续运行下面的命令(ping命令每隔一秒试探一次,第一次试探在执行时就试探过了,所以5次试探是延迟4秒),后面>nul 的意思是不在屏幕上显示数据,达到延迟运行又不对批处理造成丝毫影响的目的。产生的效果就是一个白色的闪动符号闪动等待。
2在网络链接中
同一IP段的数据传输使用地址:127.0.0.1 简单来说就是网上邻居使用此地址传输
3.需要特别注意
收到127.0.0.1的响应表示主机的ip配置正确。此响应来自网络层。但是此响应并不代表地址、掩码、和网关配置正确。它也不能说明有关网络协议族下层的任何状态。此方法只是测试网络层的ip联通性。


扩展阅读:
          http://baike.baidu.com/view/1179381.htm 

 -----2013.3.10

11:30:00.339 [grpc-default-executor-0] ERROR c.tyg.speech.rpc.PythonSpeechClient - streaming error io.grpc.StatusRuntimeException: UNAVAILABLE: io exception at io.grpc.Status.asRuntimeException(Status.java:537) at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:481) at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:574) at io.grpc.internal.ClientCallImpl.access300(ClientCallImpl.java:72)atio.grpc.internal.ClientCallImpl300(ClientCallImpl.java:72) at io.grpc.internal.ClientCallImpl300(ClientCallImpl.java:72)atio.grpc.internal.ClientCallImplClientStreamListenerImpl1StreamClosed.runInternal(ClientCallImpl.java:742)atio.grpc.internal.ClientCallImpl1StreamClosed.runInternal(ClientCallImpl.java:742) at io.grpc.internal.ClientCallImpl1StreamClosed.runInternal(ClientCallImpl.java:742)atio.grpc.internal.ClientCallImplClientStreamListenerImpl1StreamClosed.runInContext(ClientCallImpl.java:723)atio.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)atio.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)atjava.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)atjava.base/java.util.concurrent.ThreadPoolExecutor1StreamClosed.runInContext(ClientCallImpl.java:723) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor1StreamClosed.runInContext(ClientCallImpl.java:723)atio.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)atio.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)atjava.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)atjava.base/java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: io.netty.channel.AbstractChannelAnnotatedConnectException:connect(..)failed:Invalidargument:/127.0.0.1:50051Causedby:java.net.ConnectException:connect(..)failed:Invalidargumentatio.netty.channel.unix.Errors.newConnectException0(Errors.java:155)atio.netty.channel.unix.Errors.handleConnectErrno(Errors.java:128)atio.netty.channel.unix.Socket.connect(Socket.java:312)atio.netty.channel.epoll.AbstractEpollChannel.doConnect0(AbstractEpollChannel.java:773)atio.netty.channel.epoll.EpollSocketChannel.doConnect0(EpollSocketChannel.java:138)atio.netty.channel.epoll.AbstractEpollChannel.doConnect(AbstractEpollChannel.java:758)atio.netty.channel.epoll.AbstractEpollChannelAnnotatedConnectException: connect(..) failed: Invalid argument: /127.0.0.1:50051 Caused by: java.net.ConnectException: connect(..) failed: Invalid argument at io.netty.channel.unix.Errors.newConnectException0(Errors.java:155) at io.netty.channel.unix.Errors.handleConnectErrno(Errors.java:128) at io.netty.channel.unix.Socket.connect(Socket.java:312) at io.netty.channel.epoll.AbstractEpollChannel.doConnect0(AbstractEpollChannel.java:773) at io.netty.channel.epoll.EpollSocketChannel.doConnect0(EpollSocketChannel.java:138) at io.netty.channel.epoll.AbstractEpollChannel.doConnect(AbstractEpollChannel.java:758) at io.netty.channel.epoll.AbstractEpollChannelAnnotatedConnectException:connect(..)failed:Invalidargument:/127.0.0.1:50051Causedby:java.net.ConnectException:connect(..)failed:Invalidargumentatio.netty.channel.unix.Errors.newConnectException0(Errors.java:155)atio.netty.channel.unix.Errors.handleConnectErrno(Errors.java:128)atio.netty.channel.unix.Socket.connect(Socket.java:312)atio.netty.channel.epoll.AbstractEpollChannel.doConnect0(AbstractEpollChannel.java:773)atio.netty.channel.epoll.EpollSocketChannel.doConnect0(EpollSocketChannel.java:138)atio.netty.channel.epoll.AbstractEpollChannel.doConnect(AbstractEpollChannel.java:758)atio.netty.channel.epoll.AbstractEpollChannelAbstractEpollUnsafe.connect(AbstractEpollChannel.java:600) at io.netty.channel.DefaultChannelPipeline$HeadContext.connect(DefaultChannelPipeline.java:1342) at io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:548) at io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:533) at io.netty.channel.ChannelDuplexHandler.connect(ChannelDuplexHandler.java:54) at io.grpc.netty.WriteBufferingAndExceptionHandler.connect(WriteBufferingAndExceptionHandler.java:157) at io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:548) at io.netty.channel.AbstractChannelHandlerContext.access$1000(AbstractChannelHandlerContext.java:61) at io.netty.channel.AbstractChannelHandlerContext$9.run(AbstractChannelHandlerContext.java:538) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:387) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:829) ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/weixin_43680337/article/details/149634151
最新发布
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值