本目内容还是为上课笔记,主要为自己总结。所以,写的不是很规范。
本目主要讲一下两种参考模型
主要有一下几个内容:
- ISO/OSI参考模型
- TCP/IP四层模型
- 基本概念(对等通信、封装、分用、端口 )
ISO/OSI参考模型
各层功能
应用层:
- 本层为用户所指定的一些协议规范。主要是为了实现一定的应用功能。
- 本曾常见的协议有:HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3
- 应用层协议主要是用户指定,解决特定功能。它是为应用进程服务,主要处理应用程序细节,并不关心具体数据是怎么传送的。
表示层:
- 对网络传输的数据进行变换,使得多个主机之间传送的信息能够互相理解,包括数据的压缩,加密格式转化等等。
会话层:
- 管理主机之间回话的过程,包括回话的建立和终止,以及回话过程中的管理。
传输层:(Transport layer)
- 提供可靠的数据传输服务,它检测路由器丢弃的包,然后产生一个重传请求,能够将乱序收到的包。重新进行排序。
- 本层数据单位是:segment
- 本层定义的规范有:TCP,UDP。
网络层:(Network layer)
- 网络层负责将各个子网之间的数据进行路由选择,分组与重组。
- 本层中数据单位是packet。
- 本层定义的规范有:IP,RIP、OSPF、ICMP、IGMP
- 本层的设备有:路由器
数据链路层:(Data link layer):
- 将物理层收到的数据(比特流)封装成帧,提供可靠的数据传输服务。实现无差错数据传输。
- 数据单位是frame。
- 本层定义的规范(协议):PPP,STP,帧中继等。
物理层:(physical layer):
- 物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质。
- 本层传输单位为bit。
- 本层定义如下规范:RJ-45等。
- 本层的设备有:网卡。
通信细节主要是TCP/IP协议,由内核提供。内核实现了协议栈。
OSI/ISO模型各层功能如下图:
层次 | 协议 | 功能 | 数据单元(protocal data unit) |
---|---|---|---|
应用层 | 应用层协议 | 提供应用程序间通信 | APDU |
表示层 | 表示层协议 | 处理数据格式、加密等 | PPDU |
会话层 | 会话层协议 | 建立端到端传输 | SPDU |
传输层 | 传输层协议 | 提供应用程序间通信 | segment |
网络层 | 网络层协议 | 寻址和路由选择 | packet |
数据链路层 | 数据链路层协议 | 介质访问、链路管理 | frame |
物理层 | 物理层协议 | 比特流传输 | bit |
TCP/IP四层模型
应用层 application layer
传输层 transport layer
网络层 internet layer
链路层 link layer
一些基本概念
协议
- 双方要通信,必须遵循一致的规范。这种规范叫做协议。比如两个国家的人交流,必须要规定一种双方都能理解的语言才行。简言之,通信的规范。
- 我自己对协议的理解,也有语义的概念在里面。就是具体要实现的功能,应该通过协议去实现。比如每一层实现了不同的功能,那么这些功能应该由协议去规定。
对等通信
- 在逻辑上来说,对等层的功能是一致的,遵循同样的协议。所以,只能是对等层之间才能通信。
- 我的理解:对等通信应该是逻辑上的概念。但是在物理实现上并不是对等的。比如打电话,A给B打电话,看起来好像是A直接把话讲给了B,但本质上这其中经历了复杂的过程。电话即把A的话转化为电信号。然后通过电信局,通过基站传递到对方。对方的电话即把电信号解码,传递给B。
封装
- 具体来说,每一层加上相应的协议头部的过程叫做封装。
分用(解封)
- 根据对应层的协议进行解析的过程叫做分用。
- 比如IP协议解析之后,根据解析后的结果,把它传递给上层相应的协议解析器进行解析。
端口
- 在应用层,主要面对的是应用进程。所以通过端口号来进行分用。所以不同的端口号其实对应着不同的应用协议。
- 分类
- well known ports:0-1023。这些端口由IANA分配和控制他们,紧密绑定与一些服务。这些端口的通讯明确表明了,某种服务的协议。例如:21为ftp服务端口。
- registered ports:1024-49151:这些端口不受IANA控制,但由IANA等级并提供使用情况清单。他们松散的绑定于一些服务。也就是有许多服务绑定与这些端口,这些端口也同样适用于其他的一些目的。
- dynamic or private ports 49152-65535 :IANA不管这些端口。实际上,机器从1024开始分配端口的。因为这些端口通常是松散的绑定一些服务。
- 端口-> 不同的应用进程 -> 不同的应用服务