IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 初始网络基础(OSI七层模型&&TCP/IP模型) -> 正文阅读

[网络协议]初始网络基础(OSI七层模型&&TCP/IP模型)

一、熟练掌握内容

1. OSI七层模型

OSI(open system interconnection,开放系统互联)
逻辑上对网络进行定义和规范,将网络分为7层,最主要的功能就是针对不同类型的主机实现数据传输。(ps:仅存在于教科书上)
优点:将服务接口协议这三个概念明确区分开来,理论完整,使不同的网络之间实现可靠通讯。
缺点:复杂不实用!so 没有落地实现。

分层名称?OSI七层模型功能对应概念
物理层以0/1表示电压高低,将二进制数据转换为光电信号,通过无线网络/光纤/网线进行信号传输 。集线器,双绞线,光纤
数据链路层完成相邻设备之间数据帧的传送和识别交换机,网卡设备驱动
网络层负责地址管理和路由选择。针对网络上的任意两台主机,完成通讯路径规划以及具体传输细节。路由器
传输层负责两台主机之间的数据传输。只关注起点和终点,不关注具体的通讯细节。TCP、UDP
会话层何时建立连接、何时断开连接以及保持多久的连接(数据流动的逻辑通路),实现会话用户之间对话管理、数据流同步和重新同步ASP、RPC、NFS
表示层负责协议转换、数据编码和数据压缩。(数据格式和网络标准数据格式的转换)ASCLL、PICT、MIDI
应用层负责应用程序间的沟通。SMTP、FTP、Telnet

2. TCP/IP五层(或四层)模型

实际组建网络的过程中,我们使用TCP/IP五层(或四层)模型来实现。模型对比
下层网络给上层网络提供一些功能支撑。上层协议要依赖下层协议进行实现。
?举个栗子:淘宝买衣服流程
①选择商品后下单,我们先要填写收件人的地址(目的IP)和电话(目的Port)。之后卖家发货,卖家填写发件人的地址(源IP)和电话(源Port)。
买家和卖家都只需要关注起点和终点信息即可。
②商品交给快递公司打包。(快递公司充当网络层的功能,进行路径规划)
③发货后,各个快递点进行交付。(数据链路层负责相邻主机之间的数据通讯)
④最终到达目的地。人力/物力资源类似于物理层的硬件设备网络设备基础设施。

3. 封装和分用

不同的协议层对于数据包有不同的称谓,比如 传输层叫做,网络层叫做数据报,数据链路层叫做
应用层数据通过协议栈发送到网络上时,每层协议都要加上一个数据首部(header),也叫做封装。同理,解析数据的时候,相应层根据下层协议对数据进行分用。
以下是数据封装的过程:
数据封装
应用层:Appl首部,打包成应用层数据包
传输层:TCP协议报头,封装成传输层数据报(假设使用TCP协议)
网络层:IP报头(源IP/目的IP),网络层数据报
数据链路层:此处应用以太网协议,添加帧头和帧尾
物理层:把数据以二进制形式转换为0/1这样的光电信号,并通过无线网络/光纤/网线进行数据传输。

以下是数据分用的过程:
数据分用
物理层:光电信号发送至接收端主机之后(不考虑中间的转发过程)先到达接收端的物理层,对其进行翻译,转换为0/1二进制序列,得到以太网数据帧,将其交给数据链路层。
数据链路层:对以太网数据帧进行分析,去掉帧头和帧尾,把中间负载交给上层协议。
网络层:按照协议格式解析,去掉IP报头,将负载交给上层协议。
传输层:解析数据,去掉TCP报头,将负载交给应用程序。
应用层:按应用层协议解析,显示/执行操作。

二、其他知识补充

1. 网络互连

起初,计算机之间是独立存在的,每个终端都各自持有不同用户的数据(独立模式)。随着时代的发展,越来越多的计算机需要协同工作,共享网络和数据,于是就有了网络互联。
网络互连:多台计算机连接在一起,完成数据共享。
数据共享本质是数据传输,即计算机之间通过网络来传输数据,也叫做网络通信。

2. 网络划分

根据网络规模的不同,我们可以将网络划分为局域网(LAN)广域网(WAN)
局域网(Local Area Network):也叫内网,它是局部组建的一种私有网络。在某一区域内,用户可以很方便的进行网络通信。这里的“某一区域”可以是一间教室、一栋办公楼、一所学校等,距离一般是方圆几千里以内。
广域网(Wide Area Network):也叫公网、外网。它是一种地域范围覆盖广的计算机网络的集合,通常所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家。由于其超长的覆盖范围,发送介质主要是政府或者大型企业部署的电话线或光纤,同时,广域网内部的局域网都属于其子网。

这里所谓的WAN和LAN是相对的概念,那么,你是否会问我们平时所使用的到的wifi是属于哪一种呢?
其实,局域网按照是否使用导线或传输电缆连接网络设备,分为有线局域网、和无线局域网(WLAN)
无线局域网(Wireless LAN):它是不使用任何导线或传输电缆连接的局域网,其使用无线电波或电场与磁场作为数据传送的介质,传送距离一般只有几十米。
有线局域网,是使用导线或传输电缆连接的局域网,传送距离可达几千米。
实际上,我们一般使用的WIFI、蓝牙等技术只是WLAN的标准技术之一。可以说是,后者包含前者的关系。

3. 网络通讯基础

a. IP地址

我们在进行网络通信的过程中,如何判断数据从哪个设备发送,又如何判断传输给哪个设备呢?
IP地址主要是用来表示网络主机以及其他网络设备(如 路由器)的网络地址。简单来说,IP用于定位主机的网络地址
IP地址以“点分十进制”表示,32位二进制数。
*注:127.的IP地址用于环回测试(Loop back), 通常是127.0.0.1。
本机环回主要是用于本机和本机之间的通信(系统内部为提升性能,不会走网络传输的方式),对于网络编程而言,常见的开发方式都是本机到本机的网络通讯。
还有一个问题!IP地址和MAC地址的区别是什么呢?
物理地址(MAC地址)是数据链路层和物理层使用的地址;IP地址是网络层及其以上层使用的地址。

b. 端口号

目的主机收到数据之后,如何判断该数据要由哪个应用程序接收呢?
端口号用于定位主机中的进程

c. 协议

网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵守的一组约定、规则。最终体现为在网络上传输的数据包的格式。
知名协议的默认端口0-1023

  • 22端口:预留给SSH服务器绑定SSH协议
  • 21端口:预留给FTP服务器绑定FTP协议
  • 23端口:预留给Telnet服务器绑定Telnet协议
  • 80端口:预留给HTTP服务器绑定HTTP协议
  • 443端口:预留给HTTPS服务器绑定到HTTPS协议

协议为什么要分层?
分层最大的好处,类似于面向接口编程,定义好两层间的接口规范,双方根据规范对接。
在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务):
对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:34:38  更:2022-03-11 22:36:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:17:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码