OSI七层模型
1. 什么是OSI模型
- 开放系统互连参考模型,是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考
模型。 - 目的:为开放式互连信息系统提供了一种功能结构的框架和参考。
- 这里所说的开放系统,实质上指的是遵循OSI参考模型和相关协议能够实现互连的具有各种应用目的的计算机系
统。 - OSI采用了分层的结构化技术,共分七层:
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
2. OSI的七层介绍
应用层
- 应用层是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在
网络上完成的各种工作。 - 应用层为用户提供的服务和协议:文件传输服务(FTP)、远程登录服务(ssh)、网络管理服等。
- 上述的各种网络服务由该层的不同应用协议和程序完成。
- 应用层的主要功能如下:
- 用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
- 实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。
表示层
- 表示层是对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。
- 其主要功能是处理用户信息的表示问题,如编码、数据格式转换和加密解密等。
- 表示层的具体功能如下:
- 数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
- 数据的编码:处理字符集和数字的转换。
- 压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与解压缩。
- 数据的加密和解密:可以提高网络的安全性。
会话层
- 会话层是用户应用程序和网络之间的接口,主要任务是:组织和协调两个会话进程之间的通信,并对数据交换进行管理。
- 当建立会话时,用户必须提供他们想要连接的远程地址。
传输层
- OSI上3层:应用层、表示层、会话层的主要任务是数据处理——资源子网
- OSI下3层:网络层、数据链路层、物理层的主要任务是数据通讯——通讯子网
- 传输层是OSI模型的第4层,它是通信子网和资源子网的接口和桥梁,起到承上启下的作用
- 传输层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输
报文:报文(message)是网络中交换与传输的
报文段:组成报文的每个分组。我们将运输层分组称为报文段(segment)
网络层
- 主要任务是:数据链路层的数据在这一层被转换为包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
- 一般情况下,数据链路层是解决同一网络(局域网)内节点之间的通信,而网络层主要解决不同子网间的通信。
数据链路层
在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是:
- 在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即向网络层提供可靠的通过物理介质传输数据的方法。
- 具体工作是:接收来自物理层的位流(比特流)形式的数据,通过差错控制等方法传到网络层;同样,也将来自上层的数据,封装成 3 转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
帧:帧(frame)是数据链路层的传输单元。将上层传入的数据添加一个头部和尾部,组成了帧。
物理层
- 主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。尽可能屏蔽掉具体传输介质和物理设备的差异。
3. 总结
- 在7层模型中,每一层都提供一个特殊的网络功能。
- 从网络功能的角度观察:
- 物理层、数据链路层、网络层:主要提供数据传输和交换功能,即节点到节点之间通信为主;
- 传输层(第4层):作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;
- 会话层、表示层和应用层:以提供用户与应用程序之间的信息和数据处理功能为主。
TCP/IP协议模型
1. 什么是TCP/IP模型
- TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为一种国际标准。
- TCP/IP协议簇是一组不同层次上的多个协议的组合,该协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求,与OSI的七层模型相对应。
- 尽管通常称该协议族为TCP/IP,但TCP和IP只是其中的两种协议而已(该协议族的另一个名字是Internet协议族(Internet Protocol Suite))
2. TCP/IP的分层结构
链路层
OSI的物理层和数据链路层
- ARP(地址解析协议IP-MAC)和RARP(逆地址解析协议MAC-IP)是某些网络接口(如以太网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。
网络层
- 也称作互联网层或网际层,处理分组在网络中的活动,例如分组的选路。
- 在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。
- IP是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。同时被TCP和UDP使用。
- TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。
- ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。它主要是用来提供有关通向目的地址的路径信息。Ping和Traceroute工具,它们都使用了ICMP协议。
- IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。该协议运行在主机和组播路由器
之间。
运输层
主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:
TCP(传输控制协议)和UDP(用户数据报协议)
TCP协议:为两台主机提供高可靠性的数据通信。TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要断开连接,由于TCP是面向连接的所以只能用于端到端的通讯。
TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。也就是TCP数据包中包括
序号(seq)和确认(ack),所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。UDP协议:则为应用层提供一种非常简单的服务。它是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。 UDP通讯时不需要接收方确认,不保证该数据报能到达另一端,属于不可靠的传输,可能会出现丢包现象。UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。
应用层
OSI会话层、表示层、应用层
应用层负责处理特定的应用程序细节。
HTTP、FTP、SSH、DHCP、DNS…..
3. 数据封装过程
数据格式
TCP数据信息:TCP头部+实际数据(TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)
IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)
数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC初步地址及类型,帧尾是校验字)
数据的封装与解封装
封装:数据要通过网络进行传输,要从高层一层一层的向下传送,如果一个主机要传送数据到别的主机,先把数据装到一个特殊协议报头中,这个过程叫—–封装。
解封装:上述的逆向过程当数据以TCP/IP协议传输时的封装与街封装过程如下图:
TCP/IP三次握手四次断开
1. 了解相关名词
1 | 序列号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 |
2. 了解netstat中的网络状态
1 | CLOSED |
3. TCP/IP三次握手
1 | TCP三次握手的过程如下: |
4.TCP/IP四次断开
1 | TCP四次断开的过程如下: |