计算机网络:应用层(一)

在这里插入图片描述

  • 我最近开了几个专栏,诚信互三!
    ====> |||《算法专栏》::刷题教程来自网站《代码随想录》。|||
    ====> |||《C++专栏》::记录我学习C++的经历,看完你一定会有收获。|||
    ====> |||《Linux专栏》::记录我学习Linux的经历,看完你一定会有收获。|||
    ====> |||《C#专栏》::记录我复习C#的经历,深度理解查漏补缺,不定期更新。|||
    ====> |||《计算机网络专栏》::记录我学习计算机网络,看完你一定会有收获。|||

计算机网络:应用层(一)

  • 应用层要解决的问题
  • 如何解决这些问题
    • IP地址及端口初识
    • 应用层协议
    • socket初识(初次理解)
    • TCP/UDP要提供的服务
  • TCP/UDP初识

应用层要解决的问题

在之前的计网博客中,我们以及学习到了网络和基于ISO,TCP/IP的网络层状结构,其中我们了解到了应用层要解决的问题是两台主机之间进程与进程之间的通讯问题。

如何解决这些问题

  • 首先,要解决进程之间的通讯问题,我们首先需要知道我们要与那个主机进行通讯。
  • 其次就要解决我们要与该主机的那个进程进行通讯。
  • 在次我们还要解决双方通讯所要遵守的规则,及协议。

IP地址及端口初识

要解决第一个问题,我们可以借助IP地址和端口,我们知道,IP地址表识了某个网络,这样我们就可以定位到接收方的网络位置,而进程则需要端口号来确认一个主机上有多个进程,端口号是一个数字,来标识唯一的进程,这样我们就能定位到网络,同时定位到精确的进程了。

定位到网络并不能找到某一台主机,还需要MAC地址,而这部分不属于应用层的管辖,属于数据链路层。

http的默认端口号为80号。
在这里插入图片描述

应用层协议

所谓的协议是层与层之间传递信息的一个规则的集合,协议中包含了很多东西,入语法,语义,时序等,应用层的主要协议有http,https协议,https协议是http+ssl协议,TCP/UDP是明码发送的,所以https协议就是解决如何在TCP/UDP为上层提供的服务中保证安全性。
下图是http报文格式。
在这里插入图片描述

socket初识(初次理解)

在我们传输数据的时候,我们要确认一些东西,比如:我是谁,我的那个进程要发送信息,接收方是谁,接收方的那个进程要接收该信息。 再比如我需要运输层为应用层提供可靠传输还是非可靠传输(TCP/UDP)。 以及基于什么协议进行传输。
我们发现,如果每次发送消息/接收消息,我们都确认并发送一边 “我是谁,我的那个进程要发送信息,接收方是谁,接收方的那个进程要接收该信息。”这样的信息,首先会导致效率降低,并且对空间的利用也不够好,socket解决的这个问题。

  • socket是被操作系统维护的一个表格,在需要可靠传输时(TCP),这个表格中包含了本地IP地址本地端口号接收方IP地址接收方端口号。这四个信息,在发送的时候,将这4个信息集合到一个整形中,并为四元组,发送出去,接收方同时也维护一个表格,来接收该四元组信息。
  • 对于非可靠传输(UDP)socket维护的是一个二元组表格,该表格内存有本地IP地址本地端口号

通过socket,我们不用在发送多条信息,只需发送四元组/二元组,就能确定所有信息,同时对于TCP来说,只需要确定不同的接收方的端口号,就可以直接发送数据,这样就节约了时间,对于接收方也是如此,UDP只需要确定接收方的IP,和端口号,这样就将很多重复工作的时间节约了下来。

TCP/UDP要提供的服务

我们知道在计算机体系结构中,下层要为上层提供服务,TCP/UDP协议要为应用层提供基于运输层的可靠与否的服务。

TCP:可靠传输,基于TCP/IP协议。
UDP:非可靠传输。

