【图解计算机网络】网络协议分层解析

网络协议分层解析

  • 网络协议分层
    • 应用层
    • 传输层
    • 网络层
    • 数据链路层
  • TCP/IP分层模型通讯示例

网络协议分层

网络协议分层一共有OSI七层网络协议,TCP/IP四层网络网络协议,还有五层网络协议。

在这里插入图片描述

七层由于分层太多过于复杂,实际应用中并没有使用,而是使用TCP/IP作为参考模型。但是TCP/IP是四层的模型,网络接口层包含了链路层和物理层,因此不利于学习和理解,所以我们在学习网络协议的时候,一般是使用的五层协议模型。

应用层

应用层定义的是应用程序之间用于通信的报文格式,通过定义好格式的报文,按照一定的规则,应用程序就能互相通信,互相交换数据。

比如我们的浏览器与服务器之间通过http报文通信,浏览器通过http报文描述它需要请求的服务器上的接口或资源,以及请求携带的参数,服务器通过http报文给浏览器返回指定的资源或接口响应的数据。

在这里插入图片描述

传输层

应用层只是定义了应用程序通信使用的协议报文的格式,应用层自己没有办法把报文送到对方手上。要把报文送到对方,还要依赖于下层协议,应用层直接依赖的下层协议就是传输层。

传输层提供了应用程序间通讯的能力,应用层只要依赖传输层,就可以实现彼此间的通讯。传输层定义了端口这个概念,应用程序发送数据需要通过端口发送,接收数据也要通过端口接收。当一个数据包到达对方服务器,通过目标端口,就可以知道这个报文要让哪个应用程序接收。然后目标应用层序也可以通过源端口,知道对方的端口是什么。

在这里插入图片描述

网络层

传输层再依赖于下层的网络层。网络层定义了IP地址,IP地址是一台服务器的地址,通过IP地址就可以定位到一台服务器。路由器通过目标IP地址进行网间路由,最终会把数据包路由到目标服务器。

在这里插入图片描述

路由器通过路由表,就可以判断出一个数据包通过哪个网络接口发出去,它的下一跳地址是什么。

在这里插入图片描述

路由表包含:网络目标、网络掩码、网关(也就是下一跳地址)、接口(本机发送数据包到网关要走的网络接口)。

在这里插入图片描述

只要拿到一个目标IP地址,就可以按如下规则在路由表中进行匹配,匹配成功之后,就可以通过接口把数据包发送到下一跳节点。

在这里插入图片描述

可以看到,匹配规则就是拿目标IP地址与该条目的掩码进行按位与计算,得出的结果如果等于网络目标的IP地址,那么就通过该条目的接口,发送数据包到网关(下一跳节点)。

数据链路层

数据链路层定义了MAC地址,有了下一跳的IP地址,还需要通过IP地址取得对应的MAC地址,才能把数据包发送到下一跳节点。通过ARP协议,就可以根据IP地址获得对应的MAC地址。

在这里插入图片描述

当前节点通过广播发送ARP协议报文,ARP协议报文携带待解析的IP地址,当与该IP地址匹配的节点收到该ARP协议报文时,就会返回自己的IP地址。

在这里插入图片描述

通过ARP协议还可以让我们的服务器通过路由器的IP地址得到路由器的MAC地址,就可以把数据包发送到路由器,路由器就可以帮我们把数据包发送出去。

在这里插入图片描述

MAC地址还被交换机用于子网内的通讯,我们的服务器通过ARP协议获得路由器的MAC地址,然后交换机就可以通过路由器的MAC地址帮我们把数据包转发到路由器,路由器帮我们把数据包发送出去。当对方子网的路由器接收到数据包后,也可以通过交换机把数据包发送到目标服务器。

在这里插入图片描述

可以看到,网络协议分层中的每一层都不是独立的,而是上层依赖于下层的。

在这里插入图片描述

TCP/IP分层模型通讯示例

首先应用层组装好应用层协议报文,比如基于http协议通讯的应用则根据http协议的规则组装好http报文。

