[[278277]]
一、OSI参考模型
1. OSI的来源
首先 osi 七层模型是什么?
OSI 是英文 Open System Interconnection 的简写,翻译成中文叫做 (开放系统互连参考模型),他是一个国际标准化组织制定的一个用于计算机或通信系统间互联的标准体系
怎么理解呢?你可以这么想,在之前很早的时候,世界上有各种生产计算机硬件和网络设备的厂家,大家你做你的我做我的,弄的很乱而且还都互不兼容,这时候国际上有一个很牛很牛的公认的组织,为了统一互联网,让他不那么复杂,更加容易管理而制定了一个规则,而这个规则大家必须都要遵守,这个就是 OSI 七层模型。
2、那七层是什么意思?
首先,这个七层模型呢他是一个虚拟的,就是理论上的规则,并不是一个什么摸得到的物理形状的类似于汽车模型的那种模型,那它具体是什么样的呢?你看下图

【纯个人手打,替老师传道,不求多大成就但愿 能帮到大家,在闲暇的时间里为大家共享一些工作经验和各种技术资源文章,希望帮助大家共同进步 也希望我的发布对你有所帮助,我的发布里有更多类似的文章可以查阅,喜欢的请点关注,谢谢。你们的关注是我不停发布的最大动力】
3、那这两个七层模型到底是怎么回事呢?
首先,你要把这两边的七层模型看成是两个人在写信,你给人家写信人家是不是得给你回信?这个就是两个模型中间的箭头。意思是有来有回。而你们两个人的来回信件呢都得经过这七个步骤,然后才能到达各自的手中。这就是为什么两边都画了七层模型
4、OSI七层模型基本功能是什么?
OSI模型通过七个层次化结构的模型,使不同的系统不同的网络之间实现可靠的通讯,因此,其最主要的功能就是帮助不同类型主机之间实现数据传输
5、那这七个层到底都对应了哪些东西呢?
(1)物理层:它对应了,网卡、网线、光纤,等
(2)数据链路层:它对应了,网桥、交换机、等
(3)网络层:路由器、三层交换机
(4)传输层、会话层、表示层、应用层、这些个在软件层面上和虚拟层面上的,所以他不 对应相关的物理设备,这四个层面呢,它对应的是相关的协议了。
比如说:传输层有:TCP UDP 协议 ;应用层有 http ftp 协议等,就是这个意思
但实际网管需要日常维护的只有:物理层、数据链路层、网络层、应用层 这五层
6、 各层功能定义
这里我们只对OSI各层进行功能上的大概阐述,不详细深究,因为每一层实际都是一个复杂的层。
这里我们就大概了解一下。
我们从最顶层——应用层 开始介绍。
整个过程以公司A和公司B的一次商业报价单发送为例子进行讲解。
(1) 应用层
OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。
我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。
实际公司A的老板就是我们所述的用户,而他要发送的商业报价单,就是应用层提供的一种网络服务,当然,老板也可以选择其他服务,比如说,发一份商业合同,发一份询价单,等等。
(2) 表示层
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。
数据压缩和加密也是表示层可提供的转换功能之一。
由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。
同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。
这就是表示的作用,将应用层的数据转换翻译等。
(3) 会话层
会话层就是负责建立、管理和终止表示层实体之间的通信会话。
该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
会话层的同事拿到表示层的同事转换后资料,(会话层的同事类似公司的外联部),会话层的同事那里可能会掌握本公司与其他好多公司的联系方式,这里公司就是实际传递过程中的实体。他们要管理本公司与外界好多公司的联系会话。
当接收到表示层的数据后,会话层将会建立并记录本次会话,他首先要找到公司B的地址信息,然后将整份资料放进信封,并写上地址和联系方式。准备将资料寄出。
等到确定公司B接收到此份报价单后,此次会话就算结束了,外联部的同事就会终止此次会话。
(4) 传输层
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。
该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。
我们通常说的,TCP UDP就是在这一层。端口号既是这里的"端"。
传输层就相当于公司中的负责快递邮件收发的人,公司自己的投递员,他们负责将上一层的要寄出的资料投递到快递公司或邮局。
(5) 网络层
本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。
就是通常说的IP层。
这一层就是我们经常说的IP协议层。
IP协议是Internet的基础。
网络层就相当于快递公司庞大的快递网络,全国不同的集散中心,比如说,从深圳发往北京的顺丰快递(陆运为例啊,空运好像直接就飞到北京了),首先要到顺丰的深圳集散中心,从深圳集散中心再送到武汉集散中心,从武汉集散中心再寄到北京顺义集散中心。这个每个集散中心,就相当于网络中的一个IP节点。
(6) 数据链路层
将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。
数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。
MAC子层处理CSMA/CD算法、数据出错校验、成帧等;LLC子层定义了一些字段使上次协议能共享数据链路层。
在实际使用中,LLC子层并非必需的。
(7) 物理层
实际最终信号的传输是通过物理层实现的。
通过物理介质传输比特流。规定了电平、速度和电缆针脚。
常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。
这些都是物理层的传输介质。
快递寄送过程中的交通工具,就相当于我们的物理层,例如汽车,火车,飞机,船。
7. 通信特点:对等通信
对等通信,为了使数据分组从源传送到目的地,源端OSI模型的每一层都必须与目的端的对等层进行通信,这种通信方式称为对等层通信。
在每一层通信过程中,使用本层自己协议进行通信。

