作为tcp/ip模型的一层,传输层扮演着重要角色,在这一层中主要有tcp和udp两种协议,本篇文章就准备好好聊它们,废话不多说,开搞!
tcp
tcp提供了一个 可靠的,面向连接的,全双工的 数据传输服务,它采用了一种叫做“重发”的技术,即在tcp传输过程中,发送方启动一个 定时器,然后传输数据包,接收方收到后给发送方发送一个”确认“信息,如果超过时间发送方还没有收到确认信息,就重新发送这个数据包
利用tcp建立和关闭连接时,均需要通过三次握手
- 源主机发送一个数据包,表示想与目的主机进行通信
- 目的主机发送一个确认进行响应,表示愿意进行通信
- 源主机再发送一个确认来响应,该确认中可包含真正要发送的数据包
tcp协议一般用于传输数据量 比较少,且可靠性 要求高 的场合
udp
udp是一种 不可靠的、无连接的 协议,可以保证应用程序进程间的通信
udp协议主要作用是将udp消息展示给应用层,它并不负责重新发送丢失的或出错的数据信息,不对接收到的无序ip数据报重新排序,不消除重复的ip数据报,不对已收到的数据进行确认,也不负责建立或终止连接
总结
- tcp是 面向连接的,可靠的,但是它以牺牲通信效率来实现,也就是会降低传输速率,如果传输的数据量不多,对传输速度要求不高,但是对可靠性要求较高的场景,选择tcp更合适
- udp是 无连接的、不可靠的,但是它可以实现高速传输,如果传输的数据量大,要求传输速度快,但对可靠性要求不高,或已知网络是可靠的情况下,选择udp更合适