网络通信——OSI七层模型和TCP/IP模型

news2024/9/22 19:00:56

OSI模型

一.OSI七层模型

OSI(Open System Interconnect)七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能,从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时,更好地理解和管理网络通信的过程。

7.应用层——提供可视化界面,提供人机交互,网络服务

6.表示层——区分你所发的数据(图片),对数据进行格式化,加密,解密

5.会话层—— 建立,维护,管理连接(进程)

4.传输层——区分上层应用(通过不同应用对应不同的端口号来区分),建立端到端连接。

3.网络层——ip寻址和路由选择

2.数据链路层——mac寻址

1.物理层——比特流的传输(高低电平)

二.OSI为什么要分成/优点

1.促进标准化

2.各层结构相互独立,将网路操作低复杂化

3.灵活性,某层的变化不会影响到其他层

4.各层之间相互连接,实现上下层通信

5.易于维护和实现

三.缺点

1.各层之间的某些功能重复,冗余感。

2.各层之间的功能分配不均。

3.功能和服务定义复杂,不好实现

这就是为什么会有TCP4层或5层模型的说法,因为OSI在实际应用中不便于实现。

TCP/IP模型

一.TCP/IP

下面是OSI七层对应TCP/IP模型的,以及在TCP/IP模型中对数据的封装过程

我喜欢TCP/IP的五层模型

5.应用层——提供可视化界面,提供人机交互,网络服务。区分你所发的数据(图片),对数据进行格式化,加密,解密。 建立,维护,管理连接(进程)

4.传输层——区分上层应用(通过不同应用对应不同的端口号来区分),建立端到端连接。

3.网络层——ip寻址和路由选择

2.数据链路层——mac寻址

1.物理层——比特流的传输(高低电平)

功能进行了一些整合,并且有了相对应的协议。 

 二.应用层协议和对应的端口号(常见的)

(1)HTTP(HyperText Transfer Protocol/超文本传输协议):用于在客户端和服务器之间传输超文本数据,通常用于 Web 浏览器和 Web 服务器之间的通信。(TCP 80端口)

(2)HTTPS(HyperText Transfer Protocol Secure/超文本传输安全协议):是 HTTP 的安全版本,通过 SSL/TLS 加密传输数据,保证通信过程中的安全性。(TCP 443端口)

(3)FTP(File Transfer Protocol/文本传输协议):用于在客户端和服务器之间传输文件,支持上传和下载文件的功能。(TCP 20传输端/21控制端)

(4)TFTP(Trivial File Transfer Protocol/简单文件传输协议):在计算机网络中传输文件。它设计上相对简单,通常用于在不需要复杂控制的情况下进行文件传输(UDP 69端口)

(5)SMTP(Simple Mail Transfer Protocol/简单邮件传输协议):用于在邮件服务器之间传输电子邮件,负责发送邮件。(TCP 25端口)

(6)POP3(Post Office Protocol version 3/邮局协议版本3):用于从邮件服务器上下载邮件到本地计算机,负责接收邮件。(TCP 110端口)

(7)IMAP(Internet Message Access Protocol/互联网消息访问协议):也是用于接收邮件的协议,与 POP3 类似,但提供了更丰富的功能,如在服务器上管理邮件等。(TCP 143端口)

(8)Telnet:用于远程登录和执行命令,类似于 SSH,但不提供加密功能,通信数据不安全。(TCP 23 端口)

(9)SSH(Secure Shell/安全外壳协议):用于远程登录和执行命令,提供了加密的网络连接,保证了通信的安全性。(TCP 22端口)

(10)RDP(远程桌面协议):是一种由微软开发的协议,用于通过网络远程访问Windows桌面和应用程序。

(11)SNMP(Simple Network Management Protocol/简单网络管理协议):用于网络设备之间的管理和监控,可以实现对网络设备的远程配置和监控。(UDP161主要通信,包括请求和响应/UDP162为网络设备向管理系统发送重要事件通知提供通道,比如故障)

(12)DNS:用于将域名解析为对应的 IP 地址,从而实现域名和 IP 地址之间的映射。( udp/TCP 53)(域名解析协议)企业里  114.114.114.114(电信)   8.8.8.8(谷歌)

              注:将域名转换为ip地址 

                 域名给人看

                 IP给机器识别

                 eg:www.baidu.com 对应的 ip

(13)DHCP(Dynamic Host Configuration Protocol/动态地址分配协议):用于自动分配IP地址和其他网络配置参数给网络中的设备(   67(UDP)用于DHCP服务器接收客户端请求/ 68(UDP)用于DHCP客户端接收服务器的响应。)

三.传输层协议

(1)TCP(Transmission Control Protocol/传输控制协议):提供可靠的、面向连接的数据传输服务,确保数据的可靠性、顺序性和完整性。TCP适用于对数据传输质量要求较高的场景,如文件传输、网页浏览等。

