TCP/IP 三次握手四次挥手
1. TCP 基本认识

2. TCP 连接建立

3. TCP 连接断开

4. socket编程

正文
01 TCP 基本认识
我们先来看看 TCP 头的格式,标注颜色的表示与本文关联比较大的字段,其他字段不做详细阐述。

序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。
确认应答号:指下一次「期望」收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。用来解决不丢包的问题。
控制位:
-
ACK:该位为
1
时,「确认应答」的字段变为有效,TCP 规定除了最初建立连接时的SYN
包之外该位必须设置为1
。 -
RST:该位为
1
时,表示 TCP 连接中出现异常必须强制断开连接。 -
SYC:该位为
1
时,表示希望建立连,并在其「序列号」的字段进行序列号初始值的设定。 -
FIN:该位为
1
时,表示今后不会再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换FIN
位置为 1 的 TCP 段。
01-02 为什么需要TCP 协议 TCP 在哪一层工作
众所周知 IP层是【不可靠】的,它不保证网络包的交付、不保证网络包的按序交付、也不保证网络包中的数据的完整性。

如果需要保障网络数据包的可靠性,那么就需要由上层(传输层)的 TCP来负责。
因为TCP是一个工作在传输层的可靠数据传输的服务,它能确保接收端接收的网络包是 无损坏、无间隔、非冗余和按序的 。
01-03 什么是TCP
TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。
网友评论