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

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

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:主机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),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

完成三次握手,主机A与主机B开始传送数据。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.

实例:

IP 192.168.1.116.3337 > 192.168.1.123.7788: S 3626544836:3626544836
IP 192.168.1.123.7788 > 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837
IP 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1

第一次握手:192.168.1.116发送位码syn=1,随机产生seq number=3626544836的数据包到192.168.1.123,192.168.1.123由SYN=1知道192.168.1.116要求建立联机;

第二次握手:192.168.1.123收到请求后要确认联机信息,向192.168.1.116发送ack number=3626544837,syn=1,ack=1,随机产生seq=1739326486的包;

第三次握手:192.168.1.116收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,192.168.1.116会再发送ack number=1739326487,ack=1,192.168.1.123收到后确认seq=seq+1,ack=1则连接建立成功。

图解:
一个三次握手的过程(图1,图2)

(图1)

(图2)

第一次握手的标志位(图3)
我们可以看到标志位里面只有个同步位,也就是在做请求(SYN)
 
 (图3)

第二次握手的标志位(图4)
我们可以看到标志位里面有个确认位和同步位,也就是在做应答(SYN + ACK)
 
(图4)

第三次握手的标志位(图5)
我们可以看到标志位里面只有个确认位,也就是再做再次确认(ACK)
 
 
(图5)

一个完整的三次握手也就是 请求---应答---再次确认

TCP协议三次握手过程分析相关推荐

  1. TCP协议三次握手过程分析【图解,简单清晰】

    转自:http://www.cnblogs.com/rootq/articles/1377355.html TCP(Transmission Control Protocol) 传输控制协议 TCP是 ...

  2. 通俗易懂理解TCP协议三次握手和四次挥手及其常见问题

    TCP协议三次握手和四次挥手 三次握手 如果建立连接只需要2次握手,可能会出现的情况 四次挥手 为什么建立连接是三次握手,关闭连接确是四次挥手呢? TIME_WAIT状态有什么作用,为什么主动关闭方没 ...

  3. TCP协议“三次握手“和“四次挥手“

    TCP协议三次握手和四次挥手 为了使数据的传输更为安全,在OSI七层架构的传输层(TCP)定义了需要建立稳定的连接提供安全的交互环境,而三次握手解决了连接的建立. 三次握手过程: 第一次:客户端向服务 ...

  4. TCP协议三次握手过程

    常见前端面试题 TCP协议三次握手过程 1.第1次握手 建立连接 客户端向服务器发送的报文SYN包信息中SYN码为1 2.第2次握手 服务器回应客户端,用于接受并连接请求 服务器返给客户端的的报文SY ...

  5. 简述tcp协议三报文握手过程_华为原理 | 传输层协议amp;交换转发原理

    Interface GigabitEthernet0/0/0 ip address 12.1.1.2 255.255.255.0 arp-proxy enable \\华为接口下默认没有开启代理ARP ...

  6. TCP协议——三次握手与四次关闭

    1. TCP协议基础 网络编程基础见,传送门 TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接. 在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握 ...

  7. 简述tcp协议三报文握手过程_简述TCP的三次握手过程

    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器 ...

  8. 网络通信TCP协议三次握手

    TCP是什么? TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的. 基于IP的传输层协议.TCP在IP报文的协议号是6.TCP是一 ...

  9. TCP协议三次握手和四次挥手

    (接上文) 3.5传输层协议(TCP/UDP) 传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程 ...

最新文章

  1. python【蓝桥杯vip练习题库】BASIC-20 数的读法
  2. 笔记-高项案例题-2017年上-变更管理-需求管理
  3. 对话李飞飞,展望阿里云与MongoDB战略合作未来
  4. js回调函数的理解(轉)
  5. android ble status,Android BLE peripheral disconnects with status code BLE_HCI_INSTANT_PASSED(0x28)
  6. LeetCode-652. 寻找重复的子树
  7. sqlalchemy 聚合
  8. 150行java代码分析100篇英语六级阅读理解单词频率
  9. 独立看门狗及其实现的热启动
  10. 电脑的USB口给手机充电为什么很慢
  11. atitit.信息安全的控制总结o7
  12. 关于搭建测试环境(详细)
  13. “什么?中东的土豪给我们 App 充了大钱!”
  14. Alan Walker MV 合辑01 by defender 歌词
  15. c# ASCII转换,数字转字母,字母转数字
  16. Ubuntu进入睡眠模式
  17. linux硬盘添加和挂载(linux硬盘的热插拔)
  18. <JVM上篇:内存与垃圾回收篇>13-垃圾回收器
  19. 帝国CMS[!--onclick--]标签动态显示页面点击数,解决刷新页面浏览量无变化的问题
  20. 锁定计算机盘,使用U盘制作开机密码锁定引导密钥盘的三种方法_IT / computer_Professional...

热门文章

  1. Xshell关闭导致jar服务终止,使Jar在CentOS后台运行
  2. final关键字用法
  3. JS获取元素高度宽度的问题
  4. 堆积木(基本数据结构-ArrayList数组的使用)
  5. 【bzoj5020】[THUWC 2017]在美妙的数学王国中畅游 泰勒展开+LCT
  6. 远程mysql出现ERROR 1130 (HY000): Host '172.17.42.1' is not allowed to connect to this MySQL server...
  7. Android 颜色Color(转)
  8. hexo+markdown添加本地图片无法显示
  9. cocos 时间函数需要什么引用_2021国家公务员考试时间是什么时候 国考备考时间需要多久...
  10. linux文件删除漏洞,OpenStack Glance v1 API任意文件删除漏洞(CVE-2012-4573)