二、TCP/IP五层模型
TCP/IP五层协议和OSI的七层协议对应关系如下:

在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的。
在每一层实现的协议也各不同,即每一层的服务也不同,下图列出了每层主要的协议。

1. 应用层
应用层向应用程序提供服务,这些服务按其向应用程序提供的特性分成组,并称为服务元素。
有些可为多种应用程序共同使用,有些则为较少的一类应用程序使用。
应用层为最高层,是直接为应用进程提供服务的。
其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。
其服务元素分为两类:公共应用服务元素CASE和特定应用服务元素SASE。
CASE提供最基本的服务,它成为应用层中任何用户和任何服务元素的用户,主要为应用进程通信,分布系统实现提供基本的控制机制。
特定服务SASE则要满足一些特定服务,如文卷传送,访问管理,作业传送,银行事务,订单输入等。
这些将涉及到虚拟终端,作业传送与操作,文卷传送及访问管理,远程数据库访问,图形核心系统,开放系统互连管理等等。
应用层的标准有DP8649"公共应用服务元素",DP8650"公共应用服务元素用协议",文件传送,访问和管理服务及协议。
2. 传输层
传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。
当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。
传输层还可进行复用,即在一个网络连接上创建多个逻辑连接。
传输层也称为运输层,是很重要的一层。
因为它是源端到目的端对数据传送进行控制从低到高的最后一层。
有一个既存事实,即世界上各种通信子网在性能上存在着很大差异。
例如电话交换网,分组交换网,公用数据交换网,局域网等通信子网都可互连,但它们提供的吞吐量,传输速率,数据延迟通信费用各不相同。
对于会话层来说,却要求有一性能恒定的界面。
传输层就承担了这一功能。
它采用分流/合流,复用/解复用技术来调节上述通信子网的差异,使会话层感受不到。
此外传输层还要具备差错恢复,流量控制等功能,以此对会话层屏蔽通信子网在这些方面的细节与差异。
传输层面对的数据对象已不是网络地址和主机地址,而是和会话层的界面端口。
上述功能的最终目的是为会话提供可靠的,无误的数据传输。
传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程。
而在数据传送阶段又分为一般数据传送和加速数据传送两种。
3. 网络层
网络层的产生也是网络发展的结果。
在联机系统和线路交换的环境中,网络层的功能没有太大意义。
当数据终端增多时,它们之间有中继设备相连。
此时会出现一台终端要求不只是与唯一的一台而是能和多台终端通信的情况,这就是产生了把任意两台数据终端设备的数据链接起来的问题,也就是路由或者叫寻径。
另外,当一条物理信道建立之后,被一对用户使用,往往有许多空闲时间被浪费掉。
人们自然会希望让多对用户共用一条链路,为解决这一问题就出现了逻辑信道技术和虚拟电路技术。
网络层为建立网络连接和为上层提供服务,应具备以下主要功能:
· 路由选择和中继。
· 激活,终止网络连接。
· 在一条数据链路上复用多条网络连接,多采取分时复用技术 。
· 差错检测与恢复。
· 排序,流量控制。
· 服务选择。
· 网络管理。
4. 数据链路层
数据链路可以粗略地理解为数据通道。
物理层要为终端设备间的数据通信提供传输媒体及其连接。
媒体是长期的,连接是有生存期的。
在连接生存期内,收发两端可以进行不等的一次或多次数据通信。
每次通信都要经过建立通信联络和拆除通信联络两过程。
这种建立起来的数据收发关系就叫作数据链路。
而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错。
数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务。
链路层的主要功能:链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。
· 链路连接的建立,拆除,分离。
· 帧定界和帧同步。链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界。
· 顺序控制,指对帧的收发顺序的控制。
· 差错检测和恢复。
还有链路标识,流量控制等等。
差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测。
各种错误的恢复则常靠反馈重发技术来完成。
5. 物理层
物理层虽然处于最底层,却是整个计算机网络的基础。
物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。
物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等。通信用的互连设备指DTE和DCE间的互连设备。
DTE即数据终端设备,又称物理设备,如计算机、终端等都包括在内。
而DCE则是数据通信设备或电路连接设备,如调制解调器等。
数据传输通常是经过DTE——DCE,再经过DCE——DTE的路径。
互连设备指将DTE、DCE连接起来的装置,如各种插头、插座。
LAN中的各种粗、细同轴电缆、T型接、插头,接收器,发送器,中继器等都属物理层的媒体和连接器。
物理层的主要功能:
(1) 为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成。
一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接。
所谓激活,就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路。
(2) 传输数据,物理层要形成适合数据传输需要的实体,为数据传送服务。
一是要保证数据能在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信道上的拥塞。
传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要。
三、 TCP/IP 基础
1. TCP/IP 的具体含义
从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。
互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。

