TCP协议
TCP,即Transmission Control Protocol,传输控制协议。人如其名,要对数据的传输进行一个详细的控制。
下图为tcp协议的格式:
TCP协议提供的一些机制
确认应答机制
每一个ACK都带有对应的确认序列号,意思是告诉发送者,我已经收到了哪些数据;下一次你从哪里开 始发。这样能确保对方能知道自己已经收到了消息。
超时重传机制
当然,除了会丢失ACK,也可能会丢失发送的数据包,只要没有收到确认应答,主机A都会重复发送数据包。
连接管理机制
在正常情况下,TCP要经过三次握手建立连接,四次挥手断开连接
三次握手和四次挥手给通信双方提供了保障。
滑动窗口
滑动窗口提供了这么一个机制,发送方可以不用发送一个数据包,一定要等接受到对方的确认应答才发送下一个数据包,他可以连续发送多个数据包,并且不一定要收到每一个数据包的序列号,只要能收到较大数据包的序列号,就说明前面的数据全都收到了,因此提高了发送数据的效率。
UDP协议
相对于TCP来讲,UDP就简单许多,UDP是无连接、不可靠、面向数据包的,而TCP是有连接、可靠、面向字节流的。
下图是UDP协议的格式
从数据格式可以看出,一个UPD报文最小是8个字节。首部中含有一个16位的UDP长度字段,意味着一个UDP报文最大长度是64K,且包含报头。
TCP/UDP对比
TCP是有连接的,UDP是无连接的,所以TCP比UDP更可靠,TCP更适合传输一些重要的文件,并且在网络状况优良的情况下效率会更高。UDP则更适用于视频、实时传输,即使丢了一些包也无关紧要的场景,二者各有好坏,没有绝对的优劣。
IP协议
IP协议是网络层的通信协议