• 2022.7.2 Linux——网络相关知识


    1. 网络分层模型

    1.1 OSI的7层模型与tcp/ip协议族体系4层结构

    在这里插入图片描述

    1.2 数据链路层

    数据链路层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
    在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
    该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
    MAC 子层:主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;
    LLC 子层:主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。
    注意:
    TCP/IP 协议体系结构中,数据链路层的功能描述为实现网卡接口的网络驱动程序,以处理数据在物理媒介上的传输,不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。这一层主要关注的三个基本问题是:封装成帧,透明传输和差错检测。

    1.3 网络层

    网络层实现数据包的选路和转发。
    网络层最核心的协议是 IP 协议。IP 协议根据数据包的目的 IP 地址来决定何如投递它。如果数据包不能直接发送给目标主机,那么 IP 协议就是为它寻找一个合适的吓一跳路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP 协议使用逐跳的方式确定通信路径。
    网络层另外一个重要的协议是 ICMP 协议(因特网控制报文协议)。它是 IP 协议的重要充,主要用于检测网络连接。
    IP 协议为上层协议提供无状态、无连接、不可靠的服务。
    无状态是指通信双方不同步传输数据的状态信息,因此所有 IP 数据报的发送、传输和接收都是相互独立、没有上下文关系的。无连接是指 IP 通信双方都不长久地维持对方的任何信息。不可靠是指 IP 协议不能保证 IP 数据报准确地到达接收端,它只是承诺尽最大努力。
    IPV4 头部结构如下:
    在这里插入图片描述

    1.4 传输层

    传输层为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信的方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
    传输层协议主要有三个:TCP 协议、UDP 协议和 SCTP 协议。
    TCP 协议(传输控制协议)为应用层提供可靠的、面向连接的和基于流的服务。UDP 协议(用户数据报协议)则与 TCP 协议完全相反,它为应用层提供不可靠、无连接、基于数据报地服务。SCTP 协议(流控制传输协议)是一种相对较新的传输层协议,它是为了再因特网上传输电话信号而设计的。
    TCP 协议报头:
    在这里插入图片描述

    1.5 应用层

    应用层负责处理应用程序的逻辑。

    2. 网络应用程序通信流程

    如下图,应用程序 A 要将数据”hello” 传给网络上另外一台主机上的应用程序 B, 数据“hello”从应用层发送给传输层后,传输层在数据前面加上 tcp 协议或 udp 协议的报头,将整条报文发给网络层,网络层添加自己的 IP 报头,再将整条数据发送给数据链路层。数据链路层将数据封装成能在网络中独立传输的数据单元,即数据帧。封装好的数据帧通过网络传输到另一台主机,然后再从下层依次拆包,将数据部分送往应用层。应用程序 B 就得到了数据”hello”。
    在这里插入图片描述

  • 相关阅读:
    Python学习记录(4)元组:戴了紧箍咒的列表
    【RNA biology】RNA的多功能性与早期生命进化
    Java多线程开发系列之五:Springboot 中异步请求方法的使用
    预处理器Less
    C++中的菱形继承问题及解决方案
    UVa11595 Crossing Streets EXTREME
    嵌入式系统中如何正确使用动态内存?
    C++线程操作
    AcWing 蓝桥杯AB组辅导课 06、双指针、BFS与图论
    【校招VIP】前端操作系统之进程与线程
  • 原文地址:https://blog.csdn.net/weixin_58631717/article/details/125561778