TCP/IP协议||TCP和UDP的特点
该篇是为应对面试写的,看了图解HTTP后稍微抄一下记来理解
一、TCP协议
传输层最重要的功能就是能够让应用程序之间实现通信,而tcp和udp是传输层最具有代表性的两个协议;TCP(Transmission Control Protocol)传输控制协议,UDP(User Datagram Protocol)用户数据报协议。
1、TCP协议的特点:
面向有连接的传输协议:发送数据前需建立连接,只有在确认通信接受方存在时才会发送数据,从而可以控制通信流量的浪费。可以保持两端通信主机之间的通信可达。并且能够处理传输过程中丢失包、传输顺序乱掉等异常情况。(先建立连接)
面向字节流:TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
可靠传输:在传输数据时,难免会存在数据的丢失,比如tcp协议可以通过重发来实现数据的可靠性。tcp通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。这样使得通过tcp传输的数据,无差错、不丢失、不重复。但是这样会消耗大量的时间,所以其效率低。
传输用途:TCP用于传输可靠性的通信服务。
点对点通信:每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的的(一对一)
2、UDP协议传输的特点:
面向无连接的传输协议:发送数据之前不需要建立连接,也减少了开销和发送数据之前的时延。udp不会关注对方是否真的收到了传过去的数据,如果需要检查对方是否收到分组数据包,还需要在应用应用程序中实现(也就是说,udp的传输还需要应用程序中进行一些操作)
面向报文:UDP把应用层交下来的报文,既不拆分,也不合并,而是保留这些报文的边界,交付给IP层
不可靠传输:正因为面向无连接,只管着发,当然不存在像tcp一样的重发
用途方面:UDP主要用于那些对高速传输和实时性有较高要求的通信或广播通信。其包括:包总量较少的通信(DNS、SNMP等)、视频、音频等多媒体通信(即时通信)、限定于LAN等特定网络中的应用通信、广播通信(广播、多播)
无拥塞阻塞:网络出现的拥塞不会使源主机的发送速率降低。这对很多实时性应用是很重要的,当要求以恒定速率发送数据时,允许网络阻塞,或者数据丢失,但不允许数据有太大的时延,UDP正好合适。
一对一、一对多、多对一和多对多的交互通信:可以有多个或者单个端点之间相互连接。