【网络原理】| 应用层协议与传输层协议 (UDP)

这篇具有很好参考价值的文章主要介绍了【网络原理】| 应用层协议与传输层协议 (UDP)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎗️ 主页:小夜时雨
🎗️ 专栏:javaEE初阶
🎗️ 乾坤未定,你我皆黑马

一、应用层协议

应用层是和代码直接相关的一层,决定了数据要传输什么,怎么去使用这些数据等问题。
应用层这里,虽然存在一些现有的协议(比如HTTP),但是也有很多的情况,需要我们去自定义一些协议,这里的自定协议就是约定应层数据报的数据格式。

  • 如何约定格式?
  1. 确定要传输哪些信息。(根据需求)

比如一个外卖程序,我们需要传输以下的信息。

  • 请求 : 用户id ;用户的位置等
  • 响应 : 若干个商家信息 ; 每个商家信息:商家的名字 ; 图片 ; 评分 ; 类型等

【网络原理】| 应用层协议与传输层协议 (UDP),javaEE初阶,1024程序员节,java,网络,udp,网络协议
2. 确定数据按照什么样的格式来组织的
一个简单的方案就是按照分隔符进行组织数据,如下图:
【网络原理】| 应用层协议与传输层协议 (UDP),javaEE初阶,1024程序员节,java,网络,udp,网络协议
在实际的开发中,还有一些现成的格式,是可以直接使用的

  • xml格式

这种格式主要是通过标签的形式来组织数据,具体如下图:
【网络原理】| 应用层协议与传输层协议 (UDP),javaEE初阶,1024程序员节,java,网络,udp,网络协议
其中 html 可以看作是 xml 的特殊情况

  • json 格式

json 是使用 {} 来作为标识的
【网络原理】| 应用层协议与传输层协议 (UDP),javaEE初阶,1024程序员节,java,网络,udp,网络协议

二、传输层协议(UDP协议)

学习协议的一个重要环节:认识 协议的报文格式

UDP的报文格式:
【网络原理】| 应用层协议与传输层协议 (UDP),javaEE初阶,1024程序员节,java,网络,udp,网络协议
【网络原理】| 应用层协议与传输层协议 (UDP),javaEE初阶,1024程序员节,java,网络,udp,网络协议

  • UDP的特点
  1. 无连接
    知道对端的 ip 和 端口号就可以进行通信,不需要建立连接
  2. 不可靠
    没有任何的安全机制,即是 发送端发送数据报之后,如果因为某些原因,接收端没有收到来自发送端的数据,UDP协议层也不会给发送端返回任何的错误提示信息
  3. 面向数据报
    应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并
  4. 全双工
    UDP只有接收缓冲区,没有发送缓存区

UDP没有真正意义上的 发送缓冲区。发送的数据会直接交给内核,由内核将数据传给网络层协议
进行后续的传输动作;

UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;如果缓冲区满了,再到达的UDP数据就会被丢弃;

UDP的 socket 既能读,也能写,这个概念叫做全双工

  • 源端口和目的端口

两者描述了数据从哪里来以及到哪里去,ip 地址用来区分是哪一个主机,一个主机上有多个应用程序,运用端口号来区分出具体的程序。

  • 报文长度

表示了 UDP 数据报的长度,2个字节,能表示的最大长度是65535即是64KB,所以传输一个UDP 数据报的最大长度就是64KB

若是传输比较大的数据,怎么解决?

  1. 将数据拆分成多个部分,使用多个 UDP 数据报进行传输,类似于多次搬东西,但是比较复杂
  2. 直接使用 TCP 协议,TCP对数据长度没有限制
  • 校验和

意义: 用来判断当前传输的数据是否发生错误
校验和往往就是去内容或者是内容的一部分,通过一些算法或者数学公式,进行一些变换得到一个数值。
如果内容发生了改变,则校验和也就会发生了变化,也就可以感知到传输出错

  • 扩展问题

经典面试题:

  1. UDP本身是无连接,不可靠,面向数据报的协议,如果要基于传输层UDP协议,来实现一个可靠传输,应该如何设计?
  2. UDP大小是受限的,如果要基于传输层UDP协议,传输超过64K的数据,应该如何设计?

以上两个问题答案类似,都可以参考TCP的可靠性机制在应用层实现类似的逻辑:
例如:
引入序列号,保证数据顺序;
引入确认应答,确保对端收到了数据;
引入超时重传,如果隔一段时间没有应答,就重发数据;

