描述时间戳排序协议的优点.docx
《描述时间戳排序协议的优点.docx》由会员分享,可在线阅读,更多相关《描述时间戳排序协议的优点.docx(8页珍藏版)》请在冰豆网上搜索。
描述时间戳排序协议的优点
竭诚为您提供优质文档/双击可除
描述时间戳排序协议的优点
篇一:
tcpip详解-卷一-协议-7.4ip时间戳选项
7.4ip时间戳选项
ip时间戳选项与记录路由选项类似。
ip时间戳选项的格式如图7-7所示(请与图7-3进行比较)。
40字节
时间戳
4字节时间戳4字节时间戳4字节时间戳4字节
图7-7ip首部中时间戳选项的一般格式
时间戳选项的代码为0x44。
其他两个字段len和ptr与记录路由选项相同:
选项的总长度
(一般为36或40)和指向下一个可用空间的指针(5,9,13等)。
接下来的两个字段是4bit的值:
oF表示溢出字段,Fl表示标志字段。
时间戳选项的操作根据标志字段来进
如果路由器由于没有空间而不能增加时间戳选项,那么它将增加溢出字段的值。
时间戳的取值一般为自utc午夜开始计的毫秒数,与icmp时间戳请求和应答相类似。
如果路由器不使用这种格式,它就可以插入任何它使用的时间表示格式,但是必须打开时间戳中的高位以表明为非标准值。
与我们遇到的记录路由选项所受到的限制相比,时间戳选项遇到情况要更坏一些。
如果我们要同时记录ip地址和时间戳(标志位为1),那么就可以同时存入其中的四对值。
只记录时间戳是没有用处的,因为我们没有标明时间戳与路由器之间的对应关系(除非有一个永远不变的拓扑结构)。
标志值取3会更好一些,因为我们可以插入时间戳的路由器。
一个更为基本的问题是,很可能无法控制任何给定路由器上时间戳的正确性。
这使得试图用ip选项来计算路由器之间的跳站数是徒劳的。
我们将看到(第8章)traceroute程序可以提供一种更好的方法来计算路由器之间的跳站数。
篇二:
tcpip详解-卷一-协议-6.4icmp时间戳请求与应答
6.4icmp时间戳请求与应答
icmp时间戳请求允许系统向另一个系统查询当前的时间。
返回的建议值是自午夜开始计算的毫秒数,协调的统一时间(coordinateduniversaltime,utc)(早期的参考手册认为utc是格林尼治时间)。
这种icmp报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如某些unix系统提供的rdate命令)只能提供秒级的分辨率。
由于返回的时间是从午夜开始计算的,因此调用者必须通过其他方法获知当时的日期,这是它的一个缺陷。
icmp时间戳请求和应答报文格式如图6-6所示。
(13类型或14)
标识符
发起时间戳
接收时间戳
传送时间戳(0)代码检验和序列号20字节
图6-6icmp时间戳请求和应答报文
请求端填写发起时间戳,然后发送报文。
应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。
但是,实际上,大多数的实现把后面两个字段都设成相同的值
(提供三个字段的原因是可以让发送方分别计算发送请求的时间和发送应答的时间)。
6.4.1举例
我们可以写一个简单程序(取名为icmptime),给某个主机发送icmp时间戳请求,并打印出返回的应答。
它在我
们的小互联网上运行结果如下:
程序打印出icmp报文中的三个时间戳:
发起时间戳(orig)、接收时间戳(recv)以及发送时间戳(xmit)。
正如我们在这个例子以及下面的例子中所看到的那样,所有的主机把接收时间戳和发送时间戳都设成相同的值。
我们还能计算出往返时间(rtt),它的值是收到应答时的时间值减去发送请求时的时间值。
difference的值是接收时间戳值减去发起时间戳值。
这些值之间的关系如图6-7所示。
传送接收发起请求应答
图6-7icmptime程序输出的值之间的关系
如果我们相信Rtt的值,并且相信Rtt的一半用于请求报文的传输,另一半用于应答报文的传输,那么为了使本机时钟与查询主机的时钟一致,本机时钟需要进行调整,调整值是
difference减去Rtt的一半。
在前面的例子中,bsdi的时钟比sun的时钟要慢7ms和8ms。
由于时间戳的值是自午夜开始计算的毫秒数,即utc,因此它们的值始终小于86400000(24×60×60×1000)。
这些例子都是在下午4:
00以前运行的,并且在一个比utc慢7个小时的时区,因此它们的值比82800000(2300小时)要大是有道理的。
如果对主机bsdi重复运行该程序数次,我们发现接收时间戳和发送时间戳的最后一位数总是0。
这是因为该版本的软件(0.9.4版)只能提供10ms的时间分辨率(说明参见附录b)。
如果对主机svr4运行该程序两次,我们发现sVR4时间戳的最后三位数始终为0:
由于某种原因,sVR4在icmp时间戳中不提供毫秒级的分辨率。
这样,对秒以下的时间差调整将不起任何作用。
如果我们对子网140.252.1上的其他主机运行该程序,结果表明其中一台主机的时钟与
sun相差3.7秒,而另一个主机时钟相差近75秒:
另一个令人感兴趣的例子是路由器gateway(一个cisco路由器)。
它表明,当系统返回一个非标准时间戳值时(不是自午夜开始计算的毫秒数,utc),它就用32bit时间戳中的高位来表示。
我们的程序证明了一点,在尖括号中打印出了接收和发送的时间戳值(在关闭高位之后)。
另外,不能计算发起时间戳和接收时间戳之间的时间差,因为它们的单位不一致。
如果我们在这台主机上运行该程序数次,会发现时间戳值显然具有毫秒级的分辨率,而且是从某个起始点开
始计算的毫秒数,但是起始点并不是午夜utc(例如,可能是从路由器引导时开始计数的毫秒数)。
作为最后一个例子,我们来比较sun主机和另一个已知是准确的系统时钟—一个ntpstratum1服务器(下面我们会更多地讨论ntp,网络时间协议)。
如果我们把difference的值减去Rtt的一半,结果表明sun主机上的时钟要快38.5~51.5ms。
6.4.2另一种方法
还可以用另一种方法来获得时间和日期。
1)在1.12节中描述了日期服务程序和时间服务程序。
前者是以人们可读的格式返回当前的时间和日期,是一行ascii字符。
可以用telnet命令来验证这个服务:
另一方面,时间服务程序返回的是一个32bit的二制进数值,表示自utc,1900年1月1日午夜起算的秒数。
这个程序是以秒为单位提供的日期和时间(前面我们提过的rdate命令使用的是tcp时间服务程序)。
2)严格的计时器使用网络时间协议(ntp),该协议在RFc1305中给出了描述[mills1992]。
这个协议采用先进的技术来保证lan或wan上的一组系统的时钟误差在毫秒级以内。
对计算机精确时间感兴趣的读者应该阅读这份RFc文档。
3)开放软件基金会(osF)的分布式计算环境(dce)定义了分布式时间服务(dts),它也提供计算机之间的时钟同步。
文献[Rosenberg,kenneyandFisher1992]提供了该服务的其他细节描述。
4)伯克利大学的unix系统提供守护程序timed(8),来同步局域网上的系统时钟。
不像
ntp和dts,timed不在广域网范围内工作。
telnet客户的输出前三行是这是日期时间服务器的输出telnet客户的输出这也是
篇三:
山东大学数据库习题及答案
山东大学数据库系统课程试卷
a卷参考答案
一、简答(每小题5分,共25分)
1、如何理解空值(null),空值在参与运算时有哪些特点?
答:
空值null表示“不知道”或者“不存在”的含义。
不是指“0”,也不是“false”,也不是’’。
null参与的关系运算和算术运算结果均为null。
评分细则:
null的含义3分,null参与的运算特点2分
2、简述事务的概念及其相关特性。
答:
事物是访问并可能更新各种数据项的一个程序执行单元。
事物具有acid四种特性。
a指原子性:
事物的所有操作在数据库中要么全部正确反映出来,要么全部不反映。
c指一致性:
事物的隔离执行保持数据库的一致性。
i指隔离性:
尽管多个事物可以并发执行,但系统必须保证每一个事物都感觉不到系统中有其他事物在并发地执行。
d指持久性:
一个事物成功完成后,它对数据库的改变必须是永久的。
评分细则:
事物概念2分,事物的性质3分。
3、关系中的元组有先后顺序吗?
为什么?
答:
没有。
关系是元组的集合,而集合中的元素是没有顺序的,因此关系中的元组也就没有先后顺序。
评分细则:
第一问回答“有”,零分;第一问回答“没有”,2分,说明原因3分
4、设关系模式R(a,b,c)上有一个多值依赖ab。
如果已知R的当前关系中存
在着三个元组(a,b1,c1)、(a,b2,c2)、(a,b3,c3),那么这个关系中至少还应该存在哪些元组?
答:
(ab1c2),(ab2c1),(ab1c3),(ab3c1),(ab2c3),(ab3c2)
评分细则:
每一个元组1分。
5、简述时间戳排序协议。
答:
时间戳:
对于系统中的每一个事务ti,我们把一个唯一的固定的时间戳和它联系起来,记为ts(ti)。
每个数据项q需要与两个时间戳相关联:
w-timestamp(q)表示成功执行write(q)的所有失去的最大时间戳;R-timestamp(q)表示成功执行read(q)的所有事务的最大的时间戳。
假设事务ti发出read(q)操作:
a.若ts(ti) ti回滚。
b.若ts(ti)>=w-timestamp(q),则执行read操作,R-timestamp(q)被设为R-timestamp(q)
与ts(ti)两者中的最大值。
假设事务ti发出write(q)操作:
a.若ts(ti) 该值不会被产生。
因此,write操作被拒绝,ti回滚。
b.若ts(ti) ti回滚。
c.其他情况发生时,执行write操作,将w-timestamp(q)设为ts(ti)。
评分细则:
读规则2分,写规则3分
二、工厂需要建立一个管理数据库存储下列信息:
1、一个工厂内有多个车间,每个车间有车间号、车间主任姓名、车间地址和电话
2、一个车间内有多个工人,每个工人有职工号、姓名、年龄、性别和工种
3、一个车间生产多种产品,产品有产品号和价格
4、一个车间生产多种零件,一个零件也可以被多个车间制造。
零件有零件号、重量和
价格
5、一个产品由多种零件组成,一种零件也可以装配出多种产品。
6、产品与零件均存入仓库中
7、一个工厂有多个仓库,仓库有仓库号、仓库主任姓名、仓库地址和电话
要求:
1.画出该系统的e-R图
2.给出相应的关系模式(共10分)
答:
关系模式
工厂(厂名、厂长姓名)
车间(车间号、车间主任姓名、车间地址、电话、厂名)
工人(职工号、姓名、年龄、性别、工种、车间号)
仓库(仓库号、仓库主任姓名、仓库地址、电话、厂名)
产品(产品号、价格、车间号、仓库号)
零件(零件号、重量、价格、仓库号)
制造(车间号、零件号)
评分细则:
画e-R图5分,需要表明联系的基数;关系模式5分,基于实体和基于联系的关系模式都需要。
二、有关系模式R(a,b,c,d),其上的函数依赖集F={ac,ca,bac,dac},
要求:
(15分)
1、计算(ad)+
2、求F的正则覆盖Fc
3、求R的码
4、将R分解,使其满足bcnF且具有无损连接性
5、将R分解,使其满足3nF并具有无损连接性与保持依赖性
答:
(ad)+=acd
Fc={ac,ca,ba,da}
(bd)+=abcd,所以bd时候选码
分解为bcnF:
={ac,ab,bd}
分解为3nF:
={ac,ba,da,bd}
评分细则:
每一小题3分。
第一小题:
必须写明全部属性才能得分
第二小题:
正则覆盖不唯一,写明一个即可
第三小题:
要求写候选码,写超码不得分
第四小题:
如果学生的分解与答案不完全一致,可以适当给分
第五小题:
如果学生的分解与答案不完全一致,可以适当给分
四、有关系s(sno,sname,dept,sex,doRm,monitoR),c(cno,cname,cRedit,teacheR),sc(sno,cno,scoRe)。
关系s、c和sc分别表示学生信息、课程信息和学生选课情况。
请按要求表达下列查询与修改。
(42分)
其属性分别表示如下:
sno—学生编号,sname—学生姓名,dept—学生所在系,sex—学生性别,doRm—学生宿舍,monitoR—该学生的班长的学号,cno—课程编号,cname—课程名称,scoRe—成绩,teacheR—任课教师姓名,cRedit—课程学分。
1、查询计算机系全部学生的学号、姓名、性别。
(sql+关系代数+元组关系演算)selectsno,sname,sex
Froms
wheredept=’计算机’
sno,sname,sex(dept=’计算机’(s))
{t|u∈st[sno]=u[sno]∧t[sname]=u[sname]∧t[sex]=u[sex]∧u[dept]=’计算机’}
评分细则:
每小题3分
2、查询张明同学没有选修的课程的课程号和课程名称。
(sql+关系代数+元组关系演算)selectcno,cname
fromc
wherecnonotin(selectcnofromsc
wheresnoin
(selectsnofromswheresname=’张明’))
cno,cname(cno(c)-cno(sname=’张明’(s∞sc)))∞c
{t|u∈s┐v∈scw∈ct[cno]=w[cno]∧t[cname]=w[cname]∧u[sname]=’张明’∧u[sno]=v[sno]}
评分细则:
每小题3分。
本题的重点是要用关系代数减法、sql用not、关系演算用非,并且一定要在c表中做减法。
如果不从c表中做减法,每小题扣2分。
3、查询与其班长住在同一宿舍的学生的姓名。
(sql+关系代数+元组关系演算)selectsname
Fromss1,ss2
wheres1.montior=s2.snoands.dorm=s2.dorm
name(s.montior=s1.sno∧s.dorm=s1.dorm(ss1(s)))
{t|u∈sv∈st[sname]=u[sname]u[monitor]=v[sno]u[dorm=v[dorm]}
评分细则:
每小题3分,本题的重点是关系的重命名以及重命名后关系之间在where条件中的联系。
4、学生的课程成绩及格(>=60)表示学生已获得该课程的学分;求至少已获得50个学分的学生学号及其已获得学分数,要求按照已获得学分数降序排序显示。
(sql)
selectsno,sum(credit)astotal
froms
wheresnonotin(selectsnofromsc,c
o=oandscore>=60)
groupbysnohavingsum(credit)>50
orderbytotaldesc
评分细则:
本题3分。
重点是score>=60和groupsnohaving。
有score>=60和grouphaving的可得两分。
写明notin的得三分。
5、查询全部学生都选修的课程的课程号与课程名。
(sql+关系代数+元组关系演算)selectcno,cname
fromc
wherecnoin(selectcnofromsc
groupbycno
havingcount(*)=(selectcount(*)froms))
cno,cname(c∞(sno,cno(sc))sno(s))