项目简介
本项目聚焦于网络通信和随机数统计分析。网络通信部分深入介绍TCP协议的三次握手、四次分手过程,以及网络层的IP地址、子网掩码、路由等概念和链路层的MAC地址与ARP协议,同时阐述不同IO模型。随机数统计分析部分通过C++代码实现随机数的生成、频率统计、概率计算等功能,还包含基础算法的实现与测试。
项目的主要特性和功能
网络通信部分
- TCP协议模拟:展示TCP连接建立(三次握手)和断开(四次分手)过程,并用
tcpdump
命令输出实际网络数据包信息。 - 网络层和链路层原理:解释IP地址组成、子网掩码作用、路由规则,以及MAC地址和ARP协议在链路层的工作原理。
- IO模型介绍:阐述不同IO模型(BIO、NIO、多路复用器等)的原理和优缺点。
随机数统计分析部分
- 随机数生成:使用C++的
<random>
库生成均匀分布和正态分布的随机数。 - 频率统计:统计随机数数组中每个数值出现的频率,并输出频率直方图。
- 概率计算:通过实验计算满足某些条件的概率,如实数分布生成的数小于特定值的概率。
- 算法实现:包含二分查找、局部最小值查找等基础算法的实现和测试。
安装使用步骤
网络通信部分
- 确保系统已安装
tcpdump
工具,以CentOS为例,使用以下命令安装:bash yum install tcpdump
- 若要查看TCP三次握手和四次分手的数据包信息,使用以下命令:
bash tcpdump -nn -i ens160 port 80
随机数统计分析部分
- 确保系统已安装C++编译器,如GCC。
- 进入项目源码目录,使用以下命令编译
test.cpp
和test2.cpp
文件:bash g++ test.cpp -o test g++ test2.cpp -o test2
- 运行编译后的可执行文件:
bash ./test ./test2
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】