初夏小谈:传输层之UDP协议与TCP协议三次握手四次挥手

一.UDP协议:

    1.UDP协议总体说明

           1.其特点:无连接,不可靠,面向数据报。

           2.UDP协议报头由源端口,目的端口,数据包长度,校验和组成。并且报头占8B。

           4.查看UDP报头: vi /usr/include/netinet/udp.h

    2.UDP的缓冲区:

         1.UDP没有真正意义上的发送缓冲区,它调用sendto会直接交给内核,由内核将数据传给网络层协议进行接下来的传输操作。

         2.UDP具有接收缓冲区,但是它不确保收到的UDP报的顺序和发送UDP报的顺序一致,如果接收缓冲区已满,再接收数据就会被丢弃。  

    3.UDP注意事项:

         1.由于UDP的报头中,源端口,目的端口,数据包长度,校验和各占16为即2个字节,所以是8个字节。由于数据长度最大

2^16,所以数据长度64KB再减去报头8个字节,为实际传输数据字节。

扫描二维码关注公众号,回复: 11573202 查看本文章

         2.如果用户sendto发送的数据长度大于64k-8,就会报错。因为udp在传输层不会自动进行数据分段。

         3.如果需要传输的数据大于64K-8,就需要在应用层手动的分包,多次发送,并在接收端手动拼装。

4.基于UDP协议的应用层协议:

         1.NFS:网络文件系统。

         2.TFTP:简单文件传输协议。

         3.DHCP:动态主机分配协议(动态IP地址分配)

     当IP地址全0仅用于服务端可以接收所有IP的请求。IP全1时,是广播地址。通过广播地址来确认给谁分配IP地址。

         4.BOOTP:启动协议

         5.DNS:域名解析协议。

5.UDP协议内部实现了广播功能--》UDP广播。

二.TCP协议:

   1.TCP协议特点:面向连接,可靠传输,面向字节流。

   2.图解TCP三次握手四次挥手:

标志位说明:

       SYN: 请求建⽴连接; 我们把携带SYN标识的称为同步报⽂段

       ACK: 确认号是否有效

       FIN: 通知对⽅, 本端要关闭了, 我们称携带FIN标识的为结束报⽂段

                                                                                                                                                      珍&源码

猜你喜欢

转载自blog.csdn.net/IT_xiaoQ/article/details/90720148