TCPDUMP

golang tcp keepalive实践

佐手、 提交于 2020-08-10 18:15:04
前文 中已经介绍了TCP keep alive的做了详尽说明,本文结合golang,介绍如何使用TCP keep alive。 目前golang net包不提供TCP keep alive 空闲多长时间开始探测 、 探测总次数 直接设置。 可以使用第三方包。 1.下载第三方包 git clone git@github.com:felixge/tcpkeepalive.git 注意放到 GOPATH 目录下。 2.例子 2.1 server server端,接受client连接请求,建立连接后,设置连接的 空闲多长时间开始探测 、 探测时间间隔 、 探测总次数 。 本例中,我们设置的参数如下: 空闲多长时间开始探测 keepAliveIdle : 10s 探测时间间隔 keepAliveInterval : 10s 探测总次数 keepAliveCount :9 server端发送一次数据后,停住。等待10s,开始发送tcp keep alive. server 代码如下: package main import ( "net" "log" "time" "github.com/tcpkeepalive" ) func main() { addr := "0.0.0.0:8080" tcpAddr, err := net.ResolveTCPAddr("tcp",addr) if

Percona MySQL查看没有访问的表

谁说我不能喝 提交于 2020-08-10 18:11:57
要找到实例里面某个表是否有访问,确实是比较难搞。 常用方法就是 开tcpdump或tshark持续抓包过滤怀疑的表名。 但是,如果我们用的是Percona分支的MySQL,这件事就变得简单多了。 Percona MySQL 下,我们可以打开userstat参数,通过查询系统统计表来获取用户、客户端和库表访问情况,注意:该功能只在MySQL的 Percona 发行版有效,社区版不带这个功能。 (none) > status -------------- mysql Ver 14.14 Distrib 5.6.38-83.0, for Linux (x86_64) using 6.2 Connection id:1222143 Current database: Current user:root@localhost SSL:Not in use Current pager:stdout Using outfile:'/root/audit.log' Using delimiter:; Server version:5.6.38-83.0-log Percona Server (GPL), Release 83.0, Revision dc97471bd40 Protocol version:10 Connection:Localhost via UNIX socket Server

gawk学习笔记

≡放荡痞女 提交于 2020-08-10 12:52:52
gawk和sed,grep是linux中文本处理三剑客,功能异常强大,可以把它当做一门独立的编程语言使用,之前的博客中已经描述了 grep 和 sed 的使用方法,下面描述gawk 基本用法:gawk [options] 'program' FILE ... program: PATTERN{ACTION STATEMENTS} 语句之间用分号分隔 print, printf 选项: -F:指明输入时用到的字段分隔符; -v var=value: 自定义变量; 1、print print item1, item2, ... 要点: (1) 逗号分隔符; (2) 输出的各item可以字符串,也可以是数值;当前记录的字段、变量或awk的表达式; 注意:Awk 中如果想实现变量替换不可以用引号 (3) 如省略item,相当于print $0; 2、变量 2.1 内建变量 FS:input field seperator,默认为空白字符;相当于awk -F OFS:output field seperator,默认为空白字符; RS:input record seperator,输入时的换行符; ORS:output record seperator,输出时的换行符; NF:number of field,字段数量 {print NF}, {print $NF}

DHCP

我怕爱的太早我们不能终老 提交于 2020-08-10 11:54:41
DHCP服务 一、DHCP介绍 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通常被应用在局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。由于DHCP是一个UDP协议,所以运行起来更加高效。 DHCP协议采用客户端/服务器模型(C/S模型),服务端可以为客户端提供IP、掩码、网关、主机名、DNS等信息。客户端只需将IP获得方式设置为自动获取即可。 目前可以提供DHCP服务的设备有很多,比如: DHCP服务器(windows server、linux) 硬件路由器 家用宽带路由 二、DHCP应用场景 1)公司局域网环境 2)家庭局域网环境 3)公共场合的wifi环境 4)宽带环境网络 使用DHCP的优点: ​ 1)傻瓜式接入:用户只需懂得插网线到电脑,或者输入WiFi密码接入网络即可实现联网 ​ 2)IP高效利用:及时回收IP机制,保证IP的高利用性,特别是对IP不足的网络 ​ 3)避免IP冲突:避免IP冲突,保证网络的高效利用,保证公司员工及临时人员高效工作 ​ 4)降低了公司网络管理员的工作量,提升了工作效率 三、DHCP工作原理 报文分析 192.168.11.16 dhcp服务器 [root@baism dhcp

Linux高新能服务器编程笔记 -- Chapter1 TCP/IP协议栈

随声附和 提交于 2020-08-10 03:53:44
查看服务端口号 sudo cat /etc/services kali@kali:/etc$ sudo cat services # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, officially ports have two entries # even if the protocol doesn't support UDP operations. # # Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml . # # New ports will be added on request if they have been officially assigned # by IANA and used in the real-world or are needed by a debian package. # If you need a huge list of

实战:tcpdump抓包分析三次握手四次挥手

折月煮酒 提交于 2020-08-09 05:53:19
本文档以实战的形式介绍tcpdump抓包分析三次握手四次挥手的过程。 执行tcpdump 命令 tcpdump -n -i ens32 host 192.168.10.10 and 42.186.113.26 >> /tmp/tcpdump.txt ping game.campus.163.com curl http://game.campus.163.com curl http://game.campus.163.com结束后,停止ping game.campus.163.com,查看/tmp/tcpdump.txt分析抓包结果 三次握手 20:23:04.393437 IP 192.168.10.10.53250 > 42.186.113.26.http: Flags [S], seq 4039900133, win 29200, options [mss 1460,sackOK,TS val 304628816 ecr 0,nop,wscale 7], length 0 20:23:04.421269 IP 42.186.113.26.http > 192.168.10.10.53250: Flags [S.], seq 874076341, ack 4039900134, win 64240, options [mss 1460], length 0 20:23:04

用scapy构建假的TCP隧道提高传输性能

亡梦爱人 提交于 2020-08-08 14:30:26
TCP一定要是TCP吗? 它可能是个trick! 豪雨滂沱,作文一篇,当笑话看看就好。 前几天写了两篇与本文相关的随笔: https://blog.csdn.net/dog250/article/details/106881244 https://blog.csdn.net/dog250/article/details/106955747 想让数据包按照TCP的样子被传输和被处理,非常复杂。 然而,TCP是一个端到端有状态协议,这意味着中间转发设备没有能力处理TCP的细节,如果在端系统也不需要处理TCP细节的时候, 一个流只需要让中间转发设备看起来像TCP就行了! 什么时候端系统不需要处理TCP细节,以及为什么要让一个本不是TCP的流看起来像TCP呢? 我们要明白中间转发设备的一些行为。中间转发设备会针对TCP做出一些动作,比如: 流量高峰期对除TCP之外的其它协议进行丢包限速(过度对TCP丢包会引发端系统盲CC算法的过激反应,加剧网络拥塞)。 按照TCP四元组对单流进行限速。 按照TCP四元组对单流进行整形。 … 这些动作基于以下的事实: 行为最终会作用于端到端系统,端到端系统会正确处理TCP细节,使网络收敛。 而我们可以通过忽略端到端处理,从这些动作中得到收益,而不是限制: 给UDP封装一个TCP头使其在高峰期免于被限速。 为同一个流封装不同四元组的TCP头而免于被限速。

实战:tcpdump抓包分析三次握手四次挥手

泄露秘密 提交于 2020-08-08 04:10:31
本文档以实战的形式介绍tcpdump抓包分析三次握手四次挥手的过程。 执行tcpdump 命令 tcpdump -n -i ens32 host 192.168.10.10 and 42.186.113.26 >> /tmp/tcpdump.txt ping game.campus.163.com curl http://game.campus.163.com curl http://game.campus.163.com结束后,停止ping game.campus.163.com,查看/tmp/tcpdump.txt分析抓包结果 三次握手 20:23:04.393437 IP 192.168.10.10.53250 > 42.186.113.26.http: Flags [S], seq 4039900133, win 29200, options [mss 1460,sackOK,TS val 304628816 ecr 0,nop,wscale 7], length 0 20:23:04.421269 IP 42.186.113.26.http > 192.168.10.10.53250: Flags [S.], seq 874076341, ack 4039900134, win 64240, options [mss 1460], length 0 20:23:04

两万字长文50+张趣图带你领悟网络编程的内功心法

元气小坏坏 提交于 2020-08-06 17:04:57
前言 我大学是学网络工程专业,也就是那种拉网线,面向网线编程的。依稀记得学习计算机网络这门课程的时候搭建的 IT宅 itzhai.com 个人网站。 算一下,学这门课程也已经快十年了。 某一天,偶然又看到了这本书: 翻了下,发现里面的内容竟然还是毫不过时,真的是越底层的知识越有价值呀。 我擦了擦书面的灰尘,决定要为它写点什么 ,于是又从书架上找了相关的书籍: 来回翻阅和梳理总结,逐渐输出了这篇文章,献给对网络不太熟悉,又想快速从入门到熟练的朋友们。 相信大家拿到Socket API,就可以很快写好代码,收发消息,传送文件什么的,可是底层究竟发生了什么?TCP、UDP、HTTP是什么关系、为啥要有WebSocket编程。我们从TCP/IP协议栈以及一根网线说起,逐步揭开面向网线编程内功心法的面纱。 最后,在这里解答一个问题:有人问我为什么要写公众号技术文章呢?工作越久,发现身边比自己年纪小的人越多,我也时常在想,那些同龄人或者比我大的人都去哪里了,也许有些人忙于家庭生活不亦乐乎,有些人因为公司上市拿到可观的收入转行了,也许有人在大公司做起了管理工作,开始走管理路线,带领团队创造新的产品。我写公众号的原因之一,也就是想告诉大家,我一直在做技术,一个坚持写代码的大龄技术人,并且希望能够结实更多志同道合的技术人。没错,在说你们呢,不要求三连,这篇文章对你感兴趣就点个在看呗。Thanks♪(

曹工改bug--本来以为很简单的数据库字段长度不足的问题,最后竟然靠抓包才解决

南笙酒味 提交于 2020-08-05 09:16:14
问题描述 这两天本来忙着新功能开发,结果之前的一个项目最近要上了,然后又在测试,然后就喜提bug一枚(not mine),看bug描述,很简单,而且本地环境也重现了,只要输入2000个英文字符就可以复现。 核心就是: 当任务描述输入最大字符2000时,报未知异常 问题定位 这种字符数限制的,一般就是数据库的字段长度短了,于是我直接找到ssh,找到对应的日志看了一下,果然是这个问题。 com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'feedback_content' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3931) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java