参考资料 :小林Coding、阿秀、代码随想录
一、什么是TCP协议
TCP是传输控制协议Transmission Control Protocol
TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。
- 面向连接的:每条TCP连接杜只能有两个端点,每一条TCP连接只能是点对点的(一对一)
- 可靠的:可靠交付
- 基于字节流的:
- TCP中的“流”的概念是流入或流出进程的字节序列
- 基于字节流:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流
- TCP不保证接收方应用程序收到的数据块和发送方应用程序所发出的数据块具有对应的大小关系,但是接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。
二、TCP的连接建立
1. 三报文握手
- TCP 建立连接的过程叫做握手。
- 握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手。
- 三报文握手主要作用是为了确认通信双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。
- 采用三报文握手可以防止已失效的连接请求报文段突然又传送到了,因而产生错误。

1) 初始状态:
客户端处于 closed(关闭) 状态,服务器处于 listen(监听) 状态。
2) 第一次握手:
客户端给服务器发⼀个 SYN 报⽂,指明客户端的初始化序列号 ISN(c)。此时客户端处于SYN_SEND 状态。
该报文首部的同步位 SYN = 1,初始序号 seq = x,SYN = 1。
该报文段不能携带数据,但要消耗掉⼀个序号。
3) 第二次握手:</

本文详细介绍了TCP协议的基本概念,包括其面向连接、可靠性和基于字节流的特点。重点讲解了三次握手建立连接的过程、半连接队列的作用、四次挥手释放连接以及防范SYN洪泛攻击的方法。
最低0.47元/天 解锁文章
875





