平凡的世界

记录点滴,见证这个不平凡的时代!
私信 关注
ToToSun
码龄7年

来了?小马扎已为你准备好了,坐。你好,我是Ethan,互联共享时代下一名普通的攻城狮。非常幸运能在这和你结识,在这你能获取关于网络仿真/嵌入式应用开发/驱动开发等相关文章,希望其中只言片语能对你相关工作和研究有所帮助。好了,欢迎关注我们的公众号:协议森林,风里雨里一起走。

  • 317,697
    被访问量
  • 190
    原创文章
  • 15,162
    作者排名
  • 193
    粉丝数量
  • 于 2013-10-19 加入CSDN
获得成就
  • 获得128次点赞
  • 内容获得50次评论
  • 获得265次收藏
荣誉勋章
兴趣领域
  • #前端
    #Node.js#前端框架#CSS#HTTPS#XHTML#JavaScript#Vue.js#面试#React.js#WebPack
TA的专栏
  • 设计模式
    1篇
  • QT开发
    1篇
  • Linux内幕
    7篇
  • 网络词典
    5篇
  • 笔记
  • c++程序
    100篇
  • c程序
    15篇
  • omnet++
    19篇
  • 日记
    2篇
  • linux应用
    26篇
  • web开发
    5篇
  • 协议森林
    25篇
  • 我的读书
    1篇
  • LUA脚本
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Bug之锤

发布Blink于 3 天前

随手一发

发布Blink于 4 天前

【设计模式】linux中利用信号量演示生产者与消费者模型

