1、TCP(Transmission Control Protocol,传输控制协议),其提供一下服务:
一)TCP提供客户与服务器的链接,一个客户建立与一个给定服务器的链接,跨越链接与那个服务器交换数据,然后终止链接。
二)TCP提供可靠性,当TCP向另一端发送数据时,它要求对方返回一个确认。如果确认没有收到,TCP自动重传数据并等待更长时间。在数次重传失败后,TCP才放弃。重传数据所花的时间传统上是4-10分钟。tcp含有动态估算客户到服务器往返所花时间RTT(round-trip time)的算法,因此其知道等待-确认需要多长时间。
三)TCP通过给所发送数据的每一个字节关联一个序列号进行排序。如果分解非顺序到达,接收方的tcp将按照他们的序列号冲虚排序,再把结果数据传送到应用进程。如果tcp收到重复的数据(譬如说对方认为一个分节丢失并因而重传,而他并没有真正丢失,只是刚才网络通信过于拥挤而延迟),它可以根据序列号判定数据是重复而直接丢弃该分节。
四)TCP提供流量控制。tcp总是告诉对方它还能接受多少字节的数据,这称为通告窗口(advertised window)。任何时候这个窗口指出接收缓冲区中的可用空间,从而确保发送方发送的数据不会溢出接收缓冲区。当接收发送方的数据时,窗口大小减小,而当接收方应用进程从缓冲区中读取数据时,窗口大小增大。当tcp的接收缓冲区满时,窗口的大小减小到0,必须等待应用进程从这个缓冲区中读取数据后才能再接收从发送方来的数据。
五)TCP的连接是全双工的,即在给定的连接上应用进程在任何时候既可以发送也可以接收数据。