计算机网络---传输层的udp协议

首先我们认识要在应用层对数据封装之后需要传输到传输层进行封装,但是在应用层只是对数据进行了处理,所以在传输层上需要对传输到那个进程进行设置,所以在传输层需要对port进行设置。所以port是标志一个进程,就是一个应用程序。
一个端口能被一个应用程序所使用
一个应用程序可以使用多个端口

udp的协议格式
在这里插入图片描述

16位源端口:标志发送数据的进程
16位目的端口号:标志数据发送到的进程
16位udp长度:表示整个数据包(udp头部+udp数据)的最大长度,最长的长度是64K。若sendto大于64K的数据就报错
16位udp校验和:二进制反码求和。将传输的数据每两个字节求反相加,但是不加16位udp校验和的两个字节。
udp的特点

  • 无连接
  • 不可靠
  • 面向数据报
    无连接:数据在发送的时候不需要知道在建立连接的情况下就可以发送数据,比如我们实现udp的访问的时候我们客户端可以发送数据直接绑定地址之后就发送,不清楚的伙伴可以看看udp代码实现
    不可靠:在没有互联连接的情况下是不可靠的,因为在发送数据之后对方不回复,不知道是不是收到数据,或者在连接的时候就不知道是否已经连接上了。
    面向数据报:数据是按照报文的格式来发送的。整条数据发送整条数据接收。不会造成粘包的问题。
    udp传输并不保证数据报的有序到达,因需要用户在应用层进行包序管理。
    udp的数据处理
    udp提供整条数据向应用层交付()不会出现半个数据,因为头部中有报文长度标示)。也正是因为数据报在协议头中有表示,所以udp不会产生粘包问题。

猜你喜欢

转载自blog.csdn.net/boke_fengwei/article/details/91041237