- 博客(7)
- 收藏
- 关注
原创 带外数据:TCP紧急模式分析
TCP并未提供真正意义上的带外数据,而是紧急模式。TCP并未建立新的连接,或者使用独立的逻辑通道,而只是通过紧急模式的机制,在已有的TCP连接上传输带外数据。发送端TCP协议栈会为每个套接字维护一个发送端紧急模式标志和一个发送端紧急指针。一旦调用send(MSG_OOB)后,则TCP发送端进入紧急模式。此后,协议栈中的每个TCP输出操作都会为数据分段设置URG标志和紧急偏移。也即紧
2017-03-16 13:43:45
3563
原创 ping故障的调试笔记:arp缓存
现象简化后的网络拓补结构如图,主机和设备分别位于不同的子网中。现象如下:设备在其网络配置不变的情况下,每当重启之后,需要经过几十秒(甚至几分钟)的时间,才可以ping通主机。调试在设备端ping主机,同时使用tcpdump抓包进行调试:tcpdump -i eth0 icmp –e-i eth0:指定网络接口icmp:只抓取ICMP协议数据包,即ping命
2017-02-20 14:30:07
5429
原创 编写一个安全可靠的C++11类:引入移动语义
右值引用和移动语义在C++11(即C++0x)中,引入了右值引用的概念,同时在STL中提供std::move函数。这个机制完善了C++中关于左值、右值、以及引用的概念,优雅完美地解决了临时变量效率的问题。另外std::forward实现了所谓的“完美转发”,在泛型编程中有很大的作用。这篇文章,只对右值引用和移动语义做几个简单的实践。测试代码#include class
2017-01-24 11:29:11
772
原创 Linux中可变长参数函数
C++的函数重载C++支持函数重载和操作符重载。互为重载的多个函数,其参数必须不同,可以是个数不同、类型不同或者顺序不同。可变长参数函数而C语言是不支持函数重载机制的,但是支持变长参数函数,当然C++也是支持的。Linux中open系统调用在Linux发行版的/usr/include/fcntl.h中,声明了在开发用户程序时,只需要包含头文件,然后用gcc直接编译就
2016-12-05 11:13:58
1959
原创 函数调用的参数传递
定义实参actual parameters,全称为“实际参数”,是在调用时传递给函数的参数,即传递给被调用函数的值。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。 形参formal parameters,全称为“形式参数”,是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参
2016-11-30 13:42:50
1679
原创 视频编解码概念
图像的色彩空间/色彩模型/色彩模式/色彩系统RGB:分量信号YUV/YCbCr/YPbPr:色差信号1. 兼容黑白信号;2. 由于人眼对亮度比色彩更加敏感,所以实际使用时,YUV也分为三种常用采样格式:l 4:4:4l 4:2:2l 4:2:0图像的采样深度图像中存储每个分量所采用的位数(bit)。对于RGB图像
2016-11-09 14:30:42
1284
原创 Posix匿名信号量与fork
Posix匿名信号量,如果需要跨进程共享,必须放在共享内存区域(mmap,shm_open,shmget)。父进程中的静态存储区(全局变量)、堆(malloc)或者栈(局部变量)中存储的Posix匿名信号量,在fork()之后,父子两个进程分别拥有各自副本,并不能据此利用他们同步操作。
2016-11-09 13:33:14
1592
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人