在这里插入图片描述

然后应用层把该http报文交给传输层,假如传输层是基于TCP协议的,那么就会把http报文切分成一个个数据包,并且在数据包外面包装上TCP协议报文头,里面包含了源端口和目标端口。

在这里插入图片描述

然后传输层再把每个数据包交给网络层,假如网络层使用的是IP协议,会在外面包裹一个IP协议报文头,IP协议头包含了源IP地址和目标IP地址。

在这里插入图片描述

然后网络层再交给链路层,链路层会再外面再包裹一个MAC头,里面携带当前节点的MAC地址和下一跳MAC地址。

在这里插入图片描述

这个报文就彻底的组装好了,然后就交给网卡,网卡就把它转成特定的物理信号(比如电信号)通过网线把它发送出去。

在这里插入图片描述

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

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

相关文章

代码编辑工具PilotEditPro18.4版本在Windows系统的下载与安装配置

目录 前言一、PilotEdit Pro安装二、使用配置总结 前言 “ PilotEdit Pro是一个功能强大且功能丰富的文本和代码编辑器,可满足程序员、开发人员和IT专业人员的不同需求。定位为一个多功能的编辑解决方案,PilotEdit Pro以其对广泛的文本和代码文件格式的…

Nginx莫名奇妙返回了404

描述 nginx作为反向代理,代理python的服务,但是通过代理访问服务的时候,报了404的错误。 难受的是客户现场没有查看日志的权限,只有查看配置文件的权限,我们检测了几遍配置文件也没有找到问题,哎~ 问题引…

相机摄影入门技巧,数码摄影技巧大全

一、资料前言 本套数码相机摄影资料,大小1.08G,共有42个文件。 二、资料目录 《aking人像摄影技巧分享》.pdf 《Nikon.D90数码单反摄影技巧大全》FUN视觉.全彩版.pdf 《不可不学的摄影技巧》.pdf 《常用场景摄影》.pdf 《单反数码摄影专家技法》.…

【Web】AFCTF 2021 题解(部分)

目录 BABY_CSP search secret google authenticator 随便做做,环境是NSS上的 BABY_CSP CSP绕过_script-src self-CSDN博客 CSP指令值 *: 星号表示允许任何URL资源,没有限制; self: 表示仅允许来自同源&#xff…

盲人购物指南:智能化辅助引领超市购物新体验

作为一名资深记者,我有幸见证了一位盲人朋友借助一款名为蝙蝠避障的高科技辅助应用,独立完成超市购物之旅,这一过程充分展示了盲人购物指南新时代的到来。 在前往超市的路上,这款应用犹如一位贴心的“电子向导”,实时为…

Android Room 记录一个Update语句不生效的问题解决记录

