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

news2024/10/7 4:27:34

目录

发送请求报文

应用层构建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.coloradmin.cn/o/1119918.html

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

相关文章

卫星结构。。。

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

CorelDRAW Graphics Suite2024完整版最新功能介绍

CorelDRAW平面设计软件通常也被叫做CDR,CDR广泛应用于排版印刷、矢量图形编辑及网页设计等领域。通过CorelDRAW体验极具个性的自由创作,大胆展现真我,交付出众的创意作品。CorelDRAW拥有矢量插图、页面布局、图片编辑和设计工具,无…

基于鱼鹰优化的BP神经网络(分类应用) - 附代码

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

计算机组成原理 03 1.2.3 计算机的层次结构 编译程序 解释程序

文章目录 计算机系统的层次结构计算机层次结构之间的联系虚拟机和裸机编译型语言和解释型语言编译型语言和解释型语言的区别编译程序和解释程序的区别 如何理解编译/解释速度 和运行速度编译型语言和解释型语言的优劣编译 汇编 解释 编译程序和解释程序写题目的时候需要注意的点…

Java学习_day03_变量数据类型运算符

文章目录 变量定义声明赋值使用简化 数据类型基本数据类型整型浮点型布尔型字符型空型 引用数据类型数据类型转换自动类型转换强制类型转换 运算符算术运算符赋值运算符比较运算符逻辑运算符位运算符条件运算符一元运算符二元运算符三元运算符运算符优先级 变量 变量类似于数学…

毅速丨3D打印结合拓扑优化 让轻量化制造更容易

制造轻量化对于提高能源利用效率、提高产品性能和减少环境影响,推动制造业的绿色化、高质量发展具有重要的促进作用。 轻量化设计对许多领域都有着重要影响,尤其是那些需要降低能源消耗、提高运输效率或减少对环境影响的领域。如航空航天,轻量…

Qt学习:使用OpenGL绘制3D图形

文章目录 前言一、Qt下使用OpenGL绘制图形介绍二、示例完整代码总结 前言 文章中引用的内容均来自这本书中的原文:【Qt Creator快速入门_霍亚飞编著】,本文的示例也是在书中代码的基础上进行编写的(其中部分代码使用原文编译不过&#xff0c…

基于协作搜索优化的BP神经网络(分类应用) - 附代码

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

自然语言处理---文本预处理概述

自然语言处理(Natural Language Processing,简称NLP)是计算机科学与语言学中关注于计算机与人类语言间转换的领域。其主要应用于:语音助手、机器翻译、搜索引擎、智能问答等。 文本预处理概述 文本语料在输送给模型前一般需要一…

【iOS】AFNetworking的基本使用

使用AFNetworking框架需要Cocoapods进行管理 所以要预先配置好Cocoapods,具体步骤见这篇文章:【iOS】CocoaPods的安装及其使用方法 简介 AFNetworking是一款cocoapods的网络请求库,在Foundation框架基础上,提供了一套简单易用的…

基于厨师优化的BP神经网络(分类应用) - 附代码

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

C#,数值计算——分类与推理Phylo_clc的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Phylo_clc : Phylagglom { public override void premin(double[,] d, int[] nextp) { } public override double dminfn(double[…

Studio One 6.5新版本功能讲解及一键安装下载教程

Studio One 6.5 发布:整合 Dolby Atmos 全景声,跟 Bitwig 联合推出开放的 DAWproject 格式,支持 Linux! PreSonus 的“.5”更新通常都有比较大的变化,这次也不例外。Studio One 6.5 增加了一种全新的工作方式&#xff…

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

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

【计网 EMail】计算机网络 EMail协议详解:中科大郑烇老师笔记 (五)

目录 0 引言1 电子邮件EMail1.1 组成1.2 SMTP协议1.3 案例:Alice给Bob发送报文1.4 SMTP总结1.5 邮件报文格式1.6 POP3协议和IMAP协议 🙋‍♂️ 作者:海码007📜 专栏:计算机四大基础专栏📜 其他章节&#xf…

【RocketMQ系列九】SpringCloudStream整合RocketMQ

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…

2023-10-15 LeetCode每日一题(只出现一次的数字)

2023-10-15每日一题 一、题目编号 137. 只出现一次的数字 II二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并…

MySQL数据库查询实战操作

前置条件: 创建库:MySQL基本操作之创建数据库-CSDN博客 创建表:MySQL基本操作之创建数据表-CSDN博客 目录 常规查询常用函数union查询一、常规查询 1、查询所有姓名以 "张" 开头的学生: SELECT * FROM student WHERE name LIKE 张%; 这条语句使用 LIKE 运算…

Linux磁盘扩容(加硬盘法)

目录 ​编辑 1、虚拟机操作 2、查看当前分区 3、更新并重启虚拟机 4、对新磁盘分区 5、对新分区进行格式化 6、进行文件系统扩展 1、虚拟机操作 点击添加 2、查看当前分区 fdisk -l3、更新并重启虚拟机 shutdown -r now 然后虚拟机会重启 在此查看当前分区 fdisk -l…

Pycharm设置项目的python环境与界面上terminal的shell运行环境

1、首先打开左上角的file–>settings 2、设置项目运行环境如下所示: 3、设置ternimal的shell执行环境如下所示: