tcpdump抓包 wireShark

news2024/11/25 0:07:55

TCPdump抓包工具介绍

TCPdump,全称dump the traffic on anetwork,是一个运行在linux平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具。

tcpdump可以支持的功能:

1、在Linux平台将网络中传输的数据包全部捕获过来进行分析
2、支持网络层、传输层协议等协议捕获过滤
3、数据发送和接收的主机、网卡和端口等各种过滤捕获数据规则
4、提供and、or、not等语句进行逻辑组合捕获数据包或去掉不用的信息
5、结合wireshark工具分析捕获的报文

要灵活使用 tcpdump 工具必须要有两个必备的知识基础:
第一、Linux 操作系统:
    因为这是一款基于 Linux 系统下命令行的抓包工具,所以需要对 Linux 的基本操作和常用命令有一定的基础;
第二、网络知识:
    因为 tcpdump 是将网络中传送的数据包完整的截获下来然后进行分析,所以想要分析捕获到的报文,需要了解 OSI 七层网络模型,以及常用网络协议等。

TCPdump抓包工具使用环境和初体验

默认输入 tcpdump 这个命令,回车操作之后,它将监视第一个网络接口上所有流过的数据包,一般是eth0,如下图所示
在这里插入图片描述
20:44:54.485275 IP 115.205.231.25.54845 > iZj6cac8jcykj0pe92w66iZ.ssh: Flags [.], ack 46944, win 510, options [nop,nop,TS val 671165587 ecr 471333], length 0

20:44:54.485301 IP iZj6cac8jcykj0pe92w66iZ.ssh > 115.205.231.25.54845: Flags [P.], seq 59304:59516, ack 1, win 259, options [nop,nop,TS val 471428 ecr 671165587], length 212

以上输出的信息来看,可以总结出:
第一列:时分秒 20:33:22.957272
第二列:网络协议ip
第三列:发送方的ip地址+端口号,115.205.231.25是ip,而54845的端口号 / iZj6cac8jcykj0pe92w66iZ是主机, ssh是协议 表示端口号 22
第四列:箭头 > , 表示数据流向
第五列:接收方的ip地址+端口号,接收方是本机,所以翻译成了iZj6cac8jcykj0pe92w66iZ
第六列:数据包内容,包括Flags 标识符,seg 号,ack号,win 窗口,数据长度 length,其中 [P.]表示 PUSH 标志位为1,更多标识符需要了解TCP协议的标志位。

TCP协议

TCP(Transmission Control Protocol)传输控制协议,顾名思义,就是要对数据的传输进行一定的控制。
在这里插入图片描述
SYN:连接请求或者接受连接请求
FIN:连接结束,断开链接
RST:重置链接
ACK:确认标记位
PSH:催促标志位,将接受缓冲区内数据向上交付给应用程序,而不是等待缓冲区满后再交付。
URG:紧急标志位,将紧急数据排在普通数据的前面;
序号:每个数据包都对应着一个序列号
确认号:每发送一个数据包都需要收到对应的确认包,确认号=序号+1
窗口:滑动窗口 ------ 可靠性+提高报文发送效率

[S] : SYN(开始连接)
[P] : PSH(推送数据)
[F] : FIN(结束连接)
[R] : RST(重置连接)
[.] : 没有Flag(意思是除上面四种类型外的其他情况,有可能是ACK也有可能是URG)

TCPdump抓包工具常规过滤

基于IP地址进行过滤: host

案例1: 截获特定主机-220.181.38.148的主机收到的和发出的所有的数据包

tcpdump host 220.181.38.148
解释:host 220.181.38.148,指明 220.181.38.148 是一台主机,如果你非常明确关心的是哪个主机的收发报文,那么就可以直接过滤这个主机的数据包。host后面加主机的IP地址,就可以只抓取这个主机的所有数据包,其他主机的数据包就会被过滤掉。
在这里插入图片描述

案例2:获取目的地址是220.181.38.148 的报文
tcpdump dst 220.181.38.148
解释:dst 指的是目的地址;这个是确定传输方向的关键字,src源;dst 目的