1.简介linux sem 信号量是一种特殊的变量,访问具有原子性, 用于解决进程或线程间共享资源引发的同步问题。用户态进程对 sem 信号量可以有以下两种操作:等待信号量:当信号量值为 0 时,程序等待;当信号量值大于 0 时,信号量减 1,程序继续运行。发送信号量:将信号量值加 1linux 信号量相关函数都声明头文件 semaphore.h 头文件中,所以使用信号量之前需要先包含头文件2.函数操作2.1 sem_init该函数用于创建信号量,其原型如下:int sem_init(s
原创
18阅读
0评论
0点赞
发布博客于 26 天前

【QT开发】基本入门工程

1.简述Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2.第一个工程main.cpp#include "mywidget.h"#include <QApplication>// 包含一个应用程序类的头文件//main程序入口 arg
原创
60阅读
1评论
0点赞
发布博客于 1 月前

【Linux内幕】epoll原理及代码示例

1.简述epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。2.select了解epoll本质要从操作系统进程调度的角度来看数据接收。阻塞是进程调度的关键一环,指的是进程在等待某事件(如接收到网络数据)发生之前的等待
原创
36阅读
0评论
0点赞
发布博客于 1 月前

【协议森林】LWIP如何使用

1.LWIP为何LWIP(Light Weight Internet Protoco)是瑞士计算机科学院AdamDunkels等人开发开源协议栈。LWIP可移植到操作系统和无操作系统,其重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般只需几十KB的RAM和40 KB左右的ROM,适合在小型嵌入式系统使用。2.LWIP特点LwIP的特性如下:支持协议TCP、UDP、ICMP、IP、ARP、DHCP包括阻塞控制,RTT估算和快速恢复和快速转发的TCP提供专门的内部回调接口(Raw A
原创
152阅读
2评论
1点赞
发布博客于 1 月前

OS and Libraries Document Collection.pdf

lwip1.06a说明文档
pdf
发布资源于 1 月前

LightWeight IP (lwIP) Application Examples.pdf

LightWeight IP (lwIP) Application Examples
pdf
发布资源于 1 月前

【OMNET++】OMNET安装卸载说明以及原理探讨

前言我们安装OMNET,参考file:///D:/omnetpp-5.4.1-src-windows/omnetpp-5.4.1/doc/InstallGuide.pdf的官方文档,其支持的平台很多,例如window、Ubuntu 、Linux以及红帽等系统,这篇博文以window为例,简单说一下其中的注意事项和原理。1. 注意事项OMNET5.0以后的版本,仅支持64位window,版本为win7和win10。安装路径不要出现空格和特殊符号安装时尽量关闭杀毒软件2. 安装方法OMNET提
原创
115阅读
0评论
0点赞
发布博客于 2 月前

【OMNET++】卫星网络仿真

前言OMNET++工程osg-satellites支持三维卫星网络仿真。具有以下特点和功能:QT接口仿真时间分辨率MS卫星数量设置背景图片加载雷达主要城市经纬度设置顶点、向量和法线计算其轨道卫星初始化角度、高度和相位同步卫星、极地卫星和普通卫星网络仿真1. 工程2. 仿真3.加入讨论...
原创
153阅读
0评论
1点赞
发布博客于 2 月前

【Linux内幕】如何理解Linux文件系统

1.前言2.系统文件分类
原创
36阅读
0评论
0点赞
发布博客于 2 月前

hisi-linux.tar.gz

嵌入式开发,华为海思平台编译器gcc,g++等工具链;嵌入式开发,华为海思平台编译器gcc,g++等工具链;
gz
发布资源于 3 月前

【OMNET++】OMNET如何开启Debug调试

1.前言OMNET作为网络仿真软件,其编译语言为NEDC和C++,在学习过程中我们该如何运用debug跟踪代码呢?这一讲我们简单和大家分享一下OMNET如何开启Debug调试。可能我们翻阅很多资料,都会提到一句话,Window下的OMNET是基于Eclipse框架的一款软件,那么它的调试大体是沿用了Eclipse基本思路。其次由于其离散事件驱动,所以它又有本身的特点。2.Debug设置【注】以下所有的演示前提都是默认你的软件是正常安装和正常使用的。通过ide进入软件debug模式我们进入d
原创
114阅读
0评论
0点赞
发布博客于 3 月前

【OMNET++】开源库CoRE4INET介绍

1.前言OMNET++是一个可扩展的、模块化的、基于组件的C++仿真库和框架,主要用于构建网络模拟器。CoRE4INET是对INET框架的扩展,用于在OMNeT++仿真系统中基于事件的实时以太网仿真。目前,CoRE4iNet支持:以太网(AS 6802)Ieee 802.1音频视频桥接/时间敏感网络IEEE802.1Q/IEEE P802.1p VLAN和优先级2. CoRE4INET简介CoRE4INET是INet中基于事件的实时以太网仿真框架OMNEST/OMNET++仿真模型,它提供实
原创
64阅读
0评论
0点赞
发布博客于 3 月前

嵌入式日常开发

发布Blink于 3 月前

嵌入式日常开发

发布Blink于 3 月前

【Linux应用】CAN总线编程

前言CAN 是控制器局域网络(Controller Area Network,CAN)的简称,由德国 BOSCH 公司开发,并最终成为国际标准(ISO 11898-1)。CAN 总线主要应用于工业控制和汽车电子领域,是国际上应用最广泛的现场总线之一。1.CAN 总线简介CAN 总线是一种串行通信协议,能有效地支持具有很高安全等级的分布实时控制。 CAN 总线的应用范围很广,从高速的网络到低价位的多路接线都可以使用 CAN。在汽车电子行业里,使用 CAN 连接发动机的控制单元、传感器、防刹车系统等,传输
原创
250阅读
0评论
1点赞
发布博客于 4 月前

USB转CAN驱动以及说明—UT8251.zip

USB转CAN驱动以及说明—UT8251.zip
zip
发布资源于 4 月前

【Linux驱动】CAN总线介绍

原创
73阅读
0评论
0点赞
发布博客于 4 月前

回家的路上整理照片,,宝藏图片一张。

发布Blink于 4 月前

想中个杯子的愿望越来越渺茫

发布Blink于 5 月前

在南京的第四个国庆

发布Blink于 5 月前

【Linux应用】线程简介以及如何创建线程

1.前言线程是计算机中独立运行的最小单位。每个线程占用的CPU时间是由系统分配的,因此可以把线程看成操作系统分配CPU时间的基本单位。每个线程只有在系统分配给它的时间片内才能取得CPU控制权,执行线程中的代码。Linux操作系统在一个进程内生成多个线程。多线程和多进程相比,拥有以下优点:(1)进程都有独立的地址空间,创建新进程要耗费时间为期分配系统资源,而线程共享进程的地址空间,所以创建线程花费的时间要少得多。(2)系统调度方面,由于进程地址空间独立而线程共享地址空间,所以线程间的切换速度要远远快过
原创
189阅读
0评论
2点赞
发布博客于 5 月前

【Linux运维】Linux中ps与top命令的细微区别

这两个命令都是查看系统进程信息的命令,但是用处有点儿不同1.ps命令–提供系统过去信息的一次性快照也就是说ps命令能够查看刚刚系统的进程信息 命令:ps aux或者ps lax[root@Linux ~]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.1 0.1 2032 644 ? Ss 21:55 0:01 ini
原创
85阅读
0评论
0点赞
发布博客于 5 月前

inet-4.1.2.zip

OMNET开源库INET,官网纯净版本,欢迎学习下载,如有疑问,更多信息欢迎加群讨论157696125
zip
发布资源于 5 月前

inet-last-omnetpp-5.4.1-compatible-version.zip

omnet++开源库inet,具体inet-last-omnetpp-5.4.1-compatible-version.zip,更多信息欢迎加群讨论157696125
zip
发布资源于 5 月前

nat46-master.zip

nat46开源代码,nat46开源代码,nat46开源代码,nat46开源代码,nat46开源代码,nat46开源代码。
zip
发布资源于 5 月前

【Linux应用】龙芯派loongsonpai开发者日记(四)----PMON制作

一、pmon相关资源1)pmon源码获取pmon:http://ftp.loongnix.org/loongsonpi/pi_2/source/pmon-loongson3.tar.bz2解压:$ sudo tar -xvf pmon-loongson3.tar.bz22)pmon工具链获取工具链: http://ftp.loongnix.org/loongsonpi/pi_2/toolchain/gcc-4.4-gnu.tar.gz解压:$ sudo tar -zxvf gcc-4.4
原创
181阅读
0评论
0点赞
发布博客于 5 月前

【Linux应用】龙芯派loongsonpai开发者日记(三)----文件系统

前言本节主要讲述如何配置boot和文件系统。1.准备工作将编译生成的vmlinuz拷贝到龙芯派中,这里我们用winscp工具来操作。另外建议开启SSH服务,root下执行以下命令就可以sudo service sshd start此时,我们操作单板的方式就有:串口,SSH,FTP。开发工作即将开始。2.boot配置编辑boot.cfg文件,增加一组,设置波特率等3.文件系统buildroot官网:https://buildroot.org/下载buildroot-2020.0
原创
112阅读
0评论
0点赞
发布博客于 6 月前

【Linux应用】龙芯派loongsonpai开发者日记(二)----内核

1.解压工具链这里我们主要搭建交叉编译链环境工具链下载:http://www.loongnix.org/index.php/Cross-compile拷贝到虚拟机中并解压tar -vxf mips-loongson-gcc4.9-2019.08-05.linux-gnu.tar.gz
原创
231阅读
0评论
1点赞
发布博客于 6 月前

🐶

发布Blink于 6 月前

【Linux内幕】U-BOOT快速入门

https://www.cnblogs.com/princepeng/p/11212854.html#%E4%B8%80%E3%80%81u-boot%E7%9B%AE%E5%BD%95
原创
139阅读
2评论
0点赞
发布博客于 6 月前

【Linux应用】龙芯派loongsonpai开发者日记(一)----简介

前言龙芯派开发板二代#1.接口启动EJTAG1、 启动ejtag工具   sudo ./ejtag_debug_usb -tcpu0 -2、设置配置文件   cpu0 - source configs/config.ls3a40003、切换cpu 到核1   cpu0 - cpu 14、查看通用寄存器信息   cpu0 - set5、退出ejtag debug ,处理器继续工作   cpu0 - cont  注意:执行完set、disas等指令 后及时执行cont。否则会有死
原创
247阅读
0评论
0点赞
发布博客于 6 月前

龙芯派二代用户手册_V1.5.1.pdf

龙芯派二代开发版用户手册以及开发指导,原理图,基本使用方法,嵌入式开发入门的指导手册,原理图,基本使用方法,嵌入式开发入门的指导手册
pdf
发布资源于 6 月前

【Linux应用】pthread详解

【Linux应用】pthread详解前言1. pthread_create2. 线程的合并与分离3. 线程的属性前言我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下。如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级。首先说明一下,在Linux编写多线程程序需要包含头文件pthread.h。当然,只包含一个头文件是不能搞定线程的,还需要连接libpthread.so这个库,因此在程序连接阶段应该有类似这样的指令:gcc program.o -o progra
原创
300阅读
2评论
0点赞
发布博客于 6 月前

【Linux应用】嵌入式设备植入vsftp服务

嵌入式设备植入vsftp服务1.下载源码并解压2.修改Makefile文件,修改编译环境3.make编译出bin文件前言vsftpd作为热门应用,其作用不言而喻,近期需要在嵌入式设备上支持该应用,研究了三天,简单记录操作步骤,具体步骤可参阅官网:https://pkgs.org/download/vsftpd1.下载源码并解压将下载的代码复制到我们的编译服务器中,准备开始。 tar xzvf vsftpd-3.0.2.tar.gz chmod 777 vsftpd-3.0.2说明:版
原创
104阅读
0评论
0点赞
发布博客于 6 月前

【Linux内幕】schedule_work基本流程

1、前言在许多情况下,设备驱动程序不需要有自己的工作队列。如果我们只是偶尔需要向队列中提交任务,则一种更简单、更有效的办法是使用内核提供的共享的默认工作队列。但是,如果我们使用了这个默认的工作队列,则应该记住我们正在和他人共享该工作队列。这意味着,我们不应该长期独占该队列,即:不能长时间休眠,而且我们的任务可能需要更长的时间才能获得处理器。2、schedule使用步骤:1、定义相关数据static struct work_struct jiq_work;2、编写要提交到工作队列中的函数stat
原创
690阅读
0评论
0点赞
发布博客于 6 月前

【Linux应用】tftp命令

1、Busybox中tftp命令的用法命令格式为:tftp [option] … host [port]如果要下载或上传文件的话是一定要用这些option的。-g表示下载文件(get)-p表示上传文件(put)-l表示本地文件名(local file)-r表示远程主机的文件名(remote file)例1:要从远程主机192.168.1.2上下载,则应输入以下命令tftp -g -r embedexpert 192.168.1.2例2:tftp 0x80600000 u-boot-wi
原创
97阅读
0评论
0点赞
发布博客于 6 月前

【Linux应用】本地CRT软件SSH访问虚拟机

1、开启SSH服务在使用SSH之前,可以先检查SSH服务有没有开启。使用命令:sudo ps -e | grep ssh来查看,如果返回的结果是“xxxx? 00:00:00 sshd”,代表服务开启。那个四个x代表四位数字,每台机数字不一样的,如图:如果没有反应或者其他结果,再试着开启SSH服务。使用命令sudo /etc/init.d/ssh start来开启服务,如图:安装SSH服务,使用命令:sudo apt-get install openssh-server。如图:2.SSH客户
原创
93阅读
0评论
0点赞
发布博客于 7 月前

【协议森林】IPv6过渡技术之MAP-T/E技术

1. 背景在IPv4向IPv6网络演进的浪潮中,存在着两对主要矛盾的较量,一对是IPv4地址短缺和IPv4业务蓬勃发展之间的矛盾,另一对是IPv6海量的地址空间和IPv6应用的匮乏之间的矛盾。在IPv4方面通过地址复用(A+P)方式似乎缓解了IPv4快速消耗的压力,但是NAT设备投入巨大,各类业务应用也或多或少受到影响。在IPv6发展方面,用户、ICP、ISP以及运营商对IPv4地址枯竭的敏感度...
原创
1023阅读
0评论
0点赞
发布博客于 1 年前

【协议森林】IPv6过渡技术之隧道和翻译技术

1. 前言我们漫游网络最重要的支撑是IP,其重要性已经无需赘言。在现在设备数量和交互信息指数级爆发的大背景下,IPv4地址已经严重不足,如何过渡到IPv6的问题就显得更为迫切。IPv6采用128位地址格式,地址空间巨大,能够彻底解决IPv4地址不足问题。但是由于IPv6与IPv4不兼容,因此在当前IPv4为主的网络环境下,IPv4向IPv6的平滑过渡就成为IPv6能否成功的关键。2. 主流过...
原创
885阅读
1评论
2点赞
发布博客于 1 年前

复工的第36天

发布Blink于 1 年前

【OMNet++】视频教你如何Ubuntu下安装OMNET++

1、前言之前在文章中讲过,OMNET是网络协议仿真软件,该软件兼容最好的环境是LINUX环境。相信对操作系统有点了解的同学清楚,操作系统从UNIX到LINUX快速演进史,也是网络协议不断繁荣向上发展期。到今天,Linux操作系统又枝繁叶茂,拥有众多界面良好的产品,其中Ubuntu就是其中一款。这篇博文简单介绍一下,如何在Ubuntu安装OMNET++。2.安装前小碎语这款软件是开源软件,一年...
原创
584阅读
0评论
0点赞
发布博客于 1 年前

【协议森林】从抓包解析PPPoe协议

1. PPPOE简介PPPOE协议提供了在广播式的网络中多台主机连接到远端的访问集中器上的一种标准。在这种网络模型中,所有用户的主机都需要能独立的初始化自已的PPP协议栈,而且通过PPP协议本身所具有的一些特点,能实现在广播式网络上对用户进行计费和管理。为了能在广播式的网络上建立、维持各主机与访问集中器之间点对点的关系,那么就需要每个主机与访问集中器之间能建立唯一的点到点的会话。PPPOE协议...
原创
170阅读
0评论
0点赞
发布博客于 1 年前

【协议森林】深入浅出理解skb_buff

1.前言在互联网技术里,有两件事最为重要,一个是 TCP/IP 协议,它是万物互联的事实标准;另一个是 Linux 操作系统,它是推动互联网技术走向繁荣的基石。在 Linux内核的协议栈中的实现中,数据结构skb_buff是最关键和最核心的数据,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。本文以及后续关于skb_buff的介绍,均来源于经典著作《深入理解lin...
原创
1236阅读
1评论
0点赞
发布博客于 1 年前

【协议森林】详解Linux工具iproute2

1. net-toolsnet-tools一般包括ifconfig、route、arp和netstat等工具,一般用来配置网络功能,解决网络故障。net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具。但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Ubuntu 18,Arch Linux和CentOS/RHEL 7则...
原创
348阅读
0评论
0点赞
发布博客于 1 年前

【编译原理】交叉工具链详解

1、嵌入式开发模型-交叉开发在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。在宿主机执行编译的流程如下:而所谓的交叉编译就是:在一种平台上编译,编译出来的程序,是放到别的平台上运行,即编译的环境和运行的环境不一样,属于交叉的编译,主要和嵌入式开发有关。之所以要有交叉编译,主要原因是:嵌入式系统中的资源太少。2、工具链...
原创
1151阅读
0评论
0点赞
发布博客于 1 年前

【编译原理】预编译、编译、汇编与链接

1、前言我们编写的程序代码是怎样运行起来的?到底运行的是什么内容?平时我们所说的编译主要包括预编译、编译、汇编与链接,这四部分分别都干什么工作,主要职能有哪些,我们一步步探讨总结。Windows中以2:2划分内核、用户空间,Linux中以1:3划分内核、用户空间。2、预编译:i1.#define 宏文本替换2.#include 递归展开头文件3.#if #endif #elif ...
原创
147阅读
0评论
0点赞
发布博客于 1 年前

【协议森林】详解大端(big endian)与小端(little endian)

1、字节序字节顺序,又称端序或尾序(英语:Endianness)。在几乎所有的机器上,多字节对象都被存储为连续的字节序列。例如在C语言中,一个类型为int的变量x地址为0x100,那么其对应地址表达式&x的值为0x100。且x的四个字节将被存储在存储器的0x100, 0x101, 0x102, 0x103位置,这就是所谓的字节序。字节存放的顺序有两种模式:大端模式和小端模式。2、大小端...
原创
180阅读
0评论
0点赞
发布博客于 1 年前

【OMNeT+INET】详解OMNeT开源库INET(一)

1、前言在我看来,网络模拟器是用于评估目标系统性能和能力的方便工具,不同的设计方案,在不同的配置下不同的操作条件和运行场景下,可以用于帮助理解系统并获得与性能相关的参数(例如吞吐量、延迟、稳定性、健壮性和可伸缩性)。第一个具有广泛社区的开源网络模拟器是NS,成名在其第二版网络模拟器2(ns-2)。ns诞生在20世纪90年代中期,并且主要用于几个研究领域,如传输控制协议(TCP)拥塞控制和无线自...
原创
1153阅读
0评论
0点赞
发布博客于 1 年前

【协议森林】详解Netfilter(三)

1、主要处理部分再来回顾一下Netfilter的框架。如果不存在Netfilter框架,则包的流程就是图中的函数调用,比如到本地的是:ip_rcv()->ip_rcv_finish()->ip_local_deliver()->ip_local_deliver_finish()当加上Netfilter的时候,就会在钩子点的地方先调用注册的函数,然后再调用正常流程中的函数。还...
原创
235阅读
0评论
0点赞
发布博客于 1 年前

【协议森林】详解Netfilter(二)

1、何为连接跟踪顾名思义,连接跟踪(CONNTRACK)就是跟踪并且记录连接状态。Linux为每一个经过网络协议栈的数据包,根据5元组信息(源IP、目的IP、源端口、目的端口和协议号)来生成一个新的连接记录项(Connectionentry)。此后,所有属于此连接的数据包都被唯一地分配给这个连接,并标识连接的状态。连接跟踪是防火墙模块的状态检测的基础,同时也是地址转换中实现SNAT和DNAT的前...
原创
454阅读
0评论
0点赞
发布博客于 1 年前

【协议森林】详解Netfilter(一)

1、Netfilter介绍Netfilter是2.4.x内核引入的,工作在内核空间中,通常结合ip_table内核模块一起使用以构造linux下的防火墙。Linux内核中,netfilter是一个包过滤框架,默认地,它在这个框架上实现了包过滤、状态检测、网络地址转换和包标记等多种功能。因为它设计的开放性,任何有内核开发经验的开发人员,也可以很容易地利用它提供接口,在内核的数据链路层、网络层,实现...
原创
156阅读
1评论
0点赞
发布博客于 1 年前

【协议森林】图解TCP三次握手四次挥手

1、TCP为何物传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。进一步了解TCP协议,从协议栈角度看TCP协议。TCP/IP(TCP/IP Protocol S...
原创
58阅读
0评论
0点赞
发布博客于 1 年前

【OMNeT】OMNET安装包

OMNeT-Window安装包:链接:https://share.weiyun.com/5ZhAL2n 密码:t2x56l OMNeT-Linux安装包链接:https://share.weiyun.com/5Qxlhem 密码:kflxvc 加入讨论
原创
425阅读
1评论
1点赞
发布博客于 2 年前

【OMNeT】网络仿真软件OMNET三维仿真

OMNET版本在5.0之前模拟的网络环境都是在二维坐标系环境展开的,在版本5.0之后推出了强大的三维体系,用来构建更真实的网络场景。话不多说,一睹为快。视频地址: 网络仿真神器OMNeT ...
原创
893阅读
0评论
0点赞
发布博客于 2 年前

【协议森林】一张图窥探TCP/IP运转流程

1946 年,世界上第一台电脑诞生。如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年里,无数的技术、产业在这片江湖里沉浮,在这片浩荡的波动里,有一种模型从未消失,那就是 TCP/IP。基于此衍生出众多的协议,如葱葱茂林,枝繁叶茂。下面这张图从庞大的代码提炼出关键函数,把复杂的运转机制化繁为简,将抽象理论具象化,为你勾勒出TCP/IP的脉络骨骼。...
原创
79阅读
0评论
0点赞
发布博客于 2 年前

【Linux内幕】一张图看懂linux内核架构

1.前言Linux内核可以划分为5个组件部分,每个部分的功能定义都非常明确,各组件又为内核的其他组件提供相应的服务。这种划分可以从内核的源码树形结构中看到,在内核源码根目录下每个组件都有自己的目录和子树。从代码角度来看Linux内核的架构,更为详实。本博客的“协议森林”系列也来源于此,主要是围绕“networking”展开的。2.进程管理负责创建、结束进程,管理内核的活动,如软件中断、...
原创
442阅读
1评论
0点赞
发布博客于 2 年前

1024快乐

发布Blink于 2 年前

【网络词典】端口大全

计算机系统“端口”是英文 port 的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB 端口、串行端口、打印机端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和 I/O(基本输入输出)缓冲区。说白了,我们在计算机的任何操作都在有意无意的使用着计算机的各个端口,在实际的开发工作中经常通过查找端口号来确认...
原创
480阅读
0评论
0点赞
发布博客于 2 年前

程序员的日常,健走

发布Blink于 2 年前

程序员的爱好(✪▽✪)

发布Blink于 2 年前

开饭了

发布Blink于 2 年前

滴滴~打卡下班

发布Blink于 2 年前

下班,看了一天软加速,感觉有点混日子了

发布Blink于 2 年前

前天夜里下班,。

发布Blink于 2 年前

【2019-9-1】tictoc扩展交付二.zip

OMNeT++扩展学习,入门学习资源,新手必备资源,代码中有注释。
zip
发布资源于 2 年前

【OMNeT+INET】浅谈OMNeT开源库INET(二)

【前言】更多讨论欢迎加入学习QQ群:157696125本文试图以简明的方式,结合实际项目使用需求,从几个角度对开源库INET进行简要说明;希望可对各位研究生同学和开发人员有益参考;对于其中可能存在的问题或错误,欢迎在评论区提出讨论。【INET框架】标题...
原创
1028阅读
0评论
2点赞
发布博客于 2 年前

【脚本LUA】Lua中打印一个Table

function print_r ( t ) local print_r_cache={} local function sub_print_r(t,indent) if (print_r_cache[tostring(t)]) then print(indent.."*"..tostring(t)) else ...
原创
2612阅读
0评论
1点赞
发布博客于 2 年前

【OMNeT+INET】浅谈OMNeT开源库INET(一)

【前言】更多讨论欢迎加入学习QQ群:157696125本文试图以简明的方式,结合实际项目使用需求,从几个角度对开源库INET进行简要说明;希望可对各位研究生同学和开发人员有益参考;对于其中可能存在的问题或错误,欢迎在评论区提出讨论;【INET为何物】INET框架(https://inet.omnetpp.org)是一个开源通信网络仿真包,为omnest/omnet++仿真系统编写。IN...
原创
1156阅读
0评论
2点赞
发布博客于 2 年前

【协议森林】透视RIP协议

【摘要】本文试图以简明的方式,结合智能终端产品的实际使用需求,从几个角度对RIP协议进行简要说明;希望可成为相关开发人员的有益参考;对于其中可能存在的问题或错误,欢迎在评论区提出讨论;【何为RIP协议】何为RIP协议?RIP协议是一种内部网关协议(IGP),是一种底层基于贝尔曼福特算法的动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(Distanc...
原创
196阅读
0评论
0点赞
发布博客于 2 年前

【协议森林】socket基本原理和操作流程

1. 前言对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:什么是TCP/IP、UDP? Socket在哪里呢?Socket是什么呢?你会使用它们吗?TCP/IP协议族包括运输层、网络层、链路层。一张老照片告诉你Socket在协议栈中的位置。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计...
原创
92阅读
0评论
1点赞
发布博客于 2 年前

【协议森林】简析GRE

1.GRE概念GRE(Generic Routing Encapsulation),即基本路由封装协议是对某些网络层 协议(如:IP 和 IPX 等)的数据报进行封装,使这些被封装的数据报 能够在另一个网络层协议(如 IP)中传输。2.GRE作用GRE 是 VPN(Virtual Private Network )的第三层隧道协议,即在协议层之间采用了一种被称之为 Tunnel(隧道)...
原创
393阅读
0评论
1点赞
发布博客于 2 年前

【网络编程】vim的使用

1.vim是何物一言以蔽之,vim是vi编辑器的改进版本,在vi编辑器的基础上扩展了很多实用的功能。大多数linux/unix版本都使用vim代替了原有的vi编辑器。2.vi的三种模式vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Es...
原创
91阅读
0评论
1点赞
发布博客于 2 年前

【c程序】经典函数(strcpy、strlen及memcpy)的实现

#include <stdio.h>char* strcpy(char *strDest, const char* strSrc){ char *p=NULL; if(strDest == NULL || strSrc == NULL) { return NULL; } p = strDest; while((*st...
原创
150阅读
0评论
0点赞
发布博客于 2 年前

【OMNet++】OMNet++初学-进阶-精进历程分享

OMNeT进入国内时间并不长,国内专业和流派大多一直停留在OPNeT、NS等传统的仿真软件上。相比“古老的软件”,业界新生代“OMNeT”的使用简单,界面交互良好,被越来越多“不知深浅”的导师推荐。国内的大部分学习者主要集中在大四毕业生、研究生、少量博士生以及屈指可数的业界良心老师。笔者熟知的一些公司和研究所对网络仿真的需求与日剧增,结合一些实际的项目,去学习和开发OMNeT不失为一种好的方法。这...
原创
13695阅读
15评论
10点赞
发布博客于 1 年前

GFKD=omnet.zip

OMNet++仿真原理的思考与探讨,inet库,OMNet++仿真原理的思考与探讨
zip
发布资源于 2 年前

【OMNet++】关于OMNet++仿真原理的思考与探讨

更多讨论欢迎加入学习QQ群:1576961251、仿真过程仿真执行文件是一个独立的程序,因此它可以运行在其他没有OMNET++或现存模型文件的机器上。当程序被启动,它就开始读配置文件(omnetpp.ini)。这个文件包含一些设置——控制仿真程序怎样执行,模型参数值等等。配置文件也能够规定一些仿真运行;最简单的情况下,它们一个接一个地被仿真程序执行。仿真输出被写进数据文件中:vec...
原创
1204阅读
3评论
2点赞
发布博客于 2 年前

csdn越来越来越生活了,要取代咱的微博嘛

发布Blink于 2 年前

【c语言】数组名和指针的区别

数组名和指针之间,经常会交替使用这两个变量,比如,把一个指针当成数组来使用,或者是把数组名赋值给指针,通过指针来访问数组成员变量,但是,数组名和指针之间到底有什么样的联系与区别,以及什么情况下该使用指针,什么情况下该使用数组名,我对这个做一个小小的解读。。上图中,定义一个数组,数组名为arr,分别打印arr本身的地址,arr首元素的地址,以及arr本身,以整型形式输出,发现,这三者的值是相同...
原创
1239阅读
0评论
4点赞
发布博客于 2 年前

【web】AngularJS 教程

1.概念AngularJS 是一个JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。AngularJS 通过指令扩展了 HTML,且通过表达式绑定数据到 HTML。2.特点AngularJS 通过ng-directives扩展了 HTML。1.ng-app指令定义一个 AngularJS 应用程序。2.ng-model...
原创
265阅读
0评论
0点赞
发布博客于 2 年前

【c程序】sizeof()与strlen()的区别

原创
86阅读
0评论
0点赞
发布博客于 2 年前

【c程序】C/C++语言程序员经典面试题

以下题目摘自林锐博士的《高质量C/C++编程》1、头文件中的ifndef/define/endif 干什么用?答:防止该头文件被重复引用。2、#include <filename.h> 和#include “filename.h” 有什么区别?答:对于#include <filename.h> ,编译器从标准库路径开始搜索filename....
原创
190阅读
0评论
0点赞
发布博客于 2 年前

【网络编程】跟我一起学Makefile

1. 概述一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile核心就是——“自动化编译”。make是一个命令工具,是一个解释makefile中指令的命...
原创
302阅读
0评论
1点赞
发布博客于 2 年前

【网络编程】动态分配内存接口malloc/kmalloc与释放内存接口free/kfree

动态分配内存接口malloc/kmalloc与释放内存接口free/kfree一、动态分配内存    根据需求,在需要分配缓冲区的时候,主动调用上层函数malloc或者底层函数kmalloc,通过用相应的指针保存分配内存的地址,体现设计灵活性。二、动态释放内存    分配之后,并不是万事大吉,在用完之后,需要主动释放内存,使用上层接口free或者底层接口kfree释放,否则会造成内存泄露...
原创
348阅读
0评论
0点赞
发布博客于 2 年前

【网络编程】BPDU协议分析

1 BPDU协议概述    现代交换网络环境中,为了防止发生交换环路引起广播风暴等问题,常采用STP(Spanning Tree Prtocol,生成树协议)技术。STP利用BPDU(Bridge Protocol Data Unit,网桥协议数据单元)中三个字段:路径开销、网桥ID、端口优先级/端口ID来确定到根桥的最佳路径顺序,从而决定一个生成树实例。2 BPDU包结构  BPDU协...
原创
4497阅读
0评论
3点赞
发布博客于 3 年前

【网络知识】Linux内核桥原理浅析

 1.什么是桥接?简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。交换机就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。于是,与交换机相连的若干主机就能够通过交换机的报文转发而互相通信。如下图:主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2...
原创
355阅读
1评论
2点赞
发布博客于 3 年前

【我的读书】《薛兆丰经济学讲义》助你变得更理性、悦纳和进取

近日,《薛兆丰经济学讲义》新书在京首发。那个陪你吃早餐、陪你排队、陪你坐地铁的经济学家薛兆丰,这一次陪你一起逛菜市场。活动现场,当被问为什么要在菜市场里做新书首发时,他说:“知识本来就不应该是高高在上的,经济学更是一门与人们的日常生活最贴近的学问。所以,把自己的新书放在左邻右舍是蔬菜摊、水果店、馒头铺的菜市场中间,回到日常生活之中,算是回到了经济学的原点。”那么,为什么我们要学经济...
原创
4436阅读
0评论
1点赞
发布博客于 3 年前

【网络知识】Iptables原理和用法

1.前言从逻辑上讲,防火墙可以大体分为主机防火墙和网络防火墙。主机防火墙:针对于单个主机进行防护。网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体),主机防火墙主内(个人)。Iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过Iptables这个代理,将用户...
原创
188阅读
0评论
1点赞
发布博客于 3 年前

【网络知识】Wireshark抓不到vlan tag问题解决

大部分网卡默认配置为自动识别数据包中的vlan tag信息,并将其去除再送给上层应用,因此按照默认配置,wireshark无法抓取到数据包中的vlan tag信息。只要修改相关配置即可。 1、设置网卡属性右击需要配置的网卡,属性---配置---高级---Packet Priority &amp; VLAN,将其禁用 2、修改注册表,位置为HKEY_LOCAL_MACHI...
原创
6472阅读
0评论
0点赞
发布博客于 3 年前

【web开发】IE8浏览器兼容rgba()

1.问题:实现一个背景透明的效果,用CSS3用rgba()就能实现,兼容到IE8,没有透明效果,因为IE8不支持rgba()函数。background: rgba(0,0,0,.5);2.rgba()函数rgba的含义,r代表red,g代表green,b代表blue,a代表透明度。红绿蓝是三原色,所有颜色都可以由这三种颜色拼合而成。比如rgba(0,0,0,.5)就是透明度为0....
原创
476阅读
1评论
0点赞
发布博客于 3 年前

【网络知识】二层桥转发蓝图

一、看一张桥转发时函数调用的一个基本蓝图。 这张图中,简单的展示了,数据的接收和发送,其中还包括netfilet的钩子点所处的位置。需要说明的是:1).我们先暂时忽略数据包从一开始是怎么从驱动进入到netif_receive_skb的,因为这个暂时不影响我们理解这幅图的流程。2).由于桥转发的篇幅较大,图中没有标示出,数据包中途被丢弃的情况。约定数据包会发送成功。 现在...
原创
742阅读
0评论
0点赞
发布博客于 3 年前

【c程序】校验密码不允许键盘连续四个按键输入

/************************************************************************************* * Copyright (C) 2018, XX大学.                                * All rights reserved.                             ...
原创
890阅读
0评论
0点赞
发布博客于 3 年前

【web开发】CSRF攻击原理及防御

CSRF攻击原理及防御一、CSRF攻击原理  CSRF是什么呢?CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。想要深入理解CSRF的攻击特性我们有必要了解一下网站session的工作原理。   session我想大家都不陌生,无论你用.net或PHP开发过网站的都肯定用过session对象,然而session它...
原创
86阅读
0评论
0点赞
发布博客于 3 年前

【web开发】理解Cookie和Session的区别及使用

前言HTTP是一种无状态的协议,为了分辨链接是谁发起的,需自己去解决这个问题。不然有些情况下即使是同一个网站每打开一个页面也都要登录一下。而Session和Cookie就是为解决这个问题而提出来的两个机制。应用场景登录网站,今输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是cookie。 session一个场景是购物车,添加了商品之后客户端处可以知道...
原创
180阅读
0评论
0点赞
发布博客于 3 年前

【网络知识】mac组播地址和单播地址

mac组播地址和单播地址的判断    MAC地址是以太网二层使用的一个48bit(6字节十六进制数)的地址,用来标识设备位置。MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique identifier),后24位由厂商自行分配。    MAC地址有单播、组播、广播之分。单播地址(unicast address)表示单一设备、节点,多播地址...
原创
2448阅读
0评论
2点赞
发布博客于 3 年前

【c程序】expected identifier before numeric constant错误

在linux开发中,出现类似error: expected identifier before numeric constant错误。原因:定义的enum结构体与其它处的宏定义有冲突。举例说明在文件a.h中:     #define TRUE 1在文件b.h中:    typedef enum    {        FALSE=0,        TRUE=1    }bool;在其他文件x.c...
原创
12766阅读
0评论
0点赞
发布博客于 3 年前

【c程序】strncat和strncpy截取字符串

C语言中从某位置开始指定长度子字符串的函数,只有从头开始截取的strncat和strncpy,以strncpy为例:char dest[4] = {""};char src[] = {"123456789"};strncpy(dest, src, 3);puts(dest);输出结果为 123看到了吗,strcpy函数中的参数是字符串数组的名字,而数组名本质上是指针,那么,src+3 就可...
原创
850阅读
0评论
0点赞
发布博客于 3 年前

【c程序】C语言编码规范

头文件:1.头文件中适合放置接口的声明,不适合放置实现。2.头文件应向稳定的方向包含,产品依赖于平台,平台依赖于标准库。3. .c/.h文件禁止包含用不到的头文件。4.每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口。5.禁止头文件循环依赖。6.头文件应当自包含(任意一个头文件均可独立编译)。7.禁止
原创
500阅读
0评论
0点赞
发布博客于 4 年前

【Linux】Makefile 使用总结

1. Makefile 简介Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 
原创
19603阅读
0评论
12点赞
发布博客于 4 年前