0
点赞
收藏
分享

微信扫一扫

计算机网络体系结构

千行 2022-03-19 阅读 105
网络

计算机网络体系结构

image-20220319122751931

OSI/RM七层模型

概述

  • 开放系统互联参考模型 即 OSI/RM模型,(Open System Interconnection/Reference Model)它将计算机网络体系结构的通信协议划分为七层,物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)
  • 这个体系结构到现在看起来有点不科学,主要是两个方面:
    • 层数太多
    • 会话层和表示层单独划分的意义不大,用途不像其他层那么明显

七层参考模型

img

各层基本功能

image-20220319122556281

TCP/IP五层模型

物理层

  • 在物理层上所传送的数据单位是比特。 物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。 使其上面的数据链路层不必考虑网络的具体传输介质是什么
  • 功能
    • 为数据端设备提供传送数据通路
    • 传输数据(比特流)

数据链路层

  • 数据链路层(data link layer)通常简称为链路层(在局域网中还可细分为MAC子层和LLC子层)。在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧
  • 以太网协议
    • 早期的时候,每家公司都有自己的电信号分组方式。逐渐地,一种叫做以太网(Ethernet)的协议,占据了主导地位
    • 以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)
      image-20220319143704274
  • MAC地址和广播
    • 以太网数据包的Head,包含了发送者和接受者的信息,那么,发送者和接受者是如何标识呢?以太网规定,连入网络的所有设备,都必须具有"网卡"接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址,每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示
    • 有了MAC地址,就可以定位网卡和数据包的路径了。以太网数据包必须知道接收方的MAC地址,然后才能发送,它不是把数据包准确发送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方,下图种1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的"标头",找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做"广播"(broadcasting)
      img
  • 主要功能
    • 帧同步(成帧): 为了使传输中发生差错后只将有错的有限数据进行重发,将数据组合成数据块封装成帧,数据链路层传送的基本单位是帧
    • 链路管理:在两个网络实体之间提供数据链路连接的创建、维持和释放管理
    • 差错控制:个实用的通信系统必须具备发现(即检测)这种差错的能力,并采取某种措施纠正之,使差错被控制在所能允许的尽可能小的范围内,这就是差错控制过程
    • 流量控制:这不是链路层所特有的功能,对于数据链路层来说,控制的是相邻两节点之间数据链路上的流量
    • MAC寻址(地址映射):是数据链路层中的MAC子层主要功能,因为存在网络层地址(IP 地址)和 数据链路层地址(MAC 地址),所以需要在它们之间进行转换和映射,此处涉及ARP协议(针对两台主机在同一个子网络的情况,不在则将数据包交给网关处理

网络层

  • 网络层的由来
    • 以太网协议,依靠MAC地址发送数据。理论上,单单依靠MAC地址,上海的网卡就可以找到洛杉矶的网卡了,技术上是可以实现的,但是,这样做有一个重大的缺点。以太网采用广播方式发送数据包,所有成员人手一"包",不仅效率低,而且局限在发送者所在的子网络。也就是说,如果两台计算机不在同一个子网络,广播是传不过去的。这种设计是合理的,否则互联网上每一台计算机都会收到所有包,那会引起灾难。互联网是无数子网络共同组成的一个巨型网络,很像想象上海和洛杉矶的电脑会在同一个子网络,这几乎是不可能的;因此,必须找到一种方法,能够区分哪些MAC地址属于同一个子网络,哪些不是。如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送,这就导致了"网络层"的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"
    • "网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起
    • 网络层建立了“主机到主机”的通信
  • IP协议
    • 规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址
    • IP协议的作用
      • 为计算机分配IP地址
        • 互联网上的每一台计算机,都会分配到一个IP地址。这个地址分成两个部分,前一部分代表网络,后一部分代表主机
      • 确定哪些地址在同一个子网络
        • 处于同一个子网络的电脑,它们IP地址的网络部分必定是相同的,但是单单从IP地址,我们无法判断网络部分,这时就要用到另一个参数子网掩码(subnet mask)
        • 所谓子网掩码,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.254.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0
        • 通过子网掩码判断是否处于同一网段
  • IP数据包
    • 根据IP协议发送的数据,就叫做IP数据包,其中包含IP地址信息,IP数据包也包含 Head 和 Data 两部分
      image-20220319143942489
    • 以太网数据包只包含MAC地址,并没有IP地址的栏位,但是我们可以把IP数据包直接放进以太网数据包的Data部分,因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构;放进以太网数据包后,以太网数据包变成了下图这样
      image-20220319144109209

传输层

  • 传输层的由来
    • 有了MAC地址和IP地址,就可以在互联网上任意两台主机之间建立通信,但是同一台主机上有许多程序(进程)要用到网络,当我们接收到一个数据包怎么知道它被哪个进程使用?
    • 也就是说,我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用。这个参数就叫做端口(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据
    • "端口"是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口
    • 传输层建立了"端口到端口"的通信,(传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题)
  • UDP协议(用户数据协议 User Datagram Protocol)–提供无连接的,尽最大努力的数据传输服务
    • 在数据包中加入端口信息,就需要新的协议。最简单的实现叫做UDP协议,它的格式几乎就是在数据前面,加上端口号
    • UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到
  • TCP协议(传输控制协议 Transmisson Control Protocol)–提供面向连接的,可靠的数据传输服务
    • 为了解决UDP协议的问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了
    • TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源
    • TCP数据包和UDP数据包一样,都是内嵌在IP数据包的Data部分。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割

应用层

  • 应用层的任务是通过应用进程间的交互来完成特定网络应用
  • 应用层协议定义的是应用进程之间通信和交互的规则。对于不同的网络应用需要不同的应用层协议,在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件的 SMTP协议等等。我们把应用层交互的数据单元称为报文
  • 应用层的数据放在TCP数据包的Data部分,此时以太网数据包变成下面这样
    image-20220319145559775

参考文章

这一次,彻底拿下计算机网络链路层

计算机网络基础知识 - 五层协议的体系结构 * * * *

两张动图-彻底明白TCP的三次握手与四次挥手

HTTP的长连接、短链接究竟是什么

互联网协议入门(一)

36 张图详解应用层协议:网络世界的最强王者

ARP,这个隐匿在计网背后的男人

举报

相关推荐

0 条评论