网络协议栈设计(一)---前言

来源:互联网 发布:淘宝怎么看访客 编辑:程序博客网 时间:2024/05/16 10:35

网络协议栈设计(一)

上学期学习了计算机网络这门课程,也有幸参加到计算机网络试点班中,在老师的带领和跟同学的合作下,完成了简单的网络协议栈设计与实现。在此,我将会在接下来的时间将其整理和发表,以供小伙伴们学习和讨论,要是有新的想法和意见,都可以评论来探讨。

一、首先,作为第一篇前言,在此我就先将开发的网络协议栈作一简单的的描述和对前期的准备工作作一简单介绍。

项目名称:网络协议栈设计与实现
开发环境: VS2012
开发语言: c语言
项目描述:
网络协议栈设计采取自底层向上的设计,依次完成各层的协议包括:
- 数据链路层:
以太网数据包的发送,包括数据包的封装及CRC差错检验码计算。接受,包括对接受的数据包进行差错检验并分析上层协议,交付上层相应的协议处理。
- 网络层:
(一)实现IPv4协议,包括对IPv4数据包的封装,对上层交付的数据进行分组发送。对下层以太网接受并交付的IP数据包进行判断,若为本地的IP地址,则进行差错检测后交付上层协议处理。
(二)实现ARP协议,包括对目的IP在ARP缓存表中缺少IP到MAC地址的映射项,发送ARP请求解析IP对应的MAC地址以及动态维护自己的ARP缓存表。
(三)实现ICMP协议,包括ICMP控制报文及差错报文的接受和发送。
- 传输层:
(一)实现TCP协议,包括TCP连接的三次握手以及TCP连接释放的四次握手。连接建立后发送方发送数据,并通过停止等待协议以及后退N帧协议保证TCP的可靠传输。
(二)实现UDP协议,包括使用UDP协议发送和接受数据。

上边就是我们本次开发所实现的全部内容。

二、接下来介绍一下需要准备的前期工作:

1、安装VS2012,这个小伙伴们很熟悉了我就不赘述了。
2、安装winpcap。

什么是winpcap?
winpcap是一个windows下的网络封包抓取、转换的一套工具。它工作在网络链路层(通俗的说就是网卡那一层啦)。它提供了一些API,方便应用程序从底层环境去直接操纵网络通信。
可适用于32位的操作平台上解析网络封包,包含了核心的封包过滤,一个底层动态链接库,和一个高层系统函数库。
也就是,我们在数据链路层发送数据时需要直接调用winpcap为我们提供的一些函数,具体哪些函数我们在开发中会为大家说明。

3、下载winpcap development packet,其中就包含我们需要调用的函数库,以及定义了一些会用到的数据类型等等。
4、配置环境。将下载到的函数库包含在我们的工程文件中,配置相关的路径。

  • 设置包含目录和库目录
    这里写图片描述

  • 设置附加库目录
    这里写图片描述

  • 设置附加依赖项
    这里写图片描述

这样就基本完成我们的准备工作,关于具体的winpcap中的函数和定义类型我们在开发中会为大家说明。
前言就说到这里,下一篇就会为大家带来网路协议栈设计的具体步骤。(持续更新)

1 0
原创粉丝点击