生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

时代技术人员为何要懂网络编程

12月20日 顾昀汐投稿
  什么是网络编程?用一句话概括,就是对网络协议的落地。
  落地,意味着对实战的要求更高。所以,一些朋友更喜欢用类似Netty这种封装好的框架快速,高效。既然这样,为什么要学网络编程呢?
  跟开发细节相比,有时候我们更看重开发效率。但很多时候,必须要面对极端的网络性能考验。没人喜欢堵车,但应对大量请求时,如果网络性能处理不佳,数据、业务就会面临大塞车。
  我在绿盟做研发那会儿,有个信息安全产品,叫黑洞,是当时市场上最成功的DDOS过滤设备,为绿盟贡献了丰厚的收入和利润。网络编程技术
  从技术上说,最大的难点在于:攻击报文洪水到达时,每秒要过滤掉几十万攻击请求,一点不夸张。当时,我们用了一种叫零拷贝的核心技术,需要对操作系统内核和网络协议底层有很深入的了解。
  掌握核心技术的是两位清华博士师兄,对我自己而言,则是开拓了视野。在这之前,我从没想过通过程序代码,对网络报文的处理效率,竟然能达到如此强悍的地步。
  前段时间,跟清华大学计算机系的青年长江学者崔教授吃了个饭,聊到他主持的流媒体实验室。我们说,流媒体优化对各大视频网站非常重要,不仅需要高效的视频无损压缩算法,还需要极高的网络处理效率。
  而且,5G时代要来了,用户的平均网络传输速度正在大幅提升。对流媒体平台来说,提供高质量的视频势在必行。压力在哪里,身为技术人的你,应该不难猜到。
  而高性能网络编程,就意味着:不仅要解决诸如提高吞吐量和并发性等问题,还得处理各种棘手异常,比如保证千万个连接的正常运行等等。这些,可不是一个框架就能搞定的。
  框架的产生,或是为了实现跨平台支持,例如JDK;或是为了屏蔽网络编程的细节,让开发更方便,例如libevent。直接学框架,出了问题也难以排查,更难以捋顺框架背后的设计逻辑。
  我面试过一些候选人,发现即使是工作多年的技术人,对网络协议和网络编程的理解,仍然停留在一个比较浅的层次上,比如:
  大家经常说的四层、七层,分别指的是什么?
  TCP三次握手是什么,TIMEWAIT是怎么发生的?CLOSEWAIT又是什么状态?
  Linux下的epoll解决的是什么问题?如何使用epoll写出高性能的网络程序?
  什么是网络事件驱动模型?Reactor模式又是什么?
  大多数人仅停留在是这样的阶段,对为什么缺乏深入了解。其实,无论在面试还是工作中,这方面知识都是非常重要的基本功。用思想驾驭工具,仍需要再一次强调。
  在我看来,学高性能网络编程,首先要掌握两个核心要点:第一,在理解网络协议的基础上,充分利用操作系统内核提供的能力,感知各种网络IO事件;第二,学会使用线程处理并发。
  抓住这两个核心问题,就抓住了高性能网络编程的七寸。
  分享给你一张网络编程的核心知识图谱,仔细梳理、透彻理解这些知识点,才能学以致用地解决工作中的实际问题。网络编程技术
  这张图谱出自盛延敏,最近他跟极客时间合作了专栏《网络编程实战》。
  提前看了下目录,其实挺想多说一句:这名字起得太朴素了。要我的话,就叫:高性能网络编程,因为整个专栏都是围绕高性能展开的。
  但话又说回来,高性能就建立在那些实打实的经验基础上,所以现在这个也算简洁有力。内容同样是单刀直入展开,比如在讲解某个理论或算法时,与代码、实验相关联,分析它提出的目的、解决了哪些问题。
  说白了,就是从解决实际问题的角度切入,讲解知识点,让你透彻理解协议、API和代码。学完就能用得上,这点挺不错的,值得推荐给你。
  关于盛延敏
  盛延敏,前大众点评云平台首席架构师,现就职于某大型金融服务公司(很好猜但人家不让说),专注云计算的架构和开发工作。网络编程技术
  博士毕业于中科大,毕业后加入IBM,从事WebSphere应用服务器、PaaS平台Bluemix等系统的开发工作。后任职大众点评,推动了以Docker为核心的私有云建设和落地。
  2000年起,他开始用网络编程框架ACE、CORBA等进行电信网管系统的开发,后来接触了ICE,写分布式控制系统。再之后转向Java,使用JDK进行WebService和应用服务器的网络开发和研究,使用Netty进行Java高性能网络编程的开发。
  他是如何讲解网络编程的?
  网络编程是个重实战的模块。在专栏中,他从底层原理讲起,逐步聚焦到高性能编程上,讲解了常见异常和性能问题,并手把手带你编写一个高性能HTTP服务器。
  专栏主要聚焦Linux系统下的网络编程,相比于Windows,Linux可以更好、更完善地实现互联网的所有底层通道。加上基于Linux的移动开发平台Android迅速崛起,Linux的重要性我也不多说了。
  专栏主要分三大层级,逐步递进:
  第一,理解TCPIP网络模型和协议。
  在基础篇中,梳理了TCPIP模型和网络函数接口之间的联系,通过实例展开对套接字、套接字缓冲区、拥塞控制、数据包和数据流、本地套接字(UNIX域套接字)等的讨论,交付了一个全面细致的知识体系。
  第二,结合对协议的理解,增强对各种异常情况的处理能力。
  比如,对TCP数据流的处理、半关闭的连接、TCP连接有效性的侦测、处理各种异常情况等,这些问题决定了程序的健壮性。这一部分的内容,在提升篇有详细展开。
  第三,写出可支持大规模高并发的网络处理程序。
  在性能篇中,深入研究了C10K问题,引入进程、线程、多路复用、非阻塞、异步、事件驱动等现代高性能网络编程所需要的技术,并在实战篇中,结合实例进行上手操作,让你可以独立写出高性能的网络程序。
  我看盛延敏用荀子那句不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之。来诠释学习网络编程的最佳方法,太文艺了,要我说的话:学就完了。
  学透了,就要去用,你可以对专栏里的代码进行修改和调试,进一步加深理解。把这些内容吃下去,消化掉,从底层到实战,透彻理解高性能网络编程。
  5G时代快到了,很多人说这是一场革命。是不是业务创新的革命,我说不好。但如果一个业务平台的网络优化技术没跟上,面对每个客户端平均数倍的网速激增,你猜先会革掉谁的命网络编程技术
