UDP:
应用进程将消息写入UDP套接字,消息被封装成UDP数据报,该数据报进而封装到一个IP数据报,发送到目的地
1、不保证数据报会到达最终目的地
2、不保证各个数据报的先后顺序跨网络后保持不变
3、不保证数据报只到达一次
4、UDP数据报都有一个长度
5、无连接的服务
6、UDP避免了TCP的连接建立及终止所需的开销
TCP:
1、连接:在客户与服务器之间建立连接,再跨该连接交换数据,最后终止该连接。
2、可靠性:要求对端返回一个确认,如果没有接收到确认,TCP将自动重传并等待更长的时间(TCP含有动态估算往返时间的算法用来确认等待多少时间)。
3、数据排序:对每个字节关联一个序列号,分节传递给IP,接收端如果接收到非顺序到达的分节,便可以根据分节号重排;如果接受到的数据是重复的,将丢弃重复数据。
4、流量控制:任何时刻可以从对端接收的字节数(通告窗口)。
5、全双工
TCP连接建立-三路握手:
1、服务器端调用socket、bind、listen函数,准备好接收外来的连接,称之为被动打开
2、客户端调用connect函数发起主动打开,TCP发送SYN分节,告诉服务器,客户端在连接中