OSI七层模型
七层模型,也称OSI(Open System Interconnection)参考模型。用于计算机或通信系统间互联的标准体系。一般称为OSI参考模型或七层模型。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
- 应用层(Application) 提供网络与用户应用软件之间的接口服务
- 表示层(Presentation) 提供格式化的表示和转换数据服务,如加密和压缩
- 会话层(Session) 提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制
- 传输层(Transimission) 提供建立、维护和取消传输连接功能,负责可靠地传输数据(PC)
- 网络层(Network) 处理网络间路由,确保数据及时传送(路由器)
- 数据链路层(DataLink) 负责无错传输数据,确认帧、发错重传等(交换机)
- 物理层(Physics) 提供机械、电气、功能和过程特性(网卡、网线、双绞线、同轴电缆、中继器)
TCP/IP参考模型
- TCP/IP是传输控制协议/网络互联协议的简称
- 早期的TCP/IP模型是一个四层结构,从下往上依次是网络接口层、互联网层、传输层和应用层
- 后来在使用过程中,借鉴OSI七层参考模型,将网络接口层划分为了物理层和数据链路层,形成五层结构
常用协议
- TCP/IP协议被称为传输控制协议/互联网协议,又称网络通讯协议
- 是由网络层的IP协议和传输层的TCP协议组成,是一个很大的协议集合
- 物理层和数据链路层没有定义任何特定协议,支持所有的标准和专用的协议
- 网络层定义了网络互联也就是IP协议
- 传输层定义了TCP(传输控制协议)和UDP(用户数据报)协议
- 应用层定义了HTTP(超文本传输协议)、FTP(文件传输协议)、DNS(域名系统)等协议
物理层
物理层, 为数据端设备提供传送数据的通路。可以双向通信,为数据传输提供可靠的环境。对应我们的网线、光纤(物理设备)。
- 全双工:双向通道,相互通信。互不干扰。比如:电话。
- 单工:单向车道,只能一方通信。比如:广播。
- 半双工:同一时间点只能一方通信。比如:对讲机。
数据链路层
数据链路层们于物理层和互联网层之间,用来向网络层提供数据,就是把源计算机网络层传过来的信息传递给目标主机。对应我们的网卡,处理的是网卡到网卡的连接。数据到这一层包装加上了mac头,这一层的数据叫数据帧(Frame)。
网络层
位于传输层和网络接口层之间,用于把数据从源主机经过若干个中间节点传送到目标主机,并向传输层提供最基础的数据传输服务,它要提供路由和IP选址的工作。数据到达网络层,会加IP头,这层的数据叫数据包(Packet)。
选址:交换机是靠MAC来寻址的,而因为MAC地址是无层次的,所以要靠IP地址来确认计算机的位置,这就是选址。
路由:在能够选择的多条道路之间选择一条最短的路径就是路由的工作。
IP:在网络中,每台计算机都有一个唯一的地址,方便别人找到它,这个地址称为IP地址。
传输层
传输层位于应用层和网络接口层之间。提供了一种端到端的连接。传输层的协议分为TCP(Transimision Control Protocal)和UDP(User Datagram Protocal)。使用TCP还是UDP取决于对可靠性的要求。数据到达这层会加tcp/udp头,这层数据叫报文段(Segment)。
TCP
- 传输控制协议
- 可靠的、面向连接的协议
- 传输效率低
UDP
- 用户数据报协议
- 不可靠的、无连接的服务
- 传输效率高
应用于QQ、视频软件、TFTP 简单文件传输协议(短信)
TCP3次握手和4次断开
- TCP是面向连接的协议,它在源点和终点之间建立虚拟连接,而不是物理连接
- 在数据通信之前,发送端与接收端要先建立连接,等数据发送结束后,双方再断开连接
- TCP连接的每一方都是由一个IP地址和一个端口组成
三次握手
- 第一次握手主机A通过一个标识为SYN标识位的数据段发送给主机B请求连接,通过该数据段告诉主机B希望建立连接,需要B应答,并告诉主机B传输的起始序列号
SYN:1 seq=x
- 第二次握手是主机B用一个确认应答ACK和同步序列号SYNC标志位的数据段来响应主机A,一是发送ACK告诉主机A收到了数据段,二是通知主机A从哪个序列号做标记。
SYN:1 seq=y ACK=x+1
- 第三次握手是主机A确认收到了主机B的数据段并可以开始传输实际数据.
ACK=y+1
抓包
四次断开
- 主机A发送FIN控制位发出断开连接的请求
- 主机B进行响应,确认收到断开连接请求
- 主机B提出反方向的关闭要求
- 主机A确认收到的主机B的关闭连接请求
tcp三次握手四次断开正好符合的是tcp可靠的特点,多次确认。四次断开,有可能是某一方还未发送完数据所以需要四次断开。
应用层
网络服务与最终用户的一个接口。通过应用层发送、解封装数据。
应用层常见协议
- HTTP 超文件传输协议
- FTP 文件传输协议
- SMTP(发送邮件)和POP3(接收邮件)