计算机网络——7层OSI网络模型

文章目录

  • OSI模型
    • (1)应用层
    • (2)表示层
    • (3)会话层
    • (4)传输层
    • (5)网络层
    • (6)网络链路层
    • (7)物理层
  • TCP/IP分层模型
    • (1)第一层:网络接口层(和物理层)
    • (2)第二层:网间(络)层
    • (3)第三层:传输层
    • (4)第四层:应用层
      • TCP/IP 协议族常用协议
  • 网络的封包与拆包
    • 链路层封包格式
    • 网络层和传输层的封包格式

两类非常重要的体系结构:OSI和 TCP/IP

OSI模型

  • OSI 模型(Open System Interconnection model)是一个由国际标准化组织提出的概念模型,试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。
  • 它将计算机网络体系结构划分为七层,每层都可以提供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业标准—— TCP / IP 协议(族)。
  • OSI 模型各层间关系和通讯时的数据流向如图所示:
    计算机网络——7层OSI网络模型_第1张图片
  • 在实际的开发应用中一般时在此模型的基础上进行裁剪、整合!
  • 分层结构的好处: 上层的变动完全不影响下层的结构。
  • 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起
  • 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务。

七层模型介绍

(1)应用层

规定数据的传输协议

常见的应用层协议:

协议 端口 说明
HTTP 80 超文本传输协议
HTTPS 443 HTTP+SSL,HTTP的安全版
FTP 20,21,990 文本传输协议
telnet 23 远程终端协议

(2)表示层

应用层数据编码和转化,以确保以一个系统应用层发送的信息 可以被另一个系统应用层识别;

eg: 解决不同系统之间的通信,比如Linux下的QQ和Windows下的QQ可以通信;

(3)会话层

建立一个连接(自动的手机信息、自动的网络寻址)

(4)传输层

每一个应用程序都会在网卡注册一个端口号,该层就是端口与端口的通信!常用的(TCP/IP)协议;

(5)网络层

此处需要确定计算机的位置,怎么确定?IPv4,IPv6!

(6)网络链路层

规定了0和1的分包形式,确定了网络数据包的形式;

(7)物理层

物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输

eg:RJ45等将数据转化成0和1;

下面的图表显示了常见的不同的TCP/IP和其他的协议在最初OSI模型中的位置

协议 位置
HTTP、FTP、 telnet、 SIP、 SSH 应用层
NCP、AFP 表示层
SSH、BSD socket 会话层
TCP、UDP 传输层
IP、ICMP、IGMP 网络层
以太网、ARP、RARP 数据链路层(负责数据帧的发送与接收)
光纤、无线电 物理层

TCP/IP分层模型

  • OSI 模型所分的七层,在实际应用中,往往有一些层被整合,或者功能分散到其他层去。TCP/IP 没有照搬 OSI 模型,也没有 一个公认的 TCP/IP 层级模型,一般划分为三层到五层模型来述 TCP/IP 协议。
  • 下面以TCP/IP分层模型为例:TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层,如下图

计算机网络——7层OSI网络模型_第2张图片

计算机网络——7层OSI网络模型_第3张图片

  • TCP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。
  • TCP所服务对象需要高度可靠性且面向连接的服务,如:HTTP、FTP、SMTP(简单邮件传输协议)等

下面简单了解TCP/IP分层模型中四个协议层分别完成的功能

(1)第一层:网络接口层(和物理层)

包括用于协作IP数据在已有网络介质上传输的协议。
它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供供 TCP/IP 协议的数据结构和实际物理硬件之间的接口。

可以理解为:确定了网络数据包的形式。
以太网,令牌环网,FDDI,wifi,gps/2G/3G/4G,驱动(屏蔽硬件差异)

mac地址:48位,全球唯一,网络设备的身份标识

  • ARP协议:地址解析协议,通过网络层的IP地址找到mac地址
  • RARP协议:通过mac地址来找到IP地址
  • PPP协议:拨号协议(GPRS/3G/4G)

(2)第二层:网间(络)层

对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议(Routing Information Protocol,路由信息协议),负责数据的包装、寻址和路由。同时还包含网间控制报文协议(Internet Control Message Protocol,ICMP)用来提供网络诊断信息;

可以理解为:该层时确定计算机的位置,端到端传输

(3)第三层:传输层

对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中 TCP 协议(Transmission Control Protocol)提供可靠的数据流运输服务,UDP 协议(Use Datagram Protocol)提供不可靠的用户数据报服务。

通过TCP、UDP决定传输到哪一个线程或进程

(4)第四层:应用层

对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议常见的有:FTP(文件传输协议)、HTTP(超文本传输协议)、Telent(远程终端协议)、SSH(远程登录)、DNS、STMP等。

