惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
N
Netflix TechBlog - Medium
腾讯CDC
C
Check Point Blog
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
S
SegmentFault 最新的问题
F
Fortinet All Blogs
美团技术团队
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
F
Full Disclosure
Recorded Future
Recorded Future
D
DataBreaches.Net
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
J
Java Code Geeks
I
InfoQ
Y
Y Combinator Blog
A
About on SuperTechFans
AI
AI
爱范儿
爱范儿
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
W
WeLiveSecurity
M
MIT News - Artificial intelligence
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
Schneier on Security
Schneier on Security
The GitHub Blog
The GitHub Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Docker
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
V2EX - 技术
V2EX - 技术
Project Zero
Project Zero

博客园 - music000

分享:使用JQuery进行跨域请求 Flash Chart 谨防 url 传递参数未编码(转码)产生的陷阱 一些数据库理论知识 Sqlserver中Compute By子句用法分析 数据查询的另类需求 A Preview of HTML 5 CSS Sprites 15 Rules for Faster-Loading Web Sites 关于"多级目录(分类)"的一些想法 ----- 实现方法 金额转换:阿拉伯数字转中文(SQL存储过程) 金额转换:阿拉伯数字转中文(javascript) 这两天不爽——公车上被误认为色狼、游泳撞破上嘴唇 如何获取字段中分隔符的个数?(sql语句) 关于GridView导出Excel的一些问题(采用Ajax出现的的问题及解决方法) - music000 - 博客园 固定表头 Bubble in JavaScript DOM Reg-日期 安装 WebDesigner 之后,ASPNET 帐户没有对 IIS 的访问权。
OSI七层网络模型与TCP/IP四层网络模型
music000 · 2008-09-01 · via 博客园 - music000

OSI七层网络模型与TCP/IP四层网络模型
1. OSI网络分层参考模型

   网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的 协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一个主要原则是确保目标系统有效且效率高。为了提高效率,每个协议只应该注意没有 被其他协议处理过的那部分通信问题;为了主协议的实现更加有效,协议之间应该能够共享特定的数据结构;同时这些协议的组合应该能处理所有可能的硬件错误以 及其它异常情况。为了保证这些协议工作的协同性,应当将协议设计和开发成完整的、协作的协议系列(即协议族),而不是孤立地开发每个协议。
  在 网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型。一台计算机操作系统中的网络过 程包括从应用请求(在协议栈的顶部)到网络介质(底部) ,OSI参考模型把功能分成七个分立的层次。图2.1表示了OSI分层模型。

  ┌─────┐
  │ 应用层 │←第七层
  ├─────┤
  │ 表示层 │
  ├─────┤
  │ 会话层 │
  ├─────┤
  │ 传输层 │
  ├─────┤
  │ 网络层 │
  ├─────┤
  │数据链路层│
  ├─────┤
  │ 物理层 │←第一层
  └─────┘
  OSI七层参考模型

  OSI模型的七层分别进行以下的操作:
  第一层:物理层
   负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码 和数据传输用的连接器。如最常用的RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45就属于第一层。所有比物理层高的层都通过事先定义好的 接口而与它通话。如以太网的附属单元接口(AUI),一个DB-15连接器可被用来连接层一和层二。
  第二层:数据链路层
  通过物理 网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址(相对 应的是网络编址)定义了设备在数据链路层的编址方式;网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构;错误校验向发生传输错误的上层 协议告警;数据帧序列重新整理并传输除序列以外的帧;流控可能延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。数据 链路层实际上由两个独立的部分组成,介质存取控制(Media Access Control,MAC)和逻辑链路控制层(Logical Link Control,LLC)。MAC描述在共享介质环境中如何进行站的调度、发生和接收数据。MAC确保信息跨链路的可靠传输,对数据传输进行同步,识别错 误和控制数据的流向。一般地讲,MAC只在共享介质环境中才是重要的,只有在共享介质环境中多个节点才能连接到同一传输介质上。IEEE MAC规则定义了地址,以标识数据链路层中的多个设备。逻辑链路控制子层管理单一网络链路上的设备间的通信,IEEE 802.2标准定义了LLC。LLC支持无连接服务和面向连接的服务。在数据链路层的信息帧中定义了许多域。这些域使得多种高层协议可以共享一个物理数据 链路。
  第三层:网络层
  负责在源和终点之间建立连接。它一般包括网络寻径,还可能包括流量控制、错误检查等。相同MAC标准的不同网段之间的数据传输一般只涉及到数据链路层,而不同的MAC标准之间的数据传输都涉及到网络层。例如IP路由器工作在网络层,因而可以实现多种网络间的互联。
  第四层:传输层
   向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。流控管理设备之间的数据传输,确保传输设 备不发送比接收设备处理能力大的数据;多路传输使得多个应用程序的数据可以传输到一个物理链路上;虚电路由传输层建立、维护和终止;差错校验包括为检测传 输错误而建立的各种不同结构;而差错恢复包括所采取的行动(如请求数据重发),以便解决发生的任何错误。传输控制协议(TCP)是提供可靠数据传输的 TCP/IP协议族中的传输层协议。
  第五层:会话层
  建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现。它还包括创建检查点,使通信发生中断的时候可以返回到以前的一个状态。
  第六层:表示层
  提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。表示层的编码和转化模式包括公用数据表示格式、性能转化表示格式、公用数据压缩模式和公用数据加密模式。
   公用数据表示格式就是标准的图像、声音和视频格式。通过使用这些标准格式,不同类型的计算机系统可以相互交换数据;转化模式通过使用不同的文本和数据表 示,在系统间交换信息,例如ASCII(American Standard Code for Information Interchange,美国标准信息交换码);标准数据压缩模式确保原始设备上被压缩的数据可以在目标设备上正确的解压;加密模式确保原始设备上加密的 数据可以在目标设备上正确地解密。
  表示层协议一般不与特殊的协议栈关联,如QuickTime是Applet计算机的视频和音频的标准,MPEG是ISO的视频压缩与编码标准。常见的图形图像格式PCX、GIF、JPEG是不同的静态图像压缩和编码标准。
  第七层:应用层
   最接近终端用户的OSI层,这就意味着OSI应用层与用户之间是通过应用软件直接相互作用的。注意,应用层并非由计算机上运行的实际应用软件组成,而是 由向应用程序提供访问网络资源的API(Application Program Interface,应用程序接口)组成,这类应用软件程序超出了OSI模型的范畴。应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因 为可能丢失通信伙伴,应用层必须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资 源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。
  OSI的应用层协议包括文件的传输、访问及管理协议(FTAM) ,以及文件虚拟终端协议(VIP)和公用管理系统信息(CMIP)等。

