• 计算机网络ISO七层网络模型及TCP


    思维导图(通俗理解)

    首先,先用最通俗的话来描述ISO七层模型,思维导图结构如下:

    在这里插入图片描述

    ISO七层网络模型概念

    • 应用层(Application Layer):应用层是OSI模型的最高层,直接与用户交互。它提供网络服务的接口,使用户能够访问网络资源和应用程序。常见的协议有HTTP、FTP、SMTP等。应用层负责处理用户输入和网络服务之间的交互。
    • 表示层(Presentation Layer):表示层负责数据的表示格式它将应用层数据转换成可以在网络上传输的格式,或者将接收到的数据转换成应用层可处理的格式。表示层处理数据的加密与解密、数据压缩、字符编码转换等。
    • 会话层(Session Layer):会话层负责管理和控制应用程序之间的会话(Session),即建立、维护和终止会话。它确保两个应用之间的对话能被正确地建立和维护,即使在网络中断的情况下也能够恢复会话。会话层还负责同步会话数据的交换。
    • 传输层(Transport Layer):传输层提供端到端的通信服务,确保数据在网络中可靠传输。它负责将数据分割成段(Segment),并在接收端进行重组。此外,传输层还提供流量控制、差错检测、数据恢复等功能,以保证数据的完整性和正确性。常见的协议有TCP(传输控制协议)和UDP(用户数据报协议),以及QUIC等。
    • 网络层(Network Layer):网络层负责在不同网络之间传输数据包(Packet),并确定路径选择(路由)。它处理数据包的逻辑地址(如IP地址),确保数据能够通过多个网络从源设备传输到目标设备。路由器就是工作在这一层的设备。
    • 数据链路层(Data Link Layer): 数据链路层负责在同一网络中的直接相连设备之间的可靠数据传输。它将物理层传输的比特流组织成帧(Frame),并进行差错检测与纠正。此外,数据链路层还管理网络访问权限,避免多个设备同时发送数据造成冲突。在局域网中,MAC地址(物理地址)就在这一层使用。
    • 物理层(Physical Layer):物理层负责网络中数据的物理传输。它定义了网络设备之间的物理连接方式、传输介质(如铜线、光纤、无线电波)以及数据传输的方式(如电压、电流、信号调制等)。物理层确保比特流能够通过物理媒介从一个设备传送到另一个设备,透明传输@[TOC]。

    专有名词扩展概念

    1. 封装成帧:封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
    2. 透明传输:透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
    3. 差错检测:收到正确的帧就要向发送端发送确认,发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。
    4. IP地址:IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。由一个IP地址由4个字节,32位组成,一般用点分十进制的方式表现。
    5. IPv6:因为IPv4地址满足不了需求,出现匮乏的情况,所以诞生了IPv6地址继续使用。v6地址由128位,16个字节组成,一般表现形式为十六进制。
    6. 静态路由:由管理员手工配置、配置方便,对系统要求低,适用于拓扑结构简单稳定的小型网络。
    7. 缺省路由:是一种特殊的路由,当报文没有在路由表中找到匹配的具体表项时才能使用的路由。
    8. 动态路由:通过动态路由协议来实现不同网段的路由互通,动态路由协议由自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量的三层设备的网络。
    9. MAC地址:是网络设备的唯一标识符,通常由48位二进制数表示,如00:1A:2B:3C:4D:5E。它用于数据链路层标识设备,确保在局域网中数据包的正确发送。MAC地址的前24位标识制造商,后24位标识设备。

    TCP和UDP

    TCP三次握手:
    第一次客户端发送SYN客户端发送SYN包请求连接,并包含初始序列号。
    第二次服务器回应SYN-ACK:服务器回复SYN-ACK包确认请求,并发送自己的SYN请求和序列号。
    第三次客户端发送ACK:客户端发送ACK包确认服务器的SYN请求,连接建立完成。
    在这里插入图片描述

    TCP四次挥手
    第一次客户端发送FIN:客户端发送FIN包请求断开连接。
    第二次服务器回应ACK:服务器确认FIN包,准备关闭连接,但可能继续发送数据。
    第三次服务器发送FIN:服务器处理完数据后,发送FIN包请求断开连接。
    第四次客户端回应ACK:客户端确认服务器的FIN包,连接完全断开。
    在这里插入图片描述

    UDP:直接发送数据包,无状态

    TCP和UDP区别:
    连接方式:TCP需要进行三次握手,而UDP则不需要建立连接,直接发送数据包。
    可靠性:TCP提供可靠的数据传输机制,能够保证数据的完整性和顺序性;而UDP不提供可靠性保证,数据传输可能出现丢包或乱序的情况。
    数据量:TCP对数据量的限制较小(最大传输单元为64KB),而UDP对数据量的限制较大(最大传输单元为65535字节)。
    速度:UDP传输效率较高,因为它没有TCP那样复杂的握手、确认等过程。
    流量控制:TCP有流量控制机制,可以根据网络情况调整传输速度,避免网络拥塞;而UDP没有流量控制机制,可能会导致网络拥塞。
    头部开销:tcp头部开销较大,通常为20字节,因为需要携带各种控制信息(如序列号、确认号等)。udp头部开销较小,仅8字节,因为只包含了最基本的传输信息(如源端口、目的端口等)。

  • 相关阅读:
    C++(第七篇):string 容器(介绍、使用、深浅拷贝、模拟实现、写时拷贝)
    第6章 初识Spring框架
    【六:(mock数据)spring boot+mybatis+yml】
    Go net http包
    2022年HNUCM信息科学与工程学院第五届新生赛——正式赛
    openharmony容器组件之Swiper
    C++笔记:从零开始一步步手撕高阶数据结构AVL树
    健身房会员管理系统(Java+Web+MySQL)
    mysql配置提高数据插入效率
    第十九周进度(了解物联网基础知识)
  • 原文地址:https://blog.csdn.net/qq_48434912/article/details/141094000