TCP/IP 协议族常用协议

  • IP(Internet Protocol,网际协议)是网间层的主要协议,任务是在源地址和和目的地址之间传输数据。IP 协议只是尽最大努力来传输数据包,并不保证所有的包都可以传输到目的地,IP并不维护任何关于后续数据包的状态信息。每个数据包的处理是相互独立的。IP数据包可以不按发送顺序接收【即不可靠,无连接】

    • IP 定义了 TCP/IP 的地址,寻址方法,以及路由规则。现在广泛使用的IP 协议有 IPv4 和 IPv6两种:IPv4 使用 32 位二进制整数做地址,一般使用点分十进制方式表示,比如 192.168.0.1。
    • IP 地址由两部分组成,即网络号和主机号。故一个完整的 IPv4 地址往往表示 为 192.168.0.1/24 或192.168.0.1/255.255.255.0 这种形式。
    • IPv6 是为了解决 IPv4 地址耗尽和其它一些问题而研发的最新版本的 IP。使用 128 位 整数表示地址,通常使用冒号分隔的十六进制来表示,并且可以省略其中一串连续的 0,如:fe80::200:1ff:fe00:1。目前使用并不多!
    • IP数据包中含有发送它主机的IP地址(源地址)和接收它主机的IP地址(目的地址)
  • ICMP(Internet Control Message Protocol,网络控制消息协议)是 TCP/IP 的 核心协议之一,用于在 IP 网络中发送控制消息,提供通信过程中的各种问题反馈。 ICMP 直接使用 IP 数据包传输,但 ICMP 并不被视为 IP 协议的子协议。常见的联网状态诊断工具比如依赖于 ICMP 协议;Ping命令属于ICMP

  • IGMP协议:Internet分组管理协议,广播和组波

  • TCP(TransmissionControlProtocol,传输控制协议)是一种面向连接的,可靠的, 基于字节流传输的通信协议。TCP 具有端口号的概念,用来标识同一个地址上的不同应用,提供不同主机上的进程间通信。 TCP 的标准文档是 RFC793。

    • TCP数据包中包含序号和确认序号
    • 对包进行排序并检错,而损坏的包可以被重传
    • 建立链接->使用链接->释放链接(虚电路)
    • TCP所服务对象需要高度可靠性且面向连接的服务,如:HTTP、FTP、SMTP(简单邮件传输协议)等
  • UDP(UserDatagramProtocol,用户数据报协议)是一个面向数据报的传输层协议。UDP 的传输是不可靠的,发送数据之前不需要建立链接,简单的说就是发了不管,发送者不会知道目标地址的数据通路是否发生拥塞,也不知道数据是否到达,是否完整以及是否还是原来的次序,没有错误检测和重传机制。它同 TCP 一样有用来标识本地应用的端口号。所以应用 UDP 的应用,都能 够容忍一定数量的错误和丢包,但是对传输性能敏感的,比如流媒体、DNS服务器进行IP地址查询,广播/组播,无线网络,QQ等即时通讯软件点对点文本通讯以及音视频 等。

    • 服务对象主要用于“查询—应答”的服务,如:NFS、NTP、DNS等
    • 提供不同主机上的进程间通信
  • DHCP(DynamicHostConfigrationProtocol,动态主机配置协议)是用于局域 网自动分配 IP 地址和主机配置的协议。可以使局域网的部署更加简单。

  • DNS(DomainNameSystem,域名系统)是互联网的一项服务,可以简单的将用“.” 分隔的一般会有意义的域名转换成不易记忆的 IP 地址。一般使用 UDP 协议传输, 也可以使用 TCP,默认服务端口号 53。

  • FTP(FileTransferProtocol,文件传输协议)是用来进行文件传输的标准协议。FTP 基于 TCP使用端口号 20 来传输数据,21 来传输控制信息。

  • SSH(SecureShell,安全Shell),因为传统的网络服务程序比如TELNET本质上都极不安全,明文传输数据和用户信息包括密码,SSH 被开发出来避免这些问题, 它其实是一个协议框架,有大量的扩展冗余能力,并且提供了加密压缩的通道可以 为其他协议使用。

  • HTTP(HyperTextTransferProtocol,超文本传输协议)是现在广为流行的WEB 网络的基础,HTTPS 是 HTTP 的加密安全版本。协议通过 TCP 传输,HTTP 默认 使用端口 80,HTTPS 使用 443。

  • RTP/RSTP:嵌入式相关,用于传输音视频的协议(安防监控)

参考博文:简单了解OSI网络模型和深入浅出-网络七层模型

网络的封包与拆包

计算机网络——7层OSI网络模型_第4张图片
计算机网络——7层OSI网络模型_第5张图片

计算机网络——7层OSI网络模型_第6张图片

  • TCP、UDP头主要是端口号
  • 以太网头主要是MAC地址,由图可知:IP地址是网络层的提出的标识概念,实际的数据传输过程仍然走的是MAC地址

链路层封包格式

计算机网络——7层OSI网络模型_第7张图片

目的地址:目的mac地址
源地址:源mac地址
类型:确定以太网头后面跟的是哪个协议

  • 0x0800 ip协议
  • 0x0806 arp协议
  • 0x0835 rarp协议

注意

  • 1、IEEE802.2/802.3封装常用在无线
  • 2、以太网封装常用在有线局域网

网络层和传输层的封包格式

计算机网络——7层OSI网络模型_第8张图片

  • IP数据包包含后面传输层的协议

TCP协议可以通过使用socket网络编程实现:Linux 网络编程——socket 网络编程
理解TCP、HTTP、SOCKET之间的关系:计算机网络——SOCKET、TCP、HTTP之间的区别与联系

你可能感兴趣的:(网络)