目录
传输控制协议(Transmission Control Protocol,TCP)
TCP 连接与面向字节流的概念
TCP 的连接
UDP与TCP复用的区别
TCP 是面向连接的运输层协议
每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)。每个端点由二元组(IP地址、端口号)唯一标识
TCP 提供可靠交付的服务
TCP 提供全双工通信
TCP 提供的是面向字节流的传输服务
接受方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样
TCP 连接的每个方向就好像一条连接发送缓存和接收缓存的字节流管道
TCP 连接是一条虚连接而不是一条真正的物理连接
TCP连接仅存在于两个端系统中,而网络核心的中间设备(路由器、交换机等)完全不知道该连接的存在
TCP连接的组成主要包括:通信两端主机上的缓存、状态变量,在这两台主机间的路由器和交换机没有为该连接分配任何缓存和变量
TCP 每一条连接上的双向通信只能是一对一的,而不可能是一对多、多对一或多对多的,即一条连接只能只能有两个端点
与UDP的端口队列不同的是,TCP的发送缓存和接收缓存都是分配给一个连接的,而不是一个端口
来自不同源的TCP报文段,即使它们的目的IP地址和目的端口号相同,它们也不可能被交付到同一个TCP接收缓存中,因为它们在不同的TCP管道中传输,到达不同管道出口的缓存
TCP 把连接作为最基本的抽象
每一条 TCP 连接唯一地被通信两端的两个端点所确定:
TCP 连接 ::= {(IP1: port1), (IP2: port2)}
通常一个TCP服务器进程用一个端口号与不同的客户机进程建立多个连接,然后创建多个子进程分别用这些连接与各自的客户机进程进行通信