计算机网络——网络协议:TCP和UDP浅析(1)

本篇博客是阅读极客学院《趣谈网络协议》总结而出 感谢作者刘超
内容中没有用太多专业术语,以理解为主,刚开始写博客,如有错误或叙述不清之处还望指正!

TCP和UDP区别综述

TCP UDP
1 面向连接,在互通前会先建立连接,建立数据结构来维护双方交互状态,三次握手。 面向无连接,随发/收随停
2 可靠性较强,无差错、不丢失、不重复、有顺序 继承IP包特性,不保证顺序、不保证到达
3 面向字节流,无头无尾 基于数据报,逐个发收
4 有拥塞控制、流量控制、记录每个包的收发状态

UDP协议

1.包头

计算机网络——网络协议:TCP和UDP浅析(1)_第1张图片
没什么说的,非常简单,源端口号、目的端口号

2.特点

·不建立连接,可以接收传来的数据,也可以传给任何人数据、传给多个人数据
·不会根据网络情况进行发包的流量拥塞控制,默认数据包是容易送达的

3.使用场景

·网络情况较好的内网、需要资源少的项目
·不需要1对1,可以广播的应用。如DHCP广播就是基于UDP、VXLAN协议组播
·需要处理速度快,时延低,允许少数丢包

4.使用案例

·QUIC:(全称Quick UDP Internet Connections,快速 UDP 互联网连接)是 Google 提出的
一种基于 UDP 改进的通信协议,其目的是降低网络通信的延迟,提供更好的用户互动体验。
·流媒体传输(RTMP除外,是基于TCP)、实时游戏等
·4G通信协议GTP-U是基于UDP

TCP协议

1.包头

计算机网络——网络协议:TCP和UDP浅析(1)_第2张图片
·包的序号:解决乱序问题,保证数据包的顺序
·确认序号:保证数据包已经被收到。如没有被收到应该重新发送直到送达
·状态位:SYN发起连接,ACK回复,RST重新连接,FIN结束连接。用来维护双方连接状态。
·窗口大小:通信双方各声明一个窗口,标识自己当前能够处理的能力。

2.特点

计算机网络——网络协议:TCP和UDP浅析(1)_第3张图片

3.三次握手

TCP的连接建立需要进行三次握手
可以理解为请求=》应答=》应答之应答

为什么必须是三次握手呢?

假设A和B要进行握手建立TCP连接,A先向B发起连接请求,这个数据包存在很多可能性,数据包可能丢失、由于网络拥塞绕弯路超时、B没有响应或拒绝连接。所以A需要确认结果,确认是否真的连接上。

所以B收到数据包后,若要与其建立连接,则回复一个确认应答来确认与其建立连接。
同样来说,B的应答包也有很多可能性,B需要确认A是否收到确认建立连接的请求。

所以A收到确认后,给B返回应答之应答的数据包。

为什么没有第四次握手?

三次握手完全可以保证双方相互确认连接状态并确认建立完成连接,可以有第四次甚至更多,但是再多的确认也不能保证完全可靠,只需双方消息有去有回即可。

4.明天更 嘻嘻

你可能感兴趣的:(计算机网络)