计算机网络(五)

一、UDP协议

传输层UDP协议

  • 无连接:双方在发送数据之前不需要建立连接,直接发送,客户端不管服务端是否在线

  • 不可靠传输:没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息。

  • 面向报文:UDP不管向应用层还是网络层传递数据都是整条数据,报文不可分割,是UDP数据报处理的最小单位

假设机器A的应用层向传输层传入aaa,在传入bbb,而对端接收的机器B的传输层不会进行区分是一次还是两次。

在这里插入图片描述

端口号

传输层是负责端对端之间的传输,端指的是端口(port)

端口号划分

0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的。 1024 -
65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的。

熟知端口号:
在这里插入图片描述

进程和端口号关系

一个进程可以bind多个端口号,但是一个端口号不可以被多个进程bind。

二、UDP协议首部

在这里插入图片描述

  • 16位源端口:数据从哪一个端口发出来的,也就是数据从哪一个进程发送出来的。

  • 16位目的端口:数据想要到哪一个端口去,也就是数据想要去往哪一个进程。

  • 16位UDP长度:表示整个数据报(UDP头部+UDP数据)的最大长度。

  • 16位的UDP校验和:校验数据在传输过程中是否失真,数据在传输的过程中需要经过很多链路设备,如果在转发过程中有某个字节损坏,就相当于整个这个数据失真了,如果UDP接收方校验和出错,就会直接将数据丢弃掉,且不会通知发送方。
    如果校验和出错, 就会直接丢弃。

UDP应用

1.UDP传输的数据最大大小是多少呢?

16位能够表示的数据最大位长度位2^16=65536—>指的是UDP数据的最大长度。

2.如果传输的数据比65536还大的数据呢?

在应用层针对数据进行分片,将超过65536字节的数据包进行分片,使用UDP协议进行传输。
标识:同一个udp数据报具有相同的标识
标志位:标识当前分片的udp数据后面还有没有分片
片偏移:标识当前分片在整个udp数据报当前的位置

3.UDP常用于一次性传输较少数据的网络应用

如DNS、SNMP等,因为对于这些应用,若采用TCP,则将为连接创建、维护和拆除带来不小的开销。
UDP也常用于多媒体应用(如IP电话、实时视频会议、流媒体等),显然,可靠数据传输对这些应用来说并不是最重要的,但TCP的拥塞控制会导致数据出现较大的延迟,这是它们不可容忍的。

UDP校验

二进制反码运算求和再取反

在这里插入图片描述

在这里插入图片描述

TCP和UDP对比

两者的区别大致如下:

TCP面向连接,UDP面向非连接即发送数据前不需要建立链接
TCP提供可靠的服务(数据传输),UDP无法保证
TCP面向字节流,UDP面向报文
TCP数据传输慢,UDP数据传输快
TCP提供全双工通信;

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值