TCP : 传输控制协议
TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字时一个流套接字(stream socket)。TCP关心确认,超时和重传之类的细节。
TCP提供客户端与服务器之间的连接。
TCP提供流量控制,TCP总是告知对端在任何时刻它一次能够从对端接收多少字节的数据,这称为通告窗口。通告窗口指出接收缓冲区中当前可用的空间量,从而确保发送端发送的数据不会使接收缓冲区溢出。
TCP连接是全双工的,这意味着在一个给定的连接上应用可以在任何时刻在进出两个方向上既发送数据又接收数据。
UDP:用户数据报协议
UDP是一个无连接协议,UDP套接字是一种数据报套接字。
应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后发送到目的地。
UDP不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。
UDP提供无连接服务,因为UDP客户和服务器之间不必存在长期的关系。
TCP连接建立
三次握手