运输层(一)UDP协议详解

前言:

来源于《计算机网络自顶向下方法》,这学期在上计网的课程,顺路就补一补相关知识,UDP / TCP平时听得多了,这次跟住这本书来深入了解一下吧。

运输层

首先udp/tcp是运输层的协议,我们先来了解一下运输层的概念。

运输层协议为不同主机上的应用程序提供逻辑通信功能,通过逻辑功能,运行不同进程的主机好像直接相连,在发送端,运输层将发送应用程序进程接收到的报文转换成运输层分组(运输层报文段)。实现的方法将应用报文划分成较小的块,并为每块加上一个运输层首部以生成运输层报文段并向目的地发送。在接收端,网络层从数据包中提取到运输层报文段,并将该报文段上交给运输层。运输层则处理接收到的报文段,使该报文段中的数据为接受应用进程使用。

运输层的多路复用与多路分解

从主机之间交付(网络层ip)到进程之间交付被称为运输层的多路复用和多路分解

运输层报文段的结构图:
在这里插入图片描述

多路复用: 在源主机从不同套接字中手机数据块,并为每一个数据块封装上首部信息(这将以后用于分解)从而生成报文段,然后将报文段传递到网络层
多路复用的要求:1.套接字有唯一的标识符 2.每段报文段有特殊字段来指示该报文段要交付到的套接字。如上图这些特使的字段是源端口号字段和目的端口号字段。
多路分解: 每个运输层报文段中具有几个字段,在接收端,运输层检查这些字段,标示出接受套接字,进而将报文段定向到该套接字,将运输层报文段中的数据交付给正确的套接字
在主机上的每一个套接字能够分配一个端口号,当报文到达主机时,运输层检查豹纹中的目的端口号,并将其定向到相应的套接字,然后报文中的数据通过套接字进入所连接的进程

无连接的多路复用和多路分解

基本和运输层的基本概念无差,因为udp只做了运输协议做的最少工作。一个udp套接字由一个二元组全面标识的,该二元组包含一个目的ip地址和一个目的端口号,因此如果两个udp报文段有不同的源ip地址和或者源端口号,但是有相同的目的ip地址和目的端口号,那么这两个报文将通过相同的目的套接字被定向到相同的目的进程

无连接运输:UDP

定义的udp只做了运输协议能够做的最少工作,除了复用、分解功能和少量的差错检测外,他几乎没有对IP新增别的东西。使用udp时,在发送报文段之前,发送方和接收方的运输层实体之间没有握手,so,udp被称为是无连接的。
UDP协议特点:

  • 无需链接建立
    tcp链接开始数据传输之前要经过三次握手,udp则不需要任何准备即可开始进行数据传输,因此udp不会引入建立链接的时延
  • 无连接状态
    因为无连接,所以不可靠,数据包会丢失,不可靠协议
  • 分组首部开销少
    每个tcp报文段都有20字节的首部开销,而udp只有8字节的开销
  • UDP使用尽最大努力交付,即不保证可靠交付,不需要维持复杂的连接状态表
  • 面向报文的传输
    面向报文的传输方式是应用层交给UDP多长的报文,UDP添加首部后就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。
UDP报文段结构

在这里插入图片描述

  • 各16bit的源端口和目的端口用来标记发送和接受的应用进程。因为UDP不需要应答,所以来源端口是可选的,如果来源端口不用,那么置为零。
  • 报文长度域,用来指定udp报文段中的字节数(首部➕数据),长度最小值为8byte。
  • 首部剩下地16bit是用来对首部和数据部分一起做校验和(Checksum)
UDP 检验和

udp检验和提供了差错检测功能。到底是如何的一个操作呢?
发送方的udp对报文段中所有的16bit的和进行反码运算(c此时还没有检验和),即全部16bit相加,溢出的都被回卷,随后得到一个16bit的检验和,在接收方在将所有的16bit加在一起包括检验和,如果没有引入差错,则接收方显示的将是1111111111111111 如果有其中一个为0则出现了差错。
在这里插入图片描述注意:
1.校验时,若UDP数据报部分的长度不是偶数个字节,则需要填入一个全0字节,但是次字节和伪首部一样,是不发送的。
2.如果UDP校验和校验出UDP数据报是错误的,可以丢弃,也可以交付上层,但是要附上错误报告,告诉上层这是错误的数据报。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值