zoukankan      html  css  js  c++  java
  • 网络学习一

    TTL(Time To Live):TTL是IPv4包头的一个8 bit字段;从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数

    TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。

    TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。

    TTL值的注册表位置HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255。Windows系统设置后重启才生效。

    生存时间,就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器(权威域名服务器)发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器(各地的缓存服务器,也叫递归域名服务器)中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

    举例:假设,有这样一个域名myhost.baiwan-han.c o m(其实,这就是一条DNS记录,通常表示在baiwan-han.c o m域中有一台名为myhost的主机)对应IP地址为1.1.1.1,它的TTL为10分钟。这个域名或称这条记录存储在一台名为-ns.baiwan-han.c o m的DNS服务器上。此时如果有一个用户在浏览器中键入一下地址(又TTL称URL):myhost.baiwan-han.c o m 那么会发生些什么呢?

    该访问者指定的DNS服务器(或是他的ISP,互联网服务商,动态分配给他的)8.8.8.8就会试图为他解释myhost.baiwan-han.c o m,当然8.8.8.8这台DNS服务器由于没有包含myhost.baiwan-han.c o m这条信息,因此无法立即解析,但是通过全球DNS的递归查询后,最终定位到-ns.baiwan-han.c o m这台DNS服务器,-ns.baiwan-han.c o m这台DNS服务器将myhost.baiwan-han.c o m对应的IP地址1.1.1.1告诉8.8.8.8这台DNS服务器,然有再由8.8.8.8告诉用户结果。8.8.8.8为了以后加快对myhost.baiwan-han.c o m这条记录的解析,就将刚才的1.1.1.1结果保留一段时间,这就是TTL时间,在这段时间内如果用户又有对myhost.baiwan-han.c o m这条记录的解析请求,它就直接告诉用户1.1.1.1,当TTL到期则又会重复上面的过程。

    ping:用来检查网络是否通畅或者网络连接速度的命令。原理:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统---因为TTL 是由发送主机设置的,可以根据TTL的值判断发送主机(目标主机)的操作系统等。

    使用:ping /?  帮助画面。

    -t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。  
     -l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。    
     -n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如"ping IP -t -n 3",虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。   
    举例:这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒,从这里可以判断网络连接速度的大小 。从TTL的返回值可以初步判断被ping主机的操作系统,之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示操作系统可能是win98。 
    应用:可以利用ping快速查找局域网故障,可以快速搜索最快的QQ服务器,可以对别人进行ping攻击

    使用Ping测量丢包的最佳方法是向一个IP地址发送大量的Ping命令,然后检查没有应答的那些Ping命令。如果你快速地发出了50次Pin

    g命令,
      
      你可以检查没有没有应答的次数,并把没有应答的次数作为丢包。没有应答的次数超过5%可能就值得担心了。
      
      在一台Windows计算机上,在命令提示符后面输入如下命令就可以完成这个任务:
      
      Ping -n 50(IP地址或者域名,如www.website.com)这个命令中的“-n”开关告诉发送ping命令的次数,“50”是发送的次数。

    本地的“

    缺省网关”是你所有的数据传输到网络上经过的第一个路由器。在Windows命令提示符后面输入“ipconfig”命令你就可以发现你的缺省路由器的IP地址。



    Tracert
    工作原理:

    首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?

    Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。

    Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。

    Traceroute 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Traceroute给TTL记数器加1,继续进行。

    执行tracert命令时第2列,第3列,第4列为何有三个时间,如果要表示经过该IP的时间,分别对每一跳的地址发送三个测试包,所以有三个时间,分别是最小、平均、最大时间。 

    在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机 
    172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地 
    址是 192.168.0.1(路由器里有下一跳的地址)。

    C:\>tracert 172.16.0.99 -d 
    Tracing route to 172.16.0.99 over a maximum of 30 hops 
    1 2s 3s 2s 10,0.0,1 
    2 75 ms 83 ms 88 ms 192.168.0.1 
    3 73 ms 79 ms 93 ms 172.16.0.99 
    Trace complete. 

    可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 19 2.168.10.99 主机没有有效路径。
    这可能是路由器配置的问题,或者是 192.168.10. 0 网络不存在(错误的 IP 地址)。

    C:\>tracert 192.168.10.99

    Tracing route to 192.168.10.99 over a maximum of 30 hops

    1 10.0.0.1 reportsestination net unreachable.

    Trace complete.

    路由,一个路由为一个跃点。传输过程中需要经过多个网络,每个被经过的网络设备点(有能力路由的)叫做一个跃点,地址就是它的ip,跃点数是经过了多少个跃点的累加器,为了防止无用的数据包在网上流散。

    IP路由表:根据计算机的当前 TCP/IP 配置自动建立。每个路由在显示的表中占一行。计算机将在路由表中搜索与目标 IP 地址最匹配的项

    如果没有其他主机或网络路由符合 IP 数据报中的目标地址,您的计算机将使用默认路由。默认路由通常将 IP 数据报(没有匹配或明确的本地路由)转发到本地子网上的路由器的默认网关地址。在前面的范例中,默认路由将数据报转发到网关地址为 10.0.0.1 的路由器。

    由于默认网关对应的路由器包含大型 TCP/IP 网际内部其他 IP 子网的网络 ID 的信息,因此它将数据报转发到其他路由器,直到数据报最终传递到连接指定目标主机或子网的 IP 路由器为止。

    网络目标

    网络目标使用网络掩码与目标 IP 地址匹配。网络目标地址的范围可以从用于默认路由的 0.0.0.0 到用于受限广播的 255.255.255.255,后者是到同一网段上所有主机的特殊广播地址。

    网络掩码

    网络掩码是当子网掩码符合网络目标地址中的值时,应用到目标 IP 地址的子网掩码。用二进制写入网络掩码时,1 必须匹配,而 0 不需要匹配。例如,默认路由使用可转换为二进制值 0.0.0.0 的网络掩码 0.0.0.0,所以不需要匹配位。主机路由 - 与某个 IP 地址匹配的路由 - 使用可转换为二进制值 11111111.11111111.11111111.11111111 的网络掩码 255.255.255.255,所以所有位都必须匹配。

    网关

    网关地址是本地主机用于向其他 IP 网络转发 IP 数据报的 IP 地址。可以是本地网络适配器的 IP 地址,也可以是本地网段上 IP 路由器(如默认网关路由器)的 IP 地址。

    接口

    接口是本地计算机上为 IP 数据报在网络上转发时所使用的本地网络适配器配置的 IP 地址。

    跃点数

    跃点数表示使用路由的开销,通常是到 IP 目标位置的跃点数目。本地子网上的任何设备都是一个跃点,其后经过的每个路由器是另一个跃点。如果到同一目标有不同跃点数的多个路由,则选择跃点数最低的路由。

    对每个网络适配器配置默认网关时,将为每个网络适配器创建 0.0.0.0 路由。然而,实际上仅使用一个默认路由。在前面的范例中,10.0.0.169 IP 地址是 TCP/IP 绑定中的第一个网卡,因此使用网卡 1 的默认路由。因为只使用一个默认网关,所以只需要配置一个网络适配器的默认网关。这样做可以减少混乱并确保想要的结果。

    IP地址有分为五类,我们只会接触到其中的A,B,C三类,A类IP地址是1-126开头的,B类是128-191开头,C类是 192-223开头,每一类所容纳的用户是不一样的,其中A类最大,C类最小。这些IP是需要注册的。每一类当中都有一类特殊的IP用于局域网,不需要注册。如A类中10.0.0.0-10.255.255.255,B类中172.16.0.0-172.16.255.255,C类中192.168.0.0-192.168.255.255。这就是为什么路由器在出产的时候总是以192.168开头。而且每一类的IP中比如A类10.255.255.255是不可能分配给用户的,它是用于广播。广播的意思就是局域网内的所有用户都能收到IP所发出的数据,一般我们的数据传输在局域网内它是有个特定的格式的,数据传输的时候都会TCP/IP协议的7个层都会对数据进行加工,然后将数据发送到特性的IP地址,特定的主机MAC,因此交换机会根据这些数据报头识别被通信的主机,进而建立连接,但是广播不一样,它和我们现在的广播报警一样,用处是让局域网中的每个人都收到数据。
    0.0.0.0的IP地址表示整个网络,即网络中的所有主机。

    网关解读:http://www.cnblogs.com/scy251147/archive/2010/08/13/1799211.html
    本地路由表的修改:http://blog.csdn.net/kevinhg/article/details/7518578

    参考文献:

    https://technet.microsoft.com/zh-cn/library/cc779122

     



  • 相关阅读:
    P1308 统计单词数
    P1055 ISBN号码
    InterlockedCompareExchange 原子操作
    InterlockedCompareExchange 原子操作
    VS2015 定位内存泄露
    VS2015 定位内存泄露
    const volatile mutable修饰变量的区别
    const volatile mutable修饰变量的区别
    HWND、HANDLE、HMODULE、HINSTANCE的区别
    CodeIgniter框架中关于URL重写(index.php)的二三事
  • 原文地址:https://www.cnblogs.com/dobestself-994395/p/4287040.html
Copyright © 2011-2022 走看看