🎗️🎗️🎗️ 好啦,到这里有关 应用层协议与传输层协议 (UDP) 的分享就没了,如果感觉做的还不错的话可以点个赞,关注一下,你的支持就是我继续下去的动力,蟹蟹大家了,我们下期分享传输层协议 (TCP),拜拜~ ☆*: .。. o(≧▽≦)o .。.:*☆文章来源地址https://www.toymoban.com/news/detail-736309.html

到了这里,关于【网络原理】| 应用层协议与传输层协议 (UDP)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 「网络编程」应用层协议_ HTTPS协议学习及原理理解

    「前言」文章内容大致是应用层协议的HTTPS协议讲解,续上篇HTTP协议。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) HTTPS(HyperText Transfer Protocol Secure) 是一种通过加密和身份验证保护网络通信安全的协议。它是基于HTTP协议的安全版本,也是工作在应用

    2024年02月16日
    浏览(39)
  • JavaEE & HTTP应用层协议

    HTTP应用层协议 超文本传输协议(Hyper Text [Transfer Protocol](https://baike.baidu.com/item/Transfer Protocol/612755?fromModule=lemma_inlink),HTTP) 是一个简单的请求-响应协议 ,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以

    2024年02月06日
    浏览(75)
  • 【JavaEE】HTTP应用层协议

    HTTP应用层协议 超文本传输协议(Hyper Text [Transfer Protocol](https://baike.baidu.com/item/Transfer Protocol/612755?fromModule=lemma_inlink),HTTP) 是一个简单的请求-响应协议 ,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以

    2024年02月07日
    浏览(48)
  • 计算机网络 应用层上 | 域名解析系统DNS 文件传输协议FTP,NFS 万维网URL HTTP HTML

    之前我们讲运输层的时候已经讲了运输层可以给不同进程之间通信,但我们还需要应用层原因是,许多 应用需要多个进程之间相互配合完成,所以应用层进程用来约束这些配合! 每个应用层协议用来解决一个问题 应用层的许多协议都是基于客户服务器方式 客户是请求方,服

    2024年01月24日
    浏览(53)
  • 【网络应用层协议】【HTTP】详解HTTP与HTTPS、POST 请求与 GET请求 、TCP与UDP、cookie和session的区别

    目录 1. HTTP和HTTPS的区别 2. POST 请求与 GET 请求区别 3. TCP与UDP的区别 4. cookie和session的区别

    2024年04月14日
    浏览(38)
  • 【JavaEE】网络原理——传输层协议:UDP和TCP

    目录 1、简单了解应用层协议 2、传输层UDP协议 3、传输层TCP协议  3.1、TCP报文介绍 3.2、TCP实现可靠传输的核心机制 3.2.1、确认应答 3.2.2、超时重传  3.3、连接管理 (三次挥手,四次握手) 3.3.1、建立连接(三次握手) 3.3.2、断开连接(四次挥手)  3.4、滑动窗口  3.5、流量

    2024年02月10日
    浏览(70)
  • 【网络原理进阶篇】ip协议,ip地址组成,ip地址分类网关,路由选择,数据链路层,应用层,ip与mac地址等

    前言: 大家好,我是 良辰丫 ,我们已经学习了网络原理基础版,初步认识了网络,还学习了网络编程,了解了网络通信的各种程序,接下来我们更深入的了解网络是如何工作的.这篇文章我们主要介绍协议,UDP和TCP的一些原理.💞💞 🧑个人主页:良辰针不戳 📖所属专栏:javaEE初阶 🍎

    2024年02月06日
    浏览(37)
  • 【网络】应用层——HTTPS协议

    🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言: 你只管努力,剩下的交给时间! 前面本喵讲解并演示了HTTP协议,在比较 POST 和 GET 方法的时候,本喵说这两个方法都不安全,虽然 POST 的提交的表单内容在请求正文中,无法在地址的 url 中看到,但是它仍然是不安全的。

    2024年02月14日
    浏览(34)
  • 【网络】应用层——HTTP协议

    🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言: 你只管努力,剩下的交给时间! 上篇文章中,本喵带着大家对HTTP有了一个初步的认识,今天就来详细讲解一下这个应用层协议。 如上图所示的 url (网址),里面包含有 / 以及 ? 等字符。 像这样的字符,已经被url当做 特殊

    2024年02月15日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包