计算机网络——计算机网络体系结构(3/4)-计算机网络体系结构分层思想举例

目录

发送请求报文

应用层构建HTTP请求报文

运输层添加TCP首部

网络层添加IP首部

数据链路层形成帧

物理层转化为比特流

路由器处理

服务器处理

发回响应报文


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


假设网络拓扑如下所示,主机属于网络N1,Web服务器属于网络N2,N1和N2通过路由器互连。

打开一个网页的简化过程:

我们使用主机中的浏览器来访问Web服务器,当输入网址后,主机会向Web服务器发送请求。Web服务器收到请求后,会发回相应的响应。主机的浏览器收到响应后,将其解析为具体的网页内容显示出来。

主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信。

那么,体系结构的各层,在整个过程中起到了怎样的作用呢?

发送请求报文

应用层构建HTTP请求报文

从主机端按体系结构自顶向下的顺序来看,应用层按HTTP协议的规定,构建一个HTTP请求报文,这是该报文的内容:

    

应用层将HTTP请求报文交付给运输层处理。

运输层添加TCP首部

运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段。这是TCP报文段的首部格式:

该首部的主要作用是为了区分应用进程以及实现可靠传输。运输层将TCP报文段交付给网络层处理。

网络层添加IP首部

网络层给TCP报文段添加一个IP首部,使之成为IP数据报,这是IP数据报的首部格式:

该首部的作用主要是为了使IP数据报可以在互连网上传输,也就是被路由器转发。网络层将IP数据报交付给数据链路层处理。

数据链路层形成帧

数据链路层给IP数据报添加一个首部和一个尾部使之成为帧。假设网络N1是以太网,这是以太网帧首部的格式:

该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的主机接收,这是以太网帧尾部的格式:

其作用是为了让目的主机检查所接收到的帧是否有误码数据链路层将帧交付给物理层

物理层转化为比特流

物理层将帧看作是比特流。由于网络N1是以太网,因此物理层还会给该比特流前面添加前导码。这是前导码的内容:

其作用是为了让目的主机做好接收帧的准备。物理层将添加有前导码的比特流变换成相应的信号发送到传输媒体。信号通过传输媒体到达路由器:

路由器处理

我们来看路由器的处理过程,

1.物理层将信号变成比特流

2.去掉前导码后,将其交给数据链路层,实际上交付的是帧

3.数据链路层将帧的首部和尾部去掉后,将其交付给网络层,实际上交付的是IP数据报

4.网络层解析IP数据报的首部,从中提取出目的网络地址, 然后查找自身的路由表,确定转发端口,以便进行转发。

5.网络层再将IP数据报交付给数据链路层,数据链路层给IP数据报添加一个首部和尾部,使之成为帧

6.数据链路层将帧交付给物理层,物理层将添加有前导码的比特流变换成相应的信号发送给传输媒体。

7.信号通过传输媒体到达Web服务器 

服务器处理

信号通过传输媒体到达Web服务器,我们来看Web服务器的处理过程。物理层将信号变换为比特流,去掉前导码后,将其交给数据链路层,这实际上交付的是帧;数据链路层将帧的首部和尾部去掉后,将其交付给网络层,这实际上交付的是IP数据报;网络层将IP数据报的首部去掉后,将其交付给运输层,这实际上交付的是TCP报文段;运输层将TCP报文段的首部去掉后,将其交付给应用层,这实际上交付的是HTTP请求报文。

发回响应报文

应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文。与之前的过程类似,HTTP响应报文需要在Web服务器层层封装,然后通过物理层变换成相应的信号,再通过媒体传输到路由器。路由器转发该响应报文给主机,主机通过物理层将收到的信号转换为比特流。之后通过逐层解封,最终取出HTTP响应报文。


END


学习自:湖科大——计算机网络微课堂

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

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

相关文章

C语言进阶第八课 --------通讯录的实现

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

C/C++面试常见问题——static关键字的主要用法