src 是获得原地址的请求报文
dst是获得目标地址的请求报文
在这里插入图片描述
**基于IP地址进行过滤: port **

案例3:获取特定端口-比如http的包,使用如下命令:
tcpdump tcp port 80
解释:port 80 指明端口80,只会抓取这个80端口的数据包;加上具体某个协议的某个端口,就可以更加精确的捕获对应的业务的数据报文了。如上,就会只抓取 TCP 协议的 80 端口的数据报,也就是 http 协议的数据报文。

tcpdump src port 80/tcpdump dst port 80
在这里插入图片描述

如果你想要同时指定两个端口你可以这样写:tcpdump port 80 or port 22、tcpdump port 80 or 22 ;
在这里插入图片描述

如果你的想抓取的不再是一两个端口,而是一个范围,一个一个指定就非常麻烦了,此时你可以这样指定一个端口段。
tcpdump portrange 8000-8080
tcpdump src portrange 8000-8080
tcpdump dst portrange 8000-8080
在这里插入图片描述

对于一些常见协议的默认端口,我们还可以直接使用协议名,而不用具体的端口号:比如 http =80,https = 443 等
tcpdump tcp port http
在这里插入图片描述

基于协议进行过滤:protocal
案例4:获取ICMP协议的报文
tcpdump icmp
解释:标明要抓取的协议报文,一般常用的比如ip ,ip6 ,arp,icmp,tcp,udp
在这里插入图片描述

注意:http,dns,https,ssh 等这些应用层的协议,不能直接这样写,想要写成:
tcpdump port http
或者 tcpdump port 53 (DNS的端口号是53)

tcpdump的常用参数

tcpdump -h ——查看所有参数
在这里插入图片描述

-i # 指定监听网络接口
tcpdump -i eth0
默认监听在第一块网卡上,监听所有经过此网卡通过的数据包;但是我们可能关心的数据并不是 eth0 的接口,这时就需要指定端口进行数据包的捕获。
在这里插入图片描述

在 tcpdump 后面加一个 -i的参数,后面跟具体需要捕获的接口名称,就可以抓取经过这个具体接口的所有数据包。tcpdump -i any 监听所有的网卡接口、用来查看是否有网络流量
在这里插入图片描述

-w #将捕获到的信息保存到文件中,且不分析和打印在屏幕
tcpdump -i eth0 -w tt
报文打印在shel里会太多且不方便查看,我们可以保存成文件;然后通过xftp导出到本地,可以详细查看
在这里插入图片描述

扩展:导出的文件可以设置为cap或者pcap格式,可以直接用wireshark工具打开;
可以用wireshark工具分析报文具体信息!

-r # 从文件中读取数据,读取后,照样可以使用上述的过滤器语法进行过滤分析。
tcpdump -r tt.pcap

-n: 不把ip转化成域名,直接显示ip,避免执行DNS lookups的过程,速度会快很多
在这里插入图片描述

-nn : 不把协议和端口号转化成名字,速度也会快很多。
在这里插入图片描述

-N : 不打印出host的域名部分,比如,如果设置了此选项,tcpdump将会打印’nic’ 而不是’nic.ddn.mil’ 。
在这里插入图片描述
-t :在每行的输出中不输出时间
在这里插入图片描述

-tt : 在每行的输出中会输出时间戳
在这里插入图片描述

-ttt: 输出每两行打印的时间间隔(以毫秒为单位)
在这里插入图片描述

-tttt:在每行打印的时间戳之前添加日期的打印(此种选项,输出的时间最直观)

在这里插入图片描述

-v:产生详细的输出.比如包的TTL,id标识,数据包长度,以及IP包的一些选项。同时它还会打开些附加的包完整性检测,比如对IP或ICMP包头部的校验和。
在这里插入图片描述

-vv:产生比-v更详细的输出.比如NFS回应包中的附加域将会被打印,SMB数据包也会被完全解码。

-vv:产生比-vv更详细的输出。比如 telent 时所使用的SB,SE选项将会被打印,如果telnet同时使用的是图形界面,其相应的图形选项将会以16进制的方式打印出来

