网络协议3:各层级+服务模型——TCP/IP及ISO/OSI

1,389 阅读6分钟

本篇除却参考课件之外,还额外参考了一篇文章带你熟悉 TCP/IP 协议协议森林01。感谢互联网


好嘛,这么久了终于开始讲这儿了。

前面提到,互联网是由各个协议组成的,这些协议分布在不同层级共同实现了网络的功能,我们也可以把之前提到的那些设备们按照层级分类来组织他们、管理他们。

为什么要分层

为了处理复杂情况(废话,展开来讲的话

  • 明显的层次结构(explicit structure)可以帮助我们识别系统各部分之间的关系,理清他们的逻辑
  • 分层以后方便进行模块化管理(modularization),可以轻松地维护、升级(maintenance, updating)系统,可以升级某一部分而不影响其他部分

所以,当有人问这么做的好处是什么可以这样总结:

  • 帮助解决复杂性: 将复杂的设计任务分解为几个较小的任务
  • 模块化简化了维护和更新: 更改系统的一部分,其他部分保持不变)

具体的两种模型

概览

OSI.png

对比.png

TCP/IP model

TCP/IP不是指这两个具体的协议。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网实际的必不可少的组成部分

TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群

它分为:

  • 物理层(physical): "bits on the wire"。是指光纤、电缆或者电磁波等真实存在的物理媒介。这块是如何传播的就要@Telecommunication System了
  • 连接层、数据链路层(link): 关注的是点到点之间,两个相连的终端间的连接
    • 可以看作物理层的补充
    • 比如WIFI,比如以太网(Ethernet),硬件是交换机
    • 通过连接层协议,我们可以建立局域网,并让位于同一局域网络中的两台计算机通信。
    • 关注具体设备的硬件地址MAC
      • 在连接层,信息以 帧(frame) 为单位传输。讲连接层的时候会详细说明
      • 连接层就像是一个社区的邮差,他认识社区中的每一户人。社区中的每个人都可以将一封信 (帧) 交给他,让他送给同一社区的另一户人家。
  • 网络层(network): 关注数据从起点到终点怎么走、谁来负责走。
    • 关注计算机的地址,顺便还要负责检查数据有没有损坏
      • 像是邮局,在每个小区里,你寄东西就帮你完成中间操作
      • 信息传输单位是datagram,数据报
  • 传输层(transport) 专心负责 传输数据
    • 与reliability相关,关注机器上那个程序发送了数据
    • 我们需要在信纸上写上新的信息,比如收信人的姓名,才可能让信送到。所以,传输层就是在信纸的空白上写上新的 “收信人”信息。每一所房子会配备一个管理员(传输层协议)。管理员从邮差手中接过信,会根据“收信人”,将信送给房子中的某个人。
    • 数据传输单位是packet,包
  • 应用层(application): 给APP提供网络
    • FTP(文件)、SMTP(邮件)、HTTP(www)

ISO/OSI reference model

ISO = International Standards Office 国际标准局 OSI = Open Systems Interconnection 开放系统互联

OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。

也可以说,TCP/IP是实际应用的,ISO/OSI是理想化的功能层次

它比TCP/IP多两个层

  • 会话层(session): 负责同步、检查、数据恢复、交换等,与整个连接生命周期控制相关
  • 表现层(presentation): 允许应用程序解释数据的含义,例如加密、压缩、特定于机器的约定。与数据、字符集相关

因为TCP/IP结构已经太庞大,没办法增加,所以这些功能应该尽量在应用层实现

每个层的设备们

老三样了,路由交换机repeater

  • 路由找到对方的IP,决定大的方向。实际上还连接了不同的(由设备们组成的)网络
  • 交换机交换机有多个端口,每个端口都具有桥接功能,可以连接一个局域网或一台高性能服务器或工作站。实际上,交换机有时被称为多端口网桥。相当于是一个扩大网络的器材,能为子网络中提供更多的连接端口(与硬件地址MAC绑定,地址见下节),以便连接更多的计算机。可以粗暴理解为拓展坞
  • repeater翻译是中继器,是工作在物理层上的连接设备。适用于完全相同的两个网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。

层对应设备.png

总览、习惯称呼和小练习

总览就是再看一遍整体结构图,想不到吧

整体.png

习惯称呼:差点忘了,看图应该能看出来,一律按照ISO/OSI的代表数字(Layer 1-7)来称呼

然后看看能不能分出来
上习题

分层题.png

层的标识——头(headers)

那么头是啥

TCP/IP模型的大多数层都与特定类型的“头”关联,有时甚至还包括“尾”。那么,什么是“头”呢

  • 他们与数据本身分离
  • 说明与数据有关的信息,比如:
    • 它将被发送到哪?
    • 哪个程序要接收它?
    • 这串数据有多长?

例如,第3层(网络)有一个“network address”,用于标识应接收数据的主机;第4层(传输)有一个端口,用于标识哪个程序应该接收它。

关于封装

每经过一个层都会添加一个新的头,这样在越底层传输时包含的头就越多——一个第二层数据包有一个第二层的头,但包括来自第三层和第四层的头。

封装.png

这幅图是这一过程的示意图

  • source里所有东西被压到一起,物理层传播
  • switch解包到link,修改后重新封装;此外link每一端都要被解码一次说明了每一端都在,端端间由它负责
  • router一直解到network,修改后重新封装;或者说router负责到network层;network关注的是“找路”、实际上就是关注ip
  • transport头只在终端时被解出来显示下存在感,关注的是接口
  • 应用层我猜大家都懂,不过注意是作为数据传输的,没头 后两者都到具体终端才解包捏

例题1:

例题1.png 包含高层的

例题2:

例题2.png 应该没什么问题

一点点互联网的历史——CK原则

  • 极简、自动化——不用说我要发送多少多少你再改变互联网结构让我发送多少多少
  • best effort service model,尽力,笑死
  • stateless routers 路由器本身无状态,不用随着更改
  • decentralized control 分散控制