(2)UDP(User Datagram Protocol/用户数据报协议):提供无连接的数据传输服务,不保证数据的可靠性,也不保证数据的顺序性和完整性。UDP适用于实时性要求较高、对数据传输质量要求不那么严格的场景,如音视频传输、在线游戏等。

四.网络层协议 

(1)IP(Internet Protocol/互联网协议):用于在网络中定位和传输数据包。它负责将数据从源地址传送到目标地址。

(2)IPv6(Internet Protocol version 6):互联网协议的第六版,旨在替代IPv4,提供更大的地址空间和改进的路由效率。它使用128位地址,能够支持更多的设备和用户。

(3)ICMP(Internet Control Message Protocol/互联网控制消息协议):用于网络设备之间发送控制消息的协议,主要用于错误报告和诊断。

(4)ARP(Address Resolution Protocol/地址解析协议):将网络层地址(如IPv4地址)转换为数据链路层地址(如MAC地址)的协议。它允许设备在局域网内找到其他设备的物理地址,从而能够进行数据包的发送和接收。

(5)RARP(Reverse Address Resolution Protocol/反向地址解析协议:是一种用于将数据链路层地址(如MAC地址)转换为网络层地址(如IPv4地址)的协议。它的主要用途是在设备启动时,特别是那些没有本地存储的设备(如网络终端或无盘工作站),以获取其IP地址。

五.数据链路层协议

 TYPE字段:

0x0800             IP

0x0806             ARP

0x08DD            IPV6

以太网(Ethernet)最广泛使用的数据链路层协议,支持局域网中的设备连接,特性:基于CSMA/CD(载波监听多路访问/碰撞检测)机制,使用MAC地址进行设备识别。

注意:Ethernet II和IEEE 802.3是两种不同的以太网协议,主要区别在于帧结构和处理方式:

(1)帧格式

Ethernet II:帧头包括目的MAC地址、源MAC地址和类型字段(用于指示上层协议,如IP)。

IEEE 802.3:帧头也包括目的和源MAC地址,但使用长度字段来指示数据字段的长度,而不是类型。

(2)协议支持

Ethernet II:广泛用于IP协议及其他网络层协议,主要在现代网络中使用。

IEEE 802.3:最初是为了标准化以太网的物理层和数据链路层,后续也支持了以太网的各种扩展。

(3)兼容性

Ethernet II可以被视为较新的标准,广泛兼容现代网络,而IEEE 802.3是早期的标准,后续演变为多个版本,适应不同的应用。

这两者的共同点是都用于局域网传输,但在具体实现上有所不同

六.物理层 

传媒介质

双绞线:如以太网(CAT5、CAT6),用于局域网传输。

同轴电缆:用于有线电视和某些网络。

光纤:用于高速数据传输,具有较低的信号衰减。

无线传输:通过电磁波(如Wi-Fi、蓝牙)实现无线通信。

数据传输速率

物理层定义了设备之间的传输速率,如10 Mbps、100 Mbps、1 Gbps等

等等

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

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

相关文章

pycharm连接远程linux服务器上的docker进行深度学习训练

实习过程中由于GPU都在服务器上,编辑代码很麻烦。并且服务器上配置了docker的环境,所以用pycharm连接远程服务器的docker进行深度学习,这样在本地调用远程服务器的GPU和环境,更方便一点,将这个过程记录下来&#xff0c…

如何将MySQL卸载干净(win11)

相信点进来的你肯定是遇到了这个问题,那就是在安装MySQL的时候操作错误,最后结果不是自己想要的。卸载重新安装又发现安装不了。其实最主要的原因就是没有将MySQL卸载干净,那么如何把MySQL卸载干净?下面本篇文章就来给大家一步步介…

【C++】二叉搜索树的底层以及实现

个人主页 文章目录 ⭐一、二叉搜索树的概念🚀二、二叉搜索树性能分析🏝️三、二叉搜索树的操作1. 插入2. 查找3. 删除4. 遍历节点 🎄四、二叉搜索树的实现(K模型)🎉五、二叉搜索树的应用1. K模型2. KV模型…

14. PEFT:在大模型中快速应用 LoRA

如果你对LoRA还没有一个直观的概念,可以回看这篇文章:《3. 认识 LoRA:从线性层到注意力机制》。 我们将在这里进一步探讨如何快速地在大型预训练模型中应用 LoRA,并解答可能存在的问题,包括: peft 和 lora …

NSSCTF刷题篇1

js类型 [SWPUCTF 2022 新生赛]js_sign 这是一道js信息泄露的题目直接查看源码,有一个main.js文件点击之后,有一串数字和一段base64编码,解开base64编码得到这个编码为敲击码 解码在线网站:Tap Code - 许愿星 (wishingstarmoye.…

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署k8s管理面板KubePi

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署k8s管理面板kubepi 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、 KubePi介绍2.1 KubePi简介2.2 KubePi主要特点&am…

序列化方式二——JSON之Gson

Gson 1、什么是Gson? Gson是Google提供的一个用于Java编程语言的JSON(JavaScript Object Notation)序列化和反序列化库。它允许开发者在Java对象和JSON数据之间进行高效的映射和转换。 官网地址:https://github.com/google/gson 官网文档…

小程序隐私合规自查指南

一 背景:小程序作为一种轻量级应用,广泛应用于各大互联网平台。工信部通报2022年第5批侵害用户权益名单中首次出现8款违规小程序。各监管单位对“小程序”违规收集个人信息监控手段和监控力度不断加强。 工信部APP违法违规通报 上海市委网信办查处违规小…

Python_控制循环语句

if语句单分支结构的语法形式如下&#xff1a; 【操作】输入一个数字&#xff0c;小于10&#xff0c;则打印这个数字(if_test01.py)&#xff1a; num input("输入一个数字&#xff1a;") if int(num)<10: print("小于10的数&#xff1a;"num)条件表达式…

BOE(京东方)携多场景物联网创新应用亮相2024服贸会 “屏之物联”赋能数字经济

9 月 12 日&#xff0c;以“全球服务 互惠共享”为主题的2024中国国际服务贸易交易会&#xff08;以下简称“服贸会”&#xff09;在北京拉开帷幕。作为领先的物联网创新企业&#xff0c;BOE&#xff08;京东方&#xff09;携智慧办公、智慧商显、智能车载、智慧教育、智能工厂…

设计模式例题

答案&#xff1a;D C A D 知识点&#xff1a; 观察者模式的意图&#xff1a;定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖它的对象都得到通知并被自动更新&#xff0c;和自媒体很相似&#xff0c;自媒体更新内容&#xff0c…

C++--C++11(下)

目录 7.5 完美转发 8 新的类功能 9 可变参数模板 10 lambda表达式 11 包装器 7.5 完美转发 模板中的 && 万能引用 void Fun(int &x){ cout << "左值引用" << endl; } void Fun(const int &x){ cout << "const 左值引用…

秒变 Vim 高手:必学的编辑技巧与隐藏功能大揭秘

文章目录 前言一、vi与vim二、Vim的三种模式1. 普通模式2. 插入模式3. 命令模式 三、Vim中的查找与替换1. 查找2. 替换 四、给Vim设置行号1. 临时显示行号2. 永久显示行号 总结 前言 在Linux系统中&#xff0c;文本编辑器是开发者和系统管理员日常工作中的重要工具之一。其中&…

DeepSeek 2.5本地部署的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…

想学习下Python和深度学习,Python需要学习到什么程度呢?

想要学习Python和深度学习&#xff0c;Python的学习程度需要达到能够熟练运用这门语言进行编程&#xff0c;并能够理解和实现深度学习模型的基本构建和训练过程。以下是一些推荐的书籍&#xff0c;可以帮助你系统地学习Python和深度学习&#xff1a; Python学习推荐书籍 《Py…

kubectl 执行一条命令之后发生了什么?

kubectl 是与 Kubernetes 集群交互的命令行工具&#xff0c;用户通过它可以对集群资源进行操作和管理。你有没有想过&#xff0c;当我们执行一条 kubectl 命令之后&#xff0c;背后都发生了什么&#xff1f; 详细过程 kubectl -> kube-api-server 根据通信类型&#xff0…

【大模型】AutoDL部署AI绘图大模型Stable Diffusion使用详解

目录 一、前言 二、AI绘图大模型概述 2.1 AI绘图大模型介绍 2.2 AI绘图大模型特点 2.3 AI绘图大模型优势 三、主流的AI绘图大模型介绍 3.1 Midjourney 3.1.1 Midjourney介绍 3.1.2 Midjourney功能特点 3.1.3 Midjourney使用场景 3.2 Stable Diffusion 3.2.1 Stable …

zynq的PS端mac与RTL8211F的连接要点

目录 1 VCCO_MIO12 PS_MIO_VREF3 PS的引脚4 RXDLY TXDLY5 ZYNQ的MAC可以调整延时吗 1 VCCO_MIO1 接1.8V 2 PS_MIO_VREF 接0.9V&#xff0c;可通过电阻分压 可通过电阻分压 3 PS的引脚 4 RXDLY TXDLY RXDLY RXD[0] TXDLY RXD[1] 与XC7Z020的PS端MAC连接&#xff0c;必须…

python画正方形、平行四边形、六边形、五角星、风车(四个半圆)

画正方形、平行四边形、六边形、五角星、风车&#xff08;四个半圆&#xff09; import turtle def square(side_length):"""正方形"""for _ in range(4):turtle.forward(side_length)turtle.right(90)def parallelogram(base, height):"&q…

C++——模拟实现string

1.再谈string string为什么要被设计成模板&#xff1f;日常使用string好像都是char*&#xff0c;char*不够使用吗&#xff0c;为什么要设计成模板呢&#xff1f; 1.1 关于编码 //计算机的存储如何区分呢&#xff1f;int main() {//比如在C语言中&#xff0c;有整型//如果是有…