三十九、传输层概述和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则无差错,否则丢弃数据报或者交给应用层并附上出差错的警告。











相关文章
|
2月前
|
网络协议 网络安全 网络性能优化
使用到UDP协议的情况下该如何防护
使用到UDP协议的情况下该如何防护
|
3月前
|
网络协议 Linux 数据处理
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
75 3
|
1月前
|
网络协议 数据格式
|
2月前
|
域名解析 网络协议 安全
【JavaEE初阶】 UDP协议的详细解析
【JavaEE初阶】 UDP协议的详细解析
|
3月前
|
网络协议 网络性能优化
【计算机网络】UDP 协议特点解析
【1月更文挑战第27天】【计算机网络】UDP 协议特点解析
|
3月前
|
网络协议 安全 网络性能优化
【网络工程师】<软考中级>传输层协议TCP/UDP&常用应用层协议
【1月更文挑战第27天】【网络工程师】<软考中级>传输层协议TCP/UDP&常用应用层协议
|
3月前
|
XML 存储 JSON
网络原理之UDP协议
网络原理之UDP协议
|
3月前
|
域名解析 监控 网络协议
深入了解UDP协议:特点、应用场景及市面上常见软件案例
深入了解UDP协议:特点、应用场景及市面上常见软件案例
225 0
|
3月前
|
网络协议 API 网络安全
用户态协议栈设计实现udp,arp与icmp协议
用户态协议栈设计实现udp,arp与icmp协议
61 1
|
24天前
|
域名解析 网络协议 关系型数据库
tcp和udp的区别是什么
TCP和UDP是互联网协议中的传输层协议。TCP是面向连接的,通过三次握手建立可靠连接,提供数据顺序和可靠性保证,适用于HTTP、FTP等需要保证数据完整性的应用。UDP则是无连接的,数据报独立发送,传输速度快但不保证可靠性,常用于实时通信、流媒体和DNS解析等对速度要求高的场景。根据应用需求选择合适的协议至关重要。
tcp和udp的区别是什么