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。

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

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

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

相关推荐
野生技术架构师14 小时前
原来可以搭建一个HTTP服务
网络·网络协议·http
TOPGUS18 小时前
谷歌Chrome浏览器即将对HTTP网站设卡:突出展示“始终使用安全连接”功能
前端·网络·chrome·http·搜索引擎·seo·数字营销
Wadli18 小时前
项目5 |HTTP服务框架
网络·网络协议·http
CCPC不拿奖不改名18 小时前
网络与API:HTTP基础+面试习题
网络·python·网络协议·学习·http·面试·职场和发展
心之伊始19 小时前
HTTP 与 HTTPS 协议深度剖析:从基础原理到现代演进与实践
网络协议·http·https
哟哟耶耶20 小时前
随笔小计-前端经常接触的http响应头(跨域CORS,性能-缓存-安全,token)
前端·网络协议·http
Jinuss1 天前
HTML页面http-equiv=“refresh“自动刷新原理详解
http·html
Yan-英杰1 天前
BoostKit OmniAdaptor 源码深度解析
网络·人工智能·网络协议·tcp/ip·http
青果网络_xz2 天前
海外HTTP代理适合哪些业务?与Socks/隧道的区别
网络·网络协议·http
VekiSon2 天前
综合项目实战——电子商城信息查询系统
linux·c语言·网络·http·html·tcp·sqlite3