一、概念
TCP提供一种面向连接的、可靠的字节流服务。
面向连接 ,TCP一定要有三次握手的建立和四次握手的结束。
可靠 ,TCP传输的每一个字节都需要确认。
字节流服务,UDP叫数据报服务 ,应用层不管给UDP多大一个包,UDP就直接在这个基础之上封装UDP头部、IP头部、以太网头部,然后发走,网络上传输的数据和应用层给的数据是一一对应的。TCP是叫数据流,应用层给的数据,大了会把它拆小,小了会把它组装大,然后在网络上发走,网络上传输的数据和应用层给的数据是没有关系的。
面向连接意味着两个使用TCP的应用(通常时一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接,在一个TCP连接中,仅有两方进行彼此通信,TCP的连接肯定是 点对点的 ,TCP肯定是不支持组播和广播的,UDP是可以支持的。
应用数据被分隔成TCP认为最适合发送的数据块。应用层给的数据,大了会把它拆小,小了会把它组装大,反正TCP会以它认为最合适的大小来发送。
当TCP发送出一个段后,它启动一个定时器,等待目的端的确认收到这个报文段。如果不能即时收到一个确认,将重发这个报文段。
当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。为什么要等呢?因为马上给确认的话,有点