它们互有优劣,选择什么服务需要由应用层的进程决定。
但是这两个协议都是明码传输的,这在某些情况下是十分危险的,要解决这个问题,需要应用层的协议ssl,ssl是一个库,它可以为数据提供安全的传输解决TCP/UDP无法安全传输的问题。

TCP/UDP初识

简单认识以下TCP/UDP协议。

TCP:是运输层提供可靠传输的协议,为了实现可靠传输基于TCP的运输层会做以下工作

  • 1.TCP协议会检测当前信道的吞吐量,如果过高则TCP协议会减少发送的数据,保证数据的精确度。
  • 2.在传输时,会保留副本,如果分组丢失了,则重发。
    还有很多保证可靠传输的方法,这次简单认识下

UDP:是运输层提供非可靠传输的协议,由于是非可靠传输,所以对以上的要求都不高,入分组丢失不会重发,也不会保存分组,不会检测吞吐量,运输层数据接收速度与发送速度几乎相等等等。

这两种传输友好有坏,TCP提供可靠传输,用时间换取了数据的准确度,UDP则不会这样做。
比如流媒体,网络游戏等需要UDP提供服务,电子邮件等则需要TCP提供服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# WPF上位机开发(简易图像处理软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 图像处理是工业生产重要的环节。不管是定位、测量、检测还是识别,图像处理在工业生产中扮演重要的角色。而c#由于自身快速开发的特点&a…

解决微信小程序中 ‘nbsp;‘ 空格不生效的问题

在微信小程序开发中,我们经常会使用 来表示一个空格。这是因为在 HTML 中,空格会被解析为一个普通字符,而不会产生实际的空白间距。而 是一种特殊的字符实体,它被解析为一个不可见的空格,可以在页面上产生真正的空…

Axure RP 9 入门教程

1. Axure简介 Axure 是一个交互式原型设计工具,可以帮助用户创建复杂的交互式应用程序和网站。Axure 能够让用户快速构建出具有高度可交互性的原型,可以在团队中进行协作、分享和测试。 使用 Axure 可以设计出各种不同类型的原型,包括网站、移…

系列十五、搭建redis集群

一、概述 上篇文章介绍了redis集群的相关知识,本章实战演示redis的集群环境的详细搭建步骤。如果帮助到了你,请点赞 收藏 关注!有疑问的话也可以评论区交流。 二、搭建步骤 2.1、预备知识 判断一个集群中的节点是否可用,是集群…

【SpringBoot篇】详解基于Redis实现短信登录的操作

文章目录 🥰前言🛸StringRedisTemplate🌹使用StringRedisTemplate⭐常用的方法 🛸为什么我们要使用Redis代替Session进行登录操作🎆具体使用✨编写拦截器✨配置拦截器🌺基于Redis实现发送手机验证码操作&am…

EarCMS 前台任意文件上传漏洞复现

0x01 产品简介 EarCMS是一个APP内测分发系统的平台。 0x02 漏洞概述 EarCMS前台put_upload.php中,存在pw参数硬编码问题,同时sql语句pdo使用错误,没有有效过滤sql语句,可以控制文件名和后缀,导致可以任意文件上传。 0x03 复现环境 FOFA:app="EearCMS" 0x0…

Flutter实现自定义二级列表

在Flutter开发中,其实系统已经给我们提供了一个可靠的二级列表展开的API(ExpansionPanelList),我们先看系统的二级列表展开效果,一次只能展开一个,用ExpansionPanelList.radio实现 由此可见,已经…

容器化升级对服务有哪些影响?

容器技术是近几年计算机领域的热门技术,特别是随着各种云服务的发展,越来越多的服务运行在以 Docker 为代表的容器之内。 本文我们就来分享一下容器化技术相关的知识。 容器化技术简介 相比传统虚拟化技术,容器技术是一种更加轻量级的操作…

分治法求最大子列和

给定N个整数的序列{ A1, A2, …, AN},其中可能有正数也可能有负数,找出其中连续的一个子数列(不允许空序列),使它们的和尽可能大,如果是负数,则返回0。使用下列函数,完成分治法求最大…

