OSI七层网络模型与TCP/IP四层模型

news/2024/5/18 14:26:20 标签: 网络, tcp/ip, udp

一、OSI七层网络模型

OSI 七层模型 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示:
在这里插入图片描述
但由于各方面原因,OSI 七层模型并没有被广泛应用,更多的是作为网络分层的一种基础理论模型。

二、TCP/IP 四层模型

TCP/IP 四层模型 是目前被广泛采用的一种模型,我们可以将 TCP / IP 模型看作是 OSI 七层模型的精简版本

1. 应用层

应用层位于传输层之上,主要提供两个主机上的应用程序之间信息交换的服务,它定义了信息交换的格式,也就是说决定了发送数据的格式以及如何解析处理收到的数据,那具体的数据传输工作会通过封装好的底层api交给下一层传输层来处理。

常见应用层协议:HTTP,DNS,FTP,DHCP

2. 传输层

传输层位于网络层之上,负责控制进程托付的数据通过网络层发送给另一台主机的进程,它并不关心要传输的数据的内容和格式,只负责控制如何发送和接收数据,要发送时将数据段加上传输层协议的头部然后交给下一层网络层去发送。

例如TCP协议,它是面向连接的传输层协议,由于它要在不可靠的网际通信中建立可靠的数据传输通道,协议规定数据传输前要先和目的主机的传输层进行三次握手建立连接以确保能够通信,然后才开始发送数据,还要根据情况控制发送数据的速度或者重传数据,以确保对方能够收到完整的数据,并且最后不需要连接的时候通过四次挥手关闭双方的连接。

而UDP协议是无连接协议,它只管把数据发送出去,而不保证对方有没有收到。

主要传输层协议:TCP,UDP

3. 网络

网络负责规划如何将数据从一个网络中的主机传输到另一个网络中的主机,网络节点错综复杂,网络层就负责规划路径该怎么走,每台网络设备中都维护了一个路由表,通过查询路由表得知应该走哪个网络节点到哪个网络节点,最后能到达目的主机。

网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 报头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。那么传输的过程中就根据IP进行路由寻址,寻找下一个要转发的节点,最终转发到目的主机。

如下图所示,在主机A上ping 1.1.1.5,在数据到达网络层后,通过与子网掩码与运算对比网段,发现和主机A不在一个网段不能直接发送,于是查询本机路由表看有没有到主机B的路由,没有则将数据转发给默认网关节点,网关节点接着在所连接的另一个子网中重复上一步的动作,对比网段,若发现仍不在一个网段,则查询路由表继续转发,若在一个网段,则将数据转发给对应主机。(参考:1. IP路由器寻址过程 2. 路由表)

在这里插入图片描述

主要网络层协议:IP协议(还有为IP协议服务的ARP协议、NAT地址转换协议等),ICMP 协议(基于IP协议)

4. 网络接口层

网络接口层包括数据链路层和物理层,负责在以太网(局域网)中将数据从一台机器真实的搬运到另一台机器。前面网络层规定了每一步走哪个节点,但两个节点间实际的数据传输工作是网络接口层完成的,而在以太网中要实际定位一台设备节点是通过MAC地址,因此在网络接口层首先通过ARP协议获取下一个节点的IP对应的MAC地址,放在帧信息中把IP报文包上,最后再通过物理层传输到以太网中的对应设备节点。

在这里插入图片描述
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。

主要网络接口层协议:MAC协议

参考:https://xiaolincoding.com/network


http://www.niftyadmin.cn/n/227855.html

相关文章

[JAVASE]初识Java:数据类型与变量

CSDN的各位友友们你们好,今天千泽为大家带来的是 [JAVASE]初识Java:数据类型与变量、运算符, 接下来让我们一起了解一下吧! 如果对您有帮助的话希望能够得到您的支持和关注,我会持续更新 数据类型与变量 数据类型 在Java中数据类型分为基本数据类型与引用数据类…

算法记录 | Day27 回溯算法

39.组合总和 思路: 1.确定回溯函数参数:定义全局遍历存放res集合和单个path,还需要 candidates数组 targetSum(int)目标和。 startIndex(int)为下一层for循环搜索的起始位置。 2.终止条件…

哈夫曼树和最小生成树

哈夫曼树 首先给我们一串权值,然后我们需要让这串权值组成一个树,然后当他的wpl最小 我们可以发现当他的小权值离根节点越远,大权值离根节点越近的时候,我们这个时候构建出来的树就是wpl最小的树,也就是我们说的哈夫曼…

Babel的深度解析

在开发中我们很少直接去接触babel,但是babel对于前端开发来说,目前是不可缺少的一部分:开发中,我们想要使用ES6的语法,想要使用TypeScript,开发React项目,它们都是离不开Babel的; Ba…

《C++高并发服务器笔记——第四章》

计算机网络等相关知识可以去小林coding进行巩固(点击前往) 《C高并发服务器笔记——第四章》4.1、网络结构模式1.C/S结构①C/S结构简介②C/S结构优点③C/S结构缺点2.B/S结构①B/S结构简介②B/S结构优点③B/S结构缺点4.2和4.3、MAC地址、IP地址、端口1.MA…

Qt在安卓手机输出‘hello,world‘

我也想实现这样的功能。 最开始的参考文章: (2条消息) Qt android 开发环境搭建_逝水流年丶轻染尘的博客-CSDN博客 方案1:(失败) 我之前已经下载过 Qt5.14.2了,所以我想直接添加组件 中间过程参考: (2条消息) Qt更新组件出现&…

异配图神经网络——Graph Transformer Networks

一.论文概述 作者提出了Graph Transformer Network (GTN)用来在异配图(heterogeneous graph)上学习节点表示。通过Graph Transformer层,模型能将异构图转换为由meta-path定义的多个新图,这些meta-paths具有任意的边类型和长度&am…

大数据能力提升项目|学生成果展系列之八

导读为了发挥清华大学多学科优势,搭建跨学科交叉融合平台,创新跨学科交叉培养模式,培养具有大数据思维和应用创新的“π”型人才,由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…