欢迎来到天天文库
浏览记录
ID:30004790
大小:796.00 KB
页数:29页
时间:2018-12-25
《基于64核下tcpip协议栈的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、学士学位论文基于64核下TCP/IP协议栈的实现学生姓名耿魁学科专业软件工程指导教师杨淑群福建师范大学软件学院 二О一一年五月25FujianNormalUniversityFacultyofSoftwareImplementationoftheTCP/IPProtocolStackBasedonTILE64ProcessorAThesisinSoftwareEngineeringByGengKuiAdvisedbyYangShuqunSubmittedinPartialFulfillmentOftheRequirementsFortheDegreeofBachelorofE
2、ngineeringMay,201125基于64核下TCP/IP协议栈的实现软件学院软件工程专业123012007003耿魁指导教师:杨淑群【摘要】TCP/IP协议作为成熟的网际互联手段和标准,已成为嵌入式系统接入互联网的首选协议。但是在嵌入式系统中,硬件资源较少,难以支持整个TCP/IP协议。本文以TILExpress-64开发板作为硬件平台,根据网络开发应用的需求,对TCP/IP协议栈进行研究和改进,实现基于64核下的TCP/IP协议栈。【关键字】多核处理器,TCP/IP,协议栈,嵌入式系统。25目录1.引言11.1课题背景11.2课题介绍12.Tilera硬件平台12.
3、1TILExpress-64开发板12.1.1TILE64多核处理器12.1.2开发板结构22.2Tilera系统的软件架构33.TCP/IP协议43.1地址解析协议——ARP协议53.2网际协议——IP协议63.3传输控制协议——TCP协议63.4用户数据报协议——UDP协议63.5域名系统——DNS协议64.协议栈的设计与实现64.1协议栈本质及其分层架构74.2打开和关闭套接字——socket、close函数74.2.1socket函数74.2.2close函数94.3绑定本地地址——bind函数94.4设置和获取套接字选项——setsockopt、getsockopt
4、函数104.4.1setsockopt函数104.4.2getsockopt函数114.5管理网络接口——ioctl函数114.6管理套接字——fcntl函数124.7监视套接字——select函数124.8建立连接——connect函数134.9传送数据——sendto、send函数164.9.1sendto函数164.9.2send函数184.10接收数据——recvfrom、recv函数184.10.1recvfrom函数184.10.2recv函数184.11解析域名——gethostbyname函数195.TILE64平台上的Nmap移植195.1协议栈功能验证19
5、5.2Nmap移植206.结束语226.1本文成果总结226.2后续工作展望22致谢24参考文献25251.引言1.1课题背景随着计算机技术的不断发展,多核处理器[1]已经成为时代的主流。多核市场目前由两大阵营组成:以Intel公司和AMD公司组成的X86阵型;以NetLogic、Cavium、Telira、ARM、IBM等公司组成的MIPS阵型。X86采用CISC(ComplexInstructionSetComputing)复杂指令集,按顺序串行执行程序命令,控制简单,适于PC以及中、低端服务器,而MIPS采用RISC(ReducedInstructionSetCompu
6、ting)精简指令集,其相对于CISC指令来说格式统一,种类和寻找方式较少,并采用了“超标量和超流水线结构”,大大提高了处理速度,适于网络通信、信息安全及高端服务器[2]。为了提升在信息安全领域的竞争力,MIPS阵营提出了SoC(SystemonChip),即片上系统[3],将网络连接、负责均衡、加/解密、应用加速等功能集成在每个芯片上[4],更适合开发超高速网络流量的网络完全产品。国内一线信息安全厂商联想网御在2008年率先在国内推出了基于MIPS多核架构的万兆安全网关,其网络处理能力可达40Gbps,新建连接速率可达每秒30万个以上[5]。1.2课题介绍在本课题中,硬件平
7、台是由Tilera公司生产的TILExpress-64多核处理器开发板。TILExpress-64开发板具有64个相同的处理器内核,这些处理器内核既可以各自运行一个独立的操作系统,也可以几个内核合起来运行一个支持多进程的操作系统。该开发板同时也支持标准C/C++编程,对外提供了6个RJ45的网络接口。Tilera系统提供了应用层编程(NetIO模式),系统函数库提供了相应的API函数,如收包函数netio_get_packet()、发包函数netio_send_packet()等。在NetIO编程模式下
此文档下载收益归作者所有