计算机网络概述(三)

常见的计算机网络体系结构

OSI体系结构: 物理层→数据链路层→网络层→运输层→会话层→表示层→应用层
TCP/IP体系结构: 网络接口层→网际层→运输层→应用层
一般用户的设备都有TCP/IP协议用于连接因特网,TCP/IP的网络接口层并没有规定使用哪种网络结构(WIFI,有线宽带等)。
在这里插入图片描述
IP层一方面负责互联不同的网络接口,另一方面,又向应用层提供服务。
原理体系结构: 应用层←运输层←网络层←数据链路层←物理层

计算机网络分成结构的必要性

        计算机网络是一个非常复杂的系统。分层可将庞大的数学问题转化为若干较小的局部问题,易于处理和研究。
下面介绍计算机网络面对的主要问题:
1.物理层
采用怎么样的传输媒体,采用怎么样的物理接口,使用什么样的信号表示比特0和比特1.
2.数据链路层
如何标识网络中的各主机(主机编址问题)?
如何从信号所表示的一连串比特流中区分出地址和数据?
如何协调个主机正用总线?
数据链路层如何实现?
3.网络层
一个因特网由很多网络组成,那么如何表示因特网中的各网络和各主机?(网络和主机共同编织的问题,例如IP地址)
源主机和目的主机的链路往往不止一条,那么他如何选择路由呢?
4.运输层
如何表示一个主机上不同应用,比如主机上收到一条消息,那么消息是由QQ处理还是微信处理?
出现传输错误时,如何处理?
5.应用层
通过应用进程间的信息相互交换来实现网络应用

计算机网络体系结构分层思想举例

        主机向Web服务器发送请求,Web服务器收到请求后在发给浏览器,浏览器在解析信息,出现网页。
        其本质上是主机中的浏览器和Web的应用进行相互交互的过程。
那么,体系结构的各层起着怎样的作用?
        从主机端按体系结构自顶向下的顺序来看,应用层按HTTP协议构建一个HTTP请求报文,然后应用层将HTTP报文交给运输层处理,运输层给HTTP报文添加一个TCP首部,使其称为TCP报文段(TCP首部区分应用进程并实现可靠传输);然后运输层将TCP报文段传给网络层处理,网络层给TCP报文段添加一个IP首部,使其称为IP数据报(实现其可以被路由器转发)。然后ETH首部和ETH尾部,使其成为帧(首部使得帧可以在一个网络上传播,尾部用于检查其是否有误码)。然后数据链路层将帧传给物理层,物理层将其添加前导码(前导码为了让接收器做好接收准备),然后将其转化为信号发给路由器。
        路由器的处理过程为:物理层将前导码去掉,使其成为帧,数据帧链路将ETH首部和尾部去掉后(成为了IP数据报)将其交给网络层。网络层解析IP首部,提取目的地址,然后查找路由表确定转发端口。然后网络层在将其转给数据链路层,数据链路层添加ETH首部和ETH尾部使其成为帧,然后再给物理层,物理层在添加前导码,再将有添加比特码的数据流转为信号发给服务器。
        服务器的处理过程是:物理层将信号转换为比特流,在去掉前导码后交给数据链路层,数据链路层去掉ETH首部和尾部,交给网络层,网络层去掉IP首部交给运输层,运输层去掉TCP交给应用层。然后应用层在处理HTTP报文段。
        然后服务器在将处理后的数据用同样的方式发给主机。

在这里插入图片描述

计算机网络结构中的常用名词

实体:任何可发送或接收信息的硬件或软件进程。
对等实体:手法双方相同层次中的实体
协议:控制两个对等实体进行通信的逻辑的集合
在这里插入图片描述
        上面的这些逻辑通信实际中并不存在,只是假想出来的方便我们工作。
协议三要素:语法,语义,同步
         语法:定义所交互信息的格式
         语义:收发双方所要完成的操作
         同步:定义双方收发的时序关系
服务:两个对等实体间的逻辑通信使得本层能够向上一层提供服务
要实现本次协议,还需要使用下面一层所提供的服务。协议是水平的,服务是垂直的。
服务访问点:同一系统中相邻两层实体交换信息的逻辑接口,用去区分不同的服务
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
协议数据单元PDU:对等层次之间传输的数据包称为改成的协议数据单元。
服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务单元数据。
在这里插入图片描述

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

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

相关文章

【Redis】秒杀业务设计、悲观锁与乐观锁

1 全局ID生成器 一些情境下,使用数据库的ID自增将会产生一些问题。 一方面,自增ID规律性明显,可能被猜测出来并产生一些漏洞另一方面,当数据量很大很大很大时,单表数据量可能会受到限制,需要分表&#xf…

网络编程5——TCP协议的五大效率机制:滑动窗口+流量控制+拥塞控制+延时应答+捎带应答

文章目录 前言一、TCP协议段与机制TCP协议的特点TCP报头结构TCP协议的机制与特性 二、TCP协议的 滑动窗口机制 三、TCP协议的 流量控制机制 四、TCP协议的 拥塞控制机制 五、TCP协议的 延时应答机制 六、TCP协议的 捎带应答机制 总结 前言 本人是一个普通程序猿!分享一点自己的…

RabbitMQ在SpringBoot中的高级应用(2)

过期时间 1.单独的设置队列的存活时间,队列中的所有消息的过期时间一样 Bean//创建交换机public DirectExchange ttlQueueExchange(){// 交换机名称 是否持久化 是否自动删除return new DirectExchange("ttl_queue_log",true,false);}Bean//创建队列publ…

