- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 无线通讯基本概念
话务量单位Erl (爱尔兰): 爱尔兰是衡量话务量大小的一个指标。是根据话音信道的占空比来计算的。如果某个基站的话音信道经常处于占用的状态,我们说这个基站的爱尔兰高。具体来说,爱尔兰表示一个信道在考察时间内完全被占用的话务量强度。如果1小时内信道全被占用,那么这个期间的话务量就是1Erl。 话务量公式为:A=C x t。A是话务量,单位为erl(爱尔兰),C是呼叫次数,单位是个,t是每
2008-11-26 22:08:00
1904
原创 回归通讯
一直沉迷于软件,今天突然发现自己已经离通讯越来越远了,虽然每天的工作就是面对它,通讯的基本概念,所知寥寥,既然发现了差距,就要弥补,先从基本概念开始吧。 软切换 软切换(Soft Hand-off)是指在导频信道的载波频率相同时小区之间的信道切换。在切换过程中,移动用户与原基站和新基站都保持通信链路,只有当移动台在目标基站的小区建立稳定通信后,才断开与原基站的联系。属于c
2008-11-08 22:02:00
923
原创 Unix编程艺术和代码大全比较阅读
最近在看Unix编程艺术,收获颇多,联想起以前看过的同样获益匪浅的代码大全,突然萌生出比较两者观点的想法,那就开始吧。Unix编程艺术:简称U。代码大全:简称C。1) 函数的长度U(4.1):200到400之间的逻辑行代码是最佳点,可能的缺陷密度达到最小。C(7.4):可以允许子程序的长度有序的增长到100至200行(不算源代码中的注释行和空行)真的要争执到底是100到
2008-07-03 22:19:00
1132
原创 技术修炼的六种方法之一——技术书籍
一直对技术怀着极大的热情,一直在技术的道路上攀登,到现在,仍然是“我才刚上路哟!”,自己不是技术牛人,也谈不上是某些方面的专家,只是想将自己这些年在技术修炼中的挫折和收获和大家分享,避免后来者少走弯路。 下面就从第一种方法说起,技术书籍。 “书者,传道授业解惑也”,一直以来都有这样一种感觉,当面对一项新技术而苦苦求索时,往往看到一本书后,豁然开朗,有
2008-03-30 10:41:00
1284
原创 Libjingle应用之三——设置会话管理
登陆到服务器,发送和接收状态信息后,接下来就该进行会话管理了。会话管理,简而言之就是处理入向的连接请求和发送出向的连接请求。会话管理也是libjingle应用最具有用户特性的部分,因为有的会话是进行文件传送,有的会话是进行语音通话,而有的会话是进行视频聊天。如此种种,皆依赖于客户端不同的应用场合。对于会话管理,下面的步骤都是必须的:1)实例化NetworkManager, Port
2008-03-07 23:53:00
1898
1
原创 Libjingle应用之二——发送和查询在线信息
当登陆到XMPP服务器之后,需要将当前自己的状态发送给服务器,同时请求其朋友列表的在线信息,服务器会将朋友列表的JID和在线信息作为应答发送回来,利用收到的JID和在线信息应答,可以向另一个用户发起连接请求。服务器会一直发送状态通知直到连接结束。Libjingle提供两个XmppTask对象发送和查询状态:1)PresenceOutTask向服务器发送状态信息,状态信息存放在Sta
2008-03-06 21:58:00
1983
原创 Libjingle应用之一——登陆服务器
编译过libjingle之后,开始使用libjingle设计IM client,象所有的IM client一样,第一件事情就是登陆服务器,libjingle由于遵循XMPP协议,所以理所当然的需要登陆XMPP服务器。XMPP服务器作为通信中心节点,使得IM client能够找到其他节点,发起初始连接。1) 初始化SSL连接。talk_base::InitializeSSL(),在此函数
2008-03-05 23:32:00
4431
2
原创 libjingle编译指南
最近想在自己的p2p系统中整合进I’M,调研的结果,libjingle各方面都符合要求,准备基于libjingle开发自己的I’M系统,第一步,当然是编译libjingle程序了,但是在网上找了一圈,要么是语焉不详,要么是极其简单,没有办法,只有自己一步步摸索了,同时将步骤整理在blog上,希望后来人少走弯路。
2008-02-27 19:47:00
2644
23
原创 Ruby on Rails完全安装手册
最近在学习web编程,开始学习了PHP和JSP,都是浅尝则止,想想,反正对我来说都是全新的东东,直接学最新的ROR吧,直接拿起Agile Web Development With Rails开始学习,在Hello from Rails出现之前,还是有一些周折的,将安装过程写在这里,后来人也可少走弯路。Lets go! First of all,当然是到网站上下载Ruby安装包
2007-12-30 21:13:00
1430
转载 P2P之UDP穿透NAT的原理与实现(附源代码)
论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Networ
2007-12-05 20:30:00
1210
原创 《TCP/IP详解,卷2:实现》读书笔记-滑动窗口
TCP的滑动窗口协议是一种流量控制的协议,因为其设计的十分经典,今天重点讲一下其原理和实现。窗口大小是与确认序号相对应的,确认序号是发送方等待接收的下一序号,确认已正确接收了所有序号小于等于确认号减1的数据字节。只有当报文首部的ACK标志置位时,确认序号才有效。滑动窗口的左右边沿移动方式有如下几种:1) 窗口合拢:窗口左边沿向右边沿靠近,当数据被发送和确认时有此现象。2) 窗口张开
2007-05-13 17:12:00
3748
原创 五一返乡之旅
读书时,虽然在武汉待过7年,似乎对武汉没有什么感觉,但这次当火车接近武汉时,心中竟有一种莫名的激动,看着熟悉而又陌生的街道在车窗边滑过,学生时代的点点滴滴浮上心头,哪怕是曾经在这条街道上闲逛的记忆也如沸腾的水花一样在脑中翻腾和闪现,终于知道了,很多事情能够被淡忘,但是真正的感情是埋藏在心底,并不会被岁月抹去。 火车缓缓的在汉江上驶过,江水的颜色深深的吸引了我,在上海生活了5年,
2007-05-12 10:10:00
969
原创 《TCP/IP详解,卷2:实现》读书笔记-UDP和TCP的首部
用户数据报协议,即UDP,是一个面向数据报的简单运输层协议:进程的每次输出操作只产生一个UDP数据报,从而发送一个IP数据报。进程通过创建一个Internet域内的SOCK_DGRAM类型的插口,来访问UDP。该类插口默认地称为无连接的(unconnected)。每次进程发送数据报时,必须指定目的IP地址和端口号。每次从插口上接收数据报时,进程可以从数据报中收到源IP地址和端口号。 UDP的首部
2007-04-24 22:00:00
1721
原创 《TCP/IP详解,卷2:实现》读书笔记-协议控制块
前面讲了很多的铺垫知识,现在终于开始要讲到TCP和UDP了,不过别急,之前会先介绍一个基本和重要的概念:协议控制块。 协议层使用协议控制块存放各UDP和TCP插口所要求的多个信息片。Internet协议维护Internet协议控制块和TCP控制块。由于UDP是无连接的,所以一个端结点需要的所有信息都可以在InternetPCB中找到,不需要UDP控制块。 Internet协议控制块含有所有UDP和
2007-04-19 20:04:00
3683
原创 《TCP/IP详解,卷2:实现》读书笔记-SOCKET的结构和系统调用
插口,也就是socket,从事IT的地球人都知道,既然谈到了socket,也来简单介绍一下socket的由来。 80年代初,美国国防部高级研究计划署ARPA让California大学在UNIX操作系统下实现TCP/IP协议,Berkley提出了为UNIX操作系统开发的网络通信接口Socket,它是建立在传输层协议(主要是TCP和IP)上的一种套接字规范,因此人们也将Socket接口称为Be
2007-04-16 21:59:00
3371
原创 《TCP/IP详解,卷2:实现》读书笔记-IP分片和重组
IP具有一种重要功能,就是当分组过大而不适合在所选硬件接口上发送时,能够对分组进行分片。过大的分组被分成两个或多个大小适合在所选定网络上发送的IP分片。而在去目的主机的路途中,分片还可能被中间的路由器继续分片。在目的主机上,一个IP数据报可能放在一个IP分组内或者多个IP分组内。因为各个分片可能以不同的路径到达目的主机,所以只有目的主机才有机会看到所有分片。因此,也只有目的主机才能把所有分片
2007-04-14 14:04:00
6483
原创 《TCP/IP详解,卷2:实现》读书笔记-IP首部格式
前面讲了这么多数据结构,Now welcome to IPs world! 首先还是要讲几个概念,是不是觉得概念太多,往往理解原理的第一步就是了解概念,只有将概念吃透了,后面才能事半功倍,就像改革开放的第一件事情就是解放思想一样! 我们把传输协议交给IP的数据称为报文。典型的报文包含一个运输层首部和应用程序数据。IP在报文的首部前加上它自己的首部形成一个数据报。如果在选定的网络中
2007-04-11 19:45:00
2534
原创 《TCP/IP详解,卷2:实现》读书笔记-以太网和IP
我们先来回顾一下以太网帧的格式,以太网帧包括48bit的目标地址和源地址,接下来是一个16bit的类型字段,它标识这个帧所携带的数据的格式。对于IP分组,类型是0x0800(2048)。帧的最后是一个32bit的CRC(循环冗余检验),它用来检查帧中的差错。帧的格式如下图所示: 我们用48bit的以太网地址作为硬件地址。IP地址到硬件地址之间的转换用ARP协议。而硬件
2007-04-10 21:35:00
1866
原创 《TCP/IP详解,卷2:实现》读书笔记-接口分析
熟悉了mbuf的结构后,我们进入接口层,所谓接口,就是指在一个特定网络上硬件与设备驱动器之间的接口。BSD设计将网络协议和连接到一个系统的网络设备的驱动器间提供一个与硬件无关的编程接口。 提到接口,首先需要介绍ifnet结构,结构ifnet中包含所有接口的通用信息。在系统初始化期间,分别为每个网络设备分配一个独立的ifnet结构。每个ifnet结构有一个列表,它包含这个设备的一个
2007-04-07 16:22:00
1854
原创 《TCP/IP详解,卷2:实现》读书笔记-深入mbuf的结构
mbuf的主要用途是保存在进程和网络接口间互相传递的用户数据。但mbuf也用于保存其他各种数据:源与目标地址、插口选项等等。下面将要经常会的遇到的四种不同类型的mbuf,它们依据在成员mh_flags中填写的不同标志M_PKTHDR和M_EXT而不同。1) 第一类mbuf的mh_flags等于0,mbuf只包含数据,在mbuf中有108字节的数据空间,指针mh_da
2007-04-01 21:02:00
3723
原创 《TCP/IP详解,卷2:实现》读书笔记-mbuf的结构
《TCP/IP详解,卷2:实现》的源码讲解主要来自4.4BSD-Lite,如果需要下载源码,在google中搜索一下,随处可得。 任何源码研习,开篇明义总是讲最基本的数据结构,这个是一个体系的根本,也是基础,只有理解了最基本的数据结构,就象爬上了山丘,附近的美景才能尽收眼底,否则始终是在茫茫树丛中转悠,在晕头转向中发现零星的美。在伯克利联网代码设计中的一个基本概念就是存储器缓存,称作
2007-03-30 21:46:00
5401
2
原创 《TCP/IP 详解 卷1:协议》的读书体会
《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。书中对网络协议的讲解十分的清楚和透彻,具体的内容大家可以去看原著和读书笔记,在此我就不攒述了,我只说说我读此书的体会。 读书和做项目一样,唯有实际动手,参与其中,经历痛苦的思考和茅塞顿开后才能让知识真正的属于你自己,读这本书也
2007-03-24 22:37:00
1919
原创 而今迈步从头跃
一直想开始自己的博客之旅,但是仅仅是存在于脑海中的一个想法罢了,一直以来都特别浮躁,总是无法安静下来真正写点什么,时间就真的如沙子一样从手中溜走,等到今天真的做在这里开始的时候,真的是千头万绪,不知从何开始,但毕竟是开始了,那就好好的走下去吧! 对于Blog,有两个选择,一个是MSN Space,一个就是优快云 BLOG,因为一直以来在优快云收获良多,又是想
2007-03-23 21:27:00
1104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人