博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用tcpdump分析tcp三次握手,四次挥手
阅读量:5306 次
发布时间:2019-06-14

本文共 825 字,大约阅读时间需要 2 分钟。

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抓到一个断开连接的数据包

    

    

转载于:https://www.cnblogs.com/liulanghai/p/5280919.html

你可能感兴趣的文章
linux网络编程中的超时设置
查看>>
如何从官网下载 Google Chrome 离线安装包
查看>>
美女CEO三十感言--大家都是出来卖的
查看>>
C、JAVA存储管理不同点
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
rtmp服务器以及rtmp推流/拉流/转发
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
简单电商购物程序(续1)
查看>>
Web开发技术——JQuery2(语法和选择器)
查看>>
挑战常规--不要这样使用异常
查看>>
malloc函数的用法
查看>>
渐变的参数
查看>>
C#委托详解(3):委托的实现方式大全(续)
查看>>
盒子模型2+浮动
查看>>
我的生命因为有你
查看>>
6人普汇总笔记
查看>>
RaceWeb终于可以在oracle中快速建表了
查看>>
新一代记事本“Notepad++”个性化设置备份
查看>>
使用finalshll连接linux
查看>>
VS2010打开2012项目(转载)
查看>>