04 2014 档案

摘要:首先发送方抽取目的站的网络前缀,来判断是否目的站是否位于同一网络上,如果在二者有相同的网络前缀,则,直接使用直接交付的方式,否则,使用由路由器互连的间接交付,这要借助IP路由表,采用表驱动法,路由表中只指明了通往目的站的下一跳转发;实际上,路由表中的一个表项指明了数据报被转发的下一个路由器时所用的网... 阅读全文
posted @ 2014-04-14 11:43 thinker-lj 阅读(1386) 评论(0) 推荐(0)
摘要:一、数据报格式:下面逐项介绍数据报各项内容:1.版本:数据报的前四个字段,包含创建数据报所用IP协议的版本信息,用来确认发送方、接收方和之间的所有路由器就数据格式达成一致。对于IPv4,此字段值为4;2.首部长度:字段也是4位,除IP选项和填充以外,首部所有字段长度都是固定的,最常见的首部不含这两项,长度为20八位组,其首部长度字段等于5;3.服务类型:8位的服务类型字段,也叫TOS(Type Of Service);它指明应当如何处理数据报,但一个互联网不能保证提供任何一种特定类型的服务,此字段仅是给转发算法的一个提示;4.总长度:此字段长为16位,所以IP数据报的最大可能长度为65535, 阅读全文
posted @ 2014-04-08 12:38 thinker-lj 阅读(420) 评论(0) 推荐(0)
摘要:fork有下面两中用法:(1)一个父进程希望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中很常见——父进程等待客户端的服务请求。当请求达到时,父进程调用fork,子进程处理此请求。父进程继续等待下一个服务请求。(2)一个进程要执行一个不同的程序,这对shell是常见的情况。在这种情况下,子进程从fork返回后立即调用exec。父、子进程虽然共享正文段,但子进程获得父进程数据空间、堆和栈的副本。由于在fork之后经常跟随exec,所以,为了解决这种复制又被覆盖的低效问题,出现了写时复制(Copy-On-Write, COW)技术,所有的区域由父子进程共享,子进程的虚拟地址指向父进 阅读全文
posted @ 2014-04-07 12:00 thinker-lj 阅读(336) 评论(0) 推荐(0)
摘要:其实二者的区别还是很大的,首先strlen计算的长度不包括字符串最后的终止null字节,而sizeof则计算包括终止null的缓冲区长度。还有一点很容易被忽略,strlen需要一次函数调用,即它是个函数,而sizeof是个运算符,缓冲区已用已知字符进行了初始化,其长度是固定的,所以,sizeof在在编译时计算时缓冲区的长度。因而,大神总是忠告我们,不要将strlen写入循环体内,可sizeof没有这方面的考虑。 阅读全文
posted @ 2014-04-07 09:10 thinker-lj 阅读(231) 评论(0) 推荐(0)
摘要:网络的互连首先要解决的问题就是网络地址到物理地址的映射,以太网接口分配的是一个48位的物理地址,而IP地址却只有32位,因此无法将它编码到IP地址中。有人建议可以构建一个中央数据库存储所有网络中的网络地址与物理地址对应组,需要时直接去访问这个中央数据库即可。可这个中央数据库的维护又是个更大的难题,更让人难以接受的是它的安全性。聪明的TCP/IP协议设计人员找到了一种创造性的方法。这个办法不需要维护什么中央数据库,是个动态绑定地址的底层协议,即地址转换协议ARP(Address Resolution Protocol);一句话概括ARP的特点:ARP允许主机在只知道同一物理网络上一个目的站IP地 阅读全文
posted @ 2014-04-03 11:33 thinker-lj 阅读(2484) 评论(0) 推荐(1)
摘要:按照IP地址的逻辑层次来分,IP地址可以分为A,B,C,D,E等5类。A类IP地址用于大型网络,B类IP地址用于中型网络,C类用于小规模网络,最多只能连接256台设备,D类IP地址用于多目的地址发送,E类则保留为今后使用。 1.A类IP地址 一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位必须是“0”,即第一段数字范围为1~127。每个A类地址可连接2的24次方减2等于16777214台主机,Internet有2的7次方减2等于126个A类地址。 2.B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网... 阅读全文
posted @ 2014-04-02 20:31 thinker-lj 阅读(528) 评论(0) 推荐(0)
摘要:每个进程都运行在自己私有的内存空间中(即虚拟地址空间)。在32位系统中,4GB的进程地址东健被分为用户空间和内核空间两个部分。用户空间占据着 0~3GB(用16进制表示为0xC0000000),而内核空间的范围是3GB~4GB。对于一个进程而言,都会涉及3种不同的数据段,分别是代码段、 数据段和堆栈段。 代码段:用于保存可执行文件的操作指令和程序定义的常量。为了防止代码在运行的时候被其他进程修改,代码段将只允许读取,不能进行修改。多进程能够共享相同的代码段,即当程序被多次执行时,运行的相同程序将共享代码段。 数据段:其位置紧接着代码段,分为初始化数据段和未初始化数据段(也称为BSS段)。初.. 阅读全文
posted @ 2014-04-01 07:48 thinker-lj 阅读(321) 评论(0) 推荐(0)