Ⅰ 深圳赛格大厦: 施工或出问题,相关单位要担责吗
对于这种关乎社会稳定的话题,我们一定要做到,“不传谣、不信谣!”所谓深圳赛格大厦施工或出现问题,这个谣言已经被相关专家给破解掉了。当然,如果真的有问题,建筑是有终身责任制的。
当地的监管部门和专家已经分析出了赛格大厦晃动的原因,结论是赛格大厦本身的主体质量是没有问题的。所谓晃动不是左右摇摆,而是上下震颤,这种现象和当时的自然条件以及地铁的环境都有关。
所以,我们作为一个局外人一定要“不信谣,不传谣”。
Ⅱ 预测区二维地震野外施工概述
4.1.3.1 地震勘探作业依据
本次二维地震勘探严格执行了以下标准:
1) 《煤炭煤层气地震勘探规范》。
2) 《中华人民共和国煤炭行业标准》MT/T897—2000。
3) 中华人民共和国煤炭部1987年颁发实施的《煤炭资源勘探工程测量规程》。
4) 质量管理严格按ISO国际标准进行。
5) 严格按照《山东省金乡县杨集地区矿产预测地震勘探设计》施工。
4.1.3.2 地震勘探试验
预测区共设计2个试验点,进行激发和接收因素及最佳观测范围调查等项试验。每个试验点分别在不同方向的测线上接收。
(1) 试验内容
试验点1(S1):位于L30线中部,主要进行井深试验:采用6m、8m、10m、12m、14m、16m等6种井深试验,单井激发,药量为1.5kg。沿L30线大号方向铺设1200m,即铺设121道,道距10m,检波器采用蹲点组合方式,以上内容均采用中点发炮(图4.2)。
试验点2(S2):位于Z10线上,主要进行药量试验:采用最佳激发井深14m,单井激发,分别采用0.5kg、1.0kg、1.5kg、2.0kg、2.5kg等不同药量试验,以确定最佳药量。沿Z10线方向铺设1200m,即铺设121道,道距10m,检波器采用蹲点组合方式,以上内容均采用中点发炮(图4.3)。
(2) 试验工作量
全区总计完成试验点2个,合计物理点22个。试验原始记录按《煤炭煤层气地震勘探规范》评级,全部合格。
(3) 微测井
为了了解低速带的速度变化规律,全区共完成2个微测井点,井深24m,采样间隔1m,折合物理点 16 个。
图 4. 2 S1 试验点不同井深试验对比
图 4. 3 S2 试验点不同药量试验对比
( 4) 试验结论
A. 原始资料特点
1) 本区原始资料信噪比、分辨率较高,在原始记录上一般能清晰地识别出煤层反射波。
2) 主要干扰波为表层低速松散层及外界环境引起的面波和高频随机噪音。
B. 施工参数分析
根据井深试验资料分析,激发井深浅于 12m 时面波及炮井干扰较强,井深大于 12m时资料面貌变化不大。图 4. 2 为 S1 点部分井深 ( 药量为 1. 5kg) 的监视记录 ( 6m、8m、10m、12m、14m、16m) 。
从药量试验资料可以看出,1. 5kg、2. 0kg 药量监视记录变化不大,0. 5kg 药量监视记录能量较弱 ( 图 4. 3 为部分药量试验单炮记录,井深 14m) ,为保证获得好的监视记录,本次采用 1. 5kg。
从以上监视记录可以看出,因本区目的层较深,施工过程中根据需要可以采用大排列接收。
C. 试验结论
综合分析试验点分析,确定如下施工参数: 本次全区统一为井深 14m,TNT 高速成型炸药激发,药量 1. 5kg。
4. 1. 3. 3 地震勘探施工方法
( 1) 激发方式
根据本区地表的岩性组合及潜水面的深度,采用单井激发,井深 14m,炸药采用 TNT高爆速成型炸药,药量 1. 5kg。
( 2) 接收条件
4 个 60Hz 数字检波器 2 串 2 并,60Hz 的检波器蹲点组合接收。
( 3) 观测系统
道距 15m,炮距 30m,偏移距 20m + 20m,覆盖次数 24 次,最大炮检距 1200 ~1440m,端点发炮,CDP 间隔 5m。
( 4) 仪器因素
仪器型号: 法国 SERCEL 公司产 408UL 数字地震仪。
采样率: 0. 5ms。
仪器道数: 120 ~144 道。
记录长度: 2. 0 ~2. 5s。
接收频带: 全频带接收。
记录格式: SEG -2 转 SEG - Y 格式。
记录密度: 6250BPI。
Ⅲ 我戴尔的笔记本,重启后一直显示正在关机,一会又蓝屏,怎么办重启前所有键盘都不能用了
360可以分析蓝屏的原因,然后帮你解决,不过需要连网,应该是驱动的原因,你试试看行不行。
Ⅳ 深圳赛格大厦设计结构图曝光,其结构图运用了什么科学原理
在微博、朋友圈等,深圳华强北赛格大厦的震撼消息刷屏。在SEG工作的8000多人在半小时内被疏散,引起各方关注。此前赛格大厦的结构图也在网上曝光,这说明赛格大厦的设计是中国结构工程师首次承担超高层钢混凝土结构的设计,并荣获第四届全国优秀建筑结构设计一等奖。
这也是设计师华谊公司面临的一大挑战。深圳赛格大厦由高级工程师、著名建筑师陈世民设计,获国家科技进步二等奖。赛格又高又直,像一个飘在空中的袋子。在概念设计的指导和控制下,当年的先进软件包括tat、SATWE、SAP91。先后采用ETABS对整个结构包括地下室在竖向荷载、风荷载、地震等作用下进行了计算分析,对剪力墙的主要构件逐一进行了计算和自编程序分析校核,最终确定了设计方案。
Ⅳ Integer n=100;//这行代码,java执行了什么 int n=100;//n值是放在dataseg ,还是栈本身有没有引用
1》 public static boolean isOdd(int n) {
return ((n%2)!=0) ? true : false;
}
2》写的不够好,欢迎指正
String a = "AABBBCDwEFdGHIiiiiiJK";
List<String> list = new ArrayList<String>();
Map<String,Object> maps = new HashMap<String,Object>();
for(int i=0;i<a.length();i++){
String str = String.valueOf(a.charAt(i));
if(i>0){
String old = list.get(list.size()-1);
if(old.equals(str)){
if(!maps.containsKey(old)){
maps.put(old, 2);
}else{
Integer num = (Integer) maps.get(old);
maps.put(old, num+1);
}
}
}
list.add(str);
}
for(Map.Entry en:maps.entrySet()){
System.out.println(en.getKey() + "==" + en.getValue());
}
3》php:
<?php
echo strrev("Hello World!");
?>
4》:
SELECT AVG(sal) AS v FROM emp WHERE deptno=10 AND job = '工程师'
UPDATE emp SET job = '经理' AND sal=sal+1000 WHERE NAME='JONES'
SELECT job FROM emp WHERE deptno = 10 GROUP BY job
DELETE FROM emp WHERE id = 100512
5》:
java计划任务吧。
Ⅵ SEG/EAEG三维建模工程进展
1988年,法国Nancy大学的J.L.Mallet推出了地质目标的计算机辅助设计(GOCAD)研究计划,目的是要开发一种新的地质目标计算机辅助设计方法和平台,以适应地质、地球物理和油藏工程的需要。国际勘探地球物理学家协会(SEG)和欧洲勘探地球物理学家协会(EAEG)对这项研究计划非常重视,在1992年末,成立了SEG/EAEG 3D建模委员会,开展了3D SEG/EAEG建模工程(SEM),在1994~1998年间,该委员会分别发表了三次SEM进展报告和修改报告以及两篇阶段报告。目前GOCAD研究计划和SEM工程的许多研究成果已经被国外的许多地球物理公司和石油公司使用,国外大型石油公司的地球科学专家预测,以模型为基础的数据采集、处理和解释已成为石油勘探技术各环节的纽带,对自然资源工业的新的变革将起到至关重要的作用。
SEG/EAEG工程目前努力的目标是帮助设计盐体和上冲断层的三维模型和在这些模型基础上的实际三维勘探的建模。考虑到这个工程的重要性和所涉及的范围,所以常常通过报告来通知全体成员有关它的进展,并结合通知征求资助。关于SEG/EAEG三维建模工程的第一份报告在SEG/EAEG三维建模委员会进展报告(1994)中和1994年第2期的《First Break》(P.57)中已给出。在SEG开罗会议、斯坦福勘查工程(SEP)和科罗里达矿业学院,波现象会议中心展示了他们的第二份报告成果。本节介绍第二份报告的核心内容。
1.6.1盐体模型工作进展
SEG/EAEG盐体模型的第一版本已经建立,并且可通过Internet获得它的GOCAD格式。这个版本主要描述岩体模型的结构组件,在X和Y方向上为9000ft,Z方向上为24000ft,图1.6显示岩体模型主要组成部分的三维可视化结果。
图1.6盐丘模型(F.Aminzadeh等,1994)
盐体周围的速度是典型的墨西哥湾沉积岩速度,它通过基于k-V0(k值的空间变化)曲线上的致密梯度线和一个地压力面来描述。然而,由于所使用的有限差分软件和可用计算机资源的局限性,用一个常密度来约束盐体模型。这个常密度假设和简单的速度梯度导致在盐体周围的沉积岩中没有地震反射。图1.7表示的是目前正在通过二维有限差分建模来研究的能够产生反射的两种速度模型,第一种技术(“尖脉冲”技术)使每层边界最近处的有限差分网络单元的速度增加了百分之几,第二种技术(“块”技术)交替地先增加然后减小模型中相连结各层的k-V0函数中的速度,因为这两种技术都能改变模型的地震响应,使用价值二维有限差分建模测试就正演合成的地震响应和计算代价来说这两种方法哪一个更合适。使用“尖脉冲”技术,已经获得盐体模型的二维横截面的初步效果。从这些初步结果来看,似乎说明“尖脉冲”技术更合适,当然,还需要更多的测试。
图1.7盐丘模型速度(F.Aminzadeh等,1994)
同时,一个使用“尖脉冲”技术的三维速度网已经产生并被提供给国家试验室(the National Labs)用来测试三维有限差分软件。
另一个广泛研究的领域是怎样利用美国能源部提供的资源在盐体模型上实现三维有限差分模拟。初步估计这所需要的计算资源远超过目前的预算,由于这个原因,决定使X、Y、Z方向上的模型尺寸减半。这样,总的尺寸减小8个因子。另外,记录时间减少2倍。炮点的数目减少4倍,总的计算量节省64倍。与模型边界有关的速度和结构保持不变。尺寸的减小使计算限制在速度网格范围内,速度网格的确定有一定的考虑,如果太小,计算量增加;如果太大,地震子波的中心频率减小,将导致盐体的具体细节特征不可见。目前使用的速度网格大小为80ft,期望得到大约15Hz的中心频率。另一个正在研究的问题是,使用推荐的二维有限差分模拟算子时,如何选择算子的次数。
除二维有限差分测试外,正在为产生三维零相位差分模拟作准备,许多现象诸如孔隙(光圈)、照明度、分辨率、阴影区域等问题将通过三维零相位模拟来确定。
分析了几个针对盐体模型的三维采集方案。当然关键问题是用减少炮点数来减少预算投资,将接收点的数目减少到与数据存取可接受的水平。所有这些必须实现,同时仍然要保证数据结果的质量。
1.6.2逆掩断层模型工作报告
地质模型。逆掩断层模型描述了一个不整合于早期延伸裂缝序列之上的复杂上冲地层,这个三维逆冲结构体已经从二维对称平衡剖面上构造而成。它表现为两个相交的上冲断层加上一个附加的横向上逐渐消失的隐蔽冲断层,逆掩断层及底部的一些断层已经被利物浦大学的断层分析组确证。需要指出的是这个模型包括了各种复杂情况:中央一个冲断背斜,外部单斜褶皱和平台区域。逆掩断层(上冲断层)的顶部被风化,并被沉积物表层所覆盖,管道和展开在透镜体上的裂隙在一些层中出现,层的总数为17,模型的尺寸20km×20km×4km,三维表面模型已用GOCAD软件建立并以GOCAD格式存贮。层面模型用边长25m的立方体组成的规则网格表示,每个单元用该单元中心点的层位标记,以生成标记体网,图1.8表示了一个网格化模型的子域,模型中两相交的断层和它上部的通道清晰可见。
图1.8超覆构造模型(F.Aminzadeh等,1994)
地震速度选取。速度场的定义是将模型用于实际的关键,使用逆掩断层模型的目标在于研究当前不同类型的复杂情况下速度估计问题,例如在地下深400m的浅部重要速度变化和复杂部位横向上的重要速度变化。由于事先是很难判断一个给定的复杂速度场是否合理,因此速度的选择实际上是一个迭代过程,每次循环都包括了由地质工作者定义的三维速度,并由此产生一个模型倾向上二维炮点的全排列及其处理。每层都给定一个与岩性和深度有关的速度,对大多数层位来说,存在范围在2500m·s-1到6000m·s-1的常速度的规律。此外,对表层和另外三层引入垂向和横向速度不均匀性:在表层中,速度横向上在1900m·s-1到3100m·s-1之间变化,相应的长度约为1km,结果造成信号的视周期序列的结构假象(在时间剖面中),在其他三个非均质层中,相应的长度是好几千米。对于这体网格化来说,两均匀同质层之间的界面的几何形态是通过一个由等于离散体网格跨距组成的不规则面来近似的,当这个网格间距约为波长的十分之一时,将导致离散界面的每一步产生绕射。理想情况下,需要对与两层之间的界面相交的那些单元进行计算,得到一个加权速度,实际所采用的方法是对模型的离散用偏移网格坐标轴来完成,用一个算子长度大约是50m的去假频滤波器来给出最终的速度网格。
数值参数的确定。逆掩断层模型的数值参数在二维中通过收敛测试来确定,在三维空间实际上是通过取自于逆掩断层模型的垂直速度剖面构筑而成的水平层状介质来确定的。利用于轴对称介质的比较算法,对结果进行比较,选择中心频率等于15Hz的雷克源,空间域十阶,时间域二阶,时间间隔1ms,空间间隔25m,这组参数得到的结果似乎可满足要求。如果我们考虑对10km×10km×4km大小的子域进行一次炮点模拟(中间放炮)并且记录延迟3秒的地震波曲线(这足够记录炮检距为4km的反射),在一个每秒10亿次浮点操作的超级向量计算机上应用这个参数集有以下性能:对330M内存来说,每个三维炮点需运算70min,这个估计已经在实际三维模拟中证实(见图1.9的地震曲线图)。
图1.9超覆模型(F.Aminzadeh等,1994)
模拟中的主要阶段。鉴于数值计算的规模,必须把地震建模分成不同的阶段。在美国国家实验室的帮助下,前两个阶段在1994年完成,随着第一阶段结果的成功评估接着进行下阶段的工作。第一阶段的目的是检查模型与客观物体的相关性及研究倾向方向上合适的炮间距。研究的关键问题是三维效果和由于浅部速度变化而产生的失真问题。这阶段相当于在y=11300m处位于模型的复杂区域的倾向上(即x方向)获得一条线的炮点排列,建议记录240个炮点,这些点沿着这个区域面以炮点间距50m排列,波源的中心频率是15Hz(雷克子波),地震波场在一个子域内x和y方向上都是50m间隔的网格面上的每个网格点上以三维方式记录下来,这个子域相应的有一个最大4000m的炮检距。另外,一对深井VSP结果沿着这个剖面记录下来,15个炮点被定位在一个井中用来模拟一个相反的三维噪声监测(walk-away)。在1994年7月底完成综合结果。国家试验室和IFP各自计算一半的炮点,这个阶段的总的存贮需要估计是21GB。这是基于一个采样率为4ms的3s记录来估计的,最终也可能使用一个8ms的采样率。如使用4ms的采样率和单浮点存贮(32位),每道相应为3.1kb;总共将有670万道。第二阶段建议记录一个441个炮点的初始三维测量,这些炮点在一个12km的x和y方向间隔为600m规则网上击发,每个炮点由一个小的规则检波器网记录,记录区域是以炮点位置为中心的8km×8km的正方形,x方向和y方向的间隔是50m(每炮点160×160道)。这完整的叠加将等于49(7×7),总的存贮量估计是35GB(10.3兆道)。数据集的目的首先是为了获得三维叠后量和测试叠前偏移软件(炮点道集偏移),然而,由于没有边缘效应影响区域仅是8km×8km,这个数据集仍然是非常有限的,并且炮间距太大而不能有效测试大多数处理软件。
1.6.3计算技术和算法工作进展
美国国家试验室的一个主要的研发努力是实现IFP三维反余弦波传播代码的并行版本。第一个通过IFP顺序代码获得来作为参考;第二个由SANDLA实验室使用Paragon产生,两图形很相似。随着时间的增加,差值减小,差的极值处与地震记录的极值相对应。例如,用时间和值表示在图形上的地震记录的最高幅值,最大差值也出现在同样时间并且相对误差小于0.0001。它们可通过在不同平台上的算法表示的差异来解释:一种是IBM的表示方法,另一种是IEEE的表示方法。结论是数据集的生成接近初始模型。
Ⅶ seg这个血液化验项目的中文名称是什么
你好,血液检查中INR是指国际标准化比值,是凝血功能中的一项指标。。。
Ⅷ 拓词数据同步不了怎么办,网络正常
传输控制协议(Transmission Control Protocol, TCP)
TCP协议主为了在主机间实现高可靠性的包交换传输协议。本文将描述协议标准和实现的一些方法。因为计算机网络在现代社会中已经是不可缺少的了,TCP协议主要在网络不可靠的时候完成通信,对军方可能特别有用,但是对于政府和商用部门也适用。TCP是面向连接的端到端的可靠协议。它支持多种网络应用程序。TCP对下层服务没有多少要求,它假定下层只能提供不可靠的数据报服务,它可以在多种硬件构成的网络上运行。下面的图是TCP在层次式结构中的位置,它的下层是IP协议,TCP可以根据IP协议提供的服务传送大小不定的数据,IP协议负责对数据进行分段,重组,在多种网络中传送。
TCP的上面就是应用程序,下面是IP协议,上层接口包括一系列类似于操作系统中断的调用。对于上层应用程序来说,TCP应该能够异步传送数据。下层接口我们假定为IP协议接口。为了在并不可靠的网络上实现面向连接的可靠的传送数据,TCP必须解决可靠性,流量控制的问题,必须能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,同时TCP必须解决连接问题,这样TCP才能称得上是面向连接的,最后,TCP也必须能够解决通信安全性的问题。
网络环境包括由网关(或其它设备)连接的网络,网络可以是局域网也可以是一些城域网或广域网,但无论它们是什么,它们必须是基于包交换的。主机上不同的协议有不同的端口号,一对进程通过这个端口号进行通信。这个通信不包括计算机内的I/O操作,只包括在网络上进行的操作。网络上的计算机被看作包传送的源和目的结点。特别应该注意的是:计算机中的不同进程可能同时进行通信,这时它们会用端口号进行区别,不会把发向A进程的数据由B进程接收的。
进程为了传送数据会调用TCP,将数据和相应的参数传送给TCP,于是TCP会将数据传送到目的TCP那里,当然这是通过将TCP包打包在IP包内在网络上传送达到的。接收方TCP在接收到数据后会通信上层应用程序,TCP会保证接收数据顺序的正确性。虽然下层协议可能不会保证顺序是正确的。这里需要说明的是网关在接收到这个包后,会将包解开,看看是不是已经到目的地了,如果没有到,应该走什么路由达到目的地,在决定后,网关会根据下一个网络内的协议情况再次将TCP包打包传送,如果需要,还要把这个包再次分成几段再传送。这个落地检查的过程是一个耗时的过程。从上面,我们可以看出TCP传送的基本过程,当然具体过程可能要复杂得多。
在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。TCP只是调用IP接口,IP向TCP提供所有TCP需要的服务。通过下图我们可以更清楚地看到TCP协议的结构。
上面已经说过了,TCP连接是可靠的,而且保证了传送数据包的顺序,保证顺序是用一个序号来保证的。响应包内也包括一个序列号,表示接收方准备好这个序号的包。在TCP传送一个数据包时,它同时把这个数据包放入重发队列中,同时启动记数器,如果收到了关于这个包的确认信息,将此包从队列中删除,如果计时超时则需要重新发送此包。请注意,从TCP返回的确认信息并不保证最终接收者接收到数据,这个责任由接收方负责。
每个用于传送TCP的通道都有一个端口标记,因为这个标记是由每个TCP终端确定的,因此TCP可能不唯一,为了保证这个数值的唯一,要使用网络地址和端口号的组合达到唯一标识的目的,我们称这个为了套接字(Socket),一个连接由连接两端的套接字标识,本地的套接字可能和不同的外部套接字通信,这种通信是全双工的。
通过向本地端口发送OPEN命令及外部套接字参数建立连接,TCP返回一个标记这个连接的名称,以后如果用户需要使用这个名称标记这个连接。为了保存这个连接的信息,我们假设有一个称为传输控制块(Transmission Control Block,TCB)的东西来保存。OPEN命令还指定这个连接的建立是主动请求还是被动等待请求。下面我们要涉及具体的功能了,TCP段以internet数据报的形式传送。IP包头传送不同的信息域,包括源地址和目的地址。TCP头跟在internet包头后面,提供了一些专用于TCP协议的信息。下图是TCP包头格式图:
源端口:16位;
目的端口:16位
序列码:32位,当SYN出现,序列码实际上是初始序列码(ISN),而第一个数据字节是ISN+1;
确认码:32位,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码;
数据偏移量:4位,指示何处数据开始;
保留:6位,这些位必须是0;
控制位:6位;
窗口:16位;
校验位:16位;
优先指针:16位,指向后面是优先数据的字节;
选项:长度不定;但长度必须以字节记;选项的具体内容我们结合具体命令来看;
填充:不定长,填充的内容必须为0,它是为了保证包头的结合和数据的开始处偏移量能够被32整除;
我们前面已经说过有一个TCB的东西了,TCB里有存储了包括发送方,接收方的套接字,用户的发送和接收的缓冲区指针等变量。除了这些还有一些变量和发送接收序列号有关:
发送序列变量
SND.UNA - 发送未确认
SND.NXT - 发送下一个
SND.WND - 发送窗口
SND.UP - 发送优先指针
SND.WL1 - 用于最后窗口更新的段序列号
SND.WL2 - 用于最后窗口更新的段确认号
ISS - 初始发送序列号
接收序列号
RCV.NXT - 接收下一个
RCV.WND - 接收下一个
RCV.UP - 接收优先指针
IRS - 初始接收序列号
下图会帮助您了解发送序列变量间的关系:
当前段变量
SEG.SEQ - 段序列号
SEG.ACK - 段确认标记
SEG.LEN - 段长
SEG.WND - 段窗口
SEG.UP - 段紧急指针
SEG.PRC - 段优先级
连接进程是通过一系列状态表示的,这些状态有:LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT和 CLOSED。CLOSED表示没有连接,各个状态的意义如下:
LISTEN - 侦听来自远方TCP端口的连接请求;
SYN-SENT - 在发送连接请求后等待匹配的连接请求;
SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;
ESTABLISHED - 代表一个打开的连接,数据可以传送给用户;
FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
FIN-WAIT-2 - 从远程TCP等待连接中断请求;
CLOSE-WAIT - 等待从本地用户发来的连接中断请求;
CLOSING - 等待远程TCP对连接中断的确认;
LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认;
TIME-WAIT - 等待足够的时间以确保远程TCP接收到连接中断请求的确认;
CLOSED - 没有任何连接状态;
TCP连接过程是状态的转换,促使发生状态转换的是用户调用:OPEN,SEND,RECEIVE,CLOSE,ABORT和STATUS;传送过来的数据段,特别那些包括以下标记的数据段SYN,ACK,RST和FIN;还有超时,上面所说的都会时TCP状态发生变化。
下面的图表示了TCP状态的转换,但这图中没有包括错误的情况和错误处理,不要把这幅图看成是总说明了。
3.3. 序列号
请注意,我们在TCP连接中发送的字节都有一个序列号。因为编了号,所以可以确认它们的收到。对序列号的确认是累积性的,也就是说,如果用户收到对X的确认信息,这表示在X以前的数据(不包括X)都收到了。在每个段中字节是这样安排的:第一个字节在包头后面,按这个顺序排列。我们需要认记实际的序列空间是有限的,虽然很大,但是还是有限的,它的范围是0到2的32次方减1。我想熟悉编程的一定知道为什么要在计算两个段是不是相继的时候要使用2的32次方为模了。TCP必须进行的序列号比较操作种类包括以下几种:
(a) 决定一些发送了的但未确认的序列号;
(b) 决定所有的序列号都已经收到了;
(c) 决定下一个段中应该包括的序列号。
对于发送的数据TCP要接收确认,处理确认时必须进行下面的比较操作:
SND.UNA = 最老的确认了的序列号;
SND.NXT = 下一个要发送的序列号;
SEG.ACK = 接收TCP的确认,接收TCP期待的下一个序列号;
SEG.SEQ = 一个数据段的第一个序列号;
SEG.LEN = 数据段中包括的字节数;
SEG.SEQ+SEG.LEN-1 = 数据段的最后一个序列号。
请注意下面的关系:
SND.UNA < SEG.ACK =< SND.NXT
如果一个数据段的序列号小于等于确认号的值,那么整个数据段就被确认了。而在接收数据时下面的比较操作是必须的:
RCV.NXT = 期待的序列号和接收窗口的最低沿;
RCV.NXT+RCV.WND-1 = 最后一个序列号和接收窗口的最高沿;
SEG.SEQ = 接收到的第一个序列号;
SEG.SEQ+SEG.LEN-1 = 接收到的最后一个序列号;
上面几个量有如下关系:
RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND 或 RCV.NXT =< SEG.SEQ+SEG.LEN-1 < RCV.NXT+RCV.WND
测试的第一部分是检查数据段的开始部分是否在接收窗口中,第二部分是检查数据段的结束部分是否也在接收窗口内;上面两个检查通过任何一个就说明它包括窗口要求的数据。实际中的情况会更复杂一些,因为有零窗口和零数据段长,因此我们有下面四种情况:
段长度
接收窗口
测试
0
0
SEG.SEQ = RCV.NXT
0
>0
RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND
>0
0
不可接受
>0
>0
RCV.NXT =< SEG.SEQ < RCV.NXT+RCV.WND或RCV.NXT =< SEG.SEQ+SEG.LEN-1 < RCV.NXT+RCV.WND
请注意接收窗口的大小可以为零,在窗口为零时它只用来接收ACK信息,因此对于一个TCP来说,它可以使用零大小窗口在发送数据的同时接收数据。即使接收窗口的大小为零,TCP必须处理所有接收到信息的RST和URG域。
我们也应用计数的方式保护了一些特定的控制信息,这是通过隐式地使用一些控制标记使数据段能够可靠地重新发送(或确认)为达到的。控制信息并不在段数据空间中传送,因此,我们必须采用隐式指定序列号进行控制。SYN和FIN是需要保护的控制量,这两个控制量也只在连接打开和关闭时使用。SYN被认为是在第一个实际数据之间的数据,而FIN是最后一个实际数据之后的数据。段长度(SEG.LEN)包括数据和序列号空间,如果出现了SYN,那么SEG.SEQ是SYN的序列号。
初始序列号选择
协议对于特定连接被重复使用没有什么限制。连接是由一对套接字定义的。新的连接实例被定义为连接的另一次恢复,这就带来了问题:TCP如果确定多个数据段是从以前连接的另一次恢复中取得的呢?这个问题在连接迅速打开和关闭,或因为内存原因被关闭然后又迅速建立后显示特别突出。
为了避免混乱,用户必须避免因此恢复使用某一连接,而使序列号发生混乱。我们必须保证序列号的正确性,即使TCP失败,根本不知道以前的序列号是什么的情况下也要保证序列号的正确性。当新的连接被创建时,产生一个新的初始序列号(ISN)产生子,它用来选择一个新的32位ISN。产生子和32位时钟的低度位字节相关,低位字节的刷新频率大概是4微秒,因此ISN的循环时间大概是4.55小时。因此我们把网络包的最长生存时间(MSL)小于4.55小时,因此我们可以认为ISN是唯一的。对于每个连接都有发送序列号和接收序列号,初始发送序列号(ISS)由发送TCP选择,而初始接收序列号是在连接建立过程中产生的。
对于将要连接或初始化的连接,两个TCP必须和对方的初始序列号同步。这通过交换一个控制位SYN和初始序列号完成。我们把带有SYN的数据段称为"SYNs"。同步的获得过程这里就不重复了,每方必须发送自己的序列号并返回对对方序列号的确认。
1) A --> B SYN 本方序列号是X
2) A <-- B ACK 本方序列号被确认
3) A <-- B SYN 对方序列号是Y
4) A --> B ACK 确认对方序列号
上面的第2步和第3步可以合并,这时可以成为3阶段,所以我们可以称它为三消息握手。这个过程是必须的,因为序列号不和全局时钟关联,TCP也可以有不同的机制选择ISN。接收到第一个SYN的接收方不可能知道这个数据段是不是被延时,除非它记住了在连接上使用的最近的序列号(这通常是不可能的),因此它必须要求发送者确认。
为了保证TCP获得的确认是刚才发送的段产生的,而不是仍然在网络中的老数据段产生的,因此TCP必须在MSL时间之内保持沉默。在本文中,我们假设MSL=2小时,这是出于工程的需要,如果用户觉得可以,他可以改变MSL。请注意如果TCP重新初始化,而内存中的序列号正在使用,不需要等待,但必须确认使用的序列号比当前使用的要大。
如果一台主机在未保留任何序列号的情况下失败,那么它应该在MSL时间之内不发出任何数据段。下面将会这一情况进行说明。TCP的实现可以不遵守这个规定,但是这会造成老数据被当成新数据接收,而新数据被当成老数据拒绝的情况。
每当数据段形成并进入输出队列,TCP会为它指定序列空间中的一个值。TCP中多复本检测和序列算法都依赖于这个地址空间,在对方发送或接收之前不会超过2的32次方个包存在于输出队列中。所有多余的数据段都会被删除。如果没有这个规定,会出现多个数据段被指定同一个序列号的情况,会造成混乱。数据段中序列号的多少和数据段中的字节数一样多。
在通常情况下,TCP保留下一个要发送的序列号和还未确认的最老的序列号,不要在没有确认的时候就再次使用,这样会有些风险,也正是因为这样的目的,所以序列空间很大。对于2M的网络,要4.5小时来耗尽序列空间,因为一个数据段可能的最大生存时间也不过十几分之一秒,这就留下了足够的空间;而在100M的网络上需要5.4分钟,虽然少了点,但也可以了。
如果在实现TCP时没有为保存序列号留下空间,那清除多余的包可能就不能实现了,因此推荐这种类型的TCP实现最好在失败后等待MSL时间,这样保证多余的包被删除。这种情况有时候也可能会出现在保留序列号的TCP实现中。如果TCP在选择一个另一个TCP连接正在使用的序列号时,这台主机突然失败了,这就产生了问题。这个问题的实质在于主机不知道它失败了多久,也不知道多余的复本是不是还在网络中。
处理这种问题的方法是等待MSL时间,如果不这样就要冒着对方错误接收数据的危险,要等待的时间也就称为“沉默时间”。实现者可以让用户选择是不是等待,但是无论用户如何也不见得非要等待MSL时间。
3.4. 建立一个连接
建立连接应用的是三消息握手。如果双方同时都发送SYN也没有关系,双方会发现这个SYN中没有确认,于是就知道了这种情况,通常来说,应该发送一个"reset"段来解决这种情况。三消息握手减少了连接失败的可能性。下面就是一个例子,在尖括号是的就是数据段中的内容和标记。其它的就不多说了。
在第2行,TCP A发送SYN初始化序列号,表示它要使用序列号100;第3行中,TCP B给出确认,并且期待着A的带有序列号101的数据段;第4行,TCP A给出确认,而在第5行,它也给出确认,并发送了一些数据,注意第4行的序列号与第5号的一样,因为ACK信息不占用序列号空间内的序列号。同时产生请求的情况如下图所示,只复杂一点。
使用三消息握手的主要原因是为了防止使用过期的数据段。为了这个目的,必须引入新的控制消息,RESET。如果接收TCP处理非同步状态,在接收到RESET后返回到LISTEN状态。如果TCP处理下面几种状态ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT时,放弃连接并通过用户。我们下面就详细说明后一种情况。
通过上面的例子,我们可以看出TCP连接是如何从过期数据段的干扰下恢复的。请注意第4行和第5行中的RST(RESET信号)。
半开连接和其它非正常状态
如果一方在未通过另一方的情况下关闭连接,或双方虽然失败而不同步的情况我们称为半开连接状态。在一方试图发送数据时连接会自动RESET。然而这种情况毕竟属于不正常情况。应该做出相应的处理。如果A处的连接已经关闭,B处并不知道。当B希望发送数据到A时,就会收到RESET信号,表示这个TCP连接有误,要中止当前连接。
假设A和B两个进程相互通信的时候A的TCP发生了失败,A依靠操作系统支持TCP的存在,通常这种情况下会有恢复机制起作用,当TCP重新恢复的时候,A可能希望从恢复点开始工作。这样A可能会试图OPEN连接,然后在这个它认为还是打开的连接上传送数据,这时A会从本地(也就是A的)TCP上获得错误消息“未打开连接”。A的TCP将发送包括SYN的数据段。下面的例子将显示这一过程:
上面这个例子中,A方收到的信息并没有确认任何东西,这时候A发现出了问题,于是发送了RST控制信息。另一种情况是发生在A失败,而B方仍然试图发送数据时,下面的例子可以表示这种情况,请注意第2行中A对B发送来的信息不知所云。
在下面的例子中,A方和B方进行的被动连接,它们都在等待SYN信息。过期的包传送到B方使B回应了,而收到回应的A却发现不对头,传送RST控制信息,B方返回被动LISTEN状态。
现实中的情况太多了,我们列举一些产生RST控制信息的规则如下:通常情况下,RST在收到的信息不是期待的信息时产生。如果在不能确定时不要轻易发送RST控制信息。下面有三类情况:
如果连接已经不存在,而发送来的消息又不是RST,那么要返回RST。如果想拒绝对不存在的连接进行SYN,可以使用这种办法。如果到达的信息有一个ACK域,返回的RST信息可以从ACK域中取得序列号,如果没有这个域,就把RST的序列号设置为0,ACK域被设备为序列号和到达段长度之和。连接仍然处于CLOSE状态。
如果连接处于非同步状态(LISTEN,SYN-SENT,SYN-RECEIVED),而且收到的确认是对未发出包的确认或是接收到数据段的安全级别与不能连接要求的相一一致时,就发送RST。如果SYN未被确认时,而且收到的数据段的优先级比要求的优先级要高,那么要么提高本地优先级(得事先征得用户和系统的许可)要么发送RST;如果接收数据段的优先级比要求的优先级低,就算是匹配了,当然如果对方发现优先级不对提高了优先级,在下一个包中提高了优先级,这就不算是匹配了。如果连接已经进入SYN,那么接收到数据段的优先级必须和本地优先级一样,否则发送RST。如果到达的信息有一个ACK域,返回的RST信息可以从ACK域中取得序列号,如果没有这个域,就把RST的序列号设置为0,ACK域被设备为序列号和到达段长度之和。连接仍然处于与原来相同的状态。
如果连接处于同步状态(ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT),任何超出接收窗口的序列号的数据段都产生如下结果:发出一个空确认数据段,此段中包括当前发送序列号,另外还包括一个确认指出希望接收的下一个数据段的序列号,连接仍然保存在原来的状态。如果因为安全级,优先级之类的问题,那就发送RST信号然后进入CLOSED状态。
Ⅸ 中国石油大学有哪些教授的课是必须要去蹭的
作为一个即将踏入大三的老学姐,让我来解答一下哪些教授的课是必须去蹭的吧。
第一个当然是我们冷凌老师的《刑法概论》了,这门课,我选了两年了都没选上,可见老师的魅力了,当你在选课开始一个小时后,你就会发现冷凌老师的课已经被选完了。
冷凌老师主讲课程是刑法学,犯罪学等,当然我们冷老师获得过很多奖项,比如2006年青岛市社科成果二等奖;2006年东营市社科成果二等奖;2007年山东省社科成果三等奖;2013年东营市社科成果二等奖;学校思想政治教育优秀论文三等奖;多次被评为山东省大学生社会实践优秀指导教师、大学生课外科技活动优秀指导教师、大学生科技文化活动优秀指导教师、社团活动十佳指导教师等;校级优秀班主任等荣誉,所以强烈推荐她的课。