TCP粘包和拆包_笔记

TCP 协议 TCP协议是一种流协议。 不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。 之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。 然后接收端实体对已成功收到的包发回一个相应的确认(ACK); 如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

Published
Categorized as linux

shell中使用sed正则修改文件

sed 使用正则匹配 在shell中 当变量有空格的时候使用双引号包围 “${var}” function change_version_class() { VERSION_CODE_FILE=$1 BUILD_VERSION=$2 if [ -f “${VERSION_CODE_FILE}” ]; then echo ‘change ‘”${VERSION_CODE_FILE}”‘ info’ BUILD_TIME=$(date +%Y%m%d-%H:%M:%S) BUILD_USER=$(whoami) BUILD_OS=$(uname -snr) BUILD_BRANCH=$(git branch |grep ‘[*]’|awk ‘{print $2}’) BUILD_COMMIT=$(git log –oneline |head -n 1|awk ‘{print $1}’) sed -i ‘s/String BUILD_VERSION =\(.\)\+/String BUILD_VERSION = “‘”${BUILD_VERSION}”‘”;/g’ “${VERSION_CODE_FILE}” sed -i ‘s/String BUILD_TIME =\(.\)\+/String BUILD_TIME =… Continue reading shell中使用sed正则修改文件

Published
Categorized as linux

利用正则表达式使grep进程不输出自身

ps aux | grep redis redis 1092 0.9 1.7 1638008 559216 ? Ssl Jul05 188:00 /usr/bin/redis-server 127.0.0.1:6379 root 3366704 0.0 0.0 112728 2308 pts/1 S+ 18:37 0:00 grep –color=auto redis ps aux | grep [r]edis redis 1092 0.9 1.7 1638008 559216 ? Ssl Jul05 188:00 /usr/bin/redis-server 127.0.0.1:6379 ps aux | grep [r]edis 进程中,grep参数是–color=auto [r]edis. 和grep的正则匹配不相符,因此不会输出到结果.

Published
Categorized as poem

虚拟机磁盘模式

虚拟机磁盘模式 资料来源 VMware Independent Persistent Vs. Independent Non-Persistent Disk Mode | MVSourceCode 在 vSphere Client 中更改磁盘模式以将虚拟磁盘从快照中排除 备份快照 有独立磁盘的虚拟机不能做内存快照,只能做普通快照 vmware 独立磁盘 不受快照影响 磁盘模式 模式 desc 独立 – 持久 持久模式磁盘的行为与物理机上常规磁盘的行为相似。写入持久模式磁盘的所有数据都会永久性地写入磁盘。 独立 – 非持久 关闭虚拟机电源或重置虚拟机时,对非持久模式磁盘的更改将丢失。使用非持久模式,您可以每次使用相同的虚拟磁盘状态重新启动虚拟机。对磁盘的更改会写入重做日志文件并从中读取,重做日志文件会在关闭虚拟机电源或重置虚拟机时被删除。

Published
Categorized as vmware