《TCP/IP详解》学习笔记-第11章 UDP

来源:互联网 发布:软件测试辛苦吗 编辑:程序博客网 时间:2024/06/05 09:02

1、运输层概述

运输层的任务主要是负责主机中两个进程之间的通信。

1、运输层的基本功能:

1)复用与分用分用(Demultiplexing):将运输层的报文段中的数据交付到正确的套接字的工作。复用(Multiplexing):在源主机的不同套接字中收集数据块,并为每个数据块封装上首部信息(将在分用的时候使用),从而生成报文段/数据报,然后将报文段/数据报传递到网络层工作。为了进行分用和复用,需要给应用层的每个进程赋予一个明确标志,在协议层就采用了协议端口号,简称端口。(2)差错控制(完整性控制)(3)可靠传输(按序交付,无丢失,不重复)(4)拥塞控制(收发双方的协调一致)(5)流量控制(全局上的通信流量调节)

2、与网络层的区别:

(1)运输层为应用进程之间提供端到端的逻辑通信。网络层为主机之间提供端到端的逻辑通信。
(2)运输层对收到的报文进行差错检测,包括首部和数据部分。网络层IP数据报首部中的检验和字段,只检验首部是否出现差错而不检验数据部分。
(3)运输层有两种不同的运输协议,即面向链接的TCP(传输控制协议)和无连接的UDP(用户数据报协议)。

2、UDP:用户数据报协议

1、UDP概述

U D P是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个 U D P数据报,并组装成一份待发送的 I P 数据报。
这里写图片描述

UDP特点:

UDP是一种无连接的,即发送数据前不需要建立连接,因此减小的开销和发送数据的延迟。UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。UDP是面向报文的,UDP没有拥塞控制,因此网络出现的拥塞不会使主机的发送率降低。UDP支持一对一,一对多,多对一和多对多的交互通信。UDP首部开销小,只有8字节,比TCP的20个字节的首部要短。

2、UDP 首部

这里写图片描述

(1)源端口号:该项是任选项,默认值是0,可以被指定。
(2)目的端口号:该项必须指定,因为这个作为接收主机内特定应用进程相关联的地址。
(3)UDP长度:指的是 U D P首部和U D P数据的字节长度。该字段的最小值为 8字节(发送一份0字节的 U D P数据报是 O K) 。
(4)检验和:覆盖U D P首部和U D P数据。该字段用于防止UDP用户数据报在传输中出错。当进行检验和计算时,要在UDP数据报之前增加临时的12个字节伪首部。如下图。伪首部包含 I P 首部一些字段,其目的是让 U D P 两次检查数据是否已经正确到达目的地。
这里写图片描述

如果发送端没有打开检验和选项,而接收端计算检验和有差错,那么UDP数据将会被悄悄的丢掉(不保证送达),而不产生任何差错报文。

3、IP 分片

物理网络层一般要限制每次发送数据帧的最大长度。
(1)任何时候I P层接收到一份要发送的 I P 数据报时,它要判断向本地哪个接口发送数据(选路) ,并查询该接口获得其 M T U。
(2)I P把M T U与数据报长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上。
(3)把一份 I P数据报分片以后,只有到达目的地才进行重新组装 。重新组装由目的端的 I P 层来完成。已经分片过的数据报有可能会再次进行分片(可能不止一次) 。

4、ICMP 不可达差错(需要分片)

当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特,就会长生ICMP不可达差错报文。

这里写图片描述

5、ICMP源站抑制差错

当一个系统(路由器或主机)接收数据报的速度比其处理速度快时,可能产生这个差错。使用 U D P时很容易产生这样的 I C M P 差错。
这里写图片描述

0 0
原创粉丝点击