首页
学习
活动
专区
圈层
工具
发布

【Linux】:传输层协议 UDP

一、前言 之前在这篇文章 初识网络 中说过关于传输层的内容,以及在 Socket编程应用层UDP 也做过关于 UDP 的练习,如下: 传输层: 负责两台主机之间的数据传输。...UDP 特点 UDP 传输的过程类似于寄信: 无连接: 知道对端的 IP 和端口号就直接进行传输, 不需要建立连接; 不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方,UDP...UDP 缓冲区 UDP 没有真正意义上的 发送缓冲区. 调用 sendto 会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作; UDP 具有接收缓冲区....UDP 使用注意事项 我们注意到:UDP 协议首部中有一个 16 位的最大长度,也就是说一个 UDP 能传输的数据最大长度是 64K(包含 UDP 首部),然而 64K 在当今的互联网环境下, 是一个非常小的数字...基于UDP 的应用层协议 NFS: 网络文件系统 TFTP: 简单文件传输协议 DHCP: 动态主机配置协议 BOOTP: 启动协议(用于无盘设备启动) DNS: 域名解析协议 当然, 也包括你自己写

1.1K10

【Linux网络】传输层协议UDP

端口 21 用于控制连接(传输命令)。 另一个随机或指定的端口(如 20)用于数据连接(传输文件内容)。...SO_REUSEPORT(Linux 3.9+ 引入):明确设计用于允许多个进程(或线程)绑定到完全相同的 IP 地址和端口号。...16位UDP检验和 作用:用于检测UDP首部和数据在传输过程中是否发生错误(如比特翻转)。...由于UDP本身不保证可靠性,所以我们需要在应用层实现这些机制。这就是为什么在需要可靠传输时,我们通常使用TCP,或者使用基于UDP的可靠传输协议(如QUIC)的原因。...2.5 基于UDP的应用层协议 NFS:网络文件系统 TFTP:简单文件传输协议 DHCP:动态主机配置协议 BOOTP:启动协议(用于无盘设备启动) DNS:域名解析协议 当然, 也包括你自己写UDP