2. TCP/IP分层模型

  TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网参考模型(Internet Reference Model)。
  ┌────────┐┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
  │        ││D│F│W│F│H│G│T│I│S│U│ │
  │        ││N│I│H│T│T│O│E│R│M│S│其│
  │第四层,应用层 ││S│N│O│P│T│P│L│C│T│E│ │
  │        ││ │G│I│ │P│H│N│ │P│N│ │
  │        ││ │E│S│ │ │E│E│ │ │E│它│
  │        ││ │R│ │ │ │R│T│ │ │T│ │
  └────────┘└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
  ┌────────┐┌─────────┬───────────┐
  │第三层,传输层 ││   TCP   │    UDP    │
  └────────┘└─────────┴───────────┘
  ┌────────┐┌─────┬────┬──────────┐
  │        ││     │ICMP│          │
  │第二层,网间层 ││     └────┘          │
  │        ││       IP            │
  └────────┘└─────────────────────┘
  ┌────────┐┌─────────┬───────────┐
  │第一层,网络接口││ARP/RARP │    其它     │
  └────────┘└─────────┴───────────┘
       TCP/IP四层参考模型

  TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。
  TCP/IP分层模型的四个协议层分别完成以下的功能:
  第一层:网络接口层
   包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协 议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
  第二层:网间层
   对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息。
  第三层:传输层
  对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP协议(Use Datagram Protocol)提供不可靠的用户数据报服务。
  第四层:应用层
   对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文 本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等

=========================================================================================

