TCP和UDP是传输层两个重要的协议。HTTP协议基于TCP;DHCP协议基于UDP。
UDP
UDP包头![在这里插入图片描述](https://img-blog.csdnimg.cn/20190705110130261.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDI4MzgxNg==,size_16,color_FFFFFF,t_70)
UDP特点:
- 沟通简单,它相信网络是可以送达,不会被丢弃的;
- 轻信他人,不会建立连接,谁都可以给它传数据,它也可以给任何人传数据,甚至可以同时传给多个人数据。
- 不懂得随机应变,它不会根据网络的情况进行发包的拥塞控制,无论网络丢包成什么样子都一如既往。
UDP应用场景:
- 需要资源少,在网络情况比较好的内网,或者对丢包不敏感的应用。
- 不需要一对一沟通,建立连接而是可以广播的应用。UDP的不面向连接的功能使得可以承载广播或者多播的协议。
- 需要处理速度快,时延低,可以容忍少数丢包,但是要求即使网络拥塞也毫不退缩,一往无前的情况。
TCP
TCP是一种面向连接的、可靠的、基于字节流的通信协议。
IP协议是一种网络层协议,它规定每个互联网上的计算机都有一个唯一的IP地址,这样数据包就可以通过路由器的转发到达指定的计算机,但是IP并不保证数据传输的可靠性。
在TCP报文的报头中,有几个标志字段:
- SYN:同步连接序号,TCP SYN报文就是把这个标志设置为1,来请求建立连接;
- ACK:请求/应答状态。0为请求,1为应答;
- FIN:结束连线。0是结束连线请求,FIN为1表示结束连线;
- RST:连线复位,首先断开连接,然后重建;