一、OSI模型(开放式系统互联参考模型 -- 7层模型)
OSI七层模型分为七个层次,可将其分为两大层(上三层、下四层):
上三层均为应用程序对数据进行加工处理的部分;故上三层被统称为应用层
下四层负责数据的传递;统称为数据流层
应用层 | 抽象语言-->编码 (人机交互) |
表示层 | 编码-->二进制 (两者交互) |
会话层 | 应用程序内部地址(无标准) |
传输层 | 分段 + 端口号 TCP/UDP |
网络层 | 路由器 逻辑寻址 Internet协议--IP |
数据链路层 (逻辑链路控制层LLC + 介质访问控制层MAC) | 校验(数据完整) 控制物理硬件 |
物理层 | 硬件 |
第七层:应用层 抽象语言(平时常用的语言) 键入和输出 抽象语言-->编码
接收用户的数据,人机交互的接口,面向的应用程序
第六层:表示层 编码(使用各种编程软件所编写的代码) -->二进制(计算机的语言)
将逻辑语言(软件语言)转换为机器语言(二进制语言)翻译
第五层:会话层 应用程序内部地址,区分程序内的各个会话
管理通信,针对传输的每一种数据建立(管理、建立、维持、终止)一条会话虚链接
第四层:传输层 提供端口号、数据分段(受MTU限制) 使用TCP/UDP协议传送
UDP: 用户数据报文协议--非面向连接的不可靠传输协议
该协议在传输层仅完成基本工作--- 分段、端口号
TCP: 传输控制协议
该协议在传输层除了完成传输层的基本工作外,还需要保障传输的可靠性
面向连接的可靠传输协议
面向连接: 通过三次握手建立端到端的虚链路
可靠传输:4 种可靠传输机制 -- 确认、排序、重传、流控 (滑动窗口)
三次握手即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发
(1)第一次握手:建立连接时,客户端A发送SYN包到服务器B,并进入SYN_SEND状态,等待服务器B确认。(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN,同时自己也发送一个SN包,即SYN+ACK包,此时服务器B进入SYN RECV状态。
(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK,此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。
断开:
(1)首先客户端想要释放连接,向服务器端发送一段TCP报文:
(2)服务器端接收到从客户端发出的TCP报文之后,确认了客户端想要释放连接,随后服务器端结束ESTABLISHED阶段,进入CLOSEWAIT阶段:并返回一段TCP报文;
(3)服务器端自从发出ACK确认报文之后,经过CLOSED-WAIT阶段,做好了释放服务器端到客户端方向上的连接准备,再次向客户端发出一段TCP报文:
(4)客户端收到从服务器端发出的TCP报文,确认了服务器端已做好释放连接的准备,结束FIN-WAT-2阶段,进入TIME-WAIT阶段,并向服务器端发送一段报文
-
分段
网络在正常通讯中,为保障通讯流程,且可以多人共享宽带,需要单个数据包不能过大;分段就是将应用层加工的数据进行分段变小处理;分段大小受MTU的限制;(MTU:最大传输单元,默认1500字节)
-
端口号(0-65535)
其中1-1023为静态端口(注明端口) 1024-6535 高端口动态端口
1-1023作为默认的静态端口,固定分配给服务器对应的服务;
1024-6535 高端口动态端口:当客户端访问服务器时,将在动态端口号中随机选择一个唯一数值来代表该程序的进程(源端口号);该端口号到达服务器后,服务器在回复消息时将该端口定义为目标端口号,便于客户端快速区分数据所要到达的进程 (程序)
第三层:网络层 Internet 协议--IP 在网络层进行数据传输出共享
第二层:数据链路层 = LLC+MAC LLC 逻辑链路控制层 MAC介质访问控制层
MAC地址(48位二进制)--网卡芯片出厂时烧录的全球唯一的串号--48位二进制构成--16进制显示(MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时设定的,是固定的(但可以通过在设备管理器中或注册表等方式修改,同一网段内的MAC地址必须唯一)。MAC地址采用十六进制数表示,长度是6个字节(48位),分为前24位和后24位。)
数据链路层的功能: 组、物理编址、流量控制、差错控制、接入控制
书写方式: 减分十六进制书写: 60-F2-62-3C-E3-53 点分十六进制书写: 60F2.623C.E353
前24位: OUl (统一资源标识符) ,也称为厂商ID
后24位: interface ID (接口标识符) ,也称为产品ID
第一层:物理层
将二层的数据帧转换为物理传输介质中比特流,关注机械特性、电学特性、光学特性等。
二、TCP/IP协议栈道
TCP/IP模型一般分为四层模型或者是五层模型
从图中我们就可以发现TCP/IP协议栈道和OSI模型的相同点和不同点
相同点:
两个都是模型化 层次化
下层都是对于上层提供服务
每一层的协议都是相互独立的
不同点:
OSI先有的模型 再有的协议 TCP/IP则相反
TCP/IP协议栈只适用于TCP/IP网络中 其层数也不相同