用tcpdump分析tcp三次握手,四次挥手
1.tcpdump 简介
tcpdump是一个对网络上的数据包进行截获的包分析工具,一般linux系统以命令的形式使用
2.tcp三次握手
建立一个tcp连接会发生下面三个过程:
1.服务器必须准备好接受外来的连接,一般是调用socket,bind,listen三个函数完成
2.客户端通过connect主动连接。客户端tcp发送一个SYN,告诉服务器将在连接中发送数据的序列号
3.服务器必须确认(ACK)客户端的SYN,同时发送自己的SYN
4.客户端必须确认服务器的SYN
总共会进行三次数据交互
用tcpdump呈现这一过程:
1.开启服务器程序
2.使用 "sudo tcpdump -i lo" 命令抓取回环127.0.0.1地址
3.开启客户端程序,建立连接,结果如下:
客户端localhost.58032 -> localhost.9877 flags[S] (发送syn),服务端返回syn与ack ,客户端再返回ack
3.tcp四次挥手
tcp四次挥手
1.应用调用close,执行主动关闭,该端的tcp发送一个FIN表示数据发送完毕
2.接收到FIN的对端执行被动关闭,这个FIN由tcp确认,他的接收作为一个eof,放入缓存等待应用程序接收,
3.应用程序收到FIN将调用close关闭,它的tcp也发送一个fin
4.接收到这个最终FIN的原发送端确认这个FIN
虽然每个方向都需要一个FIN和一个ACK 总共四个分节,实际情况中只需要三个,2,3可以合并为一个分节,
tcpdump抓到一个断开连接的数据包
用tcpdump分析tcp三次握手,四次挥手的更多相关文章
- [转]Linux服务器上11种网络连接状态 和 TCP三次握手/四次挥手详解
一.Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1.TCP三次握手;2.数据传送;3.TCP四次挥手. 注:以下说明最好能结合”图:T ...
- tcp三次握手四次挥手那些事
建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.三次握手,四次挥手流程图如下: 一.首先看下如何通过三次挥手----------建立连接 首先客户端发送连接请求报文,服务端接受连接后回复AC ...
- 网络 TCP三次握手,四次挥手详解
三次握手,四次挥手可以说是炙手可热的面试题了,来看看它究竟长什么样子吧! 我们先把流程图贴上来 : 为什么这么复杂? 因为TCP是可靠性传输. 确认可靠传输的前提: TCP连接管理机制 用TCP首部 ...
- TCP三次握手四次挥手,通俗易懂版
三次握手四次挥手 三次握手 其实很好理解,三次握手就是保证双手都有发送和接受的能力.那么最少三次才能验证完成 即----> 客户端发送---服务端收到----服务端发送-- 1.客户端发送 -- ...
- TCP三次握手/四次挥手详解
一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程 ...
- wireshark抓包直观图解 TCP三次握手/四次挥手详解
转http://www.seanyxie.com/category/linux/ 作者:seanyxie | 一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负 ...
- 转---tcp三次握手四次挥手syn fin......
http://blog.chinaunix.net/uid-22312037-id-3575121.html转自 一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协 ...
- TCP三次握手四次挥手
看到一篇总结很好的TCP三次握手,学习一下,原文链接. 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,S ...
- TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释
一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...
随机推荐
- Unity3d调用iOS陀螺仪
How to write gyroscope controller with Unity3d http://blog.heyworks.com/how-to-write-gyroscope-contr ...
- 从PDF中提取信息----PDFMiner
今天由于某种原因需要将pdf中的文本提取出来,就去搜了下资料,发现PDFMiner是针对 内容提取的,虽然最后发现pdf里面的文本全都是图片,就没整成功,不过试了个文本可复制的 那种pdf文件,发现还 ...
- Scrapy爬虫导图(持续完善中)
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中.
- 求子串-KPM模式匹配-NFA/DFA
求子串 数据结构中对串的5种最小操作子集:串赋值,串比较,求串长,串连接,求子串,其他操作均可在该子集上实现 数据结构中串的模式匹配 KPM模式匹配算法 基本的模式匹配算法 //求字串subStrin ...
- 解决Gradle生成Eclipse支持后,发布到Tomcat丢失依赖jar包的问题
最近一个项目中,使用号称下一代构建工具的Gradle构建项目. 使用中发现一个问题,Gradle从中央库下载的jar文件在系统的其它目录,使用gradle eclipse添加Eclipse支持时,ja ...
- Hibernate与MyBatis
一. Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R ...
- C#验证码的生成
HTML <ul> <li>验证码:</li> <li> <img src="/Login/GetValidateCode?ID=1&q ...
- 工作需求——JQ小效果分享下
一.文字索引效果展示: html布局代码 <ul class="n_areaList"> <li> <h5>当前选择区域</h5> ...
- Objective-C( Foundation框架 一 NSDictionary (NSMutaleDictionary))
NSDictionary 不可变的字典 创建字典的方法 // 创建字典的方式 NSDictionary *dy = [NSDictionary dictionaryWithObject:@" ...
- js判断数组
1.constructor 在W3C定义中的定义:constructor 属性返回对创建此对象的数组函数的引用 就是返回对象相对应的构造函数.从定义上来说跟instanceof不太一致,但效果都是一样 ...