您的位置:首页 > 编程语言 > PHP开发

从业经历回顾之TP-LINK

2015-05-09 21:45 645 查看
08年毕业到10年5月 TP-LINK

  在TP-LINK工作了近两年,主要从事于路由器平台软件开发。

  1. 实习期主要熟悉路由器基本功能,分析TCP/IP协议,开发TDDP协议。这个阶段主要以学习为主,逐项了解家用SOHU路由器的软件功能,用wireshark抓包工具分析网络报文,撰写TDDP协议文档和代码。

  在TDDP网络协议的设计阶段,原设计的草稿是参考底层IP协议,定义很多的特别字段,这样设计虽然能够提升网络数据解析的成本,但TDDP协议不是高负载服务器使用的协议,协议本身的目的只是用于PC工具配置路由器,效率不是主要考虑的因素,配置的可扩展和可读性是核心需求。

  此协议应该使用类HTTP的文本字符串方式来处理。它适用于局域网,所以使用UDP作为底层传输协议。

  2. 路由器轻量级webserver的分析和DHCP客户端功能维护

  路由器的轻量级webserver改编自vxworks下的apache服务器。分析主题代码并撰写设计文档。

 在ADSL时代,路由器上网最主要用PPPoE拨号上网。拨号连接宽带提供商的稳定支持是SOHO路由器最重要的指标之一。但是在光纤时代,DHCP则是路由器连接光猫的主要方式。DHCP作为路由器连接外部网络的方式,它的稳定运行显得尤为重要。当时主要是分析DHCP客户端和协议,解决部分网络提供商的DHCP服务器的特定扩展。

  3. 路由器NAS功能的开发

  在老同事研究的基础上,完成设计方案,负责具体的实现。

  A. USB存储设备,配置内核实现usb外设的支持

  B. NTFS文件系统,用fuse和ntfs-3g

  C. 网络共享, 移植并精简samba

  整个移植和精简的过程非常的艰辛。特别是对移动硬盘的供电稳定性以及长时间运行死机问题,耗费了很多的时间和精力。

  死机问题特别值得提一下,路由器NAS功能运行1天左右很可能出现死机,但是此时串口(UART)没有任何的打印,尝试在内核中加入了很多的打印,总是没有定位到原因。离职后半年,听前同事说升级Linux内核后,NAS运行死机的问题终于解决了,具体原因还是不明。

  4. SOHO路由器的网络驱动开发

  根据DataSheet,调整Demo代码,配置交换机的PHY和MAC,设置VLAN,在网络驱动层虚拟WAN口,使用NAPI架构优化网络相应速度,通过GPIO设置LED灯。

  研究DataSheet确实很枯燥,但跟硬件工程师一起分析和讨论,了解一些硬件特性,回想起来还是很有意思的。

  5. 3G路由器软件平台的开发

  基于公司路由器设计方案,在芯片厂商提供的demo代码基础上,调整交叉工具链(toolchain)、修改bootloader(U-boot)、配置内核(主要是Flash,MTD以及Netfilter)、编写网络驱动、移植webserver,试整个路由器系统运行起来,然后一步步的优化调整。

  修改Makefile和编译脚本,一键完成整个路由器firmware的编译。

  (注: 上述3、4和5的内容本可以写得非常充实,但是细节过多,不适合此主题,因此简化)

  在TP-LINk的主要遗憾:

  A. 对SOHO路由器行业的发展和趋势未关注,只是专注于技术层面;

  B. 未用内部论坛扩大影响力;

  C. 未系统性的学习Netfilter框架;

  D. 无线部分的知识缺失;

  E. 对路由器的整体软件平台的优化和思考不够

  现在,各个厂商为抢占智能家居的入口,都在做路由器。我知道的主要用的是开源嵌入式Linux软件平台OpenWrt。

  SOHO路由器的主要发展趋势:

  A. 智能化

     智能化这个概念目前还在炒作阶段,最主要的功能还是提供上网功能。

     它应该成为家庭的娱乐内容中心、家用电器的管理和控制中心。

  B. 网络加速和内容分发

    天朝的网络缺失太差,因此各种游戏加速、上网加速在路由器上大有可为。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息