自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Linux系统

系统文件类型图标/usr/share/icons/gnome/256x256/mimetype/Eclipse切换英文修改 /usr/share/applications/eclipse.desktopExec=eclipse -nl "en_US"

2013-01-07 16:33:30 660 1

原创 《TCP/IP详解-协议》(26)Telnet和Rlogin

概述Telnet和Rlogin都是远程登录工具Telnet被几乎所有TCP/IP实现支持;Rlogin一般只能在Unix系统之间工作且实现比较简单;Telnet是Telecommunication Network Protocol(电信网络协议)的缩写Rlogin启动过程从上图来看客户进程和服务器进程之间的交互情况TCP连接建立后:报文1:0

2012-11-13 17:03:49 2307

原创 《TCP/IP详解-协议》(25)SNMP协议

SNMP(简单网络管理协议)是一种简单的请求-应答协议概述管理端(管理进程)和被管理端(代理进程)之间有5中操作方式:SNMP往往使用UDP协议PDU类型 0~3 用于管理端向代理端发送读取/设置请求及代理端的响应;PDU类型 4 用于代理端主动通知管理端有情况发生信息结构RFC定义一套SMI(Structure of Managemen

2012-11-06 17:39:44 3096

原创 《TCP/IP详解-协议》(24)TCP的未来和性能

路径MTU发现如果一个IP数据报被设置DF位,而其长度又超过了MTU,路由将返回“ICMP不可达”差错被TCP发送的IP数据报都将被设置DF位,如果收到这个ICMP差错,TCP就减少段大小并重传当由这个差错引起重传时,拥塞窗口不变,但需要进入慢启动由于路由可以动态变化,因此最后一次减少MTU后,隔一段时间可以尝试较大的值(RFC推荐10分钟)长肥管道管道可被水平拉长

2012-11-05 11:09:17 1204

原创 《TCP/IP详解-协议》(22、23)TCP的坚持定时器、保活定时器

坚持定时器上图列子中,收到分组7后,接收方缓存已用完,回复分组8(win 0)来告知发送方暂停发送,待缓存清空后又发送分组9告知发送方可以继续发送;如果分组9丢失,双方都会继续等待对方的响应,陷入死锁;为解决这个问题,客户在收到通告窗口为0后,启动坚持定时器,如果定时器到期还仍未收到窗口更新,则发送一个探查分组(一般为1个字节);坚持定时器计算也采用指数退避糊涂窗口综合症:

2012-11-01 17:44:53 916

原创 《TCP/IP详解-协议》(21)TCP的超时与重传

超时与重传对于每个连接,TCP管理4个定时器:重传定时器坚持(persist)定时器保活(keepalive)定时器2MSL定时器指数退避:同一分组的重传时间间隔成指数增长(1.5、3、6、12、24、48、64、...秒)RTO(Retransmission TimeOut 重传超时时间):进行下一次重传的等待时间RTO的值根据RTT历史值和最新测量值来动态更新(

2012-11-01 13:09:07 1470

原创 《TCP/IP详解-协议》(19、20)TCP的数据流

交互数据流交互数据流:比如Telnet、Rlogin等经受时延的确认交互式每次传输的只是一个字节的按键,可以将按键确认与按键回显一起发送,提高效率;时延确认(数据捎带ACK):接收数据时并不立即发送ACK,而是等一等(一般时延为200ms),以便将ACK与需要回送的数据一起发送Nagle算法该算法约束发送方在一个分组的确认回来之后才能发送下一个分组;当网速高

2012-10-30 19:46:49 1085

原创 《TCP/IP详解-协议》(17、18)TCP连接建立与终止

TCPTCP(Transmission Control Protocol 传输控制协议)TCP提供一种面向连接的、可靠的字节流服务;在一个TCP连接中仅有两方进行通信(广播和多播不能用于TCP)一个IP地址和一个Port称为一个Socket(套接字),一个Socket Pair(套接字对)可唯一确定一个TCP连接(即本地IP&Port和远端IP&Port)TCP提供全双工服务(

2012-10-29 12:23:43 882

原创 《TCP/IP详解-协议》(15、16)TFTP、BOOTP协议

TFTP协议TFTP:Trivial File Transfer Protocol (简单文件传输协议)最初打算用于引导无盘系统是一种停止等待协议优点在于实现的简单,而非高吞吐量使用不可靠的UDP,因此必须自己处理分组丢失和重复TFTP报文中没有检验和,依赖UDP的检验和保证数据传输的正确性;“文件名”:要读写的服务器文件“模式”(netascii或octet):文件名

2012-10-25 10:40:06 958

原创 《TCP/IP详解-协议》(14)DNS

概念顶级域名分为三部分:arpa(用于IP地址到域名的转换)普通域(7个,每个3字符)国家域(在ISO3166中定义的2个字符的国家代码)DNS报文格式DNS查询和响应报文格式如下(12字节首部+4个长度可变的字段):“查询问题”的格式:“查询类”通常为1,指互联网;“查询名”是一个域名对应的字符串(0结尾),如下:

2012-10-24 17:59:59 2161

原创 《TCP/IP详解-协议》(13)IGMP协议

进程告知主机它要加入某接口的一个多播组,然后主机发送一个IGMP报告(仅某接口的某多播组有第一个进程加入时发送一次)多播路由器定时发送IGMP查询请求到每个接口,主机回复一个IGMP报告,告知该接口上哪些多播组被关注(即有进程加入)224.0.0.0~224.0.0.255:用于多播范围不超过1跳的应用,不管TTL是多少,多播路由器均不转发224.0.0.1:表示子网内的所有主机组(子

2012-10-24 11:14:43 609

原创 《TCP/IP详解-协议》(12)广播和多播

概述广播和多播仅用于UDP广播是将数据报发送到网络中的所有主机(通常是本地相连的网络),所有主机都必须接收,直到UDP层才会被过滤(没有进程使用该端口号)多播是将数据报发送到网络的一个主机组,在接口驱动层就过滤,除非进程加入此主机组,才会被接收;广播四种IP广播地址:受限的广播(255.255.255.255):任何情况下,路由器都不转发,仅出现在本地网

2012-10-23 21:28:45 1171

原创 《TCP/IP详解-协议》(11)UDP协议

UDP首部UDP不提供可靠性TCP端口号和UDP端口号是相互独立的(知名服务的两个协议通常选择相同的端口号只是为了使用方便,不是协议本身要求)UDP检验和UDP检验和覆盖UDP首部和数据UDP检验和是可选的,TCP是必需的UDP和TCP都包含12字节的伪首部,是为了计算检验和检验和算法是将若干个16bit(字)相加,不足部分填充0后计算,但不被传送

2012-10-23 18:01:50 651

原创 《TCP/IP详解-协议》(10)动态选路

动态选路:相邻的路由器之间通信,告知对方各自所连接网络的信息;每个路由器中都有一个路由守护程序,它从相邻路由器接收信息并更新内核中的路由表;每个自治系统通常由单个实体管理(比如一个公司或大学为一个自治系统);每个自治系统可选择该系统中路由间的选路协议——内部网关协议(IGP);外部网关协议(EGP)用于不同自治系统之间的路由器;IGP:RIP(Routing Informa

2012-10-22 19:22:23 544

原创 《TCP/IP详解-协议》(9)IP选路

选路原理IP层要通过选路机制来决定向哪个网络接口发送分组,是直接发送,还是通过路由转发(依据目的主机是否在同一个网络),由谁转发?链路层只是负责最终的执行而已;IP选路通过主机内部的路由表来决定,搜索路由表的顺序如下:搜索匹配的主机地址搜索匹配的网络地址(将目的地址与表项对应接口的掩码地址逻辑与,再比较)搜索默认表项查看路由表(netstat -rn):

2012-10-22 12:01:37 800

原创 《TCP/IP详解-协议》(7、8)Ping、Traceroute程序

Ping程序最初编写Ping程序是为了测试另一台主机是否可达;该程序发送一份ICMP回显请求报文给主机,并等待ICMP回显应答;被Ping的主机称为Ping服务器,大多数TCP/IP实现都在内核直接支持Ping服务器;为发送进程的ID(这样可支持多个Ping程序实例同时运行)从0开始递增(Ping程序打印每个返回分组的序号,可检查分组丢失、失序或重复)IP记录路

2012-10-18 13:41:39 984

原创 《TCP/IP详解-协议》(6)ICMP协议

格式与类型ICMP:(Internet Control Message Protocol)Internet控制报文协议ICMP是IP协议的附属协议,IP层用它来与其它主机或路由器交换错误报文和其它重要信息;ICMP分为两类:查询报文、差错报文;ICMP地址掩码请求与应答ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码,系统广播它的I

2012-10-17 20:38:40 797

原创 《TCP/IP详解-协议》(4、5)ARP、RARP协议

ARP、RARP实现IP地址到硬件(MAC)地址之间的映射;以太网上的传输需要硬件地址;ARP、RARP分组格式以太网目的地址:全1表示广播地址,电缆上的所有以太网接口都必须接收;OP(操作类型):(1~4)ARP请求/应答、RARP请求/应答ARP点对点链路不使用ARP;每个主机上都有ARP高速缓存,存放最近使用的映射关系(arp

2012-10-17 14:57:49 744

原创 《TCP/IP详解-协议》(3)IP协议

IP首部字段TTL(time-to-live)生存时间:由源主机设置,经过一个路由器则减1,为0时被丢弃,并发送ICMP报文通知源主机;IP路由选择IP层在内存中有个路由表;IP层从上层收到数据报后,搜索路由表,如果目的IP地址在一个直接相连的网络上,直接发送;否则发送给下一跳的路由器;子网掩码IP地址由网络号和主机号组成,但是通过子网掩码,可以将主

2012-10-16 19:47:50 557

原创 《TCP/IP详解-协议》(2)链路层

链路层接收三种数据:IP、ARP、RARP三种常见链路层协议:以太网链路层协议SLIP(串口,点对点)环回接口(loopback)以太网封装格式目的地址和源地址为48位的MAC地址SLIP封装格式END表示一次传输结束,线路噪声导致接收到的毫无意义的数据会被上层丢弃;数据中的END(c0)用db,dc转义,db则用db,dd转义;

2012-10-16 17:04:47 633

原创 《TCP/IP详解-协议》(1)概述

TCP/IP分层TCP/IP协议族分为四个层次:链路层、网络层、传输层、应用层;应用层在用户空间、其余在内核空间;IP是不可靠的,由TCP保证可靠性;网络层是逐跳协议,经过的每个中间系统都要使用;传输层和应用层是端到端的协议,只有端系统才需要;网桥在链路层,路由器在网络层;封装和分用IP

2012-10-15 22:04:28 744

原创 设计模式:抽象工厂模式(Python)

抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。原则:依赖抽象,不要依赖具体类。案例:还是“工厂方法模式”中的例子,但是换一种方式来解决:因为口味的不同是原材料的不同造成的,因此我们就创建原材料工厂,每个工厂生产的原材料都不相同,同一款Pizza从不同的原材料工厂拿货,做出的P

2012-05-27 19:51:48 2954 1

原创 设计模式:工厂方法模式(Python)

工厂方法模式(Factory Method Pattern):定义了一个创建对象的接口,但由子类决定要实例化类的哪一个;即通过子类来创建对象。原则:要依赖抽象,不要依赖具体类。案例:先解释什么是工厂:如果你开一家Pizza店(PizzaStore抽象类)卖各种风味的Pizza(Pizza子类),那么你需要根据客户要求准备相应的Pizza(创建Pizza对象),然后烘烤、

2012-05-26 15:29:47 13665 2

原创 设计模式:装饰者模式(Python)

装饰者(或修饰)模式(Decorator):增加一个修饰类包裹原来的类,装饰过的对象可替代原始对象。原则:类应该对扩展开放,对修改关闭。案例:奶茶店有多种饮料:奶茶、果汁、咖啡;每种饮料可搭配若干配料:珍珠、布丁、牛奶;要能根据顾客的任意搭配下单并计算价钱;代码:#!/usr/bin/pythonclass Beverage: descr

2012-05-23 22:57:29 3280 1

原创 设计模式:观察者模式(Python)

观察者模式(Observer):定义了对象间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。类似报纸订阅,当订阅报纸后,一有更新就会自动收到,除非退订;这里我们将出版者称为“主题”(Subject),订阅者成为“观察者”(Observer)。原则:为交互对象之间的松耦合而努力案例:现在要实现一个气象站,观测三个数据:温度,湿度和气压;

2012-05-22 07:42:48 2501 1

原创 设计模式:策略模式(Python)

策略模式(Strategy Pattern):策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。原则:针对接口(即超类型)编程,而不是针对实现编程;把会变化的部分取出并“封装”起来,好让其它部分不会受到影响;多用组合,少用继承;案例:现在需要实现几种鸭子,每种鸭子都有不同的特征(display)

2012-05-17 23:53:51 6001 3

原创 用Python处理Cookie

第一次访问页面后,Server可将Cookie信息加入HTTP Header返回给浏览器,浏览器会自动将这些信息保存在本地;当再次访问相同域名时,浏览器将对应Cookie信息随请求一起发送,Server端可读取这些信息进行处理。Cookie可设置过期时间,到期后由浏览器自动删除;当我们要返回页面时,首先输出如下:print "Content-type: text/p

2012-05-17 15:07:56 14247

原创 Python调用MySQLdb插入中文乱码的问题

#!/usr/bin/python# -*- coding: utf-8 -*-import MySQLdbdef main(): fullname = "赵钱孙李" conn = MySQLdb.connect(host='localhost', user='root',passwd='123', db='account', charset='utf8')  # OK

2012-05-14 11:24:09 3079

原创 VIM

--------------------------------------------------% #跳转到下一个匹配符号({} [] #ifdef 注释 ...)

2012-05-02 14:28:12 428

原创 去除Fedora16系统程序密码验证

问题:打开Fedora16的系统程序“用户和群组”时会弹出ROOT密码框,能否去除?方案:1. 增加USER账户到wheel分组 (USER表示当前用户)2. passwd -d USER (清空密码)效果:运行“用户和群组”等工具时不再提醒输入密码;(如果前面不删除的话,就只验证 USER密码即可获得权限,不用ROOT密码)原理:syste

2012-04-19 17:08:10 756

原创 Apache

调试500 Internal Server Error访问cgi-bin下面的脚本报错,结果是输出缺少httpd头,以python为例如下:#!/usr/bin/pythonprint "Content-type: text/plain\n\n";print "Hello..."Python CGI 用 os.system("echo string > file") 写文

2012-04-10 13:45:45 541

原创 《Linux安装》(五)Images制作原理

重写buildinstall脚本后我们知道生成images主要就靠mk-images脚本,它的输入来自upd-instroot——安装一些包到一个根目录(instroot),这些包都是安装过程必须要用到的,至于是哪些包,可以通过调试upd-instroot脚本打印出来。至于为什么是这些包?现阶段这个不重要,以后有空再说;但是instroot目录太大(>400M),启动时如果将其载入ramfs会

2012-04-06 17:30:03 2207

原创 Linux常用命令

------# 查看活动端口netstat -a# 弹出系统提示框notify-send -t 0 "hello"# 将文件内容拷贝到剪贴板(clip)xclip -sel clip < cat FILE# 全部转小写echo Hello | tr '[:upper:]' '[:lower:]'# 输出“年月日”date "+%Y%m%d"# 取行第一个字符cut

2012-03-31 14:22:19 428

原创 sed

工作原理:        sed(streams editor)是一个文本过滤器,一次处理一行内容,先把当前处理的行存储在临时缓冲——称为“模式空间”(pattern space),然后处理缓冲区中的内容,再将结果输出到屏幕,然后继续处理下一行,不断重复直到文件末尾。这一过程中原文件内容不变,除非你使用重定向存储输出,或者使用 "-i" 选项(即inline edit,行内编辑)。

2012-03-22 16:54:28 464

原创 bash

# 变量$$ #进程ID$PPID #父进程ID(只读)# 多行注释 (":"表示空操作):<<block...block# 调试文件bash -x FILENAME   # 先打印命令再打印结果# 调试代码set -x...set +x# 重定向bash -x FILENAME 2>&1 | tee log   # 调试信息输出到lo

2012-03-22 16:00:25 661

原创 《Linux安装》(四)Buildinstall

buildinstall脚本从配置文件中指定的yum源下载最新的anaconda包,然后执行里面的4个脚本(即并不执行本地的脚本):upd-instroot :下载安装过程必须的用到的包和文件到一个根目录maketreeinfo.py:生成.treeinfo文件mk-images:生成imagesmakestamp.py:生成.discinfo/tmp/build

2012-03-21 17:28:22 2368

原创 《Linux安装》(三)发行版制作

Fedora发行版制作的工具主要有revisor和pungi两种;revisor是一个图形化的工具,也可用命令行,但是经常会有bug,而且比较臃肿,感觉是给初级用户用的;pungi是Fedora官方制作(或叫spin)发行版的工具,命令行,总共也就4、5个python文件;以下是使用pungi定制(spin)的代码:#!/bin/bashecho "Set LANG

2012-03-19 17:15:59 5255

原创 《Linux安装》(二)启动过程

isolinux.bin & isolinux.cfgisolinux.bin是光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目,对应fedora13中的syslinux包,文档可参考:/usr/share/doc/syslinux-4.02/isolinux.txt或者项目Wiki;可引导光盘相关信息请参考El Torito规范;isolinu

2012-03-15 17:40:21 3489

原创 《人人都是产品经理》

作者:苏杰方法论(做多少,怎么做):需求采集用户研究(定性与定量)分析需求转化 -> 确定基本属性-> 分析商业价值 -> 初评实现难度 ->计算性价比筛选需求打包 -> BRD制作-> 产品会议 -> 立项项目立项 -> 文档-> 开发 -> 测试 ->发布立项:团队组建 -> 计划确定-> Kick Off文档:PRD制作、评审 -> {UC制作

2012-03-09 11:39:29 1090

原创 《布道之道——引领团队拥抱技术创新》

作者:Terrence Ryan在推广新的技术或工具(即布道)中常常会遇到很多人的抵制,作者将他们称为“怀疑者”,并将怀疑者分类,给出相应的应对技巧,最终目的当然是让大家接受你的提议或方案;怀疑者分类:孤陋寡闻型这种人最容易说服,无非就是向他解释清楚这个技术、展示技术并给采用这个技术的合理理由随波逐流型之所以随波逐流,因为他们是追随者而非领导者;一种是不知道自己

2012-03-09 10:36:58 1206

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除