使用WireShark抓包分析TCP_IP协议_wiresharkip协议分析

一、TCP/IP协议

1.1 OSI分层

OSI 是 OSI/RM(Open Systems Interconnecation Reference Model)开放互联基本参考模型的简称,由 ISO 于 1983 年制定,形成正式文件。

OSI 分层是一种网络架构模型,它将网络通信分为七个不同的层次。每个层次都有自己的功能和任务。下面是由上到下每个层次的简要介绍:

序号 层级 名称
1 应用层 负责提供各种应用程序,例如电子邮件、文件传输和远程登录等。
2 表示层 负责将数据转换为应用程序可以理解的格式,它定义了如何在不同的系统之间交换数据。
3 会话层 负责建立、管理和终止会话,它定义了如何在两个节点之间建立连接。
4 传输层 负责将数据分割成数据包,并确保它们在网络上的传输。它还提供了可靠的端到端传输服务。
5 网络层 负责将数据包从源地址路由到目标地址,它定义了如何在不同的网络之间传输数据包。
6 数据链路层 负责将数据包从一个节点传输到另一个节点,它定义了如何在物理介质上传输数据包。
7 物理层 负责将数据从一个节点传输到另一个节点,它定义了电气、光学和机械接口的规范。

虽然标准已经制定了,但是由于一些缺陷,现今规模最大的、覆盖全世界的因特网并未使用 OSI 标准,而是使用 TCP/IP 标准。

1.2 TCP/IP 分层

相比OSI 7层模型,TCP/IP协议只有4层,它将部分层进行了合并。

通常讲的TCP/IP协议是指TCP/IP协议簇,按照分层可以分为以下部分

层级 协议名称
应用层 HTTP、FTP、SMTP、POP3、IMAP、Telnet、SSH、DNS
传输层 TCP、UDP
网络层 IP、ICMP、ARP、RARP
网络接口层 Ethernet、Token Ring、FDDI、PPP

下面抓包使用的 WireShark 用的就是TCP/IP标准。

二、抓包

2.1 Socket代码

使用 Java 编写服务端和客户端代码, 通过调用 Socket API 实现两者通讯。

Socket 即套接字,是应用层 与 TCP/IP 协议族通信的中间软件抽象层,表现为一个封装了 TCP / IP协议簇 的编程接口(API),ServerSocket 是使用 TCP 协议,如果想使用 UDP 协议,可以使用 DatagramSocket。

WireShark 需要管理员权限启动,默认不能查看不走网卡的 loopback,需要下个 npcap。

  1. Server.java
public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket server = new ServerSocket(10007);
        System.out.println("服务器已启动,等待客户端连接...");
        Socket socket = server.accept();
        System.out.println("客户端已连接!");
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String str = br.readLine();
        System.out.println("客户端说:" + str);
        PrintWriter pw = new PrintWriter(socket.getOutputStream());
        pw.println("欢迎您!");
        pw.flush();
        socket.close();
    }
}

  1. Client.java
public class Client {
    public static void main(String[] args) throws IOException, Interru
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值