目录
第一层:物理层(PhysicalLayer)(类似于串口异步通讯的电气设计)
第二层:数据链路层(DataLinkLayer) (这一层就类似串口异步通讯的UART协议)
第四层为什么让上层(如会话层、表示层和应用层)不必担心网络中断、数据丢失或乱序的问题?
第五层:会话层(SessionLayer)(可以理解为整合到了微信,QQ的使用如:登陆,通话的地步)
第六层:表示层(PresentationLayer)(理解为量变和质变中质变的过程)
一.七层网络模型概念
七层模型,也称为OSI(Open System Interconnection)参考模型,是国际标准化组织(ISO)制定的一个用于计算机或通讯系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
OSI是OpenSystemInterconnect的缩写,意为开放式系统互联。分出层次的目的是运用层次模型可以把开放系统的信息交换问题拆分到多方面易于调整的硬件软件模块-层中,而各层可以依照需求单独展开改动或增加功效,与此同时,有助于个各个生产厂家的机器设备相互连接,也有助于各位学习、正确理解数据通信网络。OSI参考模型中各个层完成各个的功效,各层互相配合根据相关的接口展开通信。
二.OSI7层参考模型的各个层面的划定遵循下列原则:
- 分层的概念:
- 每层执行一个特定子集的功能:将网络通信划分为多个层次,每层提供不同的服务。
- 功能的明确区分:每层的功能明确区分,防止功能重叠。
- 模块化和简化:分层有助于简化网络设计,使不同层之间的修改更加容易。
- 抽象化:
- 层与层之间界面清晰:每层都有一个定义良好的接口,供相邻层之间的交互使用。
- 层之间的独立性:每层都可以独立于其他层发展和操作,只要它满足其上一层的要求。
- 封装和分装:
- 数据在每个层中被封装:每层都可以在数据传输时添加首部(或尾部),这称为封装。
- 每层使用上一层提供的服务:较低层提供服务给上层,但是上层不需要知道这些服务是如何实现的。
- 标准化接口:
- 互操作性:不同制造商的网络产品可以互相通信。
- 支持多种类型的硬件和网络:OSI模型被设计为能够在各种物理网络技术上运行。
- 分层功能:
- 选择性的数据处理:例如,数据传输、路由选择、流控制、差错处理、数据加密等。
- 数据传输模式:支持单工、半双工和全双工通信。
- 灵活性:
- 允许各层独立地改变:只要接口和服务定义保持不变,每层的实现可以独立于其他层改变和进化。
这些原则确保了OSI参考模型的通用性和适应性,让不同的网络设备和协议能够在世界范围内进行互联和互操作。每一层都为上层提供服务,同时隐藏了下层的工作细节,这样就可以在不影响其他层的情况下对某一层进行改进或替换。
三.七层的详细介绍
第一层:物理层(PhysicalLayer)(类似于串口异步通讯的电气设计)
要求通讯设备的机械的、电气的、功效的和流程的特点,用于创建、维护和拆卸物理链路连接。详细地讲,机械特点要求了网络连接时所需接插件的标准规格、引脚个数和排布情况等;电气特点要求了在物理连接上传送bit流时线路上讯号电平的高低、阻抗匹配、传输速度距离规定等;功效特点是指对各个讯号先分配确切的讯号含义,即界定了DTE和DCE间各个线路的功效;规程特性界定了运用信号线展开bit流传送的一组操作流程,是指在物理连接的创建、维护、互换信息是,DTE和DCE双放在各电路上的行为系列。在这一层,数据的单位被称作比特(bit)。是属于物理层界定的典型要求代表包括:EIA/TIARS-232、EIA/TIARS-449、V.35、RJ-45等。
第二层:数据链路层(DataLinkLayer) (这一层就类似串口异步通讯的UART协议)
数据链路层负责在相邻网络设备之间的物理链路上实现可靠的帧传输,提供错误检测和纠正,以确保数据准确无误地在网络设备间传输。在OSI(开放系统互连)模型中,数据链路层是第二层,位于物理层之上。这一层的主要职责是在实际的物理链接(比如电缆或无线电波)上实现可靠的数据传输。下面是数据链路层的几个关键功能:
- 物理地址寻址: 每个网络设备在数据链路层都有一个唯一的地址,通常称为MAC(媒体访问控制)地址。当数据在网络中传输时,MAC地址确保数据帧能被送达到正确的设备。(ip的实际作用是通过ARP协议寻MAC地址)
- 数据的成帧: 数据链路层会将上层(网络层)传来的数据包装成“帧”。帧是数据链路层的传输单位,它包括数据本身以及关于如何处理这些数据的控制信息,比如头部和尾部信息,这些信息能帮助接收设备识别帧的开始和结束。
- 流量监控: 数据链路层通过流量控制机制管理数据传输的速率,以防止网络拥塞。这确保了较慢的接收设备不会被较快的发送设备发送的数据所淹没。
- 数据的检错: 数据链路层在每个帧中添加校验信息(如循环冗余检查CRC),以检测数据在传输过程中是否遭到破坏。如果检测到错误,这一层可以要求重发数据,确保数据的准确性。
- 重发: 如果数据帧在传输过程中损坏或丢失,数据链路层会负责重发这些帧。
数据链路层的一些典型协议包括:
- SDLC(同步数据链路控制):IBM开发的一种早期的数据链路层协议,采用同步传输方式。
- HDLC(高级数据链路控制):SDLC的扩展,支持全双工、半双工通信,广泛用于网络和通信协议。
- PPP(点对点协议):常用于直接连接两个网络节点的情形,如电话线路上的互联网连接。
- STP(生成树协议):用于防止在网络中创建桥接环路。
- 帧中继:一种高效的数据传输技术,用于连接广域网(WAN)中的不同物理网络。
数据链路层处理从物理层接收的原始比特流,并确保这些数据能够以一种可靠和有序的方式在网络中的节点间传输。通过这些机制,数据链路层能够在物理网络可能不稳定的情况下提供稳定的通信服务。
第三层:网络层(NetworkLayer)(类似于RS-485中的拨码设定站址,由站址确定设备位置,进行设备与设备间的通讯)
在通信网络中开展通讯的两个计算机相互之间或许会历经许多个数据链路,也可能还需要历经许多通信子网。网络层的工作就是挑选适宜的网间路由和交换结点,保证数据及时数据传输。网络层将数据链路层带来的帧构成数据包,包中封装有网络层包头,当中含有逻辑地址数据--源站点和目标站点地址的网络地址。假如你在讨论一个IP地址,那你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的其中一部分,除此之外也有一部分路由协议和地址解析协议(ARP)。关于路由的所有问题都是在这第3层处理。地址解析和路由是3层的重要目标。网络层还可以实现拥塞控制、网际互连等用途。在这一层,数据的单位被称作数据包(packet)。网络层协议的代表包含:IP、IPX、RIP、OSPF等。
- IP地址的作用:
- IP地址是一个网络设备在IP网络上的唯一标识符,它指定了该设备的网络位置。这允许网络上的设备在一个巨大的网络空间内(如互联网)互相识别和定位。
- 当数据包发送到一个IP网络时,它需要有发送者和接收者的IP地址。
- ARP的作用:
- 在大多数局域网(尤其是以太网)中,数据实际上是根据硬件地址或MAC地址进行传送的。MAC地址是网络接口控制器(NIC)的物理地址。
- ARP的作用是将IP地址翻译成MAC地址。当一个设备需要将数据发送到网络上的另一个设备时,它首先检查自己的ARP缓存以确定目标IP地址是否已经被翻译成一个MAC地址。
- 如果没有,它将发出一个ARP请求,这是一个网络广播消息,要求拥有该特定IP地址的设备响应其MAC地址。
- 收到ARP请求的设备检查IP地址,如果匹配,它会用自己的MAC地址响应ARP请求。
- 一旦请求发起方收到这个MAC地址,它就会将这个地址存储在自己的ARP缓存中以供将来使用,并可以开始向目标MAC地址发送数据。
通过这种方式,IP地址作为通信的逻辑地址,而ARP用来将这些逻辑地址解析为可以在局部网络上传输数据的物理地址。这个过程对于网络上的设备来说是透明的。用户和应用程序通常只关心IP地址,而在实际的数据链路层,数据的传输则是通过物理MAC地址完成的。
第四层,传输层(Transmission Layer)
在OSI模型中起着至关重要的作用。它位于网络层和会话层之间,负责在网络中的两个终端之间提供端到端的数据传输服务。该层确保数据可以在应用程序间完整、准确、高效地传递,无论它们位于何种网络环境中。
- 数据单元:
- 在传输层,基本的数据单元根据使用的协议而有所不同。TCP(传输控制协议)使用的数据单元被称为“段(segments)”,而UDP(用户数据报协议)的数据单元被称作“数据报(datagrams)”。
- 端到端通信:
- 传输层为应用程序提供端到端的数据传输服务。这意味着数据可以从源应用程序直接传输到目标应用程序,跨越数个网络和中间设备。
- 可靠性和透明性:
- 为了实现可靠的数据传输,传输层采取了多种机制,如确认接收、重传请求和数据校验。这确保了数据的完整性和顺序性。
- 透明的数据传输意味着传输层隐藏了数据传输的复杂性,让上层(如会话层、表示层和应用层)不必担心网络中断、数据丢失或乱序的问题。
- 传输层协议:
- TCP:一种面向连接的协议,提供可靠的数据传输服务。它通过三次握手过程建立连接,确保数据按序到达,并通过四次挥手过程终止连接。
- UDP:一种无连接的协议,提供速度快但不保证可靠性的数据传输服务。它适用于对实时性要求高的应用,如视频会议和在线游戏。
- SPX:顺序数据包交换(Sequenced Packet Exchange),主要用于Novell NetWare网络环境,提供可靠的数据传输服务,但在现代网络中使用较少。
- 错误处理和流量控制:
- 传输层负责监控可能在数据传输过程中发生的错误,并采取措施进行纠正,例如通过重传丢失的数据段。
- 同时,它通过流量控制机制防止发送方过快发送数据,从而避免接收方处理不过来,引起数据丢失。
- 拥塞控制:
- 传输层还涉及拥塞控制机制,尤其是在TCP协议中。当网络拥堵时,传输层会调整数据发送的速率,减少数据包的丢失和延迟,保证网络的整体性能。
综上所述,传输层在确保数据有效、准确传输方面发挥着核心作用,无论是通过TCP的可靠连接还是UDP的高效数据传输,都为应用层提供了一个稳定的传输服务基础。
第四层为什么让上层(如会话层、表示层和应用层)不必担心网络中断、数据丢失或乱序的问题?
上层协议(如会话层、表示层和应用层)不必担心网络中断、数据丢失或乱序的问题,是因为传输层提供了相应的机制来保证数据传输的可靠性和完整性,从而屏蔽了这些问题。这主要通过以下几种机制实现:
- 连接的建立和终止:
- 在TCP协议中,使用三次握手来建立一个可靠的连接,并且在数据传输完成后通过四次挥手来终止连接。这确保了通信双方都准备好发送和接收数据,且在结束通信时能够优雅地关闭连接。
- 数据分段和重组:
- 传输层将大块数据分割成更小的段,这些数据段可以在网络中独立传输。接收方会重组这些分段以重建原始数据。
- 序号和确认:
- TCP给数据段分配序列号,这样在接收端可以根据序列号重新排序,以确保数据的正确顺序。发送方接收到接收方发来的确认(ACK)后,会知道哪些数据已经被正确接收。
- 检错和重传:
- 传输层协议使用校验和来检测数据在传输过程中是否出现错误。如果检测到错误,发送方可以重传损坏的数据段。
- 流量控制:
- 传输层通过控制数据的发送速率来防止接收方被过快的数据流淹没。TCP使用窗口调节机制来实现这一点。
- 拥塞控制:
- 当网络中的数据传输量过大导致拥塞时,TCP协议会调整数据发送的速率,减少数据包的发送频率以缓解拥塞。
由于传输层协议处理了这些复杂的问题,上层协议可以专注于其专有功能而不需处理网络中可能发生的各种传输问题。这种层次分离的设计是现代网络协议栈的一个基本原则,它提高了整个系统的效率和可靠性。
第五层:会话层(SessionLayer)(可以理解为整合到了微信,QQ的使用如:登陆,通话的地步)
会话层是OSI(开放系统互连)参考模型的第五层,位于传输层之上,表示层之下。它为网络中的两个实体建立、管理和终止会话。在网络通信中,会话层的作用是提供包括登录、退出等功能的机制,并管理两个应用进程之间的对话控制和数据交换。
会话层的主要功能包括:
- 会话建立、维护和终止:它允许两个应用进程在通信过程中建立、维护和结束它们之间的连接。
- 对话控制:会话层可以设置对话,允许通信两端的进程进行双向通信。这种控制可能是全双工(两者可以同时通信)或半双工(通信双方交替进行)。
- 同步:它提供了数据同步功能,通过插入同步点来确保数据的同步传输。在长通信过程中,同步点可以作为数据校验的标记,以便在出现故障时能够重新同步并恢复数据传输,而不是从头开始。
- 会话层服务:提供的服务可能包括认证和授权过程,保证只有拥有权限的用户可以访问会话。
- 异常恢复和故障恢复:如果在数据传输过程中出现故障,会话层可以负责重启会话或者进行必要的故障恢复操作。
会话层的一些协议和服务包括:
- NFS(网络文件系统):允许不同系统上的用户访问远程文件。
- SQL(结构化查询语言):用于管理数据库服务器。
- RPC(远程过程调用):允许一个程序调用另一台计算机上的程序。
- NetBIOS(网络基本输入输出系统):在局域网上为应用程序提供会话层服务。
会话层在某些情况下可能被视为不是非常必要的,因为很多现代协议(如TCP/IP)并未明确分出单独的会话层,而是将其功能整合到了其他层次中。然而,在需要复杂对话控制和同步功能的情况下,会话层仍然扮演着重要角色。
第六层:表示层(PresentationLayer)(理解为量变和质变中质变的过程)
表示层位于OSI模型的第六层,介于会话层和应用层之间。它主要负责处理在系统之间交换信息时的语法和语义问题,确保传输的数据能够在不同类型的系统之间正确交换和理解。表示层的功能可以通过以下几个方面来详细介绍:
- 数据格式转换:表示层将应用层的抽象数据结构转换成适合网络传输的格式,这个过程称为数据封装或编码。相应地,它也负责接收端的解码过程,即将网络格式的数据还原成应用程序可以理解的格式。
- 数据压缩:为了提高数据传输效率,表示层可以对数据进行压缩,减少需要传输的数据量。接收端的表示层则负责解压缩这些数据。
- 数据加密和解密:表示层提供数据加密服务增加数据传输的安全性。在数据发送之前,表示层将数据加密,而接收端的表示层则负责解密,确保数据的隐私和完整性。
- 字符编码转换:表示层处理不同系统间的字符编码转换问题,比如ASCII、EBCDIC或Unicode等,确保文本数据能够在不同的系统间正确表示和解读。
- 数据的语法表示:它还负责确定数据的结构和格式,如确定数据是以视频、音频、文本等形式,以及这些类型数据的具体表示方法。
- 图形格式转换:对于图形图像等非文本信息,表示层可以转换不同格式之间的图形数据,如JPEG、GIF、PNG等,以支持不同系统或应用程序的需求。
表示层的一些实例协议和标准包括JPEG、MPEG、ASCII、EBCDIC、加密标准如SSL(安全套接层)和TLS(传输层安全性协议)。这些协议和标准涵盖了表示层主要的职责和功能,确保数据在不同的系统之间能够有效、安全地传输和理解。在实际应用中,很多功能都已经整合到了应用程序中,特别是在使用TCP/IP模型的网络中,表示层的功能可能由应用层协议直接实现。
第七层:应用层(ApplicationLayer)
应用层是OSI模型中的最顶层,即第七层,它提供网络服务的接口直接供最终用户的应用程序使用。这一层涵盖了广泛的通信服务和应用环境的绝大部分功能。应用层的关键职责包括应用服务和应用协议的实现,下面详细介绍这一层的几个方面:
- 网络服务接口:应用层为应用程序提供了一系列可调用的网络服务接口,使程序能够发送和接收数据,实现网络功能,如电子邮件、文件传输和数据库访问等。
- 用户认证和授权:应用层的另一个功能是确保通信双方的身份真实可靠,为此可能提供登录验证、权限校验等安全服务。
- 会话管理:虽然会话层负责会话的建立和管理,但应用程序自身也可能包含开始、控制和结束会话的逻辑。
- 应用协议:应用层定义了多种应用协议,它们规定了进行特定类型网络活动时数据的格式和交换规则。例如,HTTP(超文本传输协议)用于网页浏览,SMTP(简单邮件传输协议)用于电子邮件,FTP(文件传输协议)用于文件传输等。
- 数据表示和加工:在应用层,数据可能需要进行表示转换、加工或解释以满足应用程序的需求。这包括数据的加密、解密、编码和解码。
- 错误处理和恢复:应用层协议通常包含对错误处理和恢复的支持,以保证应用层面的通信可靠性。
- 消息构造:应用层负责生成针对特定应用需求的消息,并确保这些消息符合适当的协议格式。
一些常见的应用层协议和服务包括:
- HTTP/HTTPS:用于网页浏览。
- SMTP、POP3、IMAP:用于电子邮件的传输和管理。
- FTP、SFTP:用于文件的传输。
- DNS(域名系统):将域名转换为IP地址。
- DHCP(动态主机配置协议):自动给设备分配IP地址。
- SNMP(简单网络管理协议):用于网络管理。
在实际应用中,应用层通常与表示层和会话层紧密结合,并且在某些网络协议栈(如TCP/IP)中,这些层的功能可能会合并在一起。应用层不直接与网络通信的硬件和传输媒介打交道,而是通过下层提供的服务来完成数据的发送和接收任务。
将域名转换为IP地址的过程:
将域名转换为IP地址的过程主要由域名系统(DNS)完成。DNS是一种分布式数据库系统,它能够让用户通过域名来访问互联网上的资源,而无需记忆复杂的IP地址。这一过程通常被称为DNS解析。下面是DNS解析的基本步骤:
- 用户输入域名:当用户在浏览器地址栏输入一个域名(如www.example.com)时,浏览器首先会检查本地缓存中是否有这个域名的IP地址。如果有,DNS解析过程就此结束。
- 查询递归解析器:如果本地缓存没有相应记录,浏览器会向配置的DNS服务器(通常是用户的互联网服务提供商ISP提供的DNS服务器,也称为递归解析器)发送查询请求。
- 递归解析器查询根服务器:递归解析器接到请求后,首先查询自己的缓存;如果未命中,它会向根DNS服务器发起查询。根服务器不会直接解析域名,而是会告诉递归解析器去查询负责该顶级域(如.com、.net等)的顶级域(TLD)服务器。
- 查询顶级域服务器:递归解析器随后向指定的TLD服务器发送查询请求。TLD服务器也不直接解析域名,而是会指向负责该域名的权威DNS服务器的地址。
- 查询权威DNS服务器:递归解析器再向该权威DNS服务器发起请求。权威服务器存有域名与IP地址的映射信息,它会将这个信息返回给递归解析器。
- 返回IP地址:递归解析器最终获得域名对应的IP地址,它会将这个信息返回给用户的设备,并且通常会在本地缓存一份,以便下次快速响应同一域名的查询请求。
- 浏览器访问网站:浏览器接收到IP地址后,就可以通过该地址访问目标网站的服务器了。
整个DNS解析过程涉及多个服务器和多次查询,但通常在几百毫秒内完成。这个过程对于用户来说是透明的,使得用户可以通过易于记忆的域名来访问互联网上的资源。