CorelDRAW软件2024版本好用吗?有哪些功能优势

CorelDRAW是一款综合性强大的专业平面设计软件,其功能覆盖了矢量图形设计、高级文字编辑、精细绘图以及多页文档和页面设计。该软件不仅适用于广告设计、包装设计,还广泛应用于出版、网页设计和多媒体制作等多个领域。下面就给大家介绍一下CorelDRAW这款…

0012Java安卓程序设计-ssm记账app

文章目录 **摘要**目 录系统设计5.1 APP端(用户功能)5.2后端管理员功能模块开发环境 编程技术交流、源码分享、模板分享、网课分享 企鹅🐧裙:776871563 摘要 网络的广泛应用给生活带来了十分的便利。所以把记账管理与现在网络相…

arkts编译报错-arkts-limited-stdlib错误【Bug已完美解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析:解决方案:适配指导案例此Bug解决方案总结项目场景: arkts编译报错-arkts-limited-stdlib错误。 我用Deveco studio4.0 beta2开发应用,报arkts-limited-stdlib错误 报错内容为: ERROR: ArKTS:ERROR File: D:/prRevivw/3792lapplica…

Android 11.0 systemui锁屏页面时钟显示样式的定制功能实现

1.前言 在11.0的系统ROM定制化开发中,在进行systemui的相关开发中,当开机完成后在锁屏页面就会显示时间日期的功能,由于 开发产品的需求要求时间显示周几上午下午接下来就需要对锁屏显示时间日期的相关布局进行分析,然后实现相关功能 效果图如图: 2.systemui锁屏页面时钟显…

mysql原理--B+树索引

1.没有索引的查找 1.1.在一个页中的查找 (1). 以主键为搜索条件 可以在 页目录 中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定的记录。 (2). 以其他列作为搜索条件 这种情况下只能从 最小记录 开始依次遍历单链表中的每条记录&am…

值得收藏的练习打字网站

本文对一些好用的练习打字的网站进行了汇总整理,方便大家使用 一:程序猿练习打字: 1.Typing Practice for Programmers http://Typing.io 是程序员的打字导师。它的练习课程基于开源代码,让你在不断的练习中提升自己的码字速度…

Python:核心知识点整理大全15-笔记

目录 ​编辑 7.3.2 删除包含特定值的所有列表元素 pets.py 7.3.3 使用用户输入来填充字典 mountain_poll.py 7.4 小结 第8章 函 数 8.1 定义函数 greeter.py 8.1.1 向函数传递信息 8.1.2 实参和形参 8.2.1 位置实参 2. 位置实参的顺序很重要 8.2.2 关键字实参 往…

计算机循环神经网络(RNN)

计算机循环神经网络(RNN) 一、引言 循环神经网络(RNN)是一种常见的深度学习模型,适用于处理序列数据,如文本、语音、时间序列等。RNN通过捕捉序列数据中的时间依赖关系和上下文信息,能够解决很…

CLIP的升级版Alpha-CLIP:区域感知创新与精细控制

为了增强CLIP在图像理解和编辑方面的能力,上海交通大学、复旦大学、香港中文大学、上海人工智能实验室、澳门大学以及MThreads Inc.等知名机构共同合作推出了Alpha-CLIP。这一创新性的突破旨在克服CLIP的局限性,通过赋予其识别特定区域(由点、…

Could not resolve all dependencies for configuration ‘:app:androidApis‘.

android studio出现Could not resolve all dependencies for configuration ‘:app:androidApis’. 试过很多种方法,但是都不好使,不管怎么样都是提示如下报错: Using insecure protocols with repositories, without explicit opt-in, is un…

丹麦市场开发攻略,带你走进童话王国

说起安徒生,大家多多少少都知道,因为小时候读的安徒生童话书真的太有名了,但是大家可能不知道安徒生是丹麦的。丹麦是高度发达的国家,奉行自由贸易政策,市场潜力是非常不错的,而且中国是丹麦非常重要的贸易…