ISO国际标准化组织
OSI 模型 - Open System Interconnection Reference Model - 开放式系统互联通信参考模型
两主机通信,从发送者到接收者的过程:在发送者端从第七层(应用层)到第一层(物理层)封装,然后传输到远端接受者,再从第一层(物理层)到第七层(应用层)解封装
-
应用层( Application Layer )
- 应用软件使用的协议,为用户提供服务,如邮箱使用的 POP3,SMTP、远程登录使用的 Telnet、获取 IP 地址的 DHCP、域名解析的 DNS、网页浏览的 HTTP 协议等;这部分协议主要是规定应用软件如何去进行通信的,为用户的应用程序提供网络服务,并且给用户提供一个操作界面
-
表示层( Presentation Layer )
- 数据提供表示 加密 压缩等,并且决定数据的展现(编码)形式,如同一部电影可以采样、量化、编码为 RMVB、AVI,一张图片能够是 JPEG、BMP、PNG 等
-
会话层( Session Layer )
-
决定是否是本地保存或者是网络传递
-
负责在网络中的两节点之间建立、维持和终止通信。功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送
-
-
传输层( Transport Layer )
-
对报文进行分组(发送时),组装(接收时)
-
TCP(传输控制协议):可靠的,面向连接的传输协议(可靠,准确,慢)
-
UDP(用户数据报协议):不可靠的,面向无连接的传输协议(快,不可靠)
-
端口封装 差错校验
-
将一个数据/文件斩件分成很多小段,标记顺序以被对端接收后可以按顺序重组数据,另外标记该应用程序使用的端口号及提供 QOS。(不同的应用程序使用不同计算机的端口号,同样的应用程序需要使用一样的端口号才能正常通信)
-
定义了一些传输数据的协议和端口号( WWW 端口 80 等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 QQ 聊天数据就是通过这种方式传输的), 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,常常把这一层数据叫做段
-
网络层( Network Layer )
-
数据链路层( Datalink Layer )
- 根据端口与 MAC 地址,做分组(VLAN)隔离、端口安全、访问控制( MAC 地址在这一层)
- 定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问,这一层通常还提供错误检测和纠正,以确保数据的可靠传输(交换机、网桥设备在这一层)
-
物理层( Physical Layer )
- 主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为 1、0,也就是我们常说的数模转换与模数转换),这一层的数据叫做比特,单位是 bit 比特。
- OSI 七层模型是一种框架性的设计方法,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯
- OSI 模型所分的七层,在实际应用中,往往有一些层被整合,或者功能分散到其他层去,比如 TCP/IP 模型实际上是 OSI 模型的一个浓缩版本
- 用户数据经过以上七层后,一串 0、1 组成的二进制流诞生了,然后根据物理层是光纤、电缆、还是空气,二进制流转化为光信号、电信号、电磁波信号在物理介质(物理层)里传输,经过若干个中继交换机(链路层)的交换、经过若干个中继路由器(网络层)的转发,最终到达数据的终点
- 经以上层最终产生了二进制流,除了物理层之外,每层都会在原始数据前添加一串属于自己的协议头
ICMP协议: 因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。 TFTP协议: 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。 HTTP协议: 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。 NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术, DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
- URG:紧急指针(urgent pointer)有效。
- ACK:确认序号有效。
- PSH:接收方应该尽快将这个报文交给应用层。
- RST:重置连接。
- SYN:发起一个新连接。
- FIN:释放一个连接。