精华内容
下载资源
问答
  • TTL

    千次阅读 多人点赞 2020-03-02 23:22:07
    TTL1.TTL是什么?2. TTL的作用3.TTL原理 1.TTL是什么? TTL是 Time To Live的缩写 该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。 TTL是IPv4包头的一个8 bit字段。 2. TTL的作用 TTL的作用是限制IP...

    1.TTL是什么?

    1. TTL是 Time To Live的缩写
      该字段指定IP包被路由器丢弃之前允许通过的最大网段数量
    2. TTL是IPv4包头的一个8 bit字段。

    2. TTL的作用

    TTL的作用是限制IP数据包在计算机网络中的存在的时间。
    TTL的最大值是255,TTL的一个推荐值是64。

    3.TTL原理

    1. 虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数
    2. TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。
    3. 如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送ICMP 发送超时报文。
    展开全文
  • ttl

    2019-07-04 14:11:00
    TTL”是生存时间(Time To Live)的意思关于时间与跳的讨论,这里把time理解成次数也可以。 首先我们了解一下“TTL”的意思,“TTL”是 Time To Live 的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段...

    “TTL”是生存时间(Time To Live)的意思关于时间与跳的讨论,这里把time理解成次数也可以。

    首先我们了解一下“TTL”的意思,“TTL”是 Time To Live 的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。这样说可能比较抽象。下面我们看一下Ping命令的数据,如图:

    Ping百度服务器

    Ping百度服务器

    上图,我ping了百度的服务器(windows下默认ping 4次)。

    字节代表数据包的大小,时间顾名思义就是返回时间,“TTL”的意思就是数据包的生存时间,当然你得到的这个就是剩余的生存时间。TTL用来计算数据包在路由器的消耗时间,因为现在绝大多数路由器的消耗时间都小于1s,而时间小于1s就当1s计算,所以数据包没经过一个路由器节点TTL都减一。

    那么TTL的值一开始是什么呢?不同的操作系统默认下TTL是不同的。默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。

    上图看到Ping百度服务器返回的数据包的TTL值为56(一般都是找2^n且离返回值最近的那个值),那么途中则经过了64-56=9个路由器。

    再比如,我Ping自己的ip,结果如下图:

    Ping本地计算器

    Ping本地计算器

    可以看到我得到的时候TTL为128,那么途中则经过了128-128=0个路由器,也就是我自己给自己发送数据包不需要经过任何路由器,所以TTL值为128,即是说我的数据包生存时间为128。

    二.路由器是什么?

    通过路由表到达目的地,路由表每一条路由对应两个信息

    (目的网络地址,下一跳地址)

    详见《计算机网络第七版》4.2.6 

    从 Tracert 命令了解

    上面提到发送数据包要经过多少个路由器,那么路由器是什么意思?这就不得不说到 Tracert 命令了。

    Tracert的写法如下:

    tracert [目标]

    意思是得到你的主机到目标主机经过路由器的ip。

    如图:

     tracert百度服务器

    tracert百度服务器

    在这里我们可以看到达到目标我们经过了9个路由器(不算终点),跟上面Ping百度服务器返回的“TTL”值(56)是相关的,64-56=9。

    注意一下有的值为“请求超时” ,原因是有的路由器是禁止Ping的(所以不会返回信息)。

    三.TTL从哪来的

    ttl是发送的时候便携带的,有空用wireshark抓包看看。

    也就是说,如果你设置ttl为5,然后hop了5下还没到目标地址,那就扔掉。具体返回什么信息没试

    如果设置ttl设置为100,返回跳了9下,到了目的地址,是linux服务器,获得ttl为64,64-9=55,返回ttl 55

    四.linux和windows的ttl为什么不同

    就算目标服务器windows换成linux,路由器hop的路线还是一样的。

     

    转载于:https://www.cnblogs.com/fanhh/p/11132110.html

    展开全文
  • TTl

    2013-08-27 18:02:00
    TTL 是Time To Live的缩写,是指数据发送出去的存活时间 TTL(生存时间) TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不...
    TTL 是Time To Live的缩写,是指数据发送出去的存活时间 

    TTL(生存时间)
    TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。

    Windows 95/98中TTL的缺省值为32。有人建议当到达一个节点比较困难时,把此值设为128。ping和tracerouter都使用TTL值以尝试到达给定的主机或跟踪到那个主机的路由。traceroute把包的TTL值设得较小,使它在到达目的的路上被各个路由器连续的丢弃。发出包到受到返回的ICMP报文之间的时间用来计算从一个路由器到另一个路由器的时间。

    使用多路复用的IP协议,TTL值表示一个包被转发的范围。有以下转换:0, 限制在同一主机 1, 限制在同一子网 32, 限制在同一节点 64, 限制在同一区域(region)128,限制在同一大陆(continent)255,

    由于不同的操作系统的默认TTL值不同,因此有文章说可以通过返回的TTL值判断目标系统的类型,这是正确的,但不是TTL的功能,只是对TTL理解的一个应用。TTL的值可以修改。有些特殊的、系统(如NIDS)会定义特殊的TTL值,以拒绝非法访问数据进入。我们在执行PING命令时可以用-i参数指定TTL值,大家可以将TTL设置为0,则该包将被立即丢弃。有时我们执行了一个PING 命令,在繁华时却繁华了另一个地址,并带有一个英语的提示(大致意思是TTL无效),则表示该包在到达目标之前(也就是到返回IP位置时),包所带的TTL已经为0了或小于下一网段许可通过的TTL值了,该包已经被路由丢弃了。


    UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255 
    Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64
    微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
    微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
    当然,返回的TTL值是相同的

    但有些情况下有所特殊

    LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64
    FreeBSD 4.1, 4.0, 3.4;
    Sun Solaris 2.5.1, 2.6, 2.7, 2.8;
    OpenBSD 2.6, 2.7,
    NetBSD
    HP UX 10.20
    ICMP 回显应答的 TTL 字段值为 255
    Windows 95/98/98SE
    Windows ME
    ICMP 回显应答的 TTL 字段值为 32
    Windows NT4 WRKS
    Windows NT4 Server
    Windows 2000
    ICMP 回显应答的 TTL 字段值为 128
    这样,我们就可以通过这种方法来辨别操作系统

    TTL

    LINUX 64
    WIN2K/NT 128
    WINDOWS 系列 32
    UNIX 系列 255

    转载于:https://www.cnblogs.com/mover/p/3285523.html

    展开全文
  • MongoDb之TTL索引

    万次阅读 2020-09-06 11:49:34
    TTL全称是(Time To Live),TTL索引能对一个单列配置过期属性来实现对文档的自动过期删除,我们可以在对字段创建索引时添加expireAfterSeconds选项将索引转换为TTL索引,该字段需要是date类型,在以下几种场景下即使...

    一、TTL索引介绍

    TTL全称是(Time To Live),TTL索引能对一个单列配置过期属性来实现对文档的自动过期删除,我们可以在对字段创建索引时添加expireAfterSeconds选项将索引转换为TTL索引,该字段需要是date类型,在以下几种场景下即使索引设置了expireAfterSeconds属性也不会生效
    - 如果该字段不是date类型,则文档不会过期
    - 如果文档没包含索引的这个字段,则文档不会过期
    

    二、TTL索引运行逻辑

    • MongoDB会开启一个后台线程读取该TTL索引的值来判断文档是否过期,但不会保证已过期的数据会立马被删除,因后台线程每60秒触发一次删除任务,且如果删除的数据量较大,会存在上一次的删除未完成,而下一次的任务已经开启的情况,导致过期的数据也会出现超过了数据保留时间60秒以上的现象。
    • 对于副本集而言,TTL索引的后台进程只会在primary节点开启,在从节点会始终处于空闲状态,从节点的数据删除是由主库删除后产生的oplog来做同步。
    • TTL索引除了有expireAfterSeconds属性外,和普通索引一样

    三、TTL索引的限制

    • 只支持对单个字段创建TTL索引,复合索引不支持expireAfterSeconds选项
    • _id列不支持TTL索引
    • 固定集合(capped collection)不支持TTL索引
    • 不支持用createIndex() 修改expireAfterSeconds属性,但可以用collMod命令修改,或者重建索引,但重建对于大集合成本较高,建议用collMod方式
    • 一个列只能创建普通索引或TTL索引,不能同时对一个列创建这2种类型索引(实际TTL索引本身就是普通索引,只是多了一个过期属性)
    • 如果一个列已经存在索引,则需要先将该索引drop后才能重建为TTL索引,不能直接转换

    四、TTL索引的使用场景

    1. 指定具体的过期时间属性

    该场景是在创建索引时明确指定一个expireAfterSeconds时间作为文档的过期时间

    // 对log_events集合的createdAt字段创建TTL索引且设置expireAfterSeconds过期时间为3600秒(1小时)
    onepiece:PRIMARY> db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )
    
    // 对文档插入数据,包含createdAt字段,则该文档会在1小时候字段删除
    onepiece:PRIMARY> db.log_events.insert( {
       "createdAt": new Date(),
       "logEvent": 2,
       "logMessage": "Success!"
    } )
    

    2. 插入一个具体的过期时间

    该场景是在创建索引时将expireAfterSeconds设置为0,在这种情况下由插入到字段的数据来控制文档何时过期,这种场景更加精细化,可灵活的控制文档的过期时间及控制在业务低峰期触发文档过期

    // 对log_events集合的expireAt创建TTL索引,并设置expireAfterSeconds属性为0
    onepiece:PRIMARY> db.log_events.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )
    
    // 对文档插入数据,包含expireAt字段,该文档过期时间就是expireAt字段记录的时间
    onepiece:PRIMARY> db.log_events.insert( {
       "expireAt": new Date('Jan 16, 2020 14:00:00'),
       "logEvent": 2,
       "logMessage": "Success!"
    } )
    

    3. TTL属性的修改(collMod)

    对于TTL索引的expireAfterSeconds的属性,可以用collMod方式进行修改

    // 创建TTL索引设置1小时过期属性
    onepiece:PRIMARY> db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )
    {
    	"createdCollectionAutomatically" : true,
    	"numIndexesBefore" : 1,
    	"numIndexesAfter" : 2,
    	"ok" : 1
    }
    
    // 查看索引定义
    onepiece:PRIMARY> db.log_events.getIndexes()
    [
    	{
    		"v" : 2,
    		"key" : {
    			"_id" : 1
    		},
    		"name" : "_id_",
    		"ns" : "test.log_events"
    	},
    	{
    		"v" : 2,
    		"key" : {
    			"createdAt" : 1
    		},
    		"name" : "createdAt_1",
    		"ns" : "test.log_events",
    		"expireAfterSeconds" : 3600
    	}
    ]
    
    // 修改索引定义,将一小时文档过期改为60秒
    onepiece:PRIMARY> db.runCommand( { collMod: "log_events",
    			index: { keyPattern: { createdAt: 1 },
    			expireAfterSeconds: 60
    			}
    })
    
    // 返回值: { "expireAfterSeconds_old" : 3600, "expireAfterSeconds_new" : 60, "ok" : 1 }
    

    五、Date类型

    • Date() method which returns the current date as a string.
    • new Date() constructor which returns a Date object using the ISODate() wrapper.
    • ISODate() constructor which returns a Date object using the ISODate() wrapper.
    onepiece:PRIMARY> Date()
    Thu Jan 16 2020 14:48:40 GMT+0800 (CST)
    
    onepiece:PRIMARY> new Date()
    ISODate("2020-01-16T06:48:48.655Z")
    
    onepiece:PRIMARY> ISODate()
    ISODate("2020-01-16T06:48:53.673Z")
    

    六、参考文档

    • https://docs.mongodb.com/manual/core/index-ttl/index.html
    展开全文
  • DataSet_TTL.ttl

    2021-03-24 00:17:05
    DataSet_TTL.ttl
  • TTL和LSTTL版图举例

    2020-12-09 14:04:05
    TTL与非门布局草图和中速TTL八输入端与非门电路版图 多射极管的基区短路铝条 即晶体管工艺结构的基区表面制备的铝层 它有平衡基区电位的作用 T6网络设计图形 输入箝位二极管图形结构 LSTTL二输入端四或门版图 LSL中...
  • TTL是什么意思?搞网站的朋友都知道ping命令是非常有用的。在网上有一些网友小白问到这个TTL网络词语的含义。其实这个网络词语在网上说的tt恋。但是我们今天和大家讲述的是关于ip协议中ping的TTL的含义,下面就一...
  • TTL和带缓冲的TTL信号
  • 本文主要简单介绍了TTL和带缓冲的TTL信号的基础知识
  • 3.表和列的TTL规则与实践 3.1.表和列的TTL 3.2.列级TTL 3.3.表级TTL 3.4.列级TTL示例 3.5.表级TTL示例 3.表和列的TTL规则与实践 3.1.表和列的TTL 定义值的生命周期 可以为整个表设置,也可以为每个单独的列设置。 表...
  • Clickhouse TTL

    千次阅读 2020-06-15 22:16:26
    TTL即Time To Live 表示数据的存活时间。在MergeTree中,可以为某个列字段或者整张表设置TTL。当时间达到时,若列字段 级别的TTL 则会删除这一列的数据;若表级别的TTL则会删除整张表的数据;若同时设置了列级别的和...
  • 消息TTL

    2020-12-27 21:57:11
    消息的TTL指的是消息的存活时间,我们可以通过设置消息的TTL或者队列的TTL来实现。 消息的TTL,对于设置了过期时间属性(expiration)的消息,消息如果在过期时间内没被消费,会过期 队列的TTL,对于设置了过期时间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,678
精华内容 9,071
热门标签
关键字:

ttl