CN102685243A - 一种轻量级tcp/ip协议栈的实现方法 - Google Patents

一种轻量级tcp/ip协议栈的实现方法 Download PDF

Info

Publication number
CN102685243A
CN102685243A CN2012101613780A CN201210161378A CN102685243A CN 102685243 A CN102685243 A CN 102685243A CN 2012101613780 A CN2012101613780 A CN 2012101613780A CN 201210161378 A CN201210161378 A CN 201210161378A CN 102685243 A CN102685243 A CN 102685243A
Authority
CN
China
Prior art keywords
protocol
network
protocol stack
processing module
implementation method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012101613780A
Other languages
English (en)
Other versions
CN102685243B (zh
Inventor
胡事民
赵鹏
朱龙云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201210161378.0A priority Critical patent/CN102685243B/zh
Publication of CN102685243A publication Critical patent/CN102685243A/zh
Application granted granted Critical
Publication of CN102685243B publication Critical patent/CN102685243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出了一种轻量级TCP/IP协议栈的实现方法,其包括如下步骤:首先,socket编程接口处理模块接收应用程序请求并对不兼容的应用程序请求进行格式转换;然后,TCP协议处理模块或UDP协议处理模块对网络数据包进行处理;再后,IP协议处理模块对网络数据包进行打包、拆包和分片;最后,对网卡驱动进行统一的数据抽象。本发明的轻量级TCP/IP协议栈的实现方法在专用操作系统的内核中实现轻量级的TCP/IP协议栈层,使得专用操作系统能够与其他通用操作系统进行网络通信,增强了系统的可扩展性。

Description

一种轻量级TCP/IP协议栈的实现方法
技术领域
本发明属于通信技术领域,涉及轻量级TCP/IP协议栈实现方法,特别涉及一种在专用操作系统中使用的轻量级TCP/IP协议栈的实现方法。
背景技术
TCP/IP协议栈的任务是在不同的机器之间进行数据通信,使数据传输不受地域的限制。在TCP/IP协议栈中包含有一系列构成互联网基础的网络协议。目前,TCP/IP协议栈已经被广泛应用在互联网中,成为了事实上的互联网通信标准。
TCP/IP协议栈中包含有多种协议来满足网络应用的不同需求,而在专用操作系统中,作为内核的组成部分,如何在专用操作系统的内核中实现轻量级的TCP/IP协议栈层,使得专用系统能够与其他通用操作系统进行网络通信是一个需要解决的技术问题。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种轻量级TCP/IP协议栈的实现方法。
为了实现本发明的上述目的,本发明提供了一种轻量级TCP/IP协议栈的实现方法,其包括如下步骤:
S1:socket编程接口处理模块接收应用程序请求并对不兼容的应用程序请求进行格式转换;
S2:TCP协议处理模块或UDP协议处理模块对网络数据包进行处理;
S3:IP协议处理模块对网络数据包进行打包、拆包和分片;
S4:对网卡驱动进行统一的数据抽象。
本发明的轻量级TCP/IP协议栈的实现方法在专用操作系统的内核中实现轻量级的TCP/IP协议栈层,使得专用操作系统能够与其他通用操作系统进行网络通信,增强了系统的可扩展性。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明轻量级TCP/IP协议栈的实现方法流程图;
图2是本发明一种优选实施方式中协议组织架构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
本发明提出了一种轻量级TCP/IP协议栈的实现方法,如图1所示,该轻量级TCP/IP协议栈的实现方法包括如下步骤:
S1:socket编程接口处理模块接收应用程序请求并对不兼容的应用程序请求进行格式转换;
S2:TCP协议处理模块或UDP协议处理模块对网络数据包进行处理;
S3:IP协议处理模块对网络数据包进行打包、拆包和分片;
S4:对网卡驱动进行统一的数据抽象。
在本实施方式中,本发明的轻量级的TCP/IP协议栈包括IP协议,ICMP协议,ARP协议,TCP协议和UDP协议。同时,为了增强可扩展性和应用程序的兼容性,增加了socket转换层和网卡驱动抽象层。其中,socket转换层是为了符合通用的网络socket编程接口,兼容大多数的网络应用程序;网卡驱动抽象层是对网卡驱动的统一管理层。数据在该轻量级的TCP/IP协议栈中进行处理后将通过网卡驱动抽象层发送到具体的网卡设备上。
在步骤S1中,socket编程接口处理模块接收应用程序请求并对不兼容的应用程序请求进行格式转换,应用程序通过调用socket系统调用完成网络编程,Socket编程接口处理模块根据应用程序调用的系统调用及参数完成网络数据包的初始化及参数的设置。在本实施方式中,socket编程接口处理模块只处理协议族为PF_INET及PF_INET6,即TCP/IP协议族的请求,其他协议族的请求不支持。并且,只支持SOCK_STREAM参数(可靠的面向连接的服务)和SOCK_DGRAM(数据包服务)参数。当使用bind调用时,若没有指定具体绑定端口,则会自动分配一个10000端口以上的没有占用的端口作为默认端口。
socket编程接口处理模块对应用程序请求进行转换后,进入步骤S2,即TCP协议处理模块或UDP协议处理模块对网络数据包进行处理,数据处理流程将会分别调用TCP协议处理模块或UDP协议处理模块。当网络采用TCP传输方式后,socket将调用TCP协议处理模块进行数据处理,所述TCP协议处理模块实现正常的TCP流程的状态机、通过窗口大小来完成流量和拥塞控制;当网络采用UDP传输方式后,socket将调用UDP协议处理模块进行数据处理,所述UDP协议处理模块完成数据包的UDP协议封装。
然后,进行步骤S3,IP协议处理模块对网络数据包进行打包、拆包和分片。IP协议包括IPv4和IPv6两个版本,两个版本的协议处理调用通过socket接口参数进行选择,IP协议只实现了IP数据包的打包和拆包,支持IP数据包的分片机制,不支持IP转发机制。在本实施方式中,还利用ARP协议和ICMP协议辅助IP协议工作,其中,ARP协议对MAC地址和IP地址进行解析,ICMP协议对网络控制数据包进行发送和解析。
最后,进行步骤S4,对网卡驱动进行统一的数据抽象,由于网络设备所采用的网卡众多,网卡驱动千差万别,通过驱动的数据抽象来规范网卡驱动的统一化管理。这一步主要维护当前可用网卡设备,当网卡设备启用时,需要向该网卡驱动的数据抽象进行注册,并完成网卡驱动数据抽象同网卡驱动的连接;当需要发送的数据到达网卡驱动数据抽象层时,通过本地维护的路由表选择具体使用的网卡设备从而完成数据发送。
本发明的轻量级TCP/IP协议栈的实现方法在专用操作系统的内核中实现轻量级的TCP/IP协议栈层,使得专用操作系统能够与其他通用操作系统进行网络通信,增强了系统的可扩展性。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (9)

1.一种轻量级TCP/IP协议栈的实现方法,其特征在于,包括如下步骤:
S1:socket编程接口处理模块接收应用程序请求并对不兼容的应用程序请求进行格式转换;
S2:TCP协议处理模块或UDP协议处理模块对网络数据包进行处理;
S3:IP协议处理模块对网络数据包进行打包、拆包和分片;
S4:对网卡驱动进行统一的数据抽象。
2.如权利要求1所述的轻量级TCP/IP协议栈的实现方法,其特征在于,在所述步骤S1中,应用程序通过调用socket系统调用完成网络编程,Socket编程接口处理模块根据应用程序调用的系统调用及参数完成网络数据包的初始化及参数的设置。
3.如权利要求2所述的轻量级TCP/IP协议栈的实现方法,其特征在于,所述参数为CK_STREAM和SOCK_DGRAM参数。
4.如权利要求1所述的轻量级TCP/IP协议栈的实现方法,其特征在于,在所述步骤S1中,处理协议族为PF_INET及PF_INET6的请求,即TCP/IP协议族的请求。
5.如权利要求1所述的轻量级TCP/IP协议栈的实现方法,其特征在于,在所述步骤S1中,当使用bind调用时,若没有指定具体绑定端口,则会自动分配一个10000端口以上的没有占用的端口作为默认端口。
6.如权利要求1所述的轻量级TCP/IP协议栈的实现方法,其特征在于,在所述步骤S2中,当网络采用TCP传输方式后,socket将调用TCP协议处理模块进行数据处理,所述TCP协议处理模块实现正常的TCP流程的状态机、通过窗口大小来完成流量和拥塞控制;
当网络采用UDP传输方式后,socket将调用UDP协议处理模块进行数据处理,所述UDP协议处理模块完成数据包的UDP协议封装。
7.如权利要求1所述的轻量级TCP/IP协议栈的实现方法,其特征在于,在所述步骤S3中,IP协议包括IPv4和IPv6两个版本,两个版本的协议处理调用通过socket接口参数进行选择。
8.如权利要求1所述的轻量级TCP/IP协议栈的实现方法,其特征在于,在所述步骤S3中,利用ARP协议和ICMP协议辅助IP协议工作,所述ARP协议对MAC地址和IP地址进行解析,所述ICMP协议对网络控制数据包进行发送和解析。
9.如权利要求1所述的轻量级TCP/IP协议栈的实现方法,其特征在于,在所述步骤S4中,维护当前可用网卡设备,当所述网卡设备启用时,向所述网卡驱动数据抽象进行注册,并完成所述网卡驱动数据抽象同网卡驱动的连接;当需要发送的数据到达网卡驱动数据抽象层时,通过本地维护的路由表选择具体使用的网卡设备从而完成数据发送。
CN201210161378.0A 2012-05-22 2012-05-22 一种轻量级tcp/ip协议栈的实现方法 Active CN102685243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210161378.0A CN102685243B (zh) 2012-05-22 2012-05-22 一种轻量级tcp/ip协议栈的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210161378.0A CN102685243B (zh) 2012-05-22 2012-05-22 一种轻量级tcp/ip协议栈的实现方法

Publications (2)

Publication Number Publication Date
CN102685243A true CN102685243A (zh) 2012-09-19
CN102685243B CN102685243B (zh) 2015-03-04

Family

ID=46816596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210161378.0A Active CN102685243B (zh) 2012-05-22 2012-05-22 一种轻量级tcp/ip协议栈的实现方法

Country Status (1)

Country Link
CN (1) CN102685243B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491000A (zh) * 2013-09-17 2014-01-01 烽火通信科技股份有限公司 虚拟路由器冗余协议虚拟ip和mac的管理系统及方法
CN103997500A (zh) * 2014-06-04 2014-08-20 西北工业大学 一种轻量级实时tcp/ip协议栈的实现方法
CN112019491A (zh) * 2019-05-31 2020-12-01 烽火通信科技股份有限公司 一种报文处理方法及系统
CN112506674A (zh) * 2019-09-16 2021-03-16 北京华耀科技有限公司 Linux系统下用户态TCP/IP协议栈与本地应用通信的系统及方法
CN114726924A (zh) * 2022-05-17 2022-07-08 北京安盟信息技术股份有限公司 一种基于tcp/ip协议栈特性提高网络带宽利用率方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101951378A (zh) * 2010-09-26 2011-01-19 北京品源亚安科技有限公司 用于ssl vpn的协议栈体系结构及数据处理方法
CN102055774A (zh) * 2009-11-10 2011-05-11 腾讯科技(深圳)有限公司 基于包处理的http服务器及其数据处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055774A (zh) * 2009-11-10 2011-05-11 腾讯科技(深圳)有限公司 基于包处理的http服务器及其数据处理方法
CN101951378A (zh) * 2010-09-26 2011-01-19 北京品源亚安科技有限公司 用于ssl vpn的协议栈体系结构及数据处理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吕俊龙等: "《基于无线嵌入式系统的轻量级TCP/IP协议栈》", 《计算机工程与设计》, no. 24, 31 December 2010 (2010-12-31) *
王新建: "《微操作系统中轻量级TCP/IP协议的研究与实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 November 2006 (2006-11-15) *
王新建等: "《轻量级TCP/IP协议中缓冲区与内存管理技术的研究与实现》", 《计算机与信息技术》, no. 11, 30 November 2005 (2005-11-30) *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491000A (zh) * 2013-09-17 2014-01-01 烽火通信科技股份有限公司 虚拟路由器冗余协议虚拟ip和mac的管理系统及方法
CN103491000B (zh) * 2013-09-17 2016-09-28 烽火通信科技股份有限公司 虚拟路由器冗余协议虚拟ip和mac的管理系统及方法
CN103997500A (zh) * 2014-06-04 2014-08-20 西北工业大学 一种轻量级实时tcp/ip协议栈的实现方法
CN112019491A (zh) * 2019-05-31 2020-12-01 烽火通信科技股份有限公司 一种报文处理方法及系统
CN112019491B (zh) * 2019-05-31 2022-09-13 烽火通信科技股份有限公司 一种报文处理方法及系统
CN112506674A (zh) * 2019-09-16 2021-03-16 北京华耀科技有限公司 Linux系统下用户态TCP/IP协议栈与本地应用通信的系统及方法
CN112506674B (zh) * 2019-09-16 2024-02-02 北京华耀科技有限公司 Linux系统下用户态TCP/IP协议栈与本地应用通信的系统及方法
CN114726924A (zh) * 2022-05-17 2022-07-08 北京安盟信息技术股份有限公司 一种基于tcp/ip协议栈特性提高网络带宽利用率方法

Also Published As

Publication number Publication date
CN102685243B (zh) 2015-03-04

Similar Documents

Publication Publication Date Title
EP2712127A1 (en) Interconnection method, device and system
CN102447627B (zh) 报文封装和解封装的装置及方法
CN102685243A (zh) 一种轻量级tcp/ip协议栈的实现方法
EP2885898B1 (en) Method and system for virtual and physical network integration
EP2676523B1 (en) Method and system of providing internet protocol (ip) data communication in a nfc peer to peer communication environment
CN104125191B (zh) 基于以太网的点对点协议的处理方法、设备和系统
US11936562B2 (en) Virtual machine packet processing offload
WO2012033117A1 (ja) ネットワークシステム、及びネットワーク管理方法
EP3550799A1 (en) Heterogeneous multi-protocol stack method, device and system
US20120054316A1 (en) Tcp multiplexing over a proxy
WO2015143802A1 (zh) 业务功能链处理方法及装置
CN106209553A (zh) 报文处理方法、设备及系统
WO2014019205A1 (zh) 处理数据报文的方法、装置及系统
US20160028860A1 (en) Method for parsing network packets having future defined tags
CN111510513B (zh) 一种map-e链路加速方法、装置、存储介质及网络设备
CN105162674A (zh) 一种物理机访问虚拟网络的方法及网卡
WO2007066752A1 (ja) 中継装置及びクライアント機器とサーバとの接続方法
WO2007136101A1 (ja) 通信モジュール及びこの通信モジュールを備えたアプリケーションプログラム
WO2017080590A1 (en) Technique for exchanging datagrams between application modules
CN101895529B (zh) 一种在驱动层判断tcp/ip包所属进程的方法
CN105898892A (zh) 利用wifi probe请求以及响应包实现快速通信的方法
KR101481410B1 (ko) 메모리 카드 장치
WO2014180213A1 (zh) 一种tcp会话建立方法、装置、宿主节点和卫星节点
CN109005150B (zh) 基于以太网mac地址的无链接通信方法及系统
CN105847136B (zh) 一种支持多协议的无线传感网通信方法及IPv6网关

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant