对于TCP和UDP这两种协议, 做程序员的我们都应该有所耳闻, 我们平常的做的浏览网页, 看直播, 发微信这些操作, 都是通过这两种协议进行数据传输的
当然数据的格式会有很多种, 例如视频(MP4), 图片(jpg) 等等, (TCP/UDP)协议的最大区别是 一个基于连接, 另一个基于非连接, 下面我们举一个简单的例子来讲解, 我们以写信和打电话为例
1.我们写好信后, 发给邮递员, 写得信是否能送到家里人手中?
2.内容是否完整, 信的内容是否被篡改?
3.我们如果发送多封信, 是否依照发送的顺序让家人接收到
1.拨打电话, 直到对方接通
2.电话互通, 与对方不断地交流
3.交流完毕后, 挂掉电话
1.SYN : 同步位 当SYN = 1表示进行一个连接请求
2.ACK : 确认位 当ACK = 1代表确认有效 = 0代表确认无效
3.ack(小写) : 确认号 相当于对方发送过来的序号 + 1
4.seq : 序号 用来标识从TCP发端向TCP收端发送的数据字节流
5.FIN : FIN = 1代表断开连接, 并且会停止向服务端发送数据
通过刚才打电话为例, TCP之所以能提高准确性, 是因为有三个关键的步骤分别为: 三次握手(连接), 传输确认, 四次挥手(断开连接)
现在我们再次模拟打电话的场景分别为 客户端A 和 服务器B