投诉 评论 转载

丑公主作文500字从前,有个心心王国。心心王国里有一个公主,她长得很丑,王国里的人都叫她丑公主。丑公主虽然丑,但是她有一颗善良的心。她每次到其他地方玩时,见到穷人或讨钱的人都会施舍。有一次……用赞扬升华自己高中作文花儿的娇艳倘若没有人赏识,只会变得孤芳自赏;大海的汹涌倘若没有风的推动,它的海面也只会变得风平浪静;雨的滂沱倘若没有电闪雷鸣得助阵,它也只会变得没有气势。人也一样,需要别人去赞……下雪了700字作文盼来了!盼来了!冬爷爷真的来了!雪花娃娃们纷纷扬扬地飘了下来,给大地披上了雪白雪白的外衣,树木白了、田野白了、草地白了、群山也白了。早晨,大地早已给大雪覆盖,一片白雪皑皑……我的大朋友作文700字我有两个大朋友,一个是男的,一个是女的。我的女大朋友恰好是我最好的老师黄老师。她的名字叫黄晓征,她温柔、善良、美丽。身材苗条,身高一米六左右。小巧的、稍长的脸上嵌着一双会说话的……傣族有哪些独特的饮酒文化热情好客是很多游客对傣族人的第一印象。到傣族地区旅游除了可以吃到数不尽的美食之外,还要品尝当地的美酒。傣族有哪些独特的饮酒文化?下面本站小编就给大家详细解答一下。傣族聚居……关于我的什么梦的优秀作文8篇篇一:我的公主梦我从小就想当公主,这是我一直以来的梦。我喜欢读有关公主的书,在书里让我看到了一个新奇的世界。散发着迷人墨香的书,带领我走进那个幻想了无数次的当公主的……如何打造一个有价值的公众号微信公众号可分为四大类型:服务号、订阅号、小程序和企业微信;对于一个公众号来说,最重要的是稀缺价值,就是只有你才有的价值,而一直输送优质内容,才是公众号有价值的关键。解决……时代技术人员为何要懂网络编程什么是网络编程?用一句话概括,就是对网络协议的落地。落地,意味着对实战的要求更高。所以,一些朋友更喜欢用类似Netty这种封装好的框架快速,高效。既然这样,为什么要学网络……2015关于军训感受作文500字【篇一】军训,是我们每个人所必须经历的一个过程。就像风雨过后才能见彩虹一样,没受过严寒的梅花是不会开出美丽的花朵的。一个人若是没有经过一番艰难困苦,是不会成为名留青史的伟……2020最新观开学第一课有感范文(精选3篇)当观看完一部作品后,从中我们收获新的思想,是时候抽出时间写写观后感了。那么你会写观后感吗?下面是小编精心整理的2020最新观开学第一课有感范文(精选3篇),仅供参考,大家一起来……赫赫造句用赫赫造句大全91)记得有一个马姓同学,屡败屡战,在“老补”生中赫赫有名,因为他连续补习八年,人称“八年抗战”,终因考运不佳,功败垂成。92)是故无冥冥之志者,无昭昭之明;无惛惛之事者……中国因你们而感动当2012年的钟声敲响时,当2012年的颁奖典礼召开时,当你们手拿奖杯、手捧鲜花摇摆时,你们已感动了中国。那年的那天,你带着妻子,舍下年迈的老母亲,去了遥远的西藏。你毫不……
高三生活总概小儿急性肾炎的尿异常症状分析有哪些浅谈幼儿良好习惯的养成关于元旦的作文新年第一天如何挑选干贝周芷若是为爱黑化吗周芷若人物性格解析文具盒里的争吵100篇中考满分作文记叙文精选(95)岳飞的详细资料岳飞的个人资料岳飞的故事事迹天地气交立夏时亲爱的妈妈作文300字科学名言警句合集

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找