简述TCP 三次握手
TCP数据报文结构:
三次握手主要用到了序列号(seq)&确认号(ack)及两个标志位(ACK&SYN):
- seq:序列号和确认号是tcp传输可靠性的关键部分,序列号的随机取值范围为0-2^32-1 关于为什么不使用固定序列号
- ack:下一个希望收到的序列号且代表之前序列号传输的数据已经被正确的收到,此字段只有ACK标志位为1的时候才有效
- ACK:确认标志位,确认序号标志,为1时表示确认号(ack)有效,建立链接后所有数据的ACK都应为1
- SYN:同步/链接标志位---->当SYN=1且ACK=0时,代表这是一个连接请求报文,TCP规定SYN=1时不能携带数据,但要消耗一个序号
三次握手流程:
第一次握手:
客户端向服务器发送一个请求连接报文
报文数据:
- SYN:我(client)想跟你进行连接
- seq:我(client)这条数据的序列号是100
当服务器解析该条报文为连接请求且可以建立连接时触发第二次握手
第二次握手:
服务器向客户端发送同意连接报文
报文数据:
- SYN:我(server)可以跟你(client)进行连接啦
- ACK:你(client)的确认号有效
- seq:我(server)这条数据的序列号是200
- ack:我(server)已经收到你(client)序列号为100的数据了,下次你(client)给我(server)发的数据序列号应该是101哦
此时client已经知道client发送的数据server可以正常收到,且server发送的数据client也可以正常收到,但是server 并不知道client能不能正常的收到server的数据,由此则衍生出第三次握手
第三次握手:
客户端向服务端发送自己收到服务端可以连接的数据了
报文数据:
- ACK:你(server)的确认号是有效的
- seq:我(client)这条数据序列号是你(server)希望我发的101
- ack:我(client)已经收到你(server)序列号为200的数据了,下次你给我发的数据序列号应该是201哦
至此双端已建立稳定的连接了,之后就可以互相发送数据啦~
简述TCP 三次握手相关推荐
- 简述TCP三次握手和四次挥手的过程和理解
简述TCP三次握手和四次挥手的过程和理解 在讲解之前先来熟悉一下TCP报文头部 源端口.目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的, 而一个计算机端口某个时刻只能被一个进 ...
- 简述TCP三次握手,看不懂算我输!
TCP 三次握手 举个例子简单描述下TCP的三次握手: 就举打电话的列子吧. TCP三次握手就是如此. 通过彼此之间发送三个包(过程就如上面对话一样),来确认client与server之间连接是否互通 ...
- 简述TCP三次握手和四次挥手
为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略. 1.1 TCP三次握手漫画图解 如下图所示,下面的两个机器人通过 3 次握手确定了对方能正确接收和发送消息(图片来源:<图解 H ...
- mysql三次握手_一文彻底搞懂 TCP三次握手、四次挥手过程及原理
原创文章首发于公众号:「码农富哥」,欢迎收藏和关注,如转载请注明出处! TCP 协议简述 TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接. 无论 ...
- TCP三次握手、四次挥手过程及原理
TCP 协议简述 TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接. 无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.在TCP/I ...
- TCP三次握手在linux内核中的实现
TCP三次握手在linux内核中的实现 以下基于linux内核2.4.0源码(转自www.yuanma.org/) 以前一直使用的网络通讯的函数都是工作在阻塞模式.在看connect实现源码时,突然想 ...
- 使用Wireshark浅析Tcp三次握手
简述 我不想一开始直接搬网络描述图来讲三次握手亦或试图用大量专业词汇让你熟悉它,而是想用简单的描述,让大家对三次握手有个大概的印象.用Wireshark抓包工具分析TCP报文中大家比较关注的syn(S ...
- 【网络】Wireshark分析Netty建链过程( tcp三次握手、osi模型)
文章目录 1. osi模型简述 2. tcp三次握手 3. 验证三次握手 系列文章: <Wireshark分析Netty建链过程( tcp三次握手.osi模型)> <IPV4数据报头 ...
- TCP三次握手和四次挥手的解释
基础知识 在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN ...
最新文章
- 你的企业客户服务,离卓越还有多远?
- NFS的简单配置和使用
- 从Java新手到大神需要学哪些知识?
- 描写火车站场景_描写火车站热闹场面的作文300字
- 这批.Net程序员水平不行啊!居然ASP.NET Core Middleware都不会用
- html%2b怎么转换成加号,Apache mod_rewrite%2B和加号(+)符号
- 25 人以下,免费!
- Android 学习 笔记_07. XML文件解析
- 灵动标签内sql语句调用
- interpreter_command_state pattern
- win7连接共享打印机时安装驱动程序出现0x00000bcb错误
- vue省市区联动插件---distpicker
- 12.测试字体的练习
- 爬虫:Instagram信息爬取
- ajaxFileUpload上传文件
- html js鼠标滚轮事件,JS事件-鼠标滚轮事件
- python 制作电子书的软件_电子书制作软件下载-电子书制作软件工具箱下载v1.2 绿色版-西西软件下载...
- 给老板的一封工作感悟信
- 在linux下运用mutt和msmtp发邮件
- 17-1-数据处理思想和程序架构: 单片机stm32的flash保存数据优化方案(让擦写次数达到上百万至上千万次)
热门文章
- uniapp怎么稳定获取cid
- 华文慕课操作系统陈向群第三章课后习题解析
- 信息传输计算机服务和软件行业,信息传输,软件和信息技术服务业 是 什么服务业...
- RAID技术全解图解-RAID0、RAID1、RAID5。。。【转】
- c语言符号txt下载,C语言符号集
- 百度提前批凤巢软件研发一面经验
- MySee创业团队:舍我其谁
- python爬取网页小说去除nbsp_python爬虫 爬取内容的时候nbsp 空格内容变成问号‘?’...
- 远程桌面连接后远程计算机注销,windows2003远程桌面退出后系统自动注销的问题...
- 130. Surrounded Regions