-c #指定收取数据包的次数,即在收到指定数量的数据包后退出tcpdump,停止抓包
tcpdump -c 20 -w tt.pcap
解释:抓满20个报文之后,就停止tcpdump抓包。
在这里插入图片描述
-C #与 -w FILE 选项配合使用。该选项使得 tcpdump 在把原始数据包直接保存到文件中之前,检查此文件大小是否超过 file-size。如果超过了,将关闭此文件,另创一个文件继续保存原始数据包。新创建的文件名与 -w 选项指定的文件名一致,但文件名后多了一个数字,该数字会从1开始随着新创建文件的增
多而增加。file-size的单位是百万字节(这里指1,000,000个字节,并非1,048,576个字节)

tcpdump -C 1 -W 3 -w abc 指定一个单位后(1MB)就换文件,最多写3个文件,名字是abc0,abc1.abc2

在这里插入图片描述
在这里插入图片描述
选择是入方向还是出方向的数据包,可选项有:in,也可以使用–direction=[direction]
tcpdump -Q in
tcpdump -Q out
tcpdump -Q inout

在这里插入图片描述
在这里插入图片描述
-q:简洁地打印输出。即打印很少的协议相关信息,从而输出行都比较简短.
在这里插入图片描述

-D:显示所有可用网络接口的列表
在这里插入图片描述

-L: 列出网络接口的已知数据链路。
在这里插入图片描述
7、 -s #指定每个包捕获的长度、单位是 byte,而不是默认的262144bytes;
如果超过了设定的大小限制,包就会被阶段,而在打印行出现[|proto]这种标识,这个proto就是被截断的报文的协议名字。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的数据包的数量,从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好(-s0使用默认长度262144)。
在这里插入图片描述

注意:不同的tcpdump版本,这个默认抓取的报文的长度不一样
在这里插入图片描述
帮助文档的指令 : man tcpdump

8、 -A : #以ASCII 格式打印出所有的分组并且读取此文件,这样可以使读取更加简单,方便使用 grep 等工具解析输出内容

--- tcpdump -A -r tt2

--- tcpdump -A | grep baidu
在这里插入图片描述
在这里插入图片描述

-X表示同时使用十六进制和 ASCII 字符串打印报文的全部数据。这-X和-A两个参数不能一起使用
--- tcpdump -X -r tt2

9、-e #在输出行打印出数据链路层的头部信息。默认情况下 tcpdump 不会显示数据链路层信息,使用 -e选项可以显示源和目的 MAC 地址,以及 VLAN tag 信息。例如:
--- tcpdump -e -r tt2

10、-F指定使用哪个文件的过滤表达式抓包。此时命令行上的输入规则将被忽略
tcpdump -F filter_rule -c 10
这种情况适用于将表达式放置在文件中长期维护

11、-l #对标准输出进行行缓冲,在需要同时观察抓包打印以及保存抓包记录的时候很有用。比如,可通过以下命令组合来达到此抓包时保存到文件的同时查看包的内容。
-- tcpdump -l | tee dat
dat是文件的名字

这命令是使用tee来把tcpdump 的输出同时放到文件dat和标准输出中
tee 功能说明:读取标准输入的数据,并将其内容输出成文件
-- tcpdump -l > dat & tail -f dat
这个命令是通过重定向操作 ‘>’ 把数据写入对应的文件中

逻辑运算

逻辑运算符:and or not
and:所有的条件都需要满足,也可以表示为 &&
or:只要有一个条件满足就可以,也可以表示为
not:取反,也可以使用!

and例子:抓一个来自100.100.30.26主机,80端口的包 – tcpdump src 100.100.30.26 and port 80

or例子:抓取UDP 53端口或者TCP 53端口的包(DNS协议的报文) – tcpdump tcp port 53 or udp port 53

not例子:抓取不是22端口的报文 – tcpdump not tcp port 22

多个过滤器进行组合:需要用到括号,而括号在 shell 中是特殊符号,因为需要使用引号将其包含: --and 优先级高于 or
tcpdump “src 10.0.2.4 and (dst port 3389 or 22)"

