TCP/IP协议---三次握手和四次挥手
TCP首部的数据格式

其中,
- 源端口号和目的端口号各占16位,端口范围1~65535。1024以下为知名端口,1024~65535是供用户使用。源端口,目的端口,源ip,目的ip这四个值唯一确定一个TCP连接。
- 序号是标识从TCP发送端向接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。
- 确认序号包含发送确认的一端所期望收到的下一个序号,因为确认序号是上次已成功接收的数据字节序号加1。
- URG:紧急标志位,紧急指针有效。
- ACK:确认标志位,对已接收的数据包进行确认。
- PSH:推送标志位,接收方应尽快将这个报文段交给应用层。
- RST:重置标志位,重新建立连接。
- SYN:同步标志位,发起一个连接。
- FIN:完成标志位,完成发送,关闭连接。
TCP三次握手建立连接
握手示意图如下:

wireshark抓包握手过程:

一开始客户端和服务器都处于CLOSED状态,主动建立连接的一方为客户端,被动建立连接的一方是服务器。双方在建立连接前,需要分配内存建立传输控制块TCB,服务器随后会进入LISTEN监听状态。
第一次握手:客户端向服务器发起连接请求报文,同步标志位SYN=1,初始序列号seq=x,随后客户端进入进入SYN-SEND状态。
第二次握手:服务器端收到请求报文后,向客户端发送确认报文,报文中同步标志位SYN=1,确认标志位ACK=1,确认序号ack=x+1,同时产生一个随机序号seq=y,随后服务器进入SYN_RCVD状态。
第三次握手:客户端收到服务器回的确认后,也要给服务器回复一个确认报文,其中ACK=1,ack=y+1,seq=x+1。服务器收到后,检查ACK是否为1,seq是否为y+1,如果正确则成功建立连接。
建立连接后,客户端和服务器都进入ESTABLISHED状态。之后即可进行正常的数据通信。
TCP四次挥手释放连接


TCP/IP协议---三次握手和四次挥手的更多相关文章
- TCP/IP协议三次握手和四次挥手大白话解说
前言 昨天晚上被一位师傅问到了TCP/IP的工作机制,心里很清楚三次握手,然而对于四次挥手却忘了,这是大学习里学过的,奋而翻阅书籍和网络对之前所学的做一个温顾,算是夯实自我吧. TCP(Transmi ...
- 白话解说TCP/IP协议三次握手和四次挥手
白话解说TCP/IP协议三次握手和四次挥手 1.背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 1.1.问题 有时候聊天的过程中,我的 ...
- TCP/IP协议 三次握手与四次挥手
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...
- TCP/IP协议 三次握手与四次挥手【转】
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...
- 大白话解说TCP/IP协议三次握手和四次挥手
背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声 ...
- TCP/IP协议三次握手_四次挥手
TCP/IP协议 TCP是一种面向连接的端到端的可靠传输协议. TCP报头格式 三次握手的过程 一.客户端发送一个连接请求,发送一个随机数X,这时客户端的端口状态变为SYN_SENT状态. 二.服务端 ...
- TCP/IP协议三次握手与四次挥手
一.标志位和序号 seq序号 :发送方随机生成的 ack确认序号:ack=seq+1 标志位ACK=1时确认序号有效 SYN标志位:发起一个新连接 ACK标志位:确认序号有效 FIN标志位:断开连接 ...
- TCP/IP协议三次握手与四次握手流程解析
原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...
- TCP/IP协议三次握手与四次握手流程解析(转载及总结)
原文地址:http://www.2cto.com/net/201310/251896.html,转载请注明出处: TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式 TCP/IP协议的详 ...
- TCP/IP协议三次握手与四次握手
TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式 上图中有几个 ...
随机推荐
- React Native实现Toast轻提示和loading
React Native 封装Toast 前言 使用react native的小伙伴都知道,官方并未提供轻提示组件,只提供了ToastAndroid API,顾名思义,只能再安卓环境下使用,对于ios ...
- DP模拟题
Smiling & Weeping ----寒灯纸上,梨花雨凉,我等风雪又一年 # [NOIP2007 普及组] 守望者的逃离 ## 题目背景 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深 ...
- 记一次 Redisson 线上问题 → ERR unknown command 'WAIT' 的排查与分析
开心一刻 昨晚和一个朋友聊天 我:处对象吗,咱俩试试? 朋友:我有对象 我:我不信,有对象不公开? 朋友:不好公开,我当的小三 问题背景 程序在生产环境稳定的跑着 直到有一天,公司执行组件漏洞扫描,有 ...
- 每日一库:Prometheus
什么是 Prometheus Prometheus 是一个开源的系统监控和警报工具,最初由 SoundCloud 开发,并于 2012 年发布为开源项目.它是一个非常强大和灵活的工具,用于监控应用程序 ...
- 逻辑漏洞挖掘之XSS漏洞原理分析及实战演练
一.前言 2月份的1.2亿条用户地址信息泄露再次给各大公司敲响了警钟,数据安全的重要性愈加凸显,这也更加坚定了我们推行安全测试常态化的决心.随着测试组安全测试常态化的推进,有更多的同事对逻辑漏洞产生了 ...
- 《流畅的Python》 读书笔记 230926
写在最前面的话 缘由 关于Python的资料市面上非常多,好的其实并不太多. 个人认为,基础的,下面的都还算可以 B站小甲鱼 黑马的视频 刘江的博客 廖雪峰的Python课程 进阶的更少,<流畅 ...
- Linux系列教程——Linux发展介绍、Linux系统安装、查看Linux内核版本和系统版本、Centos7安装jdk1.8
文章目录 1 Linux发展介绍 零 什么是Linux 一 Linux前身 二 Linux诞生 三 开源文化 四 Linux系统特点 五 Linux分支 2 Linux系统安装 Linux虚拟机安装 ...
- linux常见命令(五)
用于文本内容处理的相关命令 sort uniq cut comm diff sort:对文件中数据进行排序,并将结果显示在标准输出上 命令语法:sort [选项] [文件] 选项 选项含义 -m 如果 ...
- 有关library导入的个人总结和反思
本来帮助朋友找寻一下android的一些特效的demo,结果找到了一个,朋友试验可以,自己却是在导入项目需要的library的时候总是出问题,真的很是丢人,反省反省. 也许专业人士看来这是非常可笑的问 ...
- Java11配置maven
这里假设Java11和maven都正确安装,使用的版本为Java11.maven3.6.1 测试环境变量 Java win + r 打开运行,输入 cmd,打开命令行提示符,输入java --vers ...