OSI 参考模型和 TCP/IP 参考模型

数据通信是很复杂的,很难在一个协议中完成所有功能。因此在制定协议时经常采用的思路是将复杂的数据通信功能由若干协议分别完成,然后将这些协议按照一定的方式组织起来。最典型的是采用分层的方式来组织协议,每一层都有一套清晰明确的功能和任务,这些功能和任务相对独立,这样就可以把复杂的网络问题分解成一层一层简单的模块;每一层都对上一层通过接口提供一定的服务,高层不需要了解低层的工作机制、使用设备和技术细节,只需知道低层通过接口提供哪些服务。

目前,最典型的计算机网络体系结构有 OSI 参考模型和 TCP/IP 参考模型。

OSI 参考模型:

OSI 参考模型将整个网络的通信功能分为七层,自下而上分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。OSI 参考模型是法律标准。

TCP/IP 参考模型:

TCP/IP 参考模型包括四层,自下而上分别是网络接口层、网络层、传输层、应用层。现实生活中的网联网世界用的就是 TCP/IP 模型。

TCP/IP 参考模型对 OSI 参考模型的分层进行了合并,将应用层、表示层、会话层合并为了应用层,将数据链路层、物理层合并为了网络接口层。

TCP、UDP 协议属于传输层。

超文本传输协议 HTTP、文件传输协议 FTP、域名系统 DNS 属于应用层。

TCP 协议的三大阶段:

  1. 建立连接(三次握手):建立连接的阶段通信双方会传输三个 TCP 段,称为三次握手。
    • 握手 1:客户端给服务器端发送 SYN 段,表示客户端向服务器端请求连接。
    • 握手 2:服务器端给客户端发送 TCP 段,这个段既是 SYN 段,也是 ACK 段,表示服务器端确认接受客户端的连接,并且服务器端向客户端请求连接。
    • 握手 3:客户端给服务器端发送 ACK 段,表示客户端确认接受服务器端的连接。
  2. 传输数据:是全双工通信。客户端可以给服务器发送数据,服务器也可以给客户端发送数据。
  3. 释放连接(四次挥手):释放连接的阶段通信双方会传输四个 TCP 段,称为四次挥手。
    • 挥手 1:客户端向服务器端发送 FIN 段,表示客户端向服务器释放连接。
    • 挥手2:服务器端向客户端发送 ACK 段,表示服务器端确认释放客户端的连接。此时,客户端无法再给服务器发送数据,只能服务器给客户端发送数据。
    • 挥手 3:服务器端向客户端发送 FIN 段,表示服务器端向客户端释放连接。
    • 挥手 4:客户端向服务器端发送 ACK 段,表示客户端确认释放服务器端的连接。此时,客户端和服务器端互相就无法再给对方发送数据了,通信结束。

SYN 段:表示这是一个请求连接的报文;ACK 段:表示这是一个确认报文;FIN 段:表示这是一个释放连接的报文。

TCP 协议和 UDP 协议的区别:

  1. TCP 是有连接的,可靠的。能够确保数据完整正确,但是开销大、实时性差。HTTP、FTP 基于 TCP。
  2. UDP 是无连接的、不可靠的。数据可能出错丢失,但是速度快、开销小。DNS 基于 UDP。

有连接:发送消息前,要先建立连接,再发送消息;发送完消息后,还需要释放连接。

无连接:发送消息前,不需要先建立连接,直接发送消息;发送完消息后,也就不需要释放连接了。
可靠传输:接收方使用确认机制让发送方知道哪些数据已被正确接收。可靠传输需要基于有连接的方式。

不可靠传输:接收方无论收没收到数据、数据是否正确,都不给发送方返回。

相关推荐
紧跟先前的步伐5 小时前
Go AI Agent 实战 12|HTTP 状态码、API 错误处理与日志
开发语言·人工智能·http·ai·golang
Lsetea7 小时前
curl下载HTTPS正文是乱码:--compressed与Content-Encoding分层排查
linux·http·https·ssl证书·curl
刘胡子大叔7 小时前
curl resolve 和 Host 头的两种免 DNS 验证 HTTPS
网络协议·http·https
j7~7 小时前
【Linux网络加餐】《HTTP 会话保持:Cookie 与 Session 原理及实验验证》---详解
linux·网络·网络协议·http·cookie·session
mister_guo1 天前
HTTP 和 RPC:从一次干饭说清它们的区别
网络协议·http·rpc
严谨的麻辣烫1 天前
Python HTTP 连接池怎么用?从连接复用到请求异常排查
开发语言·python·http·requests·网络排查
码林鼠1 天前
flutter网络http请求入门教程-dio
网络协议·flutter·http
Lsetea1 天前
curl访问HTTPS返回304却没有正文:条件请求、缓存与证书验收排查
linux·http·https·ssl证书·curl
honsor1 天前
ModbusTCP、SNMP、HTTP 怎么选?以太网温湿度变送器协议选型实战
网络·物联网·网络协议·tcp/ip·http
Funlang1 天前
HTTP 服务端,能写业务了
网络·网络协议·http