实际案例 :监听主机192.168.56.1和192.168.56.210之间ip协议的80端口的且排除www.baidu.com通信的所有数据包:
tcpdump ip dst 192.168.56.1 and src 192.168.56.210 and port 80 and host ! www.baidu.com
tcpdump ip dst 192.168.56.1 and src 192.168.56.210 and port 80 and host not www.baidu.com
即not和!都是相同的取反的意思

高级过滤

1、基于包大小进行过滤:查看指定大小的数据包
案例:抓取包大小小于32bytes的数据包
tcpdump less 32
案例:抓取包大小大于100bytes的数据包
tcpdump greater 300

tcpdump 总结图

在这里插入图片描述

WireShark

按IP地址过滤

想看源ip为xxx的包

ip.src==192.168.40.1
在这里插入图片描述

想看目标ip为xx的包

ip.dst==239.255.255.250
在这里插入图片描述

想看源或目标ip为xx的包

ip.addr==192.168.18.128
在这里插入图片描述

按MAC地址过滤

想看源MAC为xx的包

eth.src==76-6C-80-82-D7-13

想看目标MAC为xx的包

eth.dst==76-6C-80-82-D7-13

想看源或目标MAC为xx的包

eth.addr==76-6C-80-82-D7-13

按端口号过滤

过滤tcp端口为4694的包

tcp.port==4694

过滤源端口为4694的包

tcp.srcport==4694

过滤目标端口为4694的包

tcp.dstport==4694

按协议类型过滤

常见的协议
arp
dhcp
https

规则组合

and

查看dhcp,tcp 包,并且只想查看某台电脑的dhcp包和tcp包
tcp and dhcp and eth.addr ==76-6C-80-82-D7-13

在这里插入图片描述
tcp and dhcp
在这里插入图片描述

or

查看dhcp 或者 arp
在这里插入图片描述

tcp or dhcp
在这里插入图片描述

通过icmp报文排查网络故障

icmp 测试网络连通性
通,告知延迟

不通,告知原因,用icmp包里的type +code ,两个数字的组合,代表故障原因

常见的错误及原因

1.没配网关     传输失败,常见故障
2.配了网关,但是找不到网关。    来自本机(可能是主机的IP地址)的回复,无法访问目标主机     自己发arp寻找网关mac,失败
3.配了网关,也能找到网关。     来自网关的回复,无法访问目标网络。    网络设备缺少路由
4.配了网关,也能找到网关,网关也有目标路由。但是后面的设备缺路由。
4.1 后面的设备,有回包的路由,没有目的地的路由。     报错:来自缺路由的设备,无法访问目标网络。
4.2 后面的设备,没有回包的路由,没有目的地的路由。     超时

B机器 ping A 机器
A机器 ping B机器

数据包都是有去有回,如果不通那就是防火墙的问题
不通的那个机器 将 防火墙 禁ping了

windows防火墙特性
出站连接,默认放行
入站连接,默认禁止。需要允许通,防火墙要设置放行

icmp协议

Internet控制消息协议ICMP(Internet Control Message Protocol)是IP协议的辅助协议

ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

在这里插入图片描述

ICMP报文

在这里插入图片描述

icmp 中 Type+Code的请求含义

TypeCode描述
00Echo Reply(请求的响应)
30网络不可达
31主机不可达
32协议不可达
33端口不可达
50重定向
80Echo Request(请求)
110TTL值没了,丢包了

8+0 Echo Request(请求)
在这里插入图片描述
0+0 Echo Reply(请求的响应)
在这里插入图片描述
3+0 网络不可达
缺路由(路由没配)
在这里插入图片描述
3+1 主机不可达
不缺路由,缺arp (根据路由表里的直连路由查询arp,没查到对应的mac)
在这里插入图片描述
3 + 3 端口不可达
传输层端口, 目标主机,没开放相关的端口
(33440端口没开)
在这里插入图片描述
3+2协议不可达
在这里插入图片描述

协议号和端口号的区别?
协议号:ip头部里的字段,标识这个数据包是tcp(6),还是udp(17),还是icmp(1),还是gre(50),还是ospf(89)还是vrrp(112‌)