吴恩达ChatGPT《LangChain for LLM Application Development》笔记

基于 LangChain 的 LLM 应用开发 1. 介绍 现在,使用 Prompt 可以快速开发一个应用程序,但是一个应用程序可能需要多次写Prompt,并对 LLM 的输出结果进行解析。因此,需要编写很多胶水代码。 Harrison Chase 创建的 LangChain 框…

需求分析引言:架构漫谈(五)架构师成长之路

我研发领域也从事了一些年,期间也做过一些架构设计工作,包括C#单体转型为Java微服务、Python单体转型为Java微服务等, 也尝试着从自己的经验角度,来汇总一些知识点,同时描述一下如何成长为一个合格的软件架构师&#x…

基于SpringBoot+Vue+微信小程序的电影平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 研究背景:…

Docker 中的 .NET 异常了怎么抓 Dump (转载)

一、背景 1. 讲故事 有很多朋友跟我说,在 Windows 上看过你文章知道了怎么抓 Crash, CPU爆高,内存暴涨 等各种Dump,为什么你没有写在 Docker 中如何抓的相关文章呢?瞧不上吗? 哈哈,在DUMP的分析旅程中&a…

提升工作效率:推荐几款实用的Mac项目管理工具!

在当今软件和技术高度发达的时代,项目管理依然是一项非常重要的任务。现在,有越来越多的人喜欢使用mac电脑进行项目管理,因为mac众所周知的稳定性和使用便捷性。但问题是,mac系统自带的项目管理工具并不是非常完美,因此…

Linux——进程信号详解

目录 一.进程信号的理解 1.1定义: 1.2举例: 1.3总结: 二.进程信号地使用: 2.1信号种类: 2.2而操作系统向进程发送信号地方式有四种: 2.2.1以键盘的方式向进程发送信号 接下来介绍一个系统调用函数sign…

Windows系统上安装Node.js图文步骤流程

Windows系统上安装Node.js图文步骤流程,本文以安装Node.js v4.4.3 LTS(长期支持版本)版本为例: 目录 Node.js下载 Windows 上安装 Node.js 1、Windows 安装包(.msi) 2、Windows 二进制文件 (.exe)安装 版本测试 Node.js下载 Node.js 安装包及源码…

nginx七层代理和四层转发的理解

先来理解一下osi七层模型 应用层 应用层是ISO七层模型的最高层,它直接与用户和应用程序交互,提供用户与网络的接口。它包括各种应用协议,如HTTP、FTP、SMTP等,用于实现特定应用的功能和通信表示层 表示层…

Java进程ProcessBuilder类的介绍及使用,ProcessBuilder调用外部程序执行shell命令Linux命令

目录 ProcessBuilder类的介绍及使用 【前言】 【正文】 --构造方法-- --常用方法-- --使用技巧-- --调用本地Shell命令,实例-- 【总结】 【注意】 ProcessBuilder类的介绍及使用 【前言】 在做一个项目的时候需要用到运行时动态执行JAVA命令,一…

leetcode 225.用队列实现栈

⭐️ 题目描述 🌟 leetcode链接:用队列实现栈 1️⃣ 思路和图解: push: 入栈操作只需要往不为空的队列入数据即可,如果都为空,其中任意一个队列都可以。 void myStackPush(MyStack* obj, int x) {// 往…

CS EXE上线主机+文件下载上传键盘记录

前言 书接上文,CobaltStrike_1_部署教程及CS制作office宏文档钓鱼教程,该篇介绍【使用CS生成对应exe木马,上线主机;对上线主机进行,文件下载,文件上传,键盘记录】。 PS:文章仅供学习…

数仓建设中最常用模型--Kimball维度建模详解

数仓建模首推书籍《数据仓库工具箱:维度建模权威指南》,本篇文章参考此书而作。文章首发公众号:五分钟学大数据,公众号后台发送“维度建模”即可获取此书籍第三版电子书 先来介绍下此书,此书是基于作者 60 多年的实际业…

SpringBoot前后端分离项目,打包、部署到服务器详细图文流程

文章目录 实施步骤一、修改配置文件地址1.修改MySQL配置2.修改Redis配置3.修改日志路径和字符集配置 二、将源码压缩并上传服务器1.上传前端文件2.上传后端文件(同上) 三、前端项目打包1.安装依赖2.项目打包 四、后端项目打包1.项目打包(jar包…

Ubuntu 20.04 LTS 安装 nvidia 驱动 + cuda 11.8 从开始到放弃!

升级 sources.list # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restri…

java的断言

断言介绍 Java的断言就是一条assert 声明,其中包含了一个布尔表达式。 断言可以被启用或者禁用,默认是禁用的。 断言被启用的情况下,执行到断言的声明,就会计算布尔表达式的值。如果表达式的值为false,那么就会抛出一…

9、架构:CLI 设计

通常大部分的程序员会更加习惯使用 CLI(Command-Line Interface 命令行界面)来辅助开发业务,包括初始化、更新、构建、发布等功能,可以获得沉浸式一站的开发体验。 在之前有一篇企业级 CLI 开发实战介绍过如何开发一款适用团队的…

阿里开业项目chat2DB-人工智能SQL分析介绍

1. chat2DB简介 1-1. 简介 ​ chat2DB是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力,能够将自然语…