TCP篇
What’s TCP?
TCP是面向连接的、可靠的、基于字节流的传输层通信协议。这里面有三个关键词,分别为面向连接的、可靠的、基于字节流
面向连接的:指的是一对一的连接方式、不能像UDP那样可以一个主机同时向多个主机发送消息,也就是说一对多是无法实现的。
可靠的:无论网络状况出现了怎样的链路变化,RCP都能保证一个报文一定能够到达接收端。
字节流:消息是没有边界的,所以无论我们消息有多大都可以进行传输。并且消息是有序的,当前一个消息没有收到的时候,即使他先收到后面的字节,那么也不能扔给应用层去处理,同时对于重复的报文会自动丢弃。
TCP和UDP区别:
- 连接方面:
TCP
是面向连接的传输层协议传输之前首先要建立连接。UDP
是不需要建立连接的,即可传输数据
- 服务对象
- TCP是一对一的两点服务,即一条连接只有两个端点。
- UDP支持一对一、一对多、多对多的交通通信。
- 可靠性
- TCP是可靠交付数据的,数据可以无差别、不丢失、不重复、按需到达。
- UDP是尽最大可能交付,不保证可靠交付数据。
- 拥塞控制、流量控制
- TCP有拥塞控制和流量控制机制,考证数据传输的安全性。
- UDP则没有,即使网络非常拥堵了,也不会影响UDP的发送速率。
- 首部开销
- TCP手部长度较长,会有一定的开销,收不在没有使用【选项】字段有20个字节,如果使用了【选项】字段会更长。
- UDP首部只有8个字节,并且是固定不变的、开销较小。
- 传输方式
- TCP是流式传输、没有边界,但保证顺序和可靠。