计算机网络——计算机网络体系结构(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/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建…

音频抓取代码示例

以下是一个使用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…

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

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

“编辑微信小程序与后台数据交互与微信小程序wxs的使用“

引言 在现代移动应用开发中,微信小程序已经成为了一个非常流行和广泛使用的平台。为了使小程序能够展示丰富的内容和实现复杂的功能,与后台数据的交互是至关重要的。同时,微信小程序还提供了一种特殊的脚本语言——wxs,用于增强小…

图论03-【无权无向】-图的深度优先遍历-路径问题/检测环/二分图

文章目录 1. 代码仓库2. 单源路径2.1 思路2.2 主要代码 3. 所有点对路径3.1 思路3.2 主要代码 4. 路径问题的优化-提前结束递归4.1 思路4.2 主要代码 5. 检测环5.1 思路5.2 主要代码 6. 二分图6.1 思路6.2 主要代码6.2.1 遍历每个联通分量6.2.2 递归判断相邻两点的颜色是否一致…

MIPS指令集摘要

目录 MIPS指令R I J三种格式 MIPS五种寻址方式 立即数寻址 寄存器寻址 基址寻址 PC相对寻址 伪直接寻址 WinMIPS64汇编指令 助记 从内存中加载数据 lb lbu lh lhu lw lwu ld l.d lui 存储数据到内存 sb sh sw sd s.d 算术运算 daddi daddui dadd…

绿盾控制台如何给未授权终端分配相应权限

环境: 绿盾控制台7.0 问题描述: 绿盾控制台如何给未授权终端分配相应权限 解决方案: 1.进入桌面管理系统 2.通过终端号,找到未授权终端下面,选择相应的未授权终端 3.点击鼠标右键,选择分配授权模块 4.下…

01认识微服务

一、微服务架构演变 1.单体架构 将所有的功能集中在一个项目开发,打成一个包部署。优点架构简单,部署成本低。缺点耦合度高,不利于大型项目的开发和维护 2.分布式架构 根据业务功能对系统进行拆分,每个业务模块作为独立的项目…

修改ConsoleApplication17_2项目实现oss上线

首先创建号oss,上传文件,复制临时链接 木马内写 可以看到能成功上线但是有个问题就是占用cpu大小为9%左右,这里我用的是腾讯云oss实现的,用阿里云oss实现也是9%左右 我再次进行url的aes加密 还是百分之9左右, 这里…

npm publish发布到在线仓库时,提示:Scope not found

当npm publish发布时,控制台提示:Scope not found,具体错误信息如下: npm notice npm ERR! code E404 npm ERR! 404 Not Found - PUT https://registry.npmjs.org/xxx%2fxxx - Scope not found npm ERR! 404 npm ERR! 404 xxx/xx…