OSI模型与TCP/IP协议族

什么是网络模型

网络模型主要有OSI模型(OSI model)和TCP/IP协议族(TCP/IP suite)。网络的存在就是为了让不同国家、不同厂商的设备可以通信,网络模型可以将通信标准化。

网络协议

网络协议是一些列规则,它们定义了网络设备或者相关软件应该如何工作。这些规则是指设备/软件之间通信时应遵循的逻辑规则,而非物理层面的标准。

什么是网络模型

网络模型对网络协议或者标准进行分类,并将每一类命名为一层,将各层次堆叠为一个层次模型结构。

OSI模型

OSI模型是网络通信标准化的一次重大尝试,虽然今天已经不再使用此模型,但是它仍深刻地影响了网络工程师思考网络。

什么是OSI模型

OSI(Open Systems Interconnection)模型是一个开放(open)的标准,而非某一独立厂家开发使用的私有模型,它是由ISO(International Organization for Standardization)创建。OSI模型将网络的功能进行分类并标准化,它一共将网络功能分为7层(Layers),

  • 第7层:应用层(Application)
  • 第6层:表示层(Presentation)
  • 第5层:会话层(Session)
  • 第4层:传输层(Transport)
  • 第3层:网络层(Network)
  • 第2层:数据链路层(Data Link)
  • 第1层:物理层(Physical)

7层一起工作使得网络可以正常运行。接下来,自顶向下的看看每一层具体的作用与能力。

第7层:应用层

第7层——应用层是距离用户最近的层。应用层与应用软件交互,这些应用软件是有通信组件的,比如网页浏览器:Brave、Firefox、Chrome等。
HTTP和HTTPS是第七层具有代表性的协议。例如:https://www.cisco.com就是使用HTTPS协议获取思科网页并在浏览器中查看网页。
第7层并不包含应用程序(Chrome、Firefox)本身,而是包含与应用程序交互的协议(HTTP、HTTPS)。

应用层的功能

应用层的同层交互可以执行以下功能:

  • 识别通信伙伴
  • 同步通信

注意:所谓功能是指同层交互(same-layer interaction)时的能力。同层交互是指两个不同系统(主机)的同一层通信。数据的传输过程是

  1. 发送端上三层处理通信内容(数据)
  2. 发送端自顶(传输层)向下至数据链路层,每一层通过添加额外信息封装数据
  3. 到达发送端最底层——物理层时,作为电信号发送到接收端
  4. 接收端自底(数据链路层)向上至传输层每一层通过移除额外信息将数据去封装
  5. 接收端上三层处理通信内容(数据)

1和3的过程叫做层间交互(adjacent-layer interaction)。

第6层:表示层

应用层中的数据是符合应用格式(application formats)的,应用层是这能应用软件才能理解的格式,如果想在网络上传输数据,应用格式需要先翻译为可以在网络上传输的格式,因此第6层——表示层的工作就是在应用格式和网络格式(network formats)之间互相翻译。

表示层的功能

  • 翻译数据使之符合恰当的格式

表示层可以将符合应用格式的数据翻译为网络格式,使得数据可以在网络上进行传输;表示层可以将符合网络格式的数据翻译为应用格式,使得应用软件可以理解网络上的数据。
举个例子,在发送数据时对其进行加密,为了只有符合我们期望的接收方可以读取它,当然,在接收到它时进行解密。
表示层也可以在不同的应用格式之间翻译数据,以确保接收方可以理解该数据。

第5层:会话层

会话层控制两个建立连接的主机之间的会话(dialogues/sessions)状态。控制方式有建立、管理、终止。

会话层的功能

  • 建立、管理、终止本地应用(如网页浏览器)和远程应用(如Youtube)之间的连接。

每时每刻都有不计其数的用户使用Youtube服务器,所以必须有一种方式来管理这些会话,即会话层。

上3层

知晓上三层(应用层、表示层、会话层)是必要的,但是实际上网络工程师在工作中并不会接触上三层。应用开发工程师会更多的与上三层打交道,通过上三层应用开发工程师可以将应用与网络连接。上三层处理好的数据传送到第4层,实际上做的就是在网络上发送数据的工作。