8610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    初识Linux · 传输层协议UDP

    那么在Linux内核中,进程和port的映射是通过一张哈希表来完成的,问题来了: 1.端口号是否可以被多个进程bind? 2.一个进程是否可以bind多个端口号?...UDP协议 在我们理解上面这张图片之前, 我们回想一个知识点,在最开始引入网络编程的时候,我们花了一番功夫认识了协议是什么,我们仅仅是基于Linux网络编程的特点,认为协议就是通信双方都认识的结构体,那么在今天...那么上述是UDP源码的简单理解。 对于UDP协议来说,它的特点是无连接,不可靠传输,面向数据报。...完管你连接不连接呢,直接传输了就开始。...对于不可靠传输,因为UDP一旦传输失败,它什么也不管,也不会进行重传,这点和TCP有很大的区别,TCP有多种方案应付传输失败的情况,比如超时重传等。

    38410

    【Linux网络编程】传输协议UDP

    协议号:用于标识协议类型的字段,通常用于区分不同的传输层协议。例如,TCP 使用协议号 6,UDP 使用协议号 17。...理解端口号和进程的关系 进程在Linux内核中实际上是一个struct task_struct,这就是描述进程的一个结构体。...UDP协议 UDP协议格式 UDP报头一定是一个结构体 16 位 UDP 长度, 表示整个数据报(UDP 首部+UDP 数据)的最大长度 UDP特点 无连接: 知道对端的 IP 和端口号就直接进行传输,...也就是说一个 UDP 能传输的数据最大长度是 64K(包含 UDP 首部)。如果我们需要传输的数据超过 64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装。...基于UDP的应用层协议 NFS: 网络文件系统 TFTP: 简单文件传输协议 DHCP: 动态主机配置协议 BOOTP: 启动协议(用于无盘设备启动) DNS: 域名解析协议 进一步理解UDP报头 UDP

    90610

    【Linux】传输层协议:UDP和TCP

    传输层和网络层都是在linux内核中实现的,而linux内核是用C语言实现的,那UDP报头实际就是一个结构体,结构体成员变量实际就是UDP报头中的各个字段值,所以在分用时,只需要让指针指向数据包的前8个字节...Linux的文件系统联系起来,从而更好的理解传输层向上交付有效载荷这个过程。...除此之外,调用socket接口返回的sockfd其实就是文件描述符,该文件描述符其实就是fd_array数组的下标,该下标对应的位置中会存放指向文件结构体的指针,文件结构体内部会维护创建sockfd时,...理解TCP的报头和UDP报头一样,他们其实都是linux内核里面的结构体,当向网络层交付报文时,TCP会把发送缓冲区中的数据和TCP报头粘连在一起,然后统一向下交付。...4.2 用UDP实现可靠性传输 1.

    1.8K30

    传输层:UDP协议

    传输层中有两个重要的协议:TCP协议和UDP协议。 本博文分享的是UDP协议,本文将从UDP的协议格式、UDP的特定以及其缓冲区入手。...UDP的特点 UDP传输的过程类似于寄信,那么其特点有以下几点: ①无连接:知道对端的IP和端口号就直接进行传输, 不需要建立连接。...UDP的缓冲区 UDP没有真正意义上的 发送缓冲区. 调用sendto会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作,即即写即发。 UDP具有接收缓冲区....也就是说一个UDP能传输的数据最大长度是64K(包含UDP首部).然而64K在当今的互联网环境下, 是一个非常小的数字.如果我们需要传输的数据超过64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装...基于UDP的应用层协议 NFS: 网络文件系统,TFTP: 简单文件传输协议,DHCP: 动态主机配置协议,BOOTP: 启动协议(用于无盘设备启动),DNS: 域名解析协议,也有我们自己写的UDP程序的应用层协议

    61020

    传输层协议——UDP

    UDP协议 UDP协议端格式 有效载荷一定是上层——应用层 给的,上层通过系统调用 把数据拷过来的 UDP报头的宽度是0-31,表示报头所对应的字节数 (4字节) 1. 报头和有效载荷如何分离?...struct udp_header 结构体 内部 包含 源端口号、目的端口号 、udp长度、校验和 借助位段的方式,取整形int的4字节中的16个比特位 将缓冲区数据从应用层拷贝给操作系统内部...类型 ,指向结构体中的源端口号、目的端口号 、udp长度、校验和 该报文经过网络,经过协议栈被对方收到了 再定义一个指针s,,让s+8,再次指向有效载荷 将s强转成 struct udp_header类型...,指向结构体中的源端口号、目的端口号 、udp长度、校验和 UDP的特点 无连接:知道 对端的IP和端口号 就直接传输,不需要连接 不可靠:若网络故障段无法发送对方,UDP协议也不会给应用层返回任何错误信息...不考虑 即UDP接收缓冲区,但不保证 接受报文是有序的

    43710

    传输层协议UDP原理

    所以一个完整的报文至少要携带ip和端口号,ip是在网络层协议来维护的本章不做讲解,而端口号是在传输层协议中维护的,传输层协议常用的两种:UDP协议和TCP协议,本章将要讲解的是UDP协议,TCP协议在下一期进行讲解...UDP协议端格式 16位源端口和16位目的端口用来确定两个唯一进程,这没啥说的。 16位UDP长度:数据字段的大小不是固定的,所以该字段来表示整个数据报(UDP 首部+UDP 数据)的长度。...16位UDP检验和:不保证可靠性,校验和是唯一确定数据是否有效的机制。因为在数据传输过程中物理干扰、路由错误等可能导致数据损坏。...UDP协议特点 无连接: 知道对端的 IP 和端口号就直接进行传输, 不需要建立连接。 不可靠:报文发出去任务就完成了,报文是否丢失不关心。注意这不是缺点,是特点! 面向数据报:发10次,收10次。...short len; unsigned short chksum; };         在把数据交付给传输层时,数据在应用层必做序列化和反序列化。

    24510

    udp 视频传输_webrtc视频流传输

    在UDP实时图像传输一文中,介绍了如何使用UDP来实现图像的实时传输,并使用C#进行了发送端和接收端的搭建。...但是文中的方法是对整张图片进行JPEG压缩,并通过UDP一次性地发送到接收端,由于一个UDP数据包只能发送64k字节的数据,所以该方法的图片传输大小是有限制的,实测只能发送480P视频中的图像。...基本流程 本文中的高清晰度图像传输就是在前文方法的基础上,在发送端添加了切片压缩传输以及并行加速的步骤,而接收端则相应地使用多线程进行数据接收,分别接收压缩后的切片数据,再拼接起来进行显示。...首先设置一些参数 // 实例化一个VideoCapture,选择从本地文件读取视频 private VideoCapture capture = new VideoCapture("../.....\video中,再更改发送端代码中的视频文件名即可) ———– 2020.8.28更新 ———– TCP对传输的数据大小没有限制,且能保证传输的可靠性,详见TCP实时图像传输 版权声明:本文内容由互联网用户自发贡献

    2.3K21

    传输层协议UDP详解

    我们在应用层看到的端口号大部分是16位的,其根本原因就是因为传输层协议当中的端口号就是16位的。 UDP如何实现报头与数据的分离?...UDP协议特点 UDP传输的过程类似于寄信,其特点如下: 无连接:知道对端的IP和端口号就可以直接进行通信,无需等待连接。...调用 sendto 会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作。 UDP 具有接收缓冲区。...也就是说一个 UDP 能传输的数据最大长度是 64K(包含 UDP 首部)。 然而 64K 在当今的互联网环境下, 是一个非常小的数字。...如果我们需要传输的数据超过 64K, 就需要在应用层手动的分包, 多次发送, 并在接收端 手动拼装; 基于UDP的应用层协议: NFS: 网络文件系统 TFTP: 简单文件传输协议 DHCP: 动态主机配置协议

    65110

    传输层:TCP和UDP

    传输层:TCP和UDP 使用IPv4和IPv6的应用程序 平时我们使用的tcpdump、ping、traceroute属于TCP/IP协议族,虽然叫TCP/IP协议族,但是这个协议族还涉及到许多其他成员...无连接、不可靠的UDP 无连接 UDP客户与服务器之间不必存在长期的关系。 一个UDP客户可以通过同一个UDP套接口发送数据报给不同的服务器。...被动关闭 接收到FIN的端执行被动关闭,确认对这个FIN的接收,这次接收意味着应用进程在相应连接上再也接收不到额外数据(它的接收会作为文件结束符发给被动方应用进程)。...被动方发起关闭 一段时间后,收到文件结束符的应用进程也调用close关闭它的套接口,向主动方发送一个FIN。 主动方确认 接收到FIN分节后,主动关闭的一方也要确认这个分节。...TCP数据传输 [TCP数据分节传输] TCP还是UDP 上图这样的单一分节的请求和接收,使用TCP时,包括连接建立和连接终止的7个分节,以及最后一次客户对服务器数据的应答,有8个分节额外需要消耗。

    1.5K30

    UDP如何实现可靠传输

    目前有如下开源程序利用udp实现了可靠的数据传输。分别为 RUDP、RTP、UDT。...应用程序通常在 UDP 上运行 RTP 以便使用其多路结点和校验服务;这两种协议都提供了传输层协议的功能。但是 RTP 可以与其它适合的底层网络或传输协议一起使用。...3、UDT(UDP-based Data Transfer Protocol) 基于UDP的数据传输协议(UDP-basedData Transfer Protocol,简称UDT)是一种互联网数据传输协议...*UDT的主要目的是支持高速广域网上的海量数据传输*,而互联网上的标准数据传输协议TCP在高带宽长距离网络上性能很差。 顾名思义,UDT建于UDP之上,并引入新的拥塞控制和数据可靠性控制机制。...它同时支持可靠的数据流传输和部分可靠的数据报传输。由于UDT完全在UDP上实现,它也可以应用在除了高速数据传输之外的其它应用领域,例如点到点技术(P2P),防火墙穿透,多媒体数据传输等等。

    5.7K61

    【传输层】概述、复用分用、UDP详解、UDP校验

    文章目录 传输层概述----为应用层服务 TCP靠谱--大文件、时延大 与UDP不可靠--小文件、时延小 传输层的寻址与端口------复用---应用层所有进程通过传输层再传输到网络层---------...-分用---------传输层从网络层收到数据后交付给指定应用程序 套接字------Socket---IP:端口号 UDP协议---无连接、不可靠---再IP数据报上加复用分用和差错检测-------...面向报文------保留整个应用层的报文----传输层一次发送一个完整的应用层报文------------防止分片,只发送少量数据------没有拥塞控制、适合很多实时应用-------UDP首部开销小...传输层对收到的报文进行差错检测--------可靠传输(TCP) TCP靠谱–大文件、时延大 与UDP不可靠–小文件、时延小 传输层的寻址与端口------复用—应用层所有进程通过传输层再传输到网络层...----传输层一次发送一个完整的应用层报文------------防止分片,只发送少量数据------没有拥塞控制、适合很多实时应用-------UDP首部开销小8B,TCP20B UDP首部格式--

    1.3K20

    linux局域网传输文件,局域网传输文件详解

    局域网传输文件详解(转) 相信很多朋友都有过这样的经历,在办公室需要通过局域网传输文件。如果顺利自然不必说了,但有时难免也会遇到“不测”,尤其是直接移动文件,万一失败损失惨重,虽然几率不大但毕竟存在。...大家知道,本身的复制功能是不能实现断点续传的,也就是说如果在局域网中复制文件一旦失败,原先复制的文件就要重新复制,这种情况相信大家也曾有过体会,难道在局域网中复制文件还不如在互联网上下载文件那么可靠吗?...接下来就会弹出显示复制文件进度的对话框,这个对话框比本身的多了一些按钮和一个用来调节复制文件传输速率的滑块(图6)。...在复制过程中你可以点击“Pause”按钮来暂停复制进度,也可以拖动右上角的滑块来限定复制文件在局域网中的传输速率。...除了在局域网中复制文件时可以继点续传外,在单机中复制文件也同样可以实现文件的续传,操作方法同上。

    6.4K20

    Linux 温习(七): 文件传输

    传输文件 FTP是 File Transfer Protocol 的缩写,表示“文件传输协议”,FTP协议已经有些年纪了,1985年诞生,FTP 现在仍然是传输文件的最常用协议。...pwd :显示当前目录的路径 cd∶转换目录 用 FTP 进行文件传输 如果你想上传及下载文件,需要知道两个命令 put :用于上传文件。...服务器断开连接,你可以用 Ctrl +D 组合键,也可以用 bye, exit 或 quit 命令,效果是一样的 sftp:安全加密的 ftp ftp 命令虽然方便,但是有一个致命缺点:不安全,数据不是加密传输的...wget 命令可以下载文件 为了将文件从一台电脑拷贝到另一台电脑,可以使用scp命令,它使用 SSH 协议,因此传输是加密的,非常安全 可以用 ftp 命令来连接到一个 FTP 服务器,上传及下载文件...sftp 和 ftp 命令类似,但是它用了 SSH 协议,所以传输的信息是加密的 rsync 命令可以同步同一台电脑或两台不同电脑上的两个文件(夹)的内容,rsync 命令来备份文件特别方便。

    3.4K30

    Linux文件传输FTP详解

    ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux进行ftp操作将会非常容易....* 命令前先执行:prompt off 注意:文件都下载到了linux主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则文件都下载到了/usr/my下。...比如,在 /usr/my下运行的ftp命令,则只有在/usr/my下的文件linux才会上传到服务器/usr/your 下。 4. 断开连接 bye:中断与服务器的连接。...每当开始传输文件时,客户端程序会打开一个新的数据端口,在文件传输完毕后,再自动释放该端口。...42.passive:进入被动传输方式。 43.prompt:设置多个文件传输时的交互提示。

    9.3K32
    领券