网络基础之以太网帧,MTU,MSS

本文原创部分占比不多,图片多是盗用,不知道最开始是谁画的,我是从http://geek.csdn.net/news/detail/67260取的。此文主要是做一个自己的梳理。

TSO/UFO

TCP的每个数据包大小不能超过MSS值,在发送端超过的,需按照MSS进行分段(segment)。
分段这事情,老是让CPU来做,那是很耗精力的事,做网卡的乐意分享此任务,将其offload到网卡,当网卡支持TCP分段这功能的时候,我们就说它支持TSO(TCP segmentation offload)。
继续阅读

网络基础之以太网帧,MTU,MSS

以太网帧

网络数据传输,底层是物理设备的支持,如路由、交换、网卡、网线,通过网线传送电信号或者光信号,自然可以"连续"地传输,但是,考虑到连续传输,如果中间某个信号被干扰,一个bit不正确会导致整个串都不正确,损失颇大;其次,考虑到线路的多源共享问题,如果一直传送一个源的数据,其他的数据就得不到发送。于是,聪明的设计者将来自一个源的大段数据,拆分成小段,如果某一小段传输不正确,只影响这一小段,而非整体,根据一定的算法交替发送不同来源的数据,可实现线路共享,而分割的这一小段也就是我们说的帧(Frame),帧也称为协议数据单元(PDU)。
继续阅读

编译环境Docker化

编译代码,我喜欢操纵感强的,jenkins更适合构建,而不适合自己捣腾。
以前我们用虚拟机初始化一个环境,然后chroot,挺好,但是时常出现资源不够用的情况(很多人在一台HCI上创建虚拟机,不卡才怪),QEMU+KVM虚拟化的坏处是资源消耗太大,所以,用docker这种天生无太多牵挂的东西,性能会提高很多,而且更灵活(派生一个虚拟机和pull一个docker,感觉完全不同)。
继续阅读