TCP/IP 是个协议组,可以分为三个层次:网络层,传输层和应用层
在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有TCP协议与UDP协议。
在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。
TCP又叫传输控制协议,TCP是面向连接的,并且是一种可靠的协议,在基于TCP进行通讯时,通信双方需要建立TCP连接,建立连接需要3次握手,握手成功才能进行通信,而断开连接需要进行4次
UDP又叫用户数据报协议,UDP是一个面向无连接,且不可靠的协议,在通信过程中,它并不像 TCP 那样需要先建立一个连接,只要(目的地址,端口号,源地址,端口号)确定了,就可以直接发送信息报文,并且不需要确保服务端一定能收到或收到完整的数据。它仅仅提供了校验和机制来保障一个报文是否完整,若校验失败,则直接丢弃报文,不做任何处理。
TCP与UDP的区别
基于连接无连接:TCP需要连接,UDP不需要连接
系统资源的要求:TCP占用的系统资源较多,UDP较少
程序结构较简单:TCP程序复杂,UDP程序简单
流模式与数据报模式:TCP是流模式,UDP是数据报模式
可靠性:TCP保证数据的正确性,UDP丢包,TCP保证数据顺序,UDP不保证
TCP与UDP应用场景:
从特点上我们已经知道,TCP 是可靠的但传输速度慢 ,UDP 是不可靠的但传输速度快。因此在选用具体协议通信时,应该根据通信数据的要求而决定。
若通信数据完整性需让位与通信实时性,则应该选用 TCP 协议(如文件传输、重要状态的更新等);反之,则使用 UDP 协议(如视频传输、实时通信等)。