TCP
- Transmission Control Protocol
- TCP 是传输控制协议,是一种面向连接的,可靠的,基于字节流的传输层协议;
- 与 UDP 一样完成第四层传输层所指定的功能与职责;
TCP 能做什么
- 聊天消息传输、推送;
- 单人语音、视频聊天;
- 几乎 UDP 能做的都能做,但需要考虑复杂性和性能的问题;
- 限制:无法进行广播、多播操作;
核心 API
- socket():创建无连接的,无绑定的客户端 Socket,一般用这个空的构造方法,因为连接一旦建立,其中的值就无法修改了;
- bind():绑定一个 Socket 到一个本地地址和端口上;
TCP 连接可靠性
三次握手
- A:你能听到我说话吗?
- B:我能听到你说话,你能听到我说话吗?
- A:我能听到你说话。
- 三次握手确定了一件事:客户端和服务端可以相互听见对方说的话,即全双工;
- 其中携带的随机数是必要的,在多客户端向服务端发起连接的时候,随机数充当了电话号码的角色;
四次挥手
- A:我想和你断开连接,可以吗?
- B:可以。(A 的发送流断开,B的接收流断开)
- B:我想和你断开连接,可以吗?
- A:可以。(B的发送流断开,A的接收流断开)
TCP 传输可靠性
- 先拆分成过个片段,再排序,发送的时候顺序发送,接收的时候顺序组装;
- 如果某个片段在传输过程中丢弃或超时,客户端会重发;