TCP协议传输控制协议面向连接的、可靠的、基于流服务的传输层通信协议。TCP协议使用的是超时重传、数据确认机制来保证数据传输的可靠性确保数据正确的 TCP协议 传输控制协议面向连
TCP协议
传输控制协议面向连接的、可靠的、基于流服务的传输层通信协议。 TCP协议使用的是超时重传、数据确认机制来保证数据传输的可靠性确保数据正确的被接收使用TCP通信双方必须先建立连接并在内核中为该连接维持一些数据结构读写缓冲区等当通信结束后释放缓冲区中的内核数据。
举一个栗子 我们在打电话就需要于先要和对方建立连接拨号。
TCP服务是基于数据流的。数据流是没有边界限制长度的发送端可以一个字节一个字节的发送接收端可以一个字节一个字节的接收。
例如我们打电话时不可能一句话说完。
UDP协议
用户数据报协议无连接、不可靠、面向数据报服务。 即使双方没有建立连接UDP也可以通过IP地址信息将数据报发送到接收方不可靠说明UDP不能保证数据报正确的发送到对方如果数据在中途丢失或者接收方收到的数据不完整UDP只是简单的通知应用程序发送失败。每个数据报都有一定的长度超过长度将会被截断。
例如快递我们接收端和商家发送端不认识没有建立连接但是包裹数据报可以通过快递UDP的方式发送到我们手里快递公司检测到包裹丢了或者包裹破损了则会通知商家。包裹也有重量限制。
这样说感觉还是非常懵那到底什么是TCP协议什么是UDP协议
TCP与UDP的使用场景
当我们想要访问一个网页时网页的大小为2M由于网络层最大支持的传输大小为65535个字节相当于一次只能传输63KB大小的数据包但是数据链路层支持最大的传输单元MTU为1500个字节1KB多一点所以我们想要访问网站时就需要对网站的数据包进行分段发送。TCP就是为分段发送提供服务的需要建立会话同时也支持可靠传输以及流量控制。当一个数据包就能完成数据通信时以及在屏幕广播、多播与广播中使用UDP协议不需要建立会话不可靠传输不需要流量控制。
那什么是可靠传输与流量控制呢
- 可靠传输。因为网络层主要是负责数据的转发不负责数据的丢失。可靠传输就是保证数据能够安全送达。 说白了就是网络层主要是负责送快递的但是网络层不保证快递能不能送到可靠传输则表示如果快递没送到那你再给我送一次直到我收到快递为止。
- 流量控制。当发送端发送的速度与接收端接收的速度不匹配时流量控制主要是调节两个速度匹配。 举个栗子你和别人打电话对方语速很快这时你就请求对方说慢点这就是流量控制的思想。