HIT2019秋计算机网络->TCP连接3次握手

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

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

位码即tcp标志位,有6种标示:SYN(synchronous 建立联机) ACK(acknowledgement 确认)

              PSH(push 传送) FIN(finish 结束) RST(reset 重置) URG(urgent 紧急)

              seq(Sequence number 序列号) ack_seq(Acknowledge number 确认号码)

第一次握手:主机A发送位码为SYN=1,随机产生seq=123的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack_seq=(主机A的seq+1),SYN=1,ACK=1,随机产生seq=456的包;

第三次握手:主机A收到后检查ack_seq是否正确,即第一次发送的seq+1,以及位码ACK是否为1,若正确,主机A会再发送ack_seq=(主机B的seq+1),ACK=1,主机B收到后确认seq值且ACK=1,则连接建立成功。

需要注意的是, 上图中出现的 ACK = x +1 的写法很容易让人误以为数据包中的 ACK 域的数据值被填成了 x+1 。 ACK = x+1 的实际含义是:
     *    TCP 包的 ACK 标志位(1 bit) 被置成了 1
     *    TCP 包的确认号(acknowledgement number ) 的值为 x+1

原文地址:https://www.cnblogs.com/aluomengmengda/p/11559742.html

时间: 2024-11-13 03:57:32

HIT2019秋计算机网络->TCP连接3次握手的相关文章

计算机网络 -- TCP的三次握手

计算机网络 -- TCP的三次握手 参考:https://blog.csdn.net/qq_38950316/article/details/81087809 一).TCP协议的特点 定义: 1.是一个面向连接的.可靠的.基于字节流的传输层协议. 2.将应用层的数据分割成报文段并发送给目标节点的TCP层. 3.数据都有序号,对方收到则发ACK确认,没有则重传. 4.使用校验和来校验数据在传输过程中是否有误. 二).TCP报文头的结构 TCP报文头结构如下: 请求报文头由4个字节,32位二进制数组

TCP连接三次握手,四次挥手告别

三次握手: 第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服器,主机B由SYN=1知道,A要求建立联机: 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包 第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1)

计算机网络-TCP连接

TCP首部20个字节 1.为什么TCP要三次握手建立连接? TCP连接过程,客户端发送请求到服务器,服务器确认请求发送到客户端,客户端再发送确认请求到服务器 原因:简言之,为了防止失效的连接请求发送到服务端,造成服务端以为建立了连接一直等到客户端的数据,知道超出了保活计数器的设定值,才意识到客户端出了问题,才会关闭这个连接, 如果有三次握手就不会建立连接. 网上解释的详细原因: “ 前两次的握手很显然是必须的,主要是最后一次,即客户端收到服务端发来的确认后为什么还要想服务端再发送一次确认呢?这主

TCP连接的三路握手

本文内容参考<Unix网络编程>,大概描述了TCP连接的三次握手过程,这是我看到的最清楚的描述,记录在这里,希望能帮助到大家对于TCP连接过程的理解. 传输控制协议(TCP)是TCP/IP协议簇里非常重要的一个协议.它提供客户与服务器之间的连接,并且提供可靠的数据传输功能.关于这个协议的具体规定,请参考相关文献.这里简单讲述一下三路握手. 建立一个TCP连接时会发生以下几个过程: 1.服务器必须做好接受外来的连接的准备.这个过程通过调用socket.bind和listen这三个函数来完成. 2

TCP连接 三次握手 四次挥手

前言: TCP协议是面向连接.安全可靠.基于字节流的传输层协议,在进行http协议访问时就用到了tcp连接.在建立TCP连接时需要经历三次握手,断开连接时需要经历四次挥手.在此进行记录. 内容: TCP三次握手 第一次握手:由客户端发起,客户端生成一个SYN,以及一个随机数标记数X,然后将随机标记数X和SYN发送为服务端,此时客户端进入SYN_SENT状态,等待服务端响应. 第二次握手:服务端接收到SYN后得知客户端请求连接,然后服务端将SYN和ACK都置为1,并将ack=X+1,再生成一个随机

利用tcpdump监控tcp连接三次握手和关闭四次握手

学习网络编程最主要的是能理解底层编程细节,一开始看<UNIX网络编程卷1:套接字联网API>的时候搞不懂什么seq.ack到底是什么东西,最近了解了tcpdump的一些用法后感觉两者结合起来还是比较容易理握手过程的.以下就通过tcpdump工具来监控相关内容,并和书本上的流程进行对比介绍,希望对入门的童靴有些帮助吧 服务端代码如下: #include <sys/socket.h> //socket listen bind #include <arpa/inet.h> /

客户端与服务端建立tcp连接三次握手之前做了什么----DNS

操作系统在握手之前进行了DNS查询   DNS 迭代查询 1.操作系统会首先在本地缓存中查询IP 2.没有的话会去系统配置的DNS服务中去查询 3.如果这时候还没得话,会直接去 DNS 根服务器查询,这一步查询会找出负责 com 这个一级域名的服务器 4.然后去该服务器查询 google 这个二级域名 5.接下来三级域名的查询其实是我们配置的,你可以给 www 这个域名配置一个 IP,然后还可以给别的三级域名配置一个 IP PS:DNS 是基于 UDP 做的查询, 原文地址:https://ww

【网络协议】TCP连接的建立和释放

转载请注明出处:http://blog.csdn.net/ns_code/article/details/29382883 TCP首部格式 先看TCP报文段的格式,例如以下; TCP报文段首部的前20个字节是固定的,后面有4N字节是依据须要而添加的选项.因此TCP报文段的最小长度为20个字节. 首部固定部分的各字段的意义例如以下: 1.源port和目的port:加上IP首部的源IP地址和目的IP地址,确定唯一的一个TCP连接.另外通过目的port来决定TCP将数据报交付于那个应用程序,从而实现T

[TCP/IP]TCP的三次握手和四次挥手

概述 总结一下TCP中3次握手过程,以及其原生的缺陷 引起的SYN Flood的介绍 1.TCP连接建立--三次握手 几个概念: seq:序号,占4个字节,范围[0,4284967296],由于TCP是面向字节流的,在 一个1个TCP连接中传送字节流中国的每一个字节都按照顺序编号,此外序号是循环使用的 ACK: 仅当ACK=1时确认字段才有效,当ACK=0时确认字段无效,并且TCP规定,在连接建立后所有的传送报文段都必须要把ACK置为1 SYN:同步序列号,用来发起一个连接.当SYN=1而ACK