TCP详解

TCP详解

TCP知识体系

www.zeeklog.com  - TCP详解

TCP基础知识

为什么需要 TCP 协议?TCP 工作在哪一层?

TCP 是一个工作在传输层可靠数据传输的服务,它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的。

www.zeeklog.com  - TCP详解

什么是 TCP ?

TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。

面向连接:一定是「一对一」才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的;

可靠的:无论的网络链路中出现了怎样的链路变化,TCP 都可以保证一个报文一定能够到达接收端;

字节流:消息是「没有边界」的,所以无论我们消息有多大都可以进行传输。并且消息是「有序的」,当「前一个」消息没有收到的时候,即使它先收到了后面的字节,那么也不能扔给应用层去处理,同时对「重复」的报文会自动丢弃。

www.zeeklog.com  - TCP详解

什么是 TCP 连接?

用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括Socket、序列号和窗口大小称为连接。

www.zeeklog.com  - TCP详解

建立一个 TCP 连接是需要客户端与服务器端达成上述三个信息的共识。

Socket:由 IP 地址和端口号组成

序列号:用来解决乱序问题等

窗口大小:用来做流量控制

TCP连接建立:三次握手

TCP连接断开:四次挥手

Socket网络编程