面向连接的通信是指TCP 目的是建立与远程计算机的连接,TCP 保持着该连接的状态,因此它是可靠的通信协议。一个TCP 连接由 IP 地址、虚拟端口号来表征,而在数据传输过程中需要对数据段打上“序列标记”,以保证在接收端重组数据时不会出错。最大传输数据大小通过反馈机制来协商确定,这称为“窗口化”。

IP 地址、虚拟端口号、窗口大小构成了一个连接或管道。例如,当你通过浏览器打开一个网站,正式建立了一个在浏览器与网站之间的TCP连接。你的本地计算机使用 IP 地址和虚拟端口号来表征自己;本地计算机建立一个连接,连接至网站 IP 地址和对应的端口(如 HTTP 所使用的80端口),然后在 TCP 连接的基础上进行数据的传输。

TCP 使用3次握手来建立一个连接,注意尽管在3次握手过程中,双方都初始化了 TCP socket,但是还是有方向之分,客户端 -> 服务端 开始3次握手 与 反方向是不一样的,因此3次握手是单向的。