网际协议群
2. 数据包
包、帧、数据包、段、消息
以上五个术语都用来表述数据的单位,大致区分如下:
每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。

数据包首部
网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。
3. 数据处理流程
下图以用户 a 向用户 b 发送邮件为例子:

数据处理流程
① 应用程序处理
② TCP 模块的处理
③ IP 模块的处理
④ 网络接口(以太网驱动)的处理
⑤ 网络接口(以太网驱动)的处理
⑥ IP 模块的处理
⑦ TCP 模块的处理
⑧ 应用程序的处理
· 接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。
四、传输层中的 TCP 和 UDP
TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。
1. 端口号
数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。
1.1 根据端口号识别应用
一台计算机上同时可以运行多个程序。传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确地将数据传输。

通过端口号识别应用
1.2 通过 IP 地址、端口号、协议号进行通信识别


通过端口号、IP地址、协议号进行通信识别
1.3 端口号的确定
1.4 端口号与协议
· 端口号由其使用的传输层协议决定。因此,不同的传输层协议可以使用相同的端口号。
· 此外,那些知名端口号与传输层协议并无关系。只要端口一致都将分配同一种应用程序进行处理。
2. UDP
· UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。
3. TCP
3.1 三次握手(重点)
下面来看看三次握手的流程图:

三次握手
3.2 四次挥手(重点)
下面来看看四次挥手的流程图:

四次挥手
上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,
具体流程如下图:

同时挥手
3.3 通过序列号与确认应答提高可靠性
序列号是按照顺序给发送数据的每一个字节(8位字节)都标上号码的编号。接收端查询接收数据 TCP 首部中的序列号和数据的长度,将自己下一步应该接收的序列号作为确认应答返送回去。通过序列号和确认应答号,TCP 能够识别是否已经接收数据,又能够判断是否需要接收,从而实现可靠传输。

序列号和确认应答
3.4 重发超时的确定
3.5 以段为单位发送数据
3.6 利用窗口控制提高速度

·
3.7 滑动窗口控制

滑动窗口
3.8 窗口控制中的重发控制
在使用窗口控制中, 出现丢包一般分为两种情况:

部分确认应答丢失

上一篇:使用机器学习进行数据映射