一、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一般都会分开发送。