计算机网络基础 和 tcp 三次握手四次挥手,tcpdump抓包分析 协议过滤 分析,连接状态,标志位详解

简介: wireshark 软件过滤及转码使用 ,TCP tcpdump 连接状态,标志位详解


tcp 抓包命令 ,wireshark 软件过滤及转码使用 ,TCP tcpdump 连接状态,标志位详解

# tcpdump 抓包命令

tcpdump -i eht0  host 203.119.160.6 and tcp port 80  -w 1.cap

tcpdump  host 203.119.160.6 and tcp port 80  -w 1.cap


                                                # -i 指定网卡

                                                # -w 指定文件

                                                # host ip

                                                # and 并且 tcp 协议  端口

tcpdump host 203.119.160.6 and port not 22

                                                # and port not 不匹配端口


tcpdump -i eth0 -U -w - 'host 192.168.2.29 and (port 22222 or port 22221 or port 80)'


# tcp 协议 SYN ACK PSH FIN 说明

TCP(Transmission Control Protocol)传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:


位码即tcp标志位,有6种标示:

SYN(synchronous建立联机)

ACK(acknowledgement 确认)

PSH(push传送)

FIN(finish结束)

RST(reset重置)

URG(urgent紧急)

Sequence number(顺序号码)

Acknowledge number(确认号码)




# 三次握手

a 客户端,b 服务器,seq 请求, ack 携带信息:如a带来的信息,+1 服务器的信息打包为ack

第一次: 客户端 ---->  服务器端 :    SYN        ( seq=a )                            #  SYN 连接请求 ; seq 客户端标识 a  

                                                                                                                # 发包标志: SYN=1; ACK=0


第二次: 客户端 <----  服务器端 :    SYN-ACK ( seq=b;      ack=a+1   )    # SYN ACK  连接确认,并将消息给客户端知晓,且等客户回复确认连接

                                                                                                                # 标识:b 服务器,包ack  客户端标识+服务器答复 1 收到请求

                                                                                                                # 发包标志:SYN=1,ACK=1  让客户端发确认连接数据包

                                                                                                                # 服务器允许连接,(可以通信)


第三次: 客户端 ---->  服务器端 :    ACK         ( seq=b+a;  ack=b+1 )     # ACK 客户确认连接,seq 标识:服务器和客户端两个

                                                                                                               #  发向服务器,服务器收到后就不再回复了而是打开数据传输。

                                                                                                               # 发包标识 SYN=0,ACK=1

4. 服务器开始传输数据

# 四次挥手


客户端主动断开:

1. 客户端 ----> 服务器端 :  FIN      ( seq=a )                               # 客户端标识 a  发 FIN 断开请求

2. 客户端 <---- 服务器端 :  ACK     ( seq=a+1 )                          # 发请求:客户端标识+服务器响应 1 (收到断开请求)  给客户端

3. 客户端 <---- 服务器端 :  FIN      ( seq=b;  ack=a+1 )             # 发断开请求: 断开客户端a的请求  1 已经收到

3. 客户端 ----> 服务器端 :  ACK     ( seq=b+1)                           # 客户端b收到

# wireshark 软件过滤及转码使用

ip.addr==47.95.216.170                  # 过滤IP,指定为:47.95.216.170

tcp.port==443                                 # 过滤端口


ip.addr==47.95.216.170 and tcp.port==443

                                                        # 过滤ip 并且过滤端口


ip.addr == 47.95.216.170 and not tcp.port in {3306 25 443}

                                                        # 过滤ip 并且指定端口,不是这几个:3306 25 443


ip.src         ip.dst      ip.addr                    !                tcp.port                          

来源ip      目的ip      源或者目的地ip      非不匹配      指定tcp模块中的端口        




# tcp 分析报文

上图圈起来的就是封包详细信息(Packet Details Pane):

这是最重要的信息,用来查看协议中的每一个字段。而OSI七层模型分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

在封包信息中,每行对应的含义及在OSI模型中的对应关系如下:

  Frame: 物理层的数据帧概况 ->对应OSI七层模型中的【物理层】

  Ethernet II: 数据链路层以太网帧头部信息 ->对应OSI七层模型中的【数据链路层】

  Internet Protocol Version 4: 互联网层IP包头部信息 ->对应OSI七层模型中的【网络层】

  Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP ->对应OSI七层模型中的【传输层】

Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议 ->对应OSI七层模型中的【应用层】





# TCP tcpdump 连接状态,标志位详解

S, SYN

F, FIN

R, RST

P, PUSH



LISTEN:侦听来自远方的TCP端口的连接请求

 

SYN-SENT:再发送连接请求后等待匹配的连接请求(客户端)

 

SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(服务器)

 

ESTABLISHED:代表一个打开的连接

 

FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认

 

FIN-WAIT-2:从远程TCP等待连接中断请求

 

CLOSE-WAIT:等待从本地用户发来的连接中断请求

 

CLOSING:等待远程TCP对连接中断的确认

 

LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认

 

TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认

 

CLOSED:没有任何连接状态

主动端可能出现的状态:FIN_WAIT1、FIN_WAIT2、CLOSING、TIME_WAIT

# 网络层次划分

简书:https://www.jianshu.com/p/d3725391af59

tcp协议说明:https://blog.csdn.net/qq_25948717/article/details/80382766

tcp报文:https://blog.csdn.net/LL845876425/article/details/90143936

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
Web App开发 网络协议 数据可视化
tcpdump 和 wireshark 抓包工具 ,介绍、安装、命令使用。 详解三次握手、四次挥手。两个结合使用,会更好分析报文
这篇文章详细介绍了网络抓包工具tcpdump和Wireshark的使用,包括安装、命令选项、过滤器语法,以及如何通过分析TCP的三次握手和四次挥手来理解网络通信细节。
3834 1
|
8月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
314 12
|
11月前
|
负载均衡 网络协议 算法
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
这网络层就像搭积木一样,上层协议都是基于下层协议搭出来的。不管是ping(用了ICMP协议)还是tcp本质上都是基于网络层IP协议的数据包,而到了物理层,都是二进制01串,都走网卡发出去了。 如果网络环境没发生变化,目的地又一样,那按道理说他们走的网络路径应该是一样的,什么情况下会不同呢? 我们就从路由这个话题聊起吧。
281 4
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
|
9月前
|
网络协议 测试技术 Linux
Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库
gev 是一个基于 epoll 和 kqueue 实现的高性能事件循环库,适用于 Linux 和 macOS(Windows 暂不支持)。它支持多核多线程、动态扩容的 Ring Buffer 读写缓冲区、异步读写和 SO_REUSEPORT 端口重用。gev 使用少量 goroutine,监听连接并处理读写事件。性能测试显示其在不同配置下表现优异。安装命令:`go get -u github.com/Allenxuxu/gev`。
205 0
|
11月前
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
12月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
351 3
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
415 10
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
网络协议 Java API
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
215 2
|
存储 网络协议 Java
【网络】UDP和TCP之间的差别和回显服务器
【网络】UDP和TCP之间的差别和回显服务器
175 1