首先我们要明确一下C/C的内存区域划分 在C/C中内存主要被划分为四大块,堆,栈,全局/静态存储区,代码区 而全局/静态存储区又被细分为常量区(静态常量区,const关键字修饰),全局区(全局变量区)和静态变量区(…

卫星结构。。。

• 下图介绍了现代卫星中常见的组件,它们被分为 卫星有效载荷 和 卫星总线 。 – 卫星有效载荷 包括任务专用设备,例如用于地球观测的高分辨率相机或用于电信的强大无线电硬件。 – 卫星总线 包括操作和维护卫星所需的所有组件。 • 它被设计为独立于有效…

Tomcat部署项目的两种方式

第一种: 将项目放到tomcat的webapps目录下,war包会自动解压 里面有个页面 为什么会默认访问asd.html 可以配置 tomcat--->conf---->web.xml 第二种方式 在Tomcat/conf/Catalina/localhost/目录下随便建个xxx.xml文件 注意字符编码 utf-8 注意aaa就是上下文地址 …

PMP的智慧(2) - 系统性思考及复杂性

PMP的智慧(2) - 系统性思考及复杂性 在2021年推出的第七版《管理专业知识体系指南》中,PMI在传统的过程和ITTO的基础上,重新增加了12大项目管理原则。 管家式管理 stewardship团队 team干系人 stakeholders价值 value系统思考 system thinking领导力 l…

基于人工蜂鸟优化的BP神经网络(分类应用) - 附代码

基于人工蜂鸟优化的BP神经网络(分类应用) - 附代码 文章目录 基于人工蜂鸟优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.人工蜂鸟优化BP神经网络3.1 BP神经网络参数设置3.2 人工蜂鸟算法应用 4.测试结果…

进阶课2——语音分类

语音分类主要是对语音从不同的维度进行识别和分类,这些维度可以包括语种、性别、年龄段、情绪、说话人身份等,具体如下: 语种分类:根据发音人的母语或者惯用语言,将语音分为不同的语种,例如中文、英文、法…

中文编程工具开发语言编程案例:会员VIP管理系统软件实例

中文编程工具开发语言编程案例:会员VIP管理系统软件实例 中文编程工具开发语言编程案例:会员VIP管理系统软件实例。 软件功能: 1、系统设置:参数设定,账号及权限设置,系统初始化,卡类型设置&a…

学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例

要想通过SpringBoot写一个简单的处理请求的服务器(方法),需要有以下步骤 建立连接请求响应 来复习的话直接在文章末尾看源码就行 1、创建SpringBoot项目 https://blog.csdn.net/dream_ready/article/details/133948253 2、编写Controller建…

【docker】容器无法使用vi等命令,无法联网,无法换源如何解决?

解决方案: 在宿主机某个位置上创建文件: sources.list 然后修改文件,写入清华源 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricte…

Kotlin中抽象类与接口

Kotlin 中的抽象类和接口是面向对象编程中的重要概念,它们提供了一种用于定义和组织代码的方式。在下面的代码示例中,我们将介绍 Kotlin 中的抽象类和接口,并给出相应的示例。 抽象类 抽象类是一种不能被实例化的类,它仅用作其他…

Android 画板小工具

工作之余,自己想着利用空闲时间做一些小工具出来,今天分享的是一个简单的画板工具,支持轨迹绘制、更换笔迹颜色等功能,并且可以把成品保存到系统相册。支持Android 13 先看一下效果,吐槽一下csdn的视频上传&#xff0…

音频抓取代码示例

以下是一个使用DefaultsKit库的简单爬虫程序,用于爬取音频。代码中使用了https://www.duoip.cn/get_proxy的API获取代理服务器。 import Foundation import DefaultsKit ​ let url "https://www.douban.com/music" // 目标网站URL let proxyUrl "…

npm ERR! node-sass@6.0.1 postinstall: `node scripts/build.js`

1.遇到的问题 vue npm install提示以下错误 2.首次尝试方法 尝试用下面的方式重新安装弄得-saas,结果不起作用 。 npm config set sass_binary_sitehttps://npm.taobao.org/mirrors/node-sass npm install node-sass 这时考虑降级node版本,node.js从…

从手动操作到自动化管理,如何实现企业身份业务全面自动化?

在数字化时代,身份管理已经成为了企业和组织不可或缺的一部分,企业对于管理员工、客户和合作伙伴的身份信息和访问权限的需求变得愈发复杂。身份管理不仅仅是一项必要的任务,更是确保业务流畅运营和数据安全的关键因素。然而,传统…

系统架构之微服务架构

微服务架构 一.传统的单体架构与微服务架构的区别1.1 单体架构1.1.1 优点1.1.2 缺点 1.2 微服务架构1.2.1 优点1.2.2 面临的问题与挑战 二. 微服务架构模式方案2.1 聚合器微服务2.2 链式微服务2.3 数据共享微服务2.4 异步消息传递微服务 三. SOA与微服务的区别 微服务&#xff…

Vue 中setup的特性

特性四&#xff1a;父传子组件传参【defineProps】&#xff1a; 父组件&#xff08;传递数据&#xff09;&#xff1a;利用自定义属性传递数据。 <template><h3>我是父组件</h3><hr /><Child :name"info.name" :age"info.age"…

vue图表引用使用

如果你选择Vue作为你的前端框架&#xff0c;并且需要使用图表插件&#xff0c;那么可以考虑以下几种方式&#xff1a; 使用Vue插件&#xff1a;Vue有许多专门为图表设计的插件&#xff0c;如Vue-chartjs、Vue-echarts等。这些插件提供了一些已经封装好的组件并支持常见的图表库…

前端渲染后端返回的HTML格式的数据

在日常开发中&#xff0c;经常有需要前端渲染后端返回页面的需求&#xff0c;对于不同数据结构&#xff0c;前端的渲染方式也不尽相同&#xff0c;本文旨在对各种情况进行总结。 后端返回纯html文件格式 数据包含html标签等元素&#xff0c;数据类型如下图&#xff1a; 前端通…