【网络】TCP/IP五层网络模型:应用层

简介: 【网络】TCP/IP五层网络模型:应用层

互联网中,主流的是 TCP/IP 五层协议

  • 5 G/4 G 上网,是有自己的协议栈,要比 TCP/IP 更复杂(能够把 TCP/IP 的一部分内容给包含进去了)

应用层

可以代表我们所编写的应用程序,只要应用程序里面用到了网络通信,就可以认为这个代码就是属于应用层的代码

日常开发中最常用到的一层:

  1. 使用大佬们已经创建好的应用层协议
  • 应用层知名的协议有很多,其中的佼佼者就是 HTTP
  1. 自己定义应用层协议
  • 另外四层都是操作系统/硬件/驱动已经实现好了的,我们不可能“自定义”,只能使用人家的

协议就是约定

  • 按照自己的规则,约定通讯方式——>自定义应用层协议

自定义应用层协议

自定义应用层协议,具体要做什么事情:

明确要传递的信息

  1. 明确前后端交货过程中,要传递哪些信息

举个例子:开发一个外卖软件,打开软件后,首先需要展示一个“商家列表”

此处就需要先确定传递的信息是什么

  1. 请求:用户是谁(用户的 ID),用户所处的位置
  2. 响应:商家列表,包含多个商家,每个商家信息中,又有商家的名字、图片、距离、评分

这里的信息如何确定,都是根据当前的需求来产生的

明确组织信息的格式

  1. 明确组织这些信息的格式
    针对信息组织格式,也有很多种方式,使用哪种方方式都可以,只要确定前段和后端是同一种方式就可以了

举个例子:使用行文本的方式来组织上述数据

  1. 请求:用户id,用户位置\n
  2. 响应:商家的id,商家名称,商家的图片地址,商家的距离,商家的评分\n

关于组织数据的格式,还有一些说法,上述“行文本”简单粗暴的方案,在实际开发中,很少会这样做


XML 方案

Maven 中就会见到,通过“成对的标签”表示“键值对”信息

<request>
  <userid>1001</userid>
  <postion>E45N60</postion>
</request>
  • 可以通过 XML 来传输网络数据,也可以作为程序的配置文件
  • 不过 XML 进行网络传输的时候,又有一个明显的缺点——会消耗大量的带宽
    - 网络通信中,带宽是一个非常贵的硬件设备
    - 在传输标签的时候,都得传输成对的标签,传入的信息更多
  • 所以现在 XMl 一般都是在配置文件,不进行网络传输了
  • XMl 里面的标签(键值对)都是程序员固定的,而 HTMl 里面的标签都是固定的(已经有一套标准,约定好哪些标签是合法标签,这些标签都是什么含义)

JSON 方案

当前主流的网络通信的数据格式,相比 xml 来说,可读性是很好的,同时能节省一定的带宽

{
  "userid":1001,
  "postion":""E45N60"
}
  • JSON也是“键值对”格式,
  • 键和值之间用 : 分割
  • 键值对之间用 , 分割
  • 所有的键值对,都使用 {} 括起来
  • 这里的标签都只有一份,不需要结束标签了,节省了传递开销

YML(YAML)

强制要求了数据组织的格式,强制要求写成“可读性非常高”的格式

  • 键值对必须独占一行
  • “嵌套”结构必须通过缩进来表示

Google protobuffer

前三个方案,都是关注可读性,而 protobuffer 关注性能,牺牲了可读性(通过二进制的方式组织数据)

  • protobuffer 直接通过“位置”约定字段的含义,不需要传输 key 的名字,也会针对传输的数值,进行二进制的编码,起到一些“压缩”的效果
  • 极大地缩减了要传输的数据的体积——>带宽消耗就越小——>效率越高
  • 但二进制数据无法肉眼阅读,调试相关程序的时候,就会比较麻烦


相关文章
|
4天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
27 3
|
4天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
15 2
|
23天前
|
网络协议 数据安全/隐私保护 网络架构
|
15天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
43 13
|
15天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
4天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
14 2
|
5天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第38天】本文将探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术和安全意识等方面。我们将通过代码示例和实际操作来展示如何保护网络和信息安全。无论你是个人用户还是企业,都需要了解这些知识以保护自己的网络安全和信息安全。
|
4天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全策略
【10月更文挑战第39天】随着云计算的飞速发展,越来越多的企业和个人将数据和服务迁移到云端。然而,随之而来的网络安全问题也日益突出。本文将从云计算的基本概念出发,深入探讨在云服务中如何实施有效的网络安全和信息安全措施。我们将分析云服务模型(IaaS, PaaS, SaaS)的安全特性,并讨论如何在这些平台上部署安全策略。文章还将涉及最新的网络安全技术和实践,旨在为读者提供一套全面的云计算安全解决方案。
|
4天前
|
存储 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第39天】在数字化时代,网络安全与信息安全成为保护个人隐私和组织资产的重要屏障。本文将探讨网络安全中的常见漏洞、加密技术的应用以及提升安全意识的重要性。通过具体案例分析,我们将深入了解网络攻击的手段和防御策略,同时提供实用建议,以增强读者对网络安全的认识和防护能力。
|
4天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术以及安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和建议来保护个人信息和设备安全。