UDP协议

1. 概述

      IP协议提供各个网络设备之间传输数据报的功能,但并非所有的数据报都是发到主机就算完事了,通常数据报的最终目的地应该是主机上的某个应用程序。这就是传输层协议的工作了。典型的传输层协议有TCP、IP等。这里重点介绍UDP协议。

2. 传输层协议

      越靠近上层,离用户就越近,用户只需通过上层提供的接口便能使底层按照一定的逻辑工作。传输层的意义在于屏蔽底层操作的细节,直接呈递接口给上层协议。

      基于这一点,传输层需要做的工作是:

      一:为两个通信的进程建立连接机制,即当传输层拿到从IP层获取的数据时,它应当具有某种手段将数据呈递到上层应用

      二:反过来,传输层应当能够将一上层应用的数据以一定方式交付给IP层并发送

      三:传输层应当在数据传输方面提供一定的可靠性保障,以保证数据的有效性

3. 端口

3.1 概念

      进程的创建和销毁往往是动态的,基于这种情况,传输层的协议如果还是以某一主机上的某一进程为最终目的显然就不太科学,由此引入端口的概念

      每台主机都有一组被称为“协议端口”的抽项目地点,每个协议端口都用一个正整数来表示,TCP/IP协议族的端口号取值为0~65535.

3.2 端口通信

      进程可以绑定在任一个端口上,通过指定IP地址和端口号,就可以将数据报发送到特定的应用程序。

      如果协议栈接收到递交到某一端口的报文时该端口处于空闲状态(未占用),那么整个数据报就会被丢弃,同时返回一个ICMP端口不可达报文到源主机。

      先来介绍端口号的分配方法,端口号的分配一般有两种方式,一种是直接分配好的“熟知端口号分配(well-known port assignment)”,即某些上层协议已经明确要使用一些端口,通常这些端口号编号集中在值比较小的区间;另一种则是“动态绑定(dynamic assignment)”,动态绑定的端口一般是暂时的。

熟知端口

协议

说明

0

保留

保留

7

echo

报文回送服务器端口

53

nameserver

域名服务器(DNS)端口

67

bootps

BOOT或DHCP服务器端口

68

bootpc

BOOT或DHCP服务器端口

69

TFTP

简单文件传送协议端口

123

NTP

网络事件协议

161

SNMP

简单网络管理协议端口

图表 1 常用熟知端口号

      基于网络通信的两个进程会使用客户端——服务器模型,即CS模型。服务器进程必须绑定在一个双方彼此清楚的熟知端口上。

4. UDP协议

      UDP(User Datagram Protocol),全称用户数据报协议,一种不保证可靠的无连接协议,简单来说,UDP就是实现了上述传输层功能的最简版本,没有收到确认,也没有流量控制,它以最低的标准保证了数据从一个进程到另一个进程的交付。

      UDP不保证数据的有序性、完整性、有效性,所以这些欠缺的部分应当由上层应用补全,使用UDP的应用程序应当提供一定程度的确认和重传机制来保证这些属性。

4.1 UDP报文格式

源端口号

(4)

目的端口号

(4)

总长度

校验和

数据部

图表 2 UDP报文格式

(1)源端口号和目的端口号:16位决定了端口号的取值范围为0~65535。源端口号的填写是可选的,如果发送方期望接收方返回数据,就可以填上该字段。

(2)总长度:定义了用户数据报的总长度,包括首部长度和数据区长度。由于UDP是上层协议,依赖于IP层传输,所以对UDP的整个报文,也必须满足IP数据报的长度要求。也就是说,UDP数据部的最大长度为:

首先,

IP数据报16位总长度指示的最大长度65535-IP数据报中IP首部占据的20-60字节,得到IP数据区的最大长度(因为整个UDP的数据报会存放在IP数据报中,而IP总长度因为IP首部的20-60个字节,所以最大只能指示65535-20)。

然后,

UDP数据区的最大长度 = IP数据的最大长度 – UDP首部长度 ,

65507 = 65515- 8

(3)校验和:与IP数据报中校验方法相同,采用二进制反码求和。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值