专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

这是一篇只有一点点的计算机网络

计算机网络的层次结构

OSI 七层模型

OSI :Open System Interconnect,开放系统互连参考模型。他是由 ISO(国际标准化组织)定义的,灵活、稳健和可互操作的模型,常用来分析和设计网络体系结构。虽然称作模型,但它其实是一种理论,即理想上的分层方式。

OSI 模型分为七层,其分层与主要功能如下 :

91_1.png

TCP/IP 四层模型

如果说 OSI 七层模型是理论上的分层方式,那么 TCP/IP 四层模型就是实践过程中的分层模型。

OSI 七层模型 ISO(国际标准化组织)提出的一套理论性的网络标准化协议,可以把它看作一本教科书,而它在指定之前是没有经过实践的。TCP/IP 模型是在实践中诞生的产物,它将应用层、表示层、会话层合并为了应用层,数据链路层与物理层合并为网络接口层,从而形成了这样一种实践中的四层模型结构。

91_2.png

补充说明

  • 应用层 :各种应用程序协议所在层,如 HTTP、FTP、SMTP、POP3 等等;
  • 表示层 :信息的语法语义及它们的关联,如加密解密、转换翻译、压缩解压缩;
  • 会话层 :不同机器上的用户之间建立与管理会话;
  • 传输层 :TCP 协议、UDP 协议所在层。 接收上一层的数据,在必要时把数据进行分割,并将这些数据交给网络层,且保证这些数据段有效到达对端;
  • 网络层 :IP 协议 所在层。 控制子网的运行,如逻辑编址、分组传输、路由选择;
  • 数据链路层 :确定 0 和 1 的分组方式,从而能够进行物理寻址,同时将原始比特流转变为逻辑传输线路;
  • 物理层 :把电脑连接起来的物理手段,负责传送 0 和 1 的电信号。

TCP 协议与 UDP 协议

TCP 协议

TCP 提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。由于 TCP 需要提供可靠的服务,难免会增大系统开销,如确认、流量控制、计时器以及连接管理等等,这不仅使协议数据单元的首部增大很多,还要占用许多处理剂资源。

TCP 一般用于文件传输、发送和邮件接收、远程登录等场景。

UDP 协议

UDP 在传送数据前不需要事先建立连接,远程主机在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下却是一种最有效的工作方式。

UDP 一般用于即时通讯,如 QQ 语音、QQ 视频、直播等等。

TCP 与 UDP

类型 是否面向连接 传输可靠性 传输形式 传输效率 所需资源 应用场景 首部字节
TCP 面向连接 可靠 字节流 多应用于要求数据可靠的场景,如文件传输、邮件传输 20-60
UDP 无连接 不可靠 数据报文段 多应用于要求通信速度高的场景,如域名转换、即时通讯 8个字节(由4个字段组成)

三次握手

什么是三次握手

三次握手的目的是建立可靠的通信信道,简单来说就是需要确认双方对数据的接收能力与发送能力都保持正常。

91_3.png

为什么要进行三次握手

最少进行三次握手,就可以确认双方的收发送功能是否都正常,具体如下 :

  • 第一次握手 :
    • Client 什么都不能确认,
    • Server 确认对方发送正常,自己接收正常;
  • 第二次握手 :
    • Client 确认自己发送正常、接收正常,对方发送正常、接收正常;
    • Server 确认对方发送正常,自己接收正常;
  • 第三次握手 :
    • Client 确认自己发送正常、接收正常,对方发送正常、接收正常;
    • Server 确认自己发送正常、接收正常,对方发送正常、接收正常;

SYN 和 ACK

SYN 同步序列编号

SYN 是 TCP/IP 建立连接时使用的握手信号。

客户端发送 SYN 以请求与服务端建立连接;服务端传回客户端所发送的 SYN,是为了告诉客户端,我接收到的消息的确是你所发送的信号。

ACK 确认字符

ACK 确认字符,是在数据通信传输中,由接收站发给发送站的一种传输控制字符。它表示确认发来的数据已经接受无误。

在 TCP/IP 协议中,如果接收方成功接收到数据,就会回复一个 ACK 信号。通常 ACK 信号有自己固定的格式、长度大小,由接收方回复给发送方。

四次挥手

什么是四次挥手

四次挥手的目的是确认双方都能够得知关闭连接的讯息并成功关闭连接。

任何一方都可以在数据传送结束时发出释放连接的通知,等待对方确认后就进入半关闭状态;当被动方也没有数据再发送的时候,则向主动方发出连接释放通知,经过主动方确认后,TCP 连接就能够被成功关闭了。

91_4.png

为什么要进行四次挥手

简单来说就是,必须确保双方都说完话了才能挂电话。如果将主动关闭方视为 A,被动关闭方视为 B,则有 :

  • 第一、二次挥手 :A 讲完了,B 知道 A 讲完了,但 B 可能没有讲完;
  • 第三、四次挥手 :B 讲完了,A 知道 B 讲完了,通话结束。

FIN 终止字符

FIN 终止字符,用来释放连接。

FIN = 1,表明此报文的发送方的数据已经全部发送完毕,并且要求释放连接。


- tbc –

文章永久链接:https://tech.souyunku.com/43628

未经允许不得转载:搜云库技术团队 » 这是一篇只有一点点的计算机网络

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们