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

在这里插入图片描述

  • 我最近开了几个专栏,诚信互三!
    ====> |||《算法专栏》::刷题教程来自网站《代码随想录》。|||
    ====> |||《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提供服务。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp,点击选中并改变颜色,第二次点击取消选中状态

一、效果图 二、代码实现 字符串的indexOf和数组的indexOf用法一致! arr.indexOf(item) 该方法返回某个元素在数组中的位置。若没检索到,则返回 -1。 关键代码:(通过:class绑定) :class"selectList.indexOf(sub.type) ! -1 ? right_ite…

Linux Zabbix企业级监控平台本地部署并实现远程访问

前言 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 本地zabbix web管理界面限制在只能局域…

SD-WAN跨国网络加速的原理

许多企业需要在全球范围内高效传输和交流数据,然而,跨国网络连接面临着多种挑战,如网络延迟、拥塞和数据包丢失,这些问题可能会显著降低企业的运作效率和客户体验。为了克服这些问题,越来越多的企业正在采用SD-WAN跨国…

android悬浮窗气泡点击穿透事件

一个小众功能记录:新增气泡,拖动气泡,点击气泡事件传递到下层 文章底部附上demo 效果: 1、新建一个service,都在这里面实现 左侧悬浮窗: private void setFloatWinow() {floatingView LayoutInflater.…

第二证券:结构性行情或将延续 泛科技有望继续走强

展望未来,当时已进入重要的方针窗口期,能否有超预期的新方针推出是改变商场的要害。但复盘2023年的行情来看,过早买卖方针预期的成功率并不高,因而主张该方位以防御性资产为主,高股息资产从本年9月份至今现已调整了2个…

科研论文中PPT图片格式选择与转换:EPS、SVG 和 PDF 的比较

当涉及论文中的图片格式时,导师可能要求使用 EPS 格式的图片。EPS(Encapsulated PostScript)是一种矢量图格式,它以 PostScript 语言描述图像,能够无损地缩放并保持图像清晰度。与像素图像格式(如 PNG 和 J…

Redis(三):常见数据类型:List、Set、Zset

List 列表 列表类型是用来存储多个有序的字符串, 如图: a、b、c、d、e 五个元素从左到右组成 了⼀个有序的列表,列表中的每个字符串称为元素(element),⼀个列表最多可以存储个元素。在 Redis 中&#xff…

虹科分享 | CanEasy多场景应用,让汽车总线测试更简单

CanEasy是一个基于Windows的总线工具,用于分析和测试CAN、CAN FD和LIN以及汽车以太网系统。通过高度自动化和简单的配置模拟总线流量,CanEasy可用于分析真实网络、模拟虚拟系统,以及在整个开发过程中进行剩余总线模拟,实现从测试到…

Todesk、向日葵等访问“无显示器”主机黑屏问题解决

我的环境是 ubuntu 22.04 安装 要安装 video dummy,请在终端中运行以下命令: sudo apt install xserver-xorg-video-dummy配置 video dummy 的配置文件请自行搜索 使用任何文本编辑器打开此文件。 我的是 /etc/X11/xorg.conf 默认配置文件包含以下内…

vue chrome debugger 无效

昨天晚上debbger可以正常运行的,但是早上起来突然间所有的debugger都不会被命中,重装了vscode,也清了浏览器缓存,可是这个bitch还是不行!整整折腾了一早上,就是无法解决,没办法只能找找资料 ,搜…

dockerfile创建镜像 lNMP+wordpress

dockerfile创建镜像 lNMPwordpress nginx dockernginx mysql dockermysql php dockerphp nginx vim nginx.conf vim Dockerfile docker network create --subnet172.17.0.0/16 --opt "com.docker.network.bridge.name""docker1" mynetwork docker buil…

DeepDrive双转子径向磁通电机

DeepDrive公司开发的是一种高效、高性能、低成本的双转子径向磁通电机系统(含控制器)。该系统具有较高的成本效益和资源效率,并拥有更高的能效,能显著提升电动车续航能力,同时亦能有效控制生产成本,减少自然…

【LuatOS】简单案例网页点灯

材料 硬件:合宙ESP32C3简约版,BH1750光照度模块,0.96寸OLED(4P_IIC),杜邦线若干 接线: ESP32C3.GND — OLED.GND — BH1750.GND ESP32C3.3.3V — OLED.VCC — BH1750.VCC ESP32C3.GPIO5 — OLED.SCL — BH1750.SCL E…

智能优化算法应用:基于猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.猫群算法4.实验参数设定5.算法结果6.参考文献7.MA…

c++ map

unordered_map #include <iostream> #include <string> #include <unordered_map>int main() {// 创建包含三个字符串的&#xff08;映射到字符串的&#xff09;unordered_mapstd::unordered_map<std::string, std::string> u {{"red", &qu…

el-collapse 默认展开第一个(实测有效)

<el-collapse accordion v-model"activeCollapse"> <el-collapse-item v-for"(item, index) in assetList" :name"index" :key"item.id" > 我这个是通过循环, 只需要v-model 绑定的值和 name 相等,就可以实现展开 然后就…

調整 Windows server DHCP 日誌存儲大小

(1) 開啟 [Windows PowerShell] (2) 查看 DHCP Server 稽核 Log 設定 PS C:\> Get-DhcpServerAuditLog (3) 設定 DHCP Log 檔案大小 PS C:\> Set-DhcpServerAuditLog -MaxMBFileSize 700 註冊表位置&#xff1a;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\S…

【产品经理】需求池和版本树

在这个人人都是产品经理的时代&#xff0c;每位入行的产品人进阶速度与到达高度各有不同。本文作者结合自身三年产品行业的经历&#xff0c;根据案例拆解产品行业的极简研发过程、需求池、版本树、产品自我优化等相关具体方法论。 一、产品研发的极简过程 1. 产品概述 产品就…

【笔记】硬件工程师入门基础课程

学习视频&#xff08;b站&#xff09;&#xff1a;硬件工程师入门基础元器件课程 基础元器件课程 p1 电阻1. 定义、特性及参数1.1 色环电阻 识别方法&#xff1a;1.2 伏安特性1.3 基本参数 2.电阻的功能2.1 分压2.2 限流2.3 浪涌保护 3. 如何选择电阻 p2 电容1. 电容的定义1.1电…

SpringBoot入门及整合

前言 Spring Boot是一个基于Spring框架的快速开发脚手架&#xff0c;它简化了Spring应用的初始化和搭建过程&#xff0c;提供了众多便利的功能和特性并且使用"习惯优于配置"的理念&#xff0c;通过提供默认设置来快速搭建应用&#xff0c;同时也保留了灵活性以进行定…