- 博客(29)
- 资源 (4)
- 收藏
- 关注
转载 缓冲区溢出原理
缓冲区溢出的原因是由于字符串处理函数(gets等)没有对数组的越界加以监视和限制,结果覆盖了老的堆栈数据。程序在内存中的存储如图所示:程序是从内存低端向内存高端按顺序执行的,堆栈的生长方向与内存的生长方向相反,因此在堆栈中压入的数据超过预先给堆栈分配的容量时,就会出现堆栈溢出,从而使得程序运行失败;如果发生栈溢出的是大型程序还有可能会导致系统崩溃。看一段简单程序的执行过程中
2013-11-03 23:33:44 1018 1
转载 汇编各个寄存器详解
ebp和esp是32位的SP,BPesp是堆栈指针ebp是基址指针ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(E
2013-11-03 02:14:47 1346
转载 ESP和EBP解释
一.概念分析经常看到下面这两句:pushl %ebp movl %esp,%ebp -------------------------------------------------------------------------------- esp是堆栈指针 ebp是基址指针 那两条指令的意思是 将栈顶指向 ebp 的地址 ----
2013-11-03 01:43:52 1259
转载 14、tcp未来的发展
在TCP刚出世的时候,其主要工作环境是以太网和SLIP之类的低速网络。随着高速网络的出现,让TCP协议的吞吐量更大,效率更高的要求就愈来愈迫切。为此,TCP增加了三个重要机制来对应现在的变化,他们是路径MTU发现。 窗口扩大选项和时间戳。 T/TCP(增加了事务功能的TCP协议)。 1.路径MTU发现 顾名思义路径MTU指的是源主机到墓地主机之间的路径的可传送最大单元的大小。其原理
2013-11-02 00:24:54 1072
转载 13、tcp的坚持计时器、保活计时器
TCP一共有四个主要的定时器,前面已经讲到了一个--超时定时器--是TCP里面最复杂的一个,另外的三个是:坚持定时器 保活定时器 2MSL定时器 其中坚持定时器用于防止通告窗口为0以后双方互相等待死锁的情况;而保活定时器则用于处理半开放连接1.坚持定时器坚持定时器的原理是简单的,当TCP服务器收到了客户端的0滑动窗口报文的时候,就启动一个定时器来计时,并在定时器溢出的时候向向客
2013-11-02 00:23:10 1200
转载 12、tcp的超时和重传
超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。1.超时超时时间的计算是超时的核心部分,TCP要求这个算法能大致估计出当前的网络状况,虽然这确实很困难。要求精确的原因有两个:(1)定时长久会造成网络利用率不高。(2)定时太短会造成多次重传,使得网络阻塞。
2013-11-02 00:20:26 622
转载 11、tcp交互数据流,成块数据流
目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等。这些协议又可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等。(2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率。针对这两种情
2013-11-02 00:14:29 602
转载 10、tcp连接和建立
TCP是一个面向连接的协议,所以在连接双方发送数据之前,都需要首先建立一条连接。这和前面讲到的协议完全不同。前面讲的所有协议都只是发送数据而已,大多数都不关心发送的数据是不是送到,UDP尤其明显,从编程的角度来说,UDP编程也要简单的多----UDP都不用考虑数据分片。书中用telnet登陆退出来解释TCP协议连接的建立和中止的过程,可以看到,TCP连接的建立可以简单的称为三次握手,而连接的中
2013-11-02 00:05:52 633
转载 9、tcp协议
终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读。前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西。TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后
2013-11-02 00:03:10 572
转载 8、DNS域名系统
前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非常不好记,于是就出现了DNS系统1.DNS系统介绍DNS的全称是Domain Name System。它负责把FQDN(就是以"."分隔结尾的名字)翻译成一个IP。最初的DNS系统使用的是一个
2013-11-01 23:55:07 701
转载 7、单播多播
1.单播,多播,广播的介绍1.1.单播(unicast)单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说,就是网卡的MAC地址(不是FF-FF-FF-FF-FF-FF这样的地址)。现在的具有路由功能的主机应该可以将单播数据定向转发,而目的主机的网 络接口则可以过滤掉和自己MAC地址不一致的数据。
2013-11-01 23:48:07 794
转载 5、ip选路
1.静态IP选路1.1.一个简单的路由表选路是IP层最重要的一个功能之一。前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由。这里就不重复了。首先来看看一个简单的系统路由表。Destination Gateway Genmask Flags Metric Ref Use Iface192.168.11.0
2013-11-01 23:37:09 690
转载 4、icmp协议
1.IMCP协议介绍前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。IC
2013-11-01 23:35:18 897
转载 3、ip协议、ARP协议
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。1.IP协议IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达
2013-11-01 23:33:31 764
转载 2、数据链路层
数据链路层有三个目的:为IP模块发送和 接收IP数据报。 为ARP模块发送ARP请求和接收ARP应答。 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过。至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦)数据链路层
2013-11-01 23:31:25 626
转载 1、基本概念
为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。但是简单的连到一起是远远不够的,就
2013-11-01 23:29:31 570
转载 6-UDP协议
1.UDP简要介绍UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议。 2.UDP协议头2.1.UDP端口号由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包。端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以后从外面传进
2013-11-01 23:26:43 666
转载 数据链路层
1.概述 数据链路层属于计算机网络的底层,使用的信道主要有点对点信道和广播信道两种类型。 在TCP/IP协议族中,数据链路层主要有三个目的: 1)为IP模块发送和接收数据 2)为ARP模块发送ARP请求和接收ARP应答 3)为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多
2013-11-01 16:49:42 873
原创 贪心法-带有限期的作业排序
问题描述–假定在一台机器上处理n个作业,每个作业均可在单位时间内完成;同时每个作业i都有一个截至期限di>0,当且仅当作业i在其截至期限以前被完成时,则获得pi>0的效益。–问题: 求这n个作业的一个子集J,其中的所有作业都可在其截至期限内完成。——J是问题的一个可行解。–可行解J中的所有作业的效益之和是 ,具有最大效益值的可行解是该问题的最优解。目标函数:–约束条件:
2013-10-30 00:40:58 6666 1
原创 贪心法-背包问题
贪心方法的一般策略–问题的一般特征:问题的解是由n个输入的、满足某些事先给定的条件的子集组成。–一般方法根据题意,选取一种度量标准。然后按照这种度量标准对n个输入排序,并按序一次输入一个量。如果这个输入和当前已构成在这种量度意义下的部分最优解加在一起不能产生一个可行解,则不把此输入加到这部分解中。否则,将当前输入合并到部分解中从而得到包含当前输入的新的部分解。这一处理过程
2013-10-30 00:30:20 959
原创 分治法-选择问题
问题描述–给出含有n个元素表A(1: n),确定其中的第k小元素。设计思路–利用PARTITION过程。第一次划分后,划分元素v测定在A(j)的位置上,则有j-1个元素小于或等于A(j),且有n-j个元素大于或等于A(j)。①若k=j,则A(j)即是第k小元素;②若k③若k>j,则第k小元素将出现在A(j+1:n)中。找第k小元素procedure SELEC
2013-10-23 16:07:33 1008
原创 分治法-快速排序
快速分类是一种基于划分的分类方法;–划分选取待分类集合A中的某个元素t,按照与t的大小关系重新整理A中元素,使得整理后的序列中所有在t以前出现的元素均小于等于t,而所有出现在t以后的元素均大于等于t。这一元素的整理过程称为划分(Partitioning)。元素t称为划分元素。–快速分类:通过反复地对待排序集合进行划分达到分类目的的分类算法。算法描述–//将A(m)
2013-10-23 16:03:59 696
原创 分治法-归并排序
问题描述:给定一n个元素的集合A,按照某种方法将A中的元素按非降或非增次序排列。分治策略求解–基本设计思想:将原始数组A中的元素分成两个子集合:A1(1: n/2)和A2(n/2+1: n)。分别对这两个子集合单独排序,然后将已分类的两个子序列归并成一个含有n个元素的分类好的序列。–这样的一个分类过程称为归并排序。算法描述:procedure MERGES
2013-10-23 15:59:26 803
原创 分治法-求最大最小元素
给定含有n个元素的集合,在其中找出最大和最小元素。直接找最大和最小元素procedure STRAITMAXMIN(A, n, max, min)//将A中的最大值置于max,最小值置于min//Integer i, nmax←min←A(1)for i←2 to n doif A(i) > max then max←A(i) endifif A(i) repe
2013-10-23 00:10:23 2372 1
原创 分治法-二分检索
基本思想–为解决一个大问题,可以1.把它分解成两个或多个更小的问题;2.分别解决每个小问题;3.把各小问题的解答组合起来,可得到原问题的解。–小问题通常与原问题相似或同质 ,因而可以递归地使用分而治之策略解决。用分治法解决二分检索问题:问题的描述–已知一个按非降次序排列的元素表a1, a2, …,an,判定某给定的元素x是否在该表中出现。若是,则找出x在表中的
2013-10-22 16:49:37 857
原创 非递归-求解斐波那契数列
递归的缺点:–递归算法解题相对常用的算法如普通循环等,运行效率较低。因此,应该尽量避免使用递归,除非没有更好的算法或者某种特定情况,递归更为适合的时候。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等–执行时间长、占用空间多–主要原因:递归调用时的现场保护与恢复(相对于迭代过程而言)一个反复执行过程,可否用循环结构实现?递归调用时,
2013-10-22 00:07:30 1838
原创 递归-求解斐波那契数列
斐波那契(Fibonacci)序列–兔子的问题假设小兔子每一个月长成大兔子,大兔子每一个月生一个小兔子,第一个月有一只小兔子,不考虑兔子的寿命,求n个月后有多少只兔子?斐波那契(Fibonacci)序列: F0= F1 = 1 Fi = Fi-1 + Fi-2 (i>1)#inc
2013-10-22 00:00:10 736
原创 动态规划-最优二分检索树
最优二分检索树二分检索树T是一棵二元树①T的左子树的所有元素比根结点中的元素小;②T的右子树的所有元素比根结点中的元素大;③T的左子树和右子树也是二分检索树。注: 二分检索树要求树中所有结点的元素值互异最优二分检索树问题:求一棵预期成本最小的二分检索树预期总的成本公式表示如下把构造二分检索树的过程看成一系列决策的结果。–决策的策略:决
2013-10-21 23:54:48 5558
原创 贪心算法-单源最短路径
算法流程:(a) 初始化:用起点v到该顶点w的直接边(弧)初始化最短路径,否则设为∞;(b) 从未求得最短路径的终点中选择路径长度最小的终点u:即求得v到u的最短路径;(c) 修改最短路径:计算u的邻接点的最短路径,若(v,…,u)+(u,w),则以(v,…,u,w)代替。同时,用path记录每个节点最短路径的前导节点。(d) 重复(b)-(c),直到求得v到其余所有顶点的最短路径
2013-10-21 23:50:24 1159
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人