无论是TCP/IP四层协议还是OSI七层网络协议,传输层的TCP都是非常重要的一个网络协议,众所周知TCP是建立在IP协议之上的点对点可靠的传输协议,不同于IP和UDP,TCP有三次握手、四次挥手等机制可以确保客户端和服务端建立安全的连接和释放连接,并提供拥塞控制、滑动窗口等数据传输机制,但是由于其建立连接的复杂性,演化出了Socket,它是在TCP/IP协议上的一层封装实现,可以通过封装的函数简化用户对TCP/IP协议的使用。经过一段时间的发展,开发者发现Socket在远程调用的语法、参数传递和数据表示上还有一些不够灵活和便捷,于是又演进出了RPC协议,RPC是基于Socket的更上层的网络传输协议,对Socket进行了进一步的抽象和封装,对开发人员使用上更加的友好并且便于扩展,接下来我们就更加详细的讲述下这几种网络协议。
可靠的传输层协议—TCP
首先第一个问题,为什么要有TCP协议?
因为IP协议是不可靠的,它只负责数据包的发送,但它不保证数据包能够被接收、不保证网络包的按序交付和网络包中的数据的完整性。而TCP的出现,正是为了解决这些问题,比如TCP的三次握手就是为了建立安全可靠的连接,滑动窗口解决数据的有序性,超时重传机制则保证数据的相对完整性。
TCP三次握手机制