java解析五元组_抓包分析提取五元组
网络中每个通信实体的 socket 是用一个三元组标识的。三元组往往称为半相关
三元组指的是:协议族(地址族),网络地址、和传输层端口 (
Ipv4 )。
通信双方的一个连接是用网络五元组来标识的,它是由双方相同协议族的两个本地三元组合成的。五元组往往称为全相关。
网络五元组指的是:协议族(地址族)、本地网络地址、本地端口、远程网络地址和远程端口。
套接口分为若干类型,常用的是
SOCK_STREAM 和 SOCK_DGRAM 。
SOCK_STREAM 是面向连接的套接字,使用的协议是 TCP ,通信的双方通过三次握手建立起虚拟的连接线路,通信的过程是可靠的。
而
SOCK_DGRAM 是面向非连接的套接字,使用的协议是 UDP ,通信双方以数据包的方式进行通信,通信的可靠性就不能得到保证。本项目要求采用 SOCK_STREAM 类型。
五元组格式(协议,本地 IP ,本地端口,远方 IP ,远方端口)的建立过程
服务器一般都有两个功能:监听 和 处理
在监听的时候,协议 / 本地 IP/ 本地端口(监听端口)都是确定的,当收到客户端的报文时,远方 IP 就是报文的源 IP 地址,远方端口就是报文的源端口,这样一来五元组就确定了。
然后服务器进入处理阶段,需要开启一个新的线程与客户端交互,当然就需要确定一个新的五元组,这时候协议 / 本地 IP/ 远方 IP/ 远方端口都来自监听阶段确定的五元组,而本地端口会在 1024 以上随机选取 (不再使用监听端口,以便监听其他客户端的请求)。
客户端的话正好相反,在发送请求时采用随机的本地端口 ,而接受响应时采用服务器的源端口作为远方端口。
1. 创建套接字
int socket(int family, int type, int protocol);
Socket 函数用于建立三元组中的协议族部分 。
2. 绑定套接字
int bind(int sockfd, cost struct sockaddr * saddr, socklen_t addrlen);
bind 函数用于建立三元组中的本地 IP 地址和本地端口号部分。
3. 监听
int listen( int sockfd, int backlog ) ;
4. 接受连接
int accept( int sockfd, struct sockaddr * client_addr, socklen_t *addrlen);
5. 连接服务器
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);
connect 完成后通信双方两个三元组组成的五元组就建立起来了。
PCAP文件格式分析
pcap文件格式是常用的数据报文存储格式,主流抓包软件,如wireshark、tcpdump等都支持这种格式。
其具体格式为:
pcap文件头 + {
数据报文信息 +
数据报文}+..
二、文件头结构体:24字节
sturct pcap_file_header
{
DWORD magic; //标识位,目前为“D4 C3 B2 A1”
WORD version_major;//主版本号
WORD version_minor;//副版本号
DWORD thiszone;//时区
DWORD sigfigs;//精确时间戳
DWORD snaplen;//数据包最大长度
DWORD linktype;//链路层类型,1代表以太网
}
三、数据包头结构体:16字节
struct pcap_pkthdr
{
struct timeval ts; //时间戳
DWORD caplen;//数据包长度
DWORD len;//数据包实际长度
}
struct timeval
{
DWORD GMTtime;//秒计时
DWORD microTime;//毫秒计时
}
数据报文,即网络中传输的数据包,其具体格式依赖于具体的网络协议,比如一个数据报文链路层采用以太网协议,网络层采用IP协议,传输层采用TCP协议,那么其内容就需要一层一层向上解析。可以自己对比协议规范去进行pcap文件的解析。
java解析五元组_抓包分析提取五元组相关推荐
- 华为——OSPF单区域实验配置,实验抓包分析,五种报文分析,六种LSA介绍,以及如何建立邻接关系的七种状态
华为--OSPF单区域实验配置,实验抓包分析,五种报文分析,六种LSA介绍,以及如何建立邻接关系的七种状态 前言 一:OSPF简介 1.1:工作原理 1.1.1:架构介绍 1.1.2:信息传递 1.1 ...
- 第6组-17通信工程3班-156 黄子羡 网络抓包分析
一.地址规划表 源ip地址 目的ip地址 备注 192.168.43.156 221.130.200.202 360搜索导航 192.168.43.156 183.232.136.130 YY直播平台 ...
- ffmpeg抓取rtsp流并保存_详细解析RTSP框架和数据包分析(1)
0.引言 本文主要讲解RTSP框架和抓取RTSP数据包,进行详细分析.可以阅读以下几篇文章,能够帮助你更详细理解. 手把手搭建RTSP流媒体服务器 HLS实战之Wireshark抓包分析 HTTP实战 ...
- Java抓包分析四(基于jnetpcap进行抓包)——分析Http请求数据包
在上篇文章中Java抓包分析三(基于jnetpcap进行抓包)--抓取Http请求数据包,我们讲解了TCP三次握手的过程和如何抓取Http数据包,但是我们并没有进行一个数据分析,接下来这篇文章我们将要 ...
- Java抓包+分析网络数据包
Java抓包+分析网络数据包 本程序基于java语言,需安装winpcap和配置Jpcap.jar库文件(需要的可以评论留下邮箱),成功实现了对本主机网卡接口的显示和网络数据包的抓取,并调用函数对 ...
- 抓包红色_抓包三部曲 WebSocket 协议原理抓包分析
这篇文章通过抓包分析 WebSocket 协议的细节,学习一下 WebSocket 执行流程. 1.WebSocket 流程说明 (1)客户端和服务器之间完成三次握手建立 TCP 连接(TLS/SSL ...
- java实现FTP协议:wireshark抓包解析
本节我们看看ftp协议的数据包格式,同时使用代码加以实现.首先我们现在机器上安装ftp服务器,我在自己的机器上安装了QuickFTP Server,它是我随便找来的一款Mac ftp服务器,如下图所示 ...
- wireshark 手机抓包_美团外卖抓包分析
前言 博客:http://2h0n9.com 分析 1.Charles抓包 一开始爬 美团外卖App 我是直接Charles上手就干的,但我抓了一天都没抓到有用的数据我就开始找资料,遗憾的是网上没有一 ...
- 正方教务隐藏入口_正方教务处抓包分析
大概全中国的教务处网站都是一样的,选课时期总是出去薛定谔的猫的状态,因此使用爬虫来选课对于计算机的学生来说就很正常了,在进行爬虫爬取之前,我们首先需要对它进行抓包分析. 试探 首先登录教务处网址,我们 ...
最新文章
- 81. Leetcode 21. 合并两个有序链表 (排序)
- codeforces-constructive algorithms(构造算法.)
- 数据库表之间的数据导入 sql语句
- 设计模式之一(单例模式)
- 我是如何用单例模式征服面试官的?
- 生产环境下戴尔 R820 kvm虚拟化部署二(物理主机系统优化)
- Inpaint2021一款非常强大图片去水印神器
- 公众号排名优化技巧分享
- 网站隐藏跳转代码php,域名跳转代码[可隐藏与不隐藏域名转向代码(自动跳转代码) ]...
- 新浪微博认证——应用程序支持新浪微博登陆
- 经纬财富:吴忠白银投资五种方式
- Kibana基础:3:生成定制化的Dashboard
- T-LESS:制作RGBD 6D姿态数据集和标签
- 光伏发电并网逆变simulink/matlab仿真 两级三相/单相系统
- 矩阵求导(分母布局与分子布局),以及常用的矩阵求导公式
- 3D视觉的学习路线都在这里了~
- Windows Server 2008 R2 配置AD(Active Directory)域控制器(图文教程)
- 如何挖掘和策划公关传播内容,不再局限于新闻稿
- (二十三)系统集成中级-项目收尾管理
- 文件替换后怎么恢复,恢复被覆盖的文件
热门文章
- Java基础笔记01
- python中os.fork()理解
- 我的世界手机版javaui材质包_45woool传奇世界网手机版下载-45woool传奇世界手游全部版本合集...
- 【LC中等】1596. 每位顾客最经常订购的商品
- chmod 权限-rw-r--r--表示什么含义
- Java高效率复习-MySQL上篇[MySQL]
- 【微信公众号】8、SpringBoot整合WxJava发送模板消息
- th标签与td标签的区别
- IPv6地址格式简介以及常见的IP地址
- 做IT这几年,我整理了这些干货想要送给你!