1.传输机制不同造成的乱码ASCII编码为7位有效码,而非ASCII的如汉字则采用双字节表达一个汉字,通过字节最高位b7置1来实现。但由于历史形成的原因,Internet上电子邮件主要处理7bit文本,而且一些服务器或网关可能限制8bit传输,这对ASCII字符不会影响;其它非ASCII数据,则必须... Read More
posted @ 2014-07-24 16:48 thinker-lj Views(1439) Comments(0) Diggs(0) Edit
前序: 一直对编码很痴迷,让数据一目了然不好吗?为什么要去编码,这不是闲的没事,浪费生产力吗?随着学习的深入,愈加觉得自己无知,世界语言千万种,在互联网的世界里如何表示他们?碰到汉字ASCii就显得苍白无力了,所以,需要更多的字节来表示各种文字,这就需要一个规范;同时,起初编解码的目的是为了数据的安... Read More
posted @ 2014-07-24 15:39 thinker-lj Views(3677) Comments(0) Diggs(0) Edit
在python程序中调用shell命令,是件很酷且常用的事情……1. os.system(command) 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示。这实际上是使用C标准库函数system()实现的... Read More
posted @ 2014-07-22 11:18 thinker-lj Views(37044) Comments(0) Diggs(1) Edit
当 你在终端或者控制台工作时,你可能想要记录在终端中所做的一切。这些记录可以用来当作史料,保存终端所发生的一切。比如说,你和一些Linux管理员们同 时管理着相同的机器,或者你让某人远程登陆到了你的服务器上,你可能记录想要终端里发生的一切。要实现这个目标,你可以使用script命令。script是什... Read More
posted @ 2014-06-17 18:10 thinker-lj Views(207) Comments(0) Diggs(0) Edit
首先发送方抽取目的站的网络前缀,来判断是否目的站是否位于同一网络上,如果在二者有相同的网络前缀,则,直接使用直接交付的方式,否则,使用由路由器互连的间接交付,这要借助IP路由表,采用表驱动法,路由表中只指明了通往目的站的下一跳转发;实际上,路由表中的一个表项指明了数据报被转发的下一个路由器时所用的网... Read More
posted @ 2014-04-14 11:43 thinker-lj Views(1343) Comments(0) Diggs(0) Edit
一、数据报格式:下面逐项介绍数据报各项内容:1.版本:数据报的前四个字段,包含创建数据报所用IP协议的版本信息,用来确认发送方、接收方和之间的所有路由器就数据格式达成一致。对于IPv4,此字段值为4;2.首部长度:字段也是4位,除IP选项和填充以外,首部所有字段长度都是固定的,最常见的首部不含这两项,长度为20八位组,其首部长度字段等于5;3.服务类型:8位的服务类型字段,也叫TOS(Type Of Service);它指明应当如何处理数据报,但一个互联网不能保证提供任何一种特定类型的服务,此字段仅是给转发算法的一个提示;4.总长度:此字段长为16位,所以IP数据报的最大可能长度为65535, Read More
posted @ 2014-04-08 12:38 thinker-lj Views(386) Comments(0) Diggs(0) Edit
fork有下面两中用法:(1)一个父进程希望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中很常见——父进程等待客户端的服务请求。当请求达到时,父进程调用fork,子进程处理此请求。父进程继续等待下一个服务请求。(2)一个进程要执行一个不同的程序,这对shell是常见的情况。在这种情况下,子进程从fork返回后立即调用exec。父、子进程虽然共享正文段,但子进程获得父进程数据空间、堆和栈的副本。由于在fork之后经常跟随exec,所以,为了解决这种复制又被覆盖的低效问题,出现了写时复制(Copy-On-Write, COW)技术,所有的区域由父子进程共享,子进程的虚拟地址指向父进 Read More
posted @ 2014-04-07 12:00 thinker-lj Views(321) Comments(0) Diggs(0) Edit
其实二者的区别还是很大的,首先strlen计算的长度不包括字符串最后的终止null字节,而sizeof则计算包括终止null的缓冲区长度。还有一点很容易被忽略,strlen需要一次函数调用,即它是个函数,而sizeof是个运算符,缓冲区已用已知字符进行了初始化,其长度是固定的,所以,sizeof在在编译时计算时缓冲区的长度。因而,大神总是忠告我们,不要将strlen写入循环体内,可sizeof没有这方面的考虑。 Read More
posted @ 2014-04-07 09:10 thinker-lj Views(224) Comments(0) Diggs(0) Edit
网络的互连首先要解决的问题就是网络地址到物理地址的映射,以太网接口分配的是一个48位的物理地址,而IP地址却只有32位,因此无法将它编码到IP地址中。有人建议可以构建一个中央数据库存储所有网络中的网络地址与物理地址对应组,需要时直接去访问这个中央数据库即可。可这个中央数据库的维护又是个更大的难题,更让人难以接受的是它的安全性。聪明的TCP/IP协议设计人员找到了一种创造性的方法。这个办法不需要维护什么中央数据库,是个动态绑定地址的底层协议,即地址转换协议ARP(Address Resolution Protocol);一句话概括ARP的特点:ARP允许主机在只知道同一物理网络上一个目的站IP地 Read More
posted @ 2014-04-03 11:33 thinker-lj Views(2413) Comments(0) Diggs(1) Edit
按照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个字节的主机地址组成,网... Read More
posted @ 2014-04-02 20:31 thinker-lj Views(478) Comments(0) Diggs(0) Edit