第4层:传输层

上三层处理好的数据传送到第4层后,第4层会在数据前加一个头。注意此过程中产生的这个数据单元加上第4层头(Layer 4 header)被称为数据段(segment)。
segment = data + L4 header
如果即将发送的数据足够大,数据会被分割为更小的数据,每个小数据都有一个第4层头,即数据会被分割为更小的数据段。

传输层的功能

  • 分割和重组终端主机之间的通信数据
  • 提供端到端 end-to-end(主机到主机 host-to-host )之间的通信,也为应用软件提供进程到进程 process-to-process 之间的通信

传输层将大块数据分成更小的段,这些段可以很容易地通过网络发送,并且即使发生错误,也不容易导致传输问题。举个例子,你准备观看一个视频,如果不分割数据,当发生错误导致视频无法到达你的电脑,那么你将完全无法观看这个视频;然而,如果数据被分割为很小的数据段,那么只有发生错误的那个数据段无法到达你的电脑,视频可能会跳过一秒钟,但随后会继续播放。

第3层:网络层

上三层以及传输层处理好的数据传送到第3层后,第3层会在数据前加一个头。注意此过程中产生的这个数据单元加上第3层头(Layer 3 header)被称为分组(packet)。
packet = segment + L3 header
packet = (data + L4 header) + L3 header

网络层的功能

  • 提供在不同网络上的主机的连通性
  • 提供逻辑地址
  • 提供源到目标之间的路径选择

网络层可以帮助局域网(LAN)之外的主机实现通信;网络层也提供逻辑地址,也就是所谓的IP地址,IP地址包含在第3层头中;在大型网络中,尤其是互联网,源和目标之间通常有多个可能的路径,网络层提供可以找到最优路径的方法。路由器就是工作在第三层,这也是为什么路由器可以使主机与局域网外的主机通信的原因。

第2层:数据链路层

上三层、传输层以及网络层处理好的数据传送到第2层后,第2层会在数据前加一个头、在数据后加一个尾。注意此过程中产生的这个数据单元加上第2层头(Layer 2 header)和第2层尾(Layer2 trailer)被称为数据帧(frame)。
frame = L2 trailer + packet + L2 header
frame = L2 trailer + (segment + L3 header) + L2 header
frame = L2 trailer + ((data + L4 header) + L3 header) + L2 header

数据链路层的功能

  • 提供节点到节点 node-to-node的连通性
  • 数据传输
  • 格式化数据使得数据可以通过物理介质传输
  • 检测并(可能)纠正物理层错误
  • 提供第2层地址

数据链路层提供节点到节点的连通性和数据传输能力,所谓节点到节点就是指PC到交换机、交换机到路由器、路由器到路由器;因为数据链路层临近物理层,所以它也要定义数据应以何种格式在物理介质上进行传输,而且数据链路层还具备检测并(可能)纠正物理层错误的能力;数据链路层还提供一种第2层所使用的地址,它是与第3层地址(即IP地址)不同的另一套系统。交换机就是工作在第2层,交换机可以查看目标的第 2 层地址以确定将数据发送到何处。

第1层:物理层

数据帧到达物理层后,不会再进一步封装,而是通过连接(connection)将帧发送到相邻系统(neighboring system),连接可能是有线电信号或者无线信号(在 wifi 的情况下)。

物理层的功能

  • 定义用于在设备之间传输数据的介质的物理特性
  • 将数字比特转换为电信号或无线电信号

物理层定义了用于在设备之间传输数据的介质的物理特性,比如:电压等级、最大传输距离、物理连接器、电缆规格等;物理层还会将数字比特转换为电信号(有线连接)或无线电信号(无线连接),使其可以在线缆或物理空间上进行传输。

协议数据单元

协议数据单元(Protocol Data Units)简称PDU,即每一层所使用的数据都对应一个特定的术语。

OSI 模型层PDU
上三层数据 Data
传输层数据段 Segment
网络层分组 Packet
数据链路层数据帧 Frame
物理层比特 Bit
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值