码迷,mamicode.com
首页 > 其他好文 > 详细

TCP三次握手四次挥手

时间:2018-08-20 16:38:34      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:答案   目标   就是   strong   col   远程控制   alt   ado   服务   

一、TCP协议
TCP是面向连接的、可靠的进程到进程通信的协议
TCP提供全双工服务,即数据可在同一时间双向传输

二、TCP报文段
TCP将若干个字节构成一个分组,叫报文段(Segment)
TCP报文段封装在IP数据报中

技术分享图片

TCP报文段

技术分享图片

序号:发送端为每个字节进行编号,便于接收端正确重组

确认号:用于确认发送端的信

ACK:确认序号位,当该位为1时,用于确认发送方的数据

FIN:当TCP断开连接时将该位置为1

SYN:同步序号位,TCP需要建立连接时将该值设为1

窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的

三、TCP连接

TCP建立连接的过程称为三次握手
技术分享图片

通过wireshark抓包来分析三次握手的过程
第一次握手
技术分享图片

第二次握手
技术分享图片

TCP三次握手
技术分享图片

TCP断开连接的四次挥手
技术分享图片

第一次挥手
技术分享图片

第二次挥手
技术分享图片

第三次挥手
技术分享图片

第四次挥手
技术分享图片

四、常用的TCP端口号及其功能

端口 协议 说  明

21 FTP FTP服务器所开放的控制端口
23 TELNET 用于远程登录,可以远程控制管理目标计算机
25 SMTP SMTP服务器开放的端口,用于发送邮件
80 HTTP 超文本传输协议
110 POP3 用于邮件的接收

五、附注
????? ? 关于三次握手与四次挥手通常都会有典型的面试题,在此提出供有需求的XDJM们参考:
????? ? (1)三次握手是什么或者流程?四次握手呢?答案前面分析就是。
????? ? (2)为什么建立连接是三次握手,而关闭连接却是四次挥手呢?
????? ? 这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。

TCP三次握手四次挥手

标签:答案   目标   就是   strong   col   远程控制   alt   ado   服务   

原文地址:http://blog.51cto.com/13871378/2162022

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!