端口号:tcp,udp头部里的字段,标识这个数据包是http(80),还是dns(53),还是ftp(21),tftp( 69),smtp(25)

什么是gre?
两台路由器,想建立gre的 联系
路由器A配置好了             路由器B没配置
A寻找B,建立gre连接     B回一个消息,协议不可达

DNS的协议号和端口号
在这里插入图片描述

HTTP的协议号和端口号

在这里插入图片描述

在这里插入图片描述

11+0 TTL没了,丢包了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常见的网络协议工作过程

DNS

提供了主机名字和IP地址之间的相互转换
DNS系统的模式
采用客户端/服务器模式

在这里插入图片描述

FTP

FTP协·议是互联网上广泛使用的文件传输协议
客户端/服务端模式,基于TCP
FTP采用双TCP连接方式

TFTP

TFTP(简单文件传输协议)也是采用客户机/服务器模式的文件传输协议
TFTP适用于客户端和服务器之间不需要复杂交互的环境
TFTP承载在UDP之上,端口号69
TFTP仅提供简单的文件传输功能(上传、下载)
TFTP没有存取授权与认证机制,不提供目录列表功能
TFTP协议传输是由客户端发起的

Telnet

远程管理网络设备
测试端口可达性

利用Wireshark 获取用户密码

客户端登录网页,抓取请求
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2246963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS4+NEXT星河版入门与项目实战(11)------Button组件

文章目录 1、控件图解2、案例实现1、代码实现2、代码解释3、运行效果4、总结1、控件图解 这里我们用一张完整的图来汇整 Button 的用法格式、属性和事件,如下所示: 按钮默认类型就是胶囊类型。 2、案例实现 这里我们实现一个根据放大和缩小按钮来改变图片大小的功能。 功…

YOLOV5 /onnx模型转换成rknn

上两篇文章讲述了pytorch模型下best.pt转换成onnx模型,以及将onnx进行简化成为best-sim.onnx, 接下来这篇文章讲述如何将onnx模型转换成rknn模型,转换成该模型是为了在rk3568上运行 1.创建share文件夹 文件夹包含以下文件best-sim.onnx,rknn-tookit2-…

【51单片机】LCD1602液晶显示屏

学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 LCD1602存储结构时序结构 编码 —— 显示字符、数字 LCD1602 LCD1602(Liquid Crystal Display)液晶显示屏是…

如何使用AWS Lambda构建一个云端工具(超详细)

首发地址(欢迎大家访问):如何使用AWS Lambda构建一个云端工具(超详细) 1 前言 1.1 无服务器架构 无服务器架构(Serverless Computing)是一种云计算服务模型,它允许开发者构建和运行…

【Isaac Sim】相关问题汇总

目录 一、安装点击Install时报错二、启动时报 Failed to create any GPU devices三、加载Isaac Sim自带模型或示例时报 Isaac Sim is not responding 一、安装点击Install时报错 报错: request to https://asset.launcher.omniverse.nvidia.com/… failed, reason:…

Spring-02-springmvc

2. 什么是SpringMVC 2.1. 概述 Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。 为什么要学习SpringMVC呢? Spring MVC的特点: 轻量级,简单易学高效 , 基于请求响应的MVC框架与Spring兼容性好,无缝…

深度学习之目标检测的技巧汇总

1 Data Augmentation 介绍一篇发表在Big Data上的数据增强相关的文献综述。 Introduction 数据增强与过拟合 验证是否过拟合的方法:画出loss曲线,如果训练集loss持续减小但是验证集loss增大,就说明是过拟合了。 数据增强目的 通过数据增强…

qt添加模块

以QtNetwork模块为例 方式一 扩展-qt vs tools-qt project settings 方式二 右键选中项目-属性-qt project settings 方法三 在此界面选择select modules,即可进行相应模块添加

【信息系统项目管理师】第2章:信息技术发展 考点梳理

