tty、三次握手、tshark

tty解析
TTY设备包括虚拟控制台,串口以及伪终端设备。

在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:

串行端口
串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。这些串行端口所对应的设备名称是: /dev/tts/0(或/dev/ttyS0),/dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0),(4,1)等,分别对应于DOS系统下的COM1、COM2等。

伪终端
伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备,对master的操作会反映到slave上)。

控制终端
如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。

控制台
在Linux 系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2 等。当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上(这时也叫控制台终端)。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。只有在单用户模式下,才允许用户登录控制台。

https://blog.csdn.net/weixin_39663255/article/details/80202660

https://blog.csdn.net/weixin_39663255/article/details/80233499

https://blog.csdn.net/aaa978464597/article/details/80204817

 

扩展 三次握手,四次挥手  

 

1c95f34fe5fc4de7df378ea79a1b640e8fc.jpg

 

TCP/IP工作在第4层,在TCP/IP协议簇中,有两个不同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议),它们分别承载不同的应用。TCP协议提供可靠的服务,UDP协议提供不可靠但是高效的服务。

TCP/IP的特点:
(1)分层是TCP/IP乃至网络通信最核心的策略和模式,分层使得所有的网络应用程序不用关心底层链路传输的细节,也使得不同类型的网络有效地互通。
(2)封装就是在应用程序在发送数据的过程中,每一层都增加一些首部信息,这些信息用于和接收端同层次进行沟通。
(3)在接收端的处理过程就正好相反,也就是所谓的分用策略,数据从底层到最上层的应用程序过程中,数据被逐层拆分,每一层取出自己所需要的信息。

TCP可靠连接

TCP是面向连接的传输层协议,所谓面向连接就是在真正的数据传输开始前要完成连接建立的过程,否则不会进入真正的数据传输阶段。

e72eeeded5b2f86aafa3f20b9f017b42a1f.jpg

1) 请求端发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号(ISN)。
2) 服务器发回包含服务器的初始序号的SYN报文段作为应答。同时,将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认。一个SYN将占用一个序号。
3) 客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认

TCP三次握手状态
首先是closed状态,当发起连接后,进入Listen状态,当三次握手之后,进入EST状态。三次握手中间还有一个临时状态:SYN_SENT。SYN_SENT当应用程序发送ack之后,进入EST状态,如果没有发送,就关闭closed.

为什么是三次握手?
对于这个问题,网络编程中的一个经典的规则也许能给一些提示:别人告诉你成功了那一定是成功了,没告诉你成功不一定是没成功。因此,如果是设计成两次握手,就有可能是被连接方第一次发出ack消息后,就处于成功建立连接的状态,但这条消息丢失了,主动连接方因为没有收到这个ack消息会认为建立连接失败,也许会放弃连接或启动新的连接,但被连接方会一直监听那个它误认为成功的连接。采用三次握手,前两次握手任何一次失败都会导致连接双方都处于未连接状态,第三次失败只会导致连接方处于成功状态,但做主动连接方,肯定会在连接不久后通过这个连接发送数据,这样就可以利用这个机制做进一步的容错。

 

ip命令使用

1. 设置和删除IP

ip addr add 192.168.10.10/24 dev eth0

ip addr show eth0

ip addr del 192.168.10.10/24 dev eth0

 

2. 路由相关设置

ip route show

ip route add default via 192.168.10.1

ip route add 192.168.5.0/24 dev eth0

ip route del 192.168.10.1

 

另外用route命令来管理路由:

(a)、网络路由

# route add -net 192.168.1.0/24 gw 172.16.1.106

(b)、主机路由

# route add -host 192.168.1.110 gw 172.16.1.106

(c)、默认路由

# route add default gw 172.16.1.106 或 # route add -net 0.0.0.0 gw 172.16.1.106

(d)、删除路由

# route del -host 192.168.1.110

# route del -net 192.168.1.0/24

 

 

3. 显示网络统计数据

ip -s link

ip -s -s link ls eth0

 

3. 停止开启网卡

ip link set eth0 down

ip linke set eth0 up

 

更改网卡名字

ip link set ens37 name eth1

 

 

默认我们的机器上是没有安装这个工具的。如果你的linux是CentOS那么就使用yum安装
yum  install  -y  wireshark
也可以到官网下载源码 http://www.wireshark.org 
具体安装方法,请参考 http://www.qtasp.cn/wiresharkcharpt/buildingwireshark.html
以下,简单介绍这个抓包工具的应用
1. 以下的用法可以显示访问http请求的域名以及uri

  1. tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"


2. 以下可以抓取mysql的查询

  1. tshark -n -i eth1 -R 'mysql.query' -T fields -e "ip.src" -e "mysql.query"

另外一种方法:

  1. tshark -i eth1 port 3307  -d tcp.port==3307,mysql -z "proto,colinfo,mysql.query,mysql.query"


3. 以下可以抓取指定类型的MySQL查询

  1. tshark -n -i eth1 -R 'mysql matches "SELECT|INSERT|DELETE|UPDATE"' -T fields -e "ip.src" -e "mysql.query"


4. 统计http的状态

  1. tshark -n -q -z http,stat, -z http,tree

这个命令,直到你ctrl + c 才会显示出结果

5.  tshark 增加时间标签   

  1. tshark  -t  ad
  2. tshark  -t  a



参考  
https://ask.wireshark.org/questions/16964/analyzing-http-protocol-using-tshark

转载于:https://my.oschina.net/u/3992081/blog/2878057

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值