代码展示 1.数据实体类 Entity public class User {PrimaryKey(autoGenerate true)private long id;private String name;private String age;private String sex;public User(String name, String age, String sex) {this.name name;this.age age;this.sex sex;}public …

【剪映专业版】14为视频添加炫酷特效

视频课程:B站有知公开课【剪映电脑版教程】 1.特效 画面特效:用于整个画面 人物特效:仅用于画面中的人物,如画面中无人,则不起作用 2.添加特效 按号添加 可通过鼠标推动实现特效时间调节 可叠加使用特效 3.特效修…

危险场景智能运维巡检系统

在石油、天然气、煤炭和化工等行业,特别是在I/IIC级防爆区场景中,存在着诸如易燃、易爆、高温、有毒有害以及粉尘等危险因素。例如,油气转运站、催化裂化装置、煤化工甲醇车间以及制氢站等地点,都面临着这些潜在的危险。传统的人工…

34. 【Android教程】菜单:Menu

作为 Android 用户,你一定见过类似这样的页面: 它就是我们今天的主角——菜单,它的使用场景和作用不用多说,几乎每个 App 都会用到它,今天我们就一起来看看 Android 提供的几种菜单类型及用法。 1. 菜单的几种类型 根…

如何实现文件上传到阿里云OSS!!!(结合上传pdf使用)

一、开通阿里云OSS对象存储服务 对象存储 OSS_云存储服务_企业数据管理_存储-阿里云阿里云对象存储 OSS 是一款海量、安全、低成本、高可靠的云存储服务,提供 99.995 % 的服务可用性和多种存储类型,适用于数据湖存储,数据迁移,企…

数据结构- 顺序表-单链表-双链表 --【求个关注!】

文章目录 一 顺序表代码: 二 链表单链表双向链表 一 顺序表 顺序表是线性表的一种 所谓线性表指一串数据的组织存储在逻辑上是线性的,而在物理上不一定是线性的 顺序表的底层实现是数组,其由一群数据类型相同的元素组成,其在逻辑…

「Word 论文排版」插入分节符导致word转PDF后出现空白页

问题 word转PDF后出现空白页 解决 但是此方法会让页面页脚标记出错 TODO 如下图所示 在论文目录后有一个分节符,转成PDF之后就多了一个空白页 文件-打印-页面设置-选中封面那一页-版式-从偶数页开始 再导出空白页就没了

Java编程题 | 数组元素交换

大家可以关注一下专栏,方便大家需要的时候直接查找,专栏将持续更新~ 题目描述 编写一个Java程序,输入一个整数数组,将最大的元素与第一个元素交换,最小的元素与最后一个元素交换,然后输出修改后的数组…

香港多IP服务器在建立高可用性网站架构中的作用?

香港多IP服务器在建立高可用性网站架构中的作用? 在构建高可用性的网站架构时,选择合适的服务器和配置是至关重要的。香港多IP服务器因其独特的地理和技术优势,成为了全球许多企业的首选。这些服务器由于拥有多个IP地址,能够提供…

OpenHarmony多媒体-mp3agic

简介 mp3agic 用于读取 mp3 文件和读取/操作 ID3 标签(ID3v1 和 ID3v2.2 到 ID3v2.4),协助开发者处理繁琐的文件操作相关,多用于操作文件场景的业务应用。 效果展示: 下载安装 ohpm install ohos/mp3agicOpenHarmony ohpm环境配…

Docker Desktop打开一直转圈的解决办法

安装Docker Desktop之前确保你的Hyper-V已经打开 开启后需要重新安装重新安装重新安装这是最关键的一步,博主自己看了很多教程,最后试着重装了一下解决了 安装DockerDesktop的时候我的电脑根本就没有Hyper-V这个功能选项,可能是这个问题 如…

域名信息查询同款WHOIS源码

域名查询一般是指查询域名的whois注册信息,域名WHOIS是当前域名系统中不可或缺的一项信息服务。在使用域名进行Internet冲浪时,很多用户希望进一步了解域名、名字服务器详细信息 源码免费下载地址抄笔记 (chaobiji.cn)https://chaobiji.cn/

力扣打卡第一天

101. 对称二叉树 C: class Solution { public:bool isSymmetric(TreeNode* root) {return check(root->left,root->right);}bool check(TreeNode *p,TreeNode *q){ /**定义check方法用来检查两棵树是否是镜像的*/if (!p && !q) return true; /* 如…

鸿蒙开发语言_ArkTS开发语言体验_TypeScript语言环境搭建_TS声明和数据类型---HarmonyOS4.0+鸿蒙NEXT工作笔记003

可以看到我们新建的这个项目,有个 @State message: String =Hello ArkTS 这个就是定义了一个变量,可以看到 message是变量名,String是变量类型. 然后我们可以看看它的结构可以看到 build() 下面有个Row,然后再下面有个Column方法,然后,里面就是具体的内容了,首先就是显示了一…

Python数据结构【四】排序(二)难度:困难

文章目录 前言一、书接上回二、快速排序(Quick Sort)2.1 快速排序思想2.2 快速排序代码实现2.3 快速排序复杂度分析 三、堆排序(Heap Sort)3.1 堆排序思想3.2 堆排序代码实现3.3 堆排序复杂度分析 结语 前言 可私聊进一千多人Pyth…