什么是UPnP技术?
UPnP(Universal Plug and Play)技术是针对智能家电、无线设备和各种类型的个人电脑进行普遍点对点(P2P)网络连接而设计的一种架构。它被设计为连接到ad-hoc或者非托管网络的家庭、小型企业、公共场所,提供易用、灵活、基于标准的连接。UPnP技术是一个利用TCP/IP和网络技术实现的分布式的开放网络架构,它除了提供网络设备间的控制和数据传输外,还提供无缝衔接的网络连接。
UPnP设备架构(UDA)不仅仅是即插即用外围设备模型的简单扩展,它被设计为众多供应商的不同设备类型提供零配置、“隐形”网络连接和自动发现的功能。这意味着设备能够自动加入网络、获取IP地址、广播它的能力并获知其他设备的存在和能力。最后,设备可以顺利的自动的离开网络,而不会留下任何不期望的影响。
UPnP架构充分利用包括IP、TCP、UDP、HTTP、XML等在内的网络协议,类似因特网,UPnP协议基于表述性的在线协议,以XML形式表示,并通过HTTP协议传输。IP协议凭借其已证明的能力而成为UPnP设备架构的强有力选择,这些能力包括:跨越不同的物理媒介、支持多厂商交互、支持因特网、众多家庭和企业内部网的协同。UPnP架构被明确设计适应这些不同的环境,进一步,通过桥接,UDA也适用于运行非IP协议的媒介,这些媒介往往是由于成本、技术或系统遗留等问题而不允许运行IP协议。
UPnP中的“Universal”(通用性)主要体现在:
1) 不使用设备驱动,其而代之以通用协议;
2) UPnP网络是媒介无关的;
3) UPnP设备可以在任何操作系统上使用任何编程语言实现;
4) UPnP架构没有指定或者限制被应用程序使用的API的设计;
5) 操作系统厂商可以创建满足其客户需求的API
UPnP协议栈
UPnP架构定义了两种类型的设备:控制设备(controlled devices)和控制点(control points)。控制设备扮演服务器的角色,响应控制点的请求。控制点和控制设备都能在各种平台包括个人电脑和嵌入式设备中实现。多个控制设备、控制点能够同时在同一个网络终端操作。
1)IP寻址(IP Addressing)
UPnP网络互联的基础是IP寻址,在IPv4环境中,每个控制设备或控制点必须有一个DHCP(Dynamic Host Configuration Protocol)客户端,并在首次连接到网络时寻找DHCP服务器。如果网络中存在DHCP服务器,例如托管网络,则控制设备或控制点必须使用DHCP服务器分配的IP地址;如果DHCP服务器不可用,例如非托管网络,则控制设备或者控制点必须使用Auto IP来获得IP地址。简单来说,Auto IP定义控制设备或控制点如果从保留的IP地址集合中智能选取一个IP地址,并顺利的在托管和非托管网络中移动。如果在DHCP事务中,控制设备或控制点能够通过DNS服务器或DNS转发来获得域名,那么控制设备或控制点在后续网络操作中应当使用这个域名;否则,控制设备或控制点应当直接使用IP地址。
某些UPnP网络为了适应多种非重叠寻址方案,因而需要更复杂的配置,例如多种物理网络、多种逻辑网络。控制设备或控制点可能存在两个或多个网络接口,每个网络接口可能存在两个或多个IP地址。在这种配置中,同样的UPnP网络中,由于存在不同的逻辑网络,因此单个控制设备或控制点可能分配到多个IP地址,这导致控制点重复搜寻到同一个控制设备。同一UPnP网络中,存在多个IP地址的控制设备或控制点,被称为多宿主(multi-homed)。
2)发现(discovery)
UPnP网络中,获得一个IP地址之后,下一步就是发现了。但控制设备加入到网络中,UPnP发现协议允许控制设备向网络中的控制点通告它提供的服务。同样的,当控制点加入网络中,UPnP发现协议允许控制点在网络中搜寻感兴趣的控制设备。上面两种情况中设备和控制点之间交换的基本信息是一个“发现消息”,该消息包含关于设备或设备提供的一个服务的一些基本信息,例如类型、标识符和指向详细信息的指针。
3)描述(description)
在控制点发现控制设备后,控制点对控制设备仍然知之甚少。控制点为了更多地了解控制设备及其能力,以及和控制设备交互,它需要获取控制设备在“发现消息”中提供的URL指向的描述信息。控制设备可能包含其他的逻辑控制设备,或者功能单元、服务。UPnP设备描述基于XML语言,并包含厂商相关的制造信息,例如模型名称和号码、序列号、制造商名称以及厂商相关网址的URL链接等。“描述”还包括了以下信息的列表:任何的嵌入式设备或服务、用于控制、事件触发和展示的URL。对于每项服务,”描述“均包含命令、服务响应动作的列表,以及每个动作的参数。服务描述也包含一列变量,这些变量模型化服务在运行时的状态,并通过数据类型、范围和事件特征进行描述。
4)控制(control)
在控制点获得控制设备的描述后,控制点可以给设备的服务发送动作。这是通过发送格式正确的”控制消息“给服务的控制URL(在设备描述中提供)来实现的。控制消息同样基于XML协议表述,并使用SOAP协议(Simple Object Access Protocol)进行传输。类似函数调用,服务返回给某个动作对应的响应消息。动作的效果可以通过描述服务运行时状态的变量来描述。
5)事件触发(eventing)
UPnP服务描述包含服务响应的动作列表,以及服务运行时状态进行展示的变量列表。在这些变量变化时,服务会发布更新;控制点可以订阅接收这些消息。服务通过发送事件消息来发布更新。事件消息包含一个或多个状态变量的名称,以及这些变量的当前值。事件消息同样以XML语言表示。控制点首次订阅时,会发送一个特殊的初始化事件消息,这个消息包含所有事件变量的名称和值,并允许订阅者对服务状态模式进行初始化。为了支持多个控制点的场景,事件触发设计用于将任何动作的效果通知所有控制点。因此,所有订阅者均会收到全部的事件消息。订阅者收到所有发生改变的事件变量的事件消息,此事件消息无论状态变量如果改变都被发送(由于响应一个动作,或由于服务模型状态变化)。
6)展示(representation)
如果控制设备提供用于展示的URL,那么控制点能够通过URL在浏览器中显示页面内容,并根据页面的能力,支持用户对设备进行控制并查看设备状态。每一项完成的程度取决于展示页面和设备的具体能力。
缩略语
去360还是留百度?一个前baiduer现360er写的
声明下,写了这个东东不是想凑最近3b大战的热闹,当然也有些关系,因为最近老有一些前东家(某度)的哥们来向我打听360好还是百度好,该不该接受猎头的邀请跳槽过来。大家毕竟曾在一个食堂吃过饭,我就把两边的情况说一说,纯属个人观点。
(怕人肉,就上马甲了,知道水木上两边的人都挺多,所以贴在这里给大家一个参考)
其实我的感受是,世界上没有一个工作是理想的,区别只在于它们能在多大程度上帮你欺骗自己,让你相信所有的付出物有所值,点燃内心的激情之火。因为我们一生中总要为什么事赴汤蹈火一把。
长文,慎入。是不是事实大家可以验证,我能回答的也尽量回答。我是个小兵,最近不会离职,所以求别人肉。我不想与教主为敌,但愿在他眼里我也不值得为敌。
自己给个360和百度的比较摘要:
1,百度不打卡,360天天打卡;百度互称同学,360老板像家长,胡萝卜加大棒。
2,百度每个人都做决定,360除了一个人其他人都做执行,流程简单,不用讨论沟通。
3,百度像学校,360像军队,进来容易,出去难,监控严。360进来时候不要足以后很难涨,百度关键看成长。
4,360和百度都加班。360盈利难压力大,空间小,最难突破的是信任天花板。百度的压力是新人赶超快。
360印象之一:家族亲情,部门孤岛
百度彼此之间都叫同学,一般感觉不到老板们的存在。但是在360你却能感觉到家长的无处不在。可能百度太大了,我们这个级别的人在业务会上很少能接触到李彦宏,甚至一年也难得几次得与王梦秋,孙云丰这样的VP开业务探讨会(聊天室不算),而在360则几乎每周都能和齐向东一起开会,差不多一个月能与周鸿祎一起开一次会,你可以直接和大老板对话的感觉还是很不错的。
2,百度的上级比较随和,跟员工没啥区别,更关心业务,很少找人谈生活。360的上级则会像家长那样,对个人表现出极大的关心,老周会突然跑到你身后看着你的电脑屏幕拍拍肩膀问你最近怎么样?离开时随手拿起你桌上的零食边走边吃。
对刚毕业的北漂孩子来说,这种感觉很亲切。但日子长了,总感觉他们是刻意要营造这样的气氛,归根结底还是需要交业绩。
3,有胡萝卜也有大棒。360还是个小公司,压力非常大,要打卡,技术这边加班到晚上10点是经常有的事情,对效率的要求极高,周鸿祎对每个人的要求是3个月出结果出成绩,所以很多项目都是闪电速度匆忙上线,很多时候根本不做小流量测试,但同时又对成功率要求非常高。做错了不会被开掉,甚至由于管理机制的松散也不会被记录在案,但一顿痛骂是在所难免的。
这种暴力的风格像病毒一样自上而下传下来,每一级的Leader都被深深传染,大家都充满戾气,对下属犯的哪怕很小的错误都很容易大发雷霆、说脏话、拍桌子甚至摔东西。除了周鸿祎身边的极少数人,其他人都时常被骂得狗血喷头,颜面扫地。我的上级在这些人中算是比较温和的,即使这样,他偶尔在部门例会上也会直接点名骂我们,气氛真的很压抑,让人心里很长时间都不舒服。
对于这样的阵势,新人最难接受,很多快速离开的人都是因为强烈觉得不受尊重,但老员工都习惯了,甚至觉得有人骂你表示重视你,打是亲骂是爱,没准还会增进感情。在这一点上,360确实与百度强调尊重、对事不对人的风格有天壤之别。
4,在百度我们常潮讽电梯里那只搞职业道德的卡通熊,那是因为李彦宏拿员工实在没太多办法管束。而周鸿祎则压根儿就从来没信任过底下人,对总监以下(包括任职期限不长的很多总监)都是进行信息屏蔽的。而且比较恐怖的是,在这种以安全为核心能力的公司里,你的一举一动包括邮件、聊天记录等都是被严密监视的,不能有任何不忠于公司的行为和言论,没有人敢像在百度那样对公司有什么意见就信口在内网发表负面评论,一位华为来的哥们儿说,他以前以为华为是管得最严的,现在知道了什么才叫恐怖。
360的公司架构极其保密,来了几个月我都没与其他部门一起开过会,所以对于隔壁团队的人在干什么,我几乎一无所知。据同事说,,公司似乎比较忌讳不同部门的人私下沟通或公开讨论问题。所以除了看外界报道,我们唯一得到全局信息的机会是全公司年会。
360的年会上基本是老周的一言堂,气氛跟百度年会祥和欢乐完全不同,事实上更像一场大型的战前动员会。他非常有个人魅力,在长达四五个小时的演讲里,纵论天下之势,画出非常宏伟的未来,用经典的京骂点评市场上的各种对手。虽然有少数刚刚加入的同学有点不习惯,但这种洗脑确实能提升肾上腺素的分泌,让人恨不得立马去和谁拼了。
360印象之二:效率高变化快
而在360,这一切都不再烦扰!在这里,流程和会议少到令人恐怖的程度,这是公司文化的一大特色,而且大多数时候号令都是自上而下以类似红头文件的形式传达下来的,目标清晰,路已铺好,你不用多想也不用与谁讨论,只管执行就行了。
在流程上,没有什么是不可省略的,没有什么既定的规则是不可打破的。这在一开始的时候让人简直爽爆了,因为你能很快出成绩。
2.但是,过了一段时间以后很多人也会像我一样,听不到周鸿祎的慷慨陈词时就会开始用自己的大脑胡思乱想。因为当我想抬起头来看看路的时候,就发现什么也看不到,我只能在每天早上的晨会上看到当天的任务单,然后指导下面的初级工程师去写代码,唯一的目标是在规定的时间内完成任务。我不知道公司将向何处去,也不知道自己所在的部门在公司里是什么战略地位,更不知道旁边那个部队的人在干什么。
最重要的是,我不知道整个技术的方向是怎么定出来的,所以也不知道自己在这个领域上发展的未来。当然,对周总来说,我这个级别的人的确不需要知道,因为他已经成竹在胸,只需要全面执行就好了。
所以我也跟一些百度朋友说过不要以为360需要搜索的人才,其实在百度平台能干的很多事在360是干不了的,这里的搜索不需要大家太多技术方向上的思考,周总和齐总早就定好了,真正控盘的核心层都是最早3721和雅虎来的那帮人。
360印象三:蜜月期与终身制
1.前几天看到个微博,说猎头说百度的员工一挖就走,360老板流氓员工都很怂。这是有其原因的。百度的文化比较宽松,对员工跳槽几乎没有管束。所以大家干了一两年再想上台阶发现慢下来了的时候,很容易产生换工作的想法,而其他公司都愿意到百度来挖人,这样一边猛拉,一边不拦,接下来的事就不用解释了。老周挖角还是比较肯砸钱的,百度员工到360多数都能得到比原来更高的薪水和期权,比较有吸引力的是行权的期限也比其他公司更短,能让你快速兑现。
但是来了后就会发现以后很长时间不会再涨啦,所以千万别拿了一个月奖金就脑子一热去贷款买房。
刚来的人会得到各级领导的热情拥抱,会感到特别被关心,言语激励,寄予厚望,蜜月幸福。
2.如果说百度的大门像大学一样自由进出的话,360的大门就像一个军队的营盘——进去容易出来难。如果你打算以辞职的方式逼老板提高待遇,在360往往能奏效。
因为任何一个员工要跳槽都要经过几道关口的反复盘问,一直要谈到齐向东,如果在比较重要的岗位,周鸿祎会亲自约谈。去哪里?为什么要走?对什么不满?待遇提高一些是否愿意留下来?如果发现你是要去竞争对手阵营就会更难放行。如果你是真的不喜欢这里或有非常好的选择决意离开,就会非常麻烦。据说需要签很多约束性文件,让你感到跳槽风险很大,弄得就像离一次婚一样,麻烦到让你最后放弃跳槽为止。而对于总监以上的人员则更铁腕,因为任何一个跳槽去对手阵营的人,就等于宣布与360和周鸿祎反目成仇,老周是很记仇的,无论你自己做还是到大公司去,都会遭到他的跟踪封杀,弄不好还会被威胁到家人的安全,这样的人谁也不想得罪,不怂不行。
对于,刚毕业的新人来说,360是一个在市场上乱拳打死老师傅可以迅速上位的平台,但对于想深在互联网领域耕细作扬名立万的人来说,到了一定的天花板,就很难发展。不过据说老周很念旧,嘴狠心软,在技术团队即使你跟不上发展的需要,360也基本从不赶人走,与百度相比,这里更像一个可以依赖的养老所在。
360印象四:高压锅与天花板
1.私下里我把360比作高压锅。
来了没多久我就开始想,为什么这里的领导都那么急躁,没有半点大将风度?一点屁大的小错就暴跳如雷?为什么不能像百度那样看到大家真正轻松地打篮球、踢毽子?
我慢慢明白,是因为他们压力太大了。因为公司一直在曲线救国,一直在做免费的东西,到现在挣钱主要就靠游戏。在百度从来没听过的亏损二字,在360财报上则是弄不好就出现。周老板野心很大,钱却少,总是不够花的,很多事情想得再好,没有足够的资源也做不成,所以对于任何一个计划,从上而下都要求以最快的速度来完成,一定要执行到最好。
我见过两个人连续24小时工作两天上线一个产品的惊人纪录,这种情况在360并不罕见。所以每个人每条线压力都很大,如果完不成,被骂事小,你和整个团队都会在里面非常难受。
2.公司经常跟人打架,一旦发生这种事儿,晚上干到十点以后那是常事儿,周末加班根本不叫加班,对了,360早上是要打卡的。再加上外部树敌较多,合作拓展是很难的,所以很多时候都是憋着一股劲儿孤军奋战。心理压力这么大,大家脾气不好也就可以理解了。所以在公司里听到大声嚷嚷和骂人的声音请不要意外。 在这样的一个环境下,你很难安心做事的心情,负能量吸收得多,自然需要发泄,所以也会看到工程师对着行政或财务人员大吼大叫。
高压也许只是一个阶段,就像红军长征,如果真有一天把搜索做起来了,也能推出竞价排名之类的赢利工具,也就能看到彩虹了。但在个人发展上,由于业务线少而且相互之间太封闭,整个平台就显得非常窄了。
3.在360干了一年半以上的人,很多都开始迷茫,这跟刚来的时候大相径庭。因为这里的管理结构非常扁平,晋升的机会也就变得非常稀有。同时,因为公司收入不高每年还有很多投资项目和较大的公关开支(都懂的)所以每年的工资涨幅是非常小的。这就是为啥让大家进来时一定要谈高些。因为以后要和公司一起勒紧腰带闹革命,每年涨的非常微小。
在百度我们比较怕的是新人,老员工和新员工永远在一个起跑线上在竞争,论功劳,不论苦劳,优秀人才可以不拘一格地被提拔上去。而360则是一种类似水泊梁山的聚义文化,新来的要立投名状才能取得江湖地位,但上面天罡地煞的位次已经排定了,VP和十几位总监都是跟了周鸿祎多年的他最信任的老人儿,除非他们主动离开,否则后面的人永远没有机会。
4.由于周鸿祎喜欢打破规则出奇制胜,所以信任在这里比能力更重要许多。又或许因为他自己是一代奸雄,惯常设计别人,所以特别害怕遭人背叛算计。他心里想什么很少有人知道,除了安全卫士以外,其他的团队都很难接近核心,网上说360上传用户隐私神马的,也是卫士部门干的。因为公司的重点是经常变的,一会儿是集中全力打QQ,如果得不到利益,又会转战其他战场比如对付小米或百度,所以其他部门都是浮萍,很多技术上非常牛的人其实在这里也只是在具体工作岗位上只负责极小的面其实就是高级的程序员。
认人唯贤和认人唯亲各有利弊,这是百度和360用人理念上的重大区别,你个人更适应哪个就选哪个。
PS,有时候在出来放风的时候我会想,这位出生在70年代的老板,懂事的时候文革已经结束了,为什么还这么有斗争精神?我们的公司到底是为什么而存在?是为了生存而战争,还是根本就是为了战争而生?有时候看到周总把人叫到办公室去讨论如何挣钱,我就会感到更加迷茫,也许他根本不知道怎么挣钱,所以只能做擅长的事——干掉业界成熟的模式,去抢钱。
呵呵,写了这么多,是不是事实大家可以验证,我最近不会离职,所以大家也不要人肉我是谁。我不想与教主为敌,但愿在他眼里我也不值得为敌。
转载声明: 本文转自 http://www.024gj.com/8019 (原文源自水木社区,但已被删除。。。???)
参考推荐:
去百度还是去创新工场? 信开复还是信彦宏?
李开复创业两年记:创新工场的孵化之困
现在做android,装完Ubuntu,自带的gcc是4.6的,我们的需要4.5.2.
根据网上资料,自己试验,总算把4.5的安装上了。
sudo apt-get install gcc-4.5
sudo apt-get install g++-4.5
这两条命令就够了,安装完了。现在系统里有两个gcc了,一个4.6,一个4.5。
先把目录切换到/usr/bin下。
sudo mv gcc gcc.bak
sudo ln -s gcc-4.5 gcc
sudo mv g++ g++.bak
sudo ln -s g++-4.5 g++
做个链接,这样就切换到4.5了。我装完后是4.5.3,虽然不是4.5.2,也可以了。
怎么装成4.5.2,有空再研究。