最近利用NS2做TCP拥塞控制协议的仿真,发现很多变量的方法含义都是解释的不清楚,给核心模块修改带来很多麻烦,所以决定用最准确的语言解释成员变量.方法,术语等的含义.限于个人水平,若有错误请留言指正! 盲点一: int recover_;(tcp.h/tcp.cc) 这个变量的最准确的含义是发送端在收到3个重复的ACK或超时或者源抑制或者带有ECN-Echo的ACK时,发送端已经发送的最大序列号. 盲点二: 源抑制(source quench):当TCP/IP主机发送数据到另一主机时,如果速度达…
Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字段名等相关信息(如下图),这过程会花比较长的时间,因为它要分析语句的语法与语义.然后获得最优化后的执行计划(sql plan),并在内存中分配一定的空间保存该语句与对应的执行计划等信息. 2.当用户第二次请求或多次请求时,Oracle会自动找到先前的语句与执行计划,而不会进行Hard parse,而…
NS2中对TCP数据包和ACK包的TCP Sink类的主要实现代码详尽剖析,限于个人水平,如有错误请留言指出! TcpSink类的recv()方法: void TcpSink::recv(Packet* pkt, Handler*) { int numToDeliver; int numBytes = hdr_cmn::access(pkt)->size();//接收到的包的大小 // number of bytes in the packet just received hdr_tcp *th…
在写<云环境下基于预算和截止期约束的科学工作流弹性资源提供和调度>这篇文章时用到了cloudsim仿真软件进行实验仿真,在实验过程中遇到了当仿真执行时间过长时程序总是不能正常结束,由于仿真作业是通过LSF系统提交到集群执行的,通过读取作业执行的日志发现作业不能正常结束是由于程序占用内存过大导致的. 初步估计是由于采用java编写的程序,而java的垃圾回收机制不像C++那样是自己申请自己释放,java是通过一个垃圾回收机制对内存进行回收,因此只要一个对象还在被引用,他所占用的内存将不会被释放.…
无论在Window应用程序,还是Web应用程序以对用户友好的方式显示运行时的异常都是很有必要,尤其对于可能有很多不确定因素导致异常的Web应用程序;在传统的Web开发中,处理异常的方式——设计专门一个页面作为出现异常后跳转的页面,对于这个功能,ASP.net以及IIS有内建支持.而对于Ajax类型的应用程序来讲,一个页面就是一个程序,如果贸然将用户引导至另一个页面(即另一个程序),显得有些唐突. 但是Ajax程序也可以实现以上的异常处理方法(接下来的介绍中会提到):Asp.Net  Ajax有一…
仿真配置中SEED的概念:仿真随机种子,是产生随机数的种子值,反应随机数的状态.只要选定一个种子值,整个随机事件系统就固定了,复杂仿真的随机过程就成了一次实现.目的是测试仿真系统的稳健性,具体来说,针对不同的Seed 值进行一系列仿真,每次不同Seed 值对应的仿真结果相近,则表明建立的模型有较高的稳健性(Scalability).一般在发布仿真结果之前都要改变仿真种子进行多次测试,如果结果完全改变,则说明模块有疏漏,所得的结果只是一个特例,而不能完全反映系统的性能. 版权声明:本文为博主原创文…
本文记录使用IAR FOR AVR 使用过程中出现的问题,确保自己以后能够有史可查,也分享给遇到同样问题的朋友. 版本信息:IAR Assembler for AVR  5.40.0 (5.40.0.50237) 在使用IAR调试程序的时候,发现我定义的结构体全局变量即使我不去对他进行赋值,他的成员数值也在不断的变化,使得整个程序运行出现问题. 此问题没有完全了解清楚,只是暂时解决,附上问题过程的全部思路. 1:是否堆栈溢出,内存是否够用.查询编译生成的map可以有效的解决疑惑 对编译器进行一些…
1.从结构上分析jsp+servlet图解原理: 在基于mvc设计模式下的最原始的jsp+Servlet框架,在某种程度上是不能够达到mvc最直观的体现.当客户端发送请求到服务器时,服务器会将从客户端接收到的信息通过封装技术进行解析,在交给web容器,web容器会通过一篇web.xml的配置文件去找与之相匹配的servlet,此时servlet会开启一个线程,只要是符合web.xml中所配置的某一个servlet时,该servelt就会启动,然后servlet在去调用service或者servi…
开篇介绍 最近有人问我有关文件处理中空值处理的相关问题: OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示? 为什么选中了 Keep Nulls 但是数据库中没有 NULL 值? 为什么在 Flat File Source 中勾选上了 Retain null values..但目标表上显示的是一个当前日期,而不是 NULL ? 单开此文来解释这些非常容易混淆的概念. 项目需求和文件处理中的问题 在比较纯粹的 ETL 项目中都会碰到对空值的处理,特别是…
在java开发过程中有时候为了处理数据的速度更快,会把要处理的数据组装成list,把list作为过程的一个参数,在过程中批量处理,下面就以一个例子做简单的阐述,以此谨记. --药品目录智能审核 --说明:药品目录上传首先是保存在DB1建的临时表中ka19_temp,最终经过调用webservice接口调用DB2的过程PKG_DIRECTROYBUSINESS.WSBS_VALIDATE_DIRECTROY --创建type //这里的type可以等同于创建一个table CREATE OR RE…
读取pdf并且在web页面中显示 if (System.IO.File.Exists(f)) { Response.ContentType = "applicationpdf"; System.IO.FileStream reader = System.IO.File.OpenRead(f); byte[] data = new byte[reader.Length]; reader.Read(data, 0, (int)reader.Length); reader.Close();…
鉴于自己英语水平不高,在这里,将上一篇关于contiki 的timer的文章翻译为中文,让自己在学习的时候,更方便点.文中有许多不是很通顺的地方,将就吧. Timers Contiki系统提供了一套时钟库用于应用程序和系统本身.时钟库包含了检查时间超出.将系统从低功耗模式唤醒到预定时间,以及实时任务安排等功能.时钟也用于应用程序,让系统和其他一起工作,或者在恢复执行前进入低功耗模式一段时间. The Contiki Timer Modules Contiki有一个时钟模块和一套时钟:timer,…
EVALUation mode running with code size limit:2k 如果keil软件未破解,会限制程序的存储大小.第一是你的软件没有破解,不能编译2K以上的程序:这种情况下,没有编译出.hex文件,肯定是不好使的! 第二是使用仿真了,stm32的仿真程序最多只能到2K,如果是这种情况的话,实际应用是没有问题的,只是仿真会出问题,解决方法也是要使用注册机进行破解,…
1.在Android4.0环境下编译的actionbarsherlock.slidingmenu类库,能不能在4.0以下的版本中使用 相信很多人跟我一样,都以为在低版本(如Android2.1或2.3版本)编译的应用能够在高版本中运行,但高版本(比如Android3.0或4.0)中编译的应用恐怕就不能在低版本中运行.于是,我们可能就会想方设法地把一些在高版本中编译的代码,改成在低版本的Android SDK中编译,以便兼容.我们一直忽视了在<manifest>文件中关于兼容性的声明,如下面代码…
头文件:#include <boost/optional.hpp> using namespace boost; optional很像一个仅能存放一个元素的容器,它实现了"未初始化"的概念:如果元素未初始化,那么容器就是空的,否则,容器内就是有效的,已经初始化的值. 无参的optional()或者optional(boost::none)构造一个未初始化optional对象,参数boost::none是一个类似空指针的none_t类型常量,表示未初始化; optional&…
INFO: : cannot find INFO: /usr/lib64/libpthread_nonshared.aINFO: INFO: genclntsh: Failed to link libclntshcore.so.12.1 导致这个问题的原因是glibc升级到2.28版本之后就不提供/usr/lib64/libpthread_nonshared.a 这个静态链接库了, 解决方法是从archlinux aur中安装glibc 2.27 https://aur.archlinux.or…
最近在做的项目发布后出现了乱码的问题,既然出现了乱码很大的可能性是跟编码有关系,所以首先的解决方案就是重新对cookie进行编码, 在写入的cookie的时候编码,在读取的时候解码 在写入cookie的时候重新设置编码方式: HttpCookie cookname= new HttpCookie("name"); cookname.Value = HttpUtility.UrlEncode(textbox1.Value.ToString(), System.Text.Encoding.…
上一篇文章,提到了单例子类化的问题.正好最近,我在Stack Overflow看见一位国外高人,也谈及了单例子类化的一些内容.思考之后,总结了一些内容.其大意是利用NSDirectory存储不同子类的单例实例,这样可以很好的解决单例子类化的问题.OK,talk is cheap,show me the code! 多说无益,以下是我自己写的一段示例代码 #import "MySingleton.h" @implementation MySingleton static NSMutabl…
1.点击运行栏的这个灰色向下剪头: 2.单击“Edit Configurations”, 3.在出现的窗口上,勾选上:“Show command line afterwards” 或 “run with Python console” (不同版本的选项名不同,但都是同一意思)…
从输入 URL 到浏览器接收的过程中发生了什么事情? 原文:http://www.codeceo.com/article/url-cpu-broswer.html 从触屏到 CPU  首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米…
TCP 拥塞控制 相关名词 滑动窗口 tcp通过滑动窗口进行流量控制,所谓的窗口可以理解为接收端所能提供的缓冲区大小. TCP是一个滑动窗口协议,即一个TCP连接的发送端在某个时刻能发多少数据是由滑动窗口控制的 RTT(Round trip time) 表示从发送端到接收端的一去一回需要的时间. TCP在数据传输过程中会对RTT进行采样(即对发送的数据包及其ACK的时间差进行测量,并根据测量值更新RTT值) RTO (Retransmission TimeOut) 发送数据包,启动重传定时器,重…
我个人喜欢把PHPCMS当作博客来用,而作为一个博客,怎能少了文章置顶功能呢?其中用PHPCMS实现置顶功能非常简单,无非是修改下推荐位的名称为置顶,然后在文章列表中推送需要置顶的文章罢了. 不过博客系统中置顶文章可不会与文章列表中的文章重复,要解决这个问题其实也不难,看代码: 复制代码代码如下:{pc:content action="lists" catid="1" num="20" where="posids!=1" or…
jQuery 操作table中的tr换行的步骤如下: 1.获取当前tr var $tr = $(this).parents("tr"); 2.移动tr //上移 $tr.prev().before($tr); //下移 $tr.next().after($tr); //置顶 $(".table").prepend($tr); 在具体例子中的应用 效果 html代码: <!DOCTYPE html> <html> <head lang=&…
Wheeled mobile robots may be classified in two major categories, omnidirectional and nonholonomic. Omnidirectional mobile robots have no equality constraints on the chassis velocity $\dot{q}=(\dot{\phi},\dot{x},\dot{y})$ Omnidirectional wheeled mobil…
在编写网站系统时,难免会用到上移.下移.置顶的功能,今天小编就介绍一下我的思路. 首先,需要一张数据表: CREATE TABLE `a` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, `age` ) NOT NULL, `gender` ) NOT NULL, `psw` ) NOT NULL, `seq` ) NOT NULL, PRIMARY KEY (`id`) ) ENGINE DEFAULT CHARSET=utf8; ,…
命名规则 变量 变量名只能是数字.字母或下划线的任意组合 变量名的第一个字符不能是数字 不能使用关键字作为变量名 变量的定义要具有可描述性 变量名不宜过长.不宜使用中文.拼音 常量(常用在配置文件中) 程序运行过程中不会改变的量,即常量.全部字母大写(约定俗成). 书写形式 驼峰体(类名) 下划线方式(函数名) 引号的使用 单引号和双引号用法作用相同,只是在同行代码中有较多引号时需要单引双引交叉使用,以此来方便让解释器和程序员区分所作用域. 格式化输出 %s就是代表字符串占位符,除此之外,还有%…
Simulink求解器 Simulink仿真过程 Simulink 模型的执行分几个阶段进行.首先进行的是初始化阶段,在此阶段,Simulink 将库块合并到模型中来,确定传送宽度.数据类型和采样时间,计算块参数,确定块的执行顺序,以及分配内存.然后,Simulink 进入到"仿真循环",每次循环可认为是一个"仿真步".在每个仿真步期间,Simulink 按照初始化阶段确定的块执行顺序依次执行模型中的每个块.对于每个块而言,Simulink 调用函数来计算块在当前采…
1.拥塞窗口 发送方窗口的大小不仅取决于接收方,而.而且还取决于网络拥塞的情况. 发送方有2种信息:接收方通告的窗口大小和拥塞窗口的大小,实际的窗口大小事这两者中的最小者. 实际窗口大小 = min(rwnd,cwnd) rwnd:接收窗口大小. cwnd:拥塞窗口大小. 2.拥塞策略 TCP处理拥塞的一般策略基于3个阶段:慢速启动,拥塞避免和拥塞检测. 2.1.慢速启动:指数增长 TCP拥塞控制所使用的一种算法称为慢性启动(slow start),这种算法是基于这样的想法,它在开始时设置拥塞窗…
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege               什么是拥塞? 当大量的分组进入通信子网,超出了网络的处理能力时,就会引起网络…
最近在研究掌上英雄联盟,主要是用来给自己看新闻,顺便copy个界面改一下段位装装逼,可是在我copy的时候发现这个东西 当你滑动到一定距离的时候导航栏会置顶不动,这个特性在微博和淘宝都有,我看了@ms-uap的文章,淘宝的实现方式是改变顶部显示栏的大小,我本来准备按照他那个思路去做的,但发现效果不理想,在滑动的时候,底部的界面也跟着在滑动,这样使得很不友好,所以我准备自己实现一个 先上个最终效果图吧,图比较大,请耐心等待 思路大概是这样的 将这个界面分为两行 <Grid.RowDefinitio…