ISO/OSI参考模型

 

    由于不同计算机和网络厂商的网络体系结构(例如IBM公司的SNADEC公司的DNA等)难以互连互通,且互连网络的性能难以保证,而建网费用很高,面对广大用户要求的便宜、灵活、方便的连网需求,国际标准化组织(ISO)于1983年提出了开放系统互连(OSI)网络体系结构框架,即ISO/OSI参考模型,如图2-1所示。

    2-1  ISO/OSI参考模型

    应该说,ISO/OSI开放式网络体系结构的理论指导作用大于其实际应用。目前,广泛应用的网络体系结构是TCP/IP,但ISO/OSI开放式网络体系结构为人们描述了指导进行网络互连的理想框架和蓝图,有待人们去探索和实现。

    OSI参考模型具有以下特点:

    1)提供了控制互连系统交互规则的标准框架,定义了一种抽象结构,而非具体实现的描述。

    2)描述了实现异构系统互连的分层结构,规定同等层实体(指能发送和接收信息的软件和设备,例如终端、程序、数据库系统、电子邮件系统等)之间的通信由该层的协议进行管理和实现。

    3)规定每层只完成所定义的功能,修改本层的功能对其他层无影响,并定义了相邻层之间的接口。

    4)规定直接的数据传输在最低层(物理层)实现。

    5)通信网只涉及第1层到第3层,例如路由器涉及网络层,网桥涉及数据链路层、中继器涉及物理层,网关则涉及第4层至第7层,属于高层协议转换设备。

    6ISO/ISO分层模块化/结构化的网络设计思想,完整而清晰明了,对计算机网络和其他网络的发展具有十分重要的指导意义。

    7ISD/ISO网络体系结构具有开放性,所谓“开放”是指任何遵守该参考模型和有关标准的系统之间都能进行互连。

    ISO/OSI参考模型只定义了各层的功能,并未定义每层的具体实现协议,其协议由其他标准来定义,这体现了该模型的灵活性和远见卓识。

    ISO/OSI参考模型各层表现在的功能也有很大的差异,下面先作一简单的介绍,下一节再详细说明。

    参考图2-2所示。

    2-2  ISO/OSI参考模型功能简介

    1)物理层(Physical Layer):提供建立、维护和拆除物理链路所需的机械、电气、功能和规程特性,通过传输介质进行数据流(比特流)的物理传输,故障监测和物理层管理。

    2)数据链路层(Data Link Layer):在网络层褓间提供数据传输功能和控制,提供数据的流量控制,检测和纠正物理链路产生的差错。

    3)网络层(Network Aayer):提供路由选择、拥塞控制、网络互连等功能,根据传输层的要求,选择服务质量,向传输层指示未恢复的差错。

    4)传输层(Transport Layar):提供建立、维护和拆除传输连接的功能,监控服务质量,提供端到端可靠的透明的数据传输、差错控制和流量控制。

    5)会话层(Session Layer):提供两个进程之间建立、维护和结束会话连接的功能,提供会话流量控制和交叉会话功能。

    6)表示层(Presentaion Layer):提供不同信息格式和编码之间的转换,提供数据表示、数据压缩和数据加密功能。

    7)应用层(Application Layer):提供网络服务,例如事务处理程序、文件传输程序、网络管理程序等。

======================================================

在TCP/IP参考模型中各层的主要特点和功能如下:

    (1)网络接口层(Network Interface Layer)。网络接口层是ICPIP协议的最底层,是负责网络层与硬件设备间的联系。这一层的协议非常多,包括各种逻辑链路控制和媒体访问。任何用于IP数据报交换的分组传输协议均可包含在这一层中。

    2)网络层(Internet Layer)。网络层解决的是计算机到计算机间的通信问题,它包括三个方面的功能:

    ·处理来自传输层的分组发送请求,收到请求后将分组装入IP数据报,填充报头,选择路径,然后将数据报发往适当的网络接口。

    ·处理数据报。

    ·处理网络控制报文协议、即处理路径、流量控制、阻塞等。

    3)传输层(Transport Layer)。传输层解决的是计算机程序到计算机程序之间的通信问题。计算机程序到计算机程序之间的通信就是通常所说的“端到端”的通信。传输层对信息流具有调节作用,提供可靠性传输,确保数据到达无误。

    4)应用层(Application Layer)。应用层提供一组常用的应用程序给用户。在应用层,用户调节访问网络的应用程序,应用程序与传输层协议相配合,发送或接收数据。每个应用程序都有自己的数据形式,它可以是一系列报文或字节流,但不管采用哪种形式,都要将数据传送给传输层以便交换。