文章目录 2.1 信息技术及其发展2.1.1 计算机软硬件2.1.2 计算机网络2.1.3 存储和数据库2.1.4 信息安全2.1.5 信息技术的发展 2.2 新一代信息技术及应用2.2.1 物联网2.2.2 云计算2.2.3 大数据2.2.4 区块链2.2.5 人工智能2.2.6 虚拟现实 2.1 信息技术及其发展 2.1.1 计算机软硬件…

【线程】Java多线程编程

【线程】Java多线程编程 一、前言一个最简单的多线程编程示例可以使用的工具 二、创建线程的方式三、Thread类中重要的属性和方法3.1 构造方法3.2 常见属性 一、前言 当有多个线程的时候,这些线程的执行顺序是不确定的。这一点,是我们之前提到的操作系统…

unsloth vlm模型Qwen2-VL、Llama 3.2 Vision微调案例

T4卡15G显卡训练 参考: https://github.com/unslothai/unsloth 按自己显卡cuda版本安装 免费colab微调代码: Qwen2-VL: https://colab.research.google.com/drive/1whHb54GNZMrNxIsi2wm2EY_-Pvo2QyKh?usp=sharing from unsloth import FastVisionModel # NEW instead …

window11编译pycdc.exe

一、代码库和参考链接 在对python打包的exe文件进行反编译时,会使用到uncompyle6工具,但是这个工具只支持python3.8及以下,针对更高的版本的python则不能反编译。 关于反编译参考几个文章: Python3.9及以上Pyinstaller 反编译教…

oracle如何配置第二个监听优化数据传输

oracle如何配置第二个监听优化数据传输 服务器两个网卡,配置两个不同IP和端口的监听。 归档日志量每天很大,为了不影响业务,需要配置一个单独的万兆网络来专门的传输归档日志到DG库,这里就涉及到在19c中增加一个监听用来使用专门…

Kafka Stream实战教程

Kafka Stream实战教程 1. Kafka Streams 基础入门 1.1 什么是 Kafka Streams Kafka Streams 是 Kafka 生态中用于 处理实时流数据 的一款轻量级流处理库。它利用 Kafka 作为数据来源和数据输出,可以让开发者轻松地对实时数据进行处理,比如计数、聚合、…

用 Python 从零开始创建神经网络(九):反向传播(Backpropagation)

反向传播(Backpropagation) 引言1. 分类交叉熵损失导数(Categorical Cross-Entropy loss derivative)2. 分类交叉熵损失导数 - 代码实现3. Softmax激活函数导数(Softmax activation derivative)4. Softmax激…

TCP vs UDP:如何选择适合的网络传输协议?

在网络通信中,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种非常重要的传输层协议。它们各有特点,适用于不同类型的应用场景。本文将详细探讨TCP和UDP协议的结构、优缺点及应用&…

06、Spring AOP

在我们接下来聊Spring AOP之前我们先了解一下设计模式中的代理模式。 一、代理模式 代理模式是23种设计模式中的一种,它属于结构型设计模式。 对于代理模式的理解: 程序中对象A与对象B无法直接交互,如:有人要找某个公司的老总得先打前台登记传达程序中某个功能需要在原基…

递归算法专题一>Pow(x, n)

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; public double myPow(double x, int n) {return n < 0 ? 1.0 / pow(x,-n) : pow(x,n); }private double pow(double x, int n){if(n 0) return 1.0;double tmp pow(x,n / 2);return n % 2 0 ? tmp * tmp : tmp …

游戏引擎学习第20天

视频参考:https://www.bilibili.com/video/BV1VkBCYmExt 解释 off-by-one 错误 从演讲者的视角&#xff1a;对代码问题的剖析与修复过程 问题的起因 演讲者提到&#xff0c;他可能无意中在代码中造成了一个错误&#xff0c;这与“调试时间标记索引”有关。他发现了一个逻辑问题…

C语言:操作符详解1

一.操作符的分类 算术操作符&#xff1a;、-、* 、 /、% 移位操作符&#xff1a;<< >> 位操作符&#xff1a;& | ^ 赋值操作符&#xff1a; 、、-、*、/、%、<<、>>、&、|、^ 单目操作符&#xff1a;!、、--、&、*、、-、~、sizeo…