三十九、传输层概述和UDP协议

简介: 三十九、传输层概述和UDP协议

传输层是只有主机才有的层次。传输层为应用层提供通信服务,同时可以使用网络层提供的服务。



1、传输层的功能



(1) 传输层提供进程和进程之间的逻辑通信,区别于网络层提供主机和主机之间的逻辑通信。即网络层将信息从一个主机传递到另外一个主机之后,需要经过传输层将这些信息分发给不同的进程,或者同一个进程的不同线程中。


(2) 复用和分用,复用指的是将不同进程的数据(报文段)使用同一个传输层的协议进行传输;分用指的是传输层将传来的报文段送交给不同的进程。


(3) 传输层对收到的报文进行差错检测。


(4) 传输层有TCP和UDP两种协议。




2、传输层的两个协议


2.1 TCP协议


面向连接的传输控制协议,传送数据之前必须建立连接,数据传送结束之后要释放连接。不提供广播或者多播服务。由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销:确认,流量控制,计时器及连接管理等。可靠,面向连接,时延大,适用于大文件。


2.2 UDP协议


无连接的用户数据报协议,传送数据之前不需要建立连接,收到UDP报文之后也不需要给出任何确认。不可靠,无连接,时延小,适用于小文件。




3、传输层的寻址与端口



端口是传输层的SAP,标识主机中的应用进程,这里的端口是逻辑端口/软件端口。


端口号只有本地意义,在因特网中不同计算机中的相同端口是没有联系的。端口号长度为16bit,能表示65536个不同的端口号。端口号的分类如下所示:1add1f611b2a46eca7cff69536d1b9da.png


常见的熟知端口号应用程序如下所示:62482347b0954864b6bfada8134c14ae.png


在网络中采用发送方和接收方的套接字(Socket)组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。

Socket=(IP)




4、UDP协议



UDP只在IP数据报服务之上增加了很少的功能,即复用分用和差错检测的功能。


UDP的主要特点:


(1) UDP是无连接的,减少开销和发送数据之前的时延;


(2) UDP使用最大努力交付,即不保证可靠交付;


(3) UDP是面向报文的,适合一次性传输少量数据的网络应用;


(4) UDP无拥塞控制,适合很多实时应用;


(5) UDP的首部开销小,只有8Byte,TCP的首部有20Byte

e9f310aa5f8649679cdf6b986ad20f9d.png


4.1 UDP的首部格式

3f5400619f594843b589cf53a5879404.png

在分用时,若数据报找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。


4.2 UDP校验


e9b5ccbafff04ea99f2d24f812d00ebb.png


 


伪首部只有在计算校验和时候才会出现,不向下传递也不向上递交。伪首部中的17表示:封装UDP报文的IP数据包首部协议字段是17;伪首部中的首部长度:UDP首部8Byte+数据部分长度,不包括伪首部的长度。fb6692df45404d41a4cca501544c6960.png


在发送端校验处理过程:填上伪首部;全0填充检验和字段;全0填充数据部分(UDP数据报要看成许多4B的字串连起来0);伪首部+首部+数据部分采用二进制反码求和;把和求反码填入检验和字段;去掉伪首部,发送。


在接收端校验处理过程:填上伪首部;;伪首部+首部+数据部分采用二进制反码求和;结果全为1则无差错,否则丢弃数据报或者交给应用层并附上出差错的警告。











相关文章
|
9天前
|
XML JSON 算法
【JavaEE】——自定义协议方案、UDP协议
自定义协议,序列化,xml方案,json方案,protobuffer方案,UDP协议,校验和,比特翻转,CRC算法,md5算法
|
21天前
|
存储 网络协议 安全
用于 syslog 收集的协议:TCP、UDP、RELP
系统日志是从Linux/Unix设备及网络设备生成的日志,可通过syslog服务器集中管理。日志传输支持UDP、TCP和RELP协议。UDP无连接且不可靠,不推荐使用;TCP可靠,常用于rsyslog和syslog-ng;RELP提供可靠传输和反向确认。集中管理日志有助于故障排除和安全审计,EventLog Analyzer等工具可自动收集、解析和分析日志。
|
2月前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
62 3
|
2月前
|
网络协议 SEO
TCP连接管理与UDP协议IP协议与ethernet协议
TCP、UDP、IP和Ethernet协议是网络通信的基石,各自负责不同的功能和层次。TCP通过三次握手和四次挥手实现可靠的连接管理,适用于需要数据完整性的场景;UDP提供不可靠的传输服务,适用于低延迟要求的实时通信;IP协议负责数据包的寻址和路由,是网络层的重要协议;Ethernet协议定义了局域网的数据帧传输方式,广泛应用于局域网设备之间的通信。理解这些协议的工作原理和应用场景,有助于设计和维护高效可靠的网络系统。
47 4
|
3月前
|
网络协议 网络性能优化 C#
C# 一分钟浅谈:UDP 与 TCP 协议区别
【10月更文挑战第8天】在网络编程中,传输层协议的选择对应用程序的性能和可靠性至关重要。本文介绍了 TCP 和 UDP 两种常用协议的基础概念、区别及应用场景,并通过 C# 代码示例详细说明了如何处理常见的问题和易错点。TCP 适用于需要可靠传输和顺序保证的场景,而 UDP 适用于对延迟敏感且可以容忍一定数据丢失的实时应用。
60 1
|
3月前
|
网络协议 算法 数据格式
【TCP/IP】UDP协议数据格式和报文格式
【TCP/IP】UDP协议数据格式和报文格式
208 3
|
3月前
|
存储 网络协议 算法
更深层次理解传输层两协议【UDP | TCP】【UDP 缓冲区 | TCP 8种策略 | 三次握手四次挥手】
UDP和TCP各有所长,UDP以其低延迟、轻量级的特点适用于对实时性要求极高的应用,而TCP凭借其强大的错误检测、流量控制和拥塞控制机制,确保了数据的可靠传输,适用于文件传输、网页浏览等场景。理解它们的工作原理,特别是UDP的缓冲区管理和TCP的8种策略,对于优化网络应用的性能、确保数据的高效和可靠传输至关重要。开发者在选择传输层协议时,应根据实际需求权衡利弊,合理利用这两项关键技术。
101 5
|
3月前
|
JavaScript 安全 Java
谈谈UDP、HTTP、SSL、TLS协议在java中的实际应用
下面我将详细介绍UDP、HTTP、SSL、TLS协议及其工作原理,并提供Java代码示例(由于Deno是一个基于Node.js的运行时,Java代码无法直接在Deno中运行,但可以通过理解Java示例来类比Deno中的实现)。
92 1
|
4月前
|
监控 网络协议 网络性能优化
如何办理支持UDP协议的网络
在当今网络环境中,UDP(用户数据报协议)因传输速度快、延迟低而广泛应用于在线游戏、视频流媒体、VoIP等实时服务。本文详细介绍了办理支持UDP协议网络的方法,包括了解UDP应用场景、选择合适的ISP及网络套餐、购买支持UDP的设备并进行优化设置,以及解决常见问题的策略,帮助用户确保网络稳定性和速度满足实际需求。
|
11天前
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。