目录
TCP
TCP(Transmission Control Protocol) 传输控制协议
TCP 的特点
(1) 面向连接
(2) 每条TCP连接都是一对一的
(3) 提供可靠交付(无差错、无丢失、不重复的按序到达)
(4) 提供全双工通信
(5) 面向字节流
TCP 如何实现流量控制?
TCP 利用滑动窗口实现流量控制,流量控制目的是控制发送方发送速率,保证接收方来得及接收。接收方发送的确认报文中有一个窗口字段,可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为0,则发送方不能发送数据。
TCP如何保证可靠性的?
(1) 校验和机制
TCP 首部有校验和,如果收到的端的校验和有差错,TCP将丢弃这个报文不确认收到此报文。
(2) 超时重传
当发送端在往返时延内未收到确认消息,那么对应的数据包被假设为已丢失并进行重传。
(3) 流量控制
TCP 通过滑动窗口实现流量控制,可以控制发送方的发送速率。保证接收方来得及接收。
(4) 拥塞控制
当网络拥塞的时候,减少数据的发送。TCP进行拥塞控制的算法有:慢开始、拥塞避免、快重传、快恢复。
TCP报文段的首部格式
TCP的连接建立--三次握手
TCP的连接释放--四次握手
UDP
UDP(User Datagram Protocol) 用户数据报协议
UDP 特点
(1) 无连接
(2) 不保证可靠交付
(3) 面向报文
(4) 没有拥塞控制
(5) 支持一对一、一对多、多对多的交互通信
(6) 首部开销小,只有8字节。
UDP的首部格式
TCP与UDP的区别
(1) TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
(2) TCP提供可靠的服务;UDP不保证可靠交付。
(3) TCP面向字节流,把数据看成一连串无结构的字节流;UDP是面向报文的。
(4) TCP有拥塞控制;UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如实时视频会议等)。
(5) 每一条TCP连接只能是<stron>的;UDP支持一对一、一对多、多对一和多对多的通信方式。</stron>
(6) TCP首部开销20字节;UDP的首部开销小,只有8个字节。