2020-03-13 07:32
⁄ 工业·编程
⁄ 共 561字
1)熟悉TCP/IP协议族的基本原理
IP地址的分类,定义,获得,大概的管理方法
TCP、UDP等主要协议的特点,主要格式,以及重要字段在协议交互中起到的作用。
2)对于简单的TCP/IP协议导致的问题,有基本的判断
熟悉网络问题的解决方法,一个问题,应该是由上而下(top-button),还是由下而上(button-top)来分析?
3)基本的编程知识。
在系统内,构建简单通信。
在系统间,构建简单的通信。
熟悉系统内的API,知道在什么时候,改...
网络编程阅读全文
2020-03-12 09:21
⁄ 工业·编程
⁄ 共 789字
根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步码 + 1字节帧开始定界符 + 6字节的目的MAC + 6字节的源MAC + 2字节的帧类型 + 1500 + 4字节的FCS。
按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?
原因是当数据帧到达网卡时,在物理...
网络协议阅读全文
2020-03-11 07:05
⁄ 工业·编程
⁄ 共 264字
首先看完tcp卷1,对基本概念有所了解;
然后看完卷2,熟悉freebsd实现的代码流程;
再能看完linux系统的tcp实现,以及ip路由层的实现,能说出收发包的关键流程,以及tcp状态机的变化流程,对常见的tcp问题定位有一个方向;
知道tcp涉及的rfc文档,有些厂商自己实现的tcp协议栈可能不太符合规范,通信起来偶尔会遇到一些奇怪的问题,争论起来最好是拿标准规范来说明;
熟悉常用的tcp工具,tcpdump,wireshark,tc,scapy等;
熟...
网络编程阅读全文
2020-03-10 12:15
⁄ 工业·编程
⁄ 共 1100字
Akka是一个开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于JVM的应用,使构建高并发的分布式应用更加容易。
听到高并发和分布式这两个关键字就已经足够让人想去探索究竟是什么样的框架,当深入查看各种资料后,发现当前大数据领域火热的spark、flink底层的分布式计算和通信实现都是akka,是不是很意外。虽然它是由scala编写的,但也同时提供java api接口,所以使...
akka, scala阅读全文
2020-03-09 09:02
⁄ 工业·编程
⁄ 共 411字
从快速上手的实用角度,非常推荐大家入手《 Scala 实用指南》,Scala 确实有特别复杂的一面,在团队协作中,大家也可以用本书作为一个 Scala 编程风格的指引,尽可能少地去使用那些 tricky 的 Scala 特性。
个人简评:
《 Scala 实用指南》:详细简洁,适合 Java 老司机,有很多深入 Java 字节码的分析,尤其适合没有接触过函数式编程的同学入门,没有难读的章节
《 Scala 编程》:学院派,出自 Odersky ...
scala, 书籍推荐阅读全文
2020-03-08 08:16
⁄ 工业·编程
⁄ 共 913字
下面只是说说spark研发团队为什么选择scala,不是对比语言好坏。
第一:java与scala
1、当涉及到大数据Spark项目场景时,Java就不太适合,与Python和Scala相比,Java太冗长了,一行scala可能需要10行java代码。
2、当大数据项目,Scala支持Scala-shell,这样可以更容易地进行原型设计,并帮助初学者轻松学习Spark,而无需全面的开发周期。但是Java不支持交互式的shell功能。
第二:Python与Scala
虽然两者都具有简洁的语法,两...
scala, Spark阅读全文
2020-03-07 08:09
⁄ 工业·编程
⁄ 共 1667字
我是在腾讯做游戏后台的,从2018年底开始,我们项目从零开始逐渐使用scala,到现在占据半壁江山。怎么做到的呢?简单一句话:找到一个语言最适合的场景去应用它,用好它,用出花来;立住脚后,再慢慢向外围扩展。
最初的应用是什么呢?大数据,spark开发。游戏用户规模庞大,行为也很复杂,我们游戏用户行为日志单日在TB级别。为了更好地了解用户(咳咳,更好地赚钱),我们需要对数据有更深刻的理解。开始我们试过sql,试过pys...
scala, 经验阅读全文
2020-03-06 07:21
⁄ 工业·编程
⁄ 共 1182字
我有近十年的游戏后端开发经验,端游,手游都做过。从我的观察而言,在决定后端技术栈选择方向时,除了编程语言自身的开发效率,库及社区的丰富和活跃程度,以及解决问题的复杂程度外,还需要非常关注: 基础设施、配套服务,以及开发人员招聘培养的难易度。
回到题主关于C++的问题。首先一些新的游戏产品,后端开发技术已经百花齐放了,jvm系,Erlang,go,Python都有。那么仍在坚持C++的原因是啥呢?我觉得有两点:
1. 历史积淀...
c++阅读全文
2020-03-05 23:18
⁄ 工业·编程
⁄ 共 1884字
1、并发编程
什么是并发?并发简单的说就是无须以特定顺序执行的事物,如果硬件允许,那么进程可以同时执行,如果硬件不允许,则交替执行,进程与进程之间相互独立且执行没有顺序之分,这样就是并发。
erlang 的一大优势就是它帮你隐藏了任务实际执行的细节,如果有额外的CPU,erlang会利用他们并行执行更多并发任务,如果没有,erlang会利用现有的 CPU处理能力一点一点的交替执行任务,你不必操心这些细节,erlang程序能够自动...
Erlang阅读全文
2020-03-04 22:35
⁄ 工业·编程
⁄ 共 2407字
大体上,otp_src的代码如下图这样组织的(打开文件夹就可以看到,算不上什么Thirty Thousand Feet).与我们每天写代码最息息相关的是ERTS和lib;ERTS(Erlang Run-Time System)包含了Erlang运行时系统的代码,是Erlang的基础设施.lib包含了所有的外围类库实现,有些类库的安排是违反直觉的,不过习惯了就好了,比如file.erl不是在stdlib而是在kernel;gen_server gen_fsm的代码实现应该是在kernel吧?错,它们的代码是在stdlib...
Erlang, 方法阅读全文