当前位置: 首页 > news >正文

计算机网络之5层网络协议

文章目录

  • 引言
  • 一、OSI七层模型
  • 二、TCP/IP参考模型
  • 三、网络协议的概念和作用
  • 四、TCP/IP参考模型每层详细介绍
    • 1.物理层
    • 2.数据链路层
      • 1. 基本概念
      • 2.MAC地址
      • 3.ARP协议
    • 3. 网络层
      • 1. 基本概念
      • 2.ip协议
      • 3.子网掩码
    • 4. 传输层
      • 1. 基本概念
      • 2. 协议
      • 3. TCP(三次握手四次挥手)
      • 4. UDP
    • 5.应用层
      • 1. 基本介绍
      • 2.URI和URL
      • 3. http协议
        • 1. 基本介绍
        • 2. 请求报文
        • 3. 响应报文
      • 4.DNS服务器
        • 1. 基本概念
        • 2. 域名
        • 3. DNS解析域名的过程
      • 5. DHCP
      • 6. 在浏览器地址栏里输入一个URL,到这个页面呈现出来,中间会发生
  • 总结

引言

计算机网络是我们日常生活中无法分割的一部分,它让我们能够实现互联互通,快速传输数据,并在各个领域取得了巨大的成就。而要实现这种高效的通信,网络协议就变得至关重要。网络协议是计算机之间进行通信的规则和约定,它们确保了数据能够在网络中顺畅传输。在网络协议中,5层网络协议被广泛使用,它是一种将整个网络通信过程分成5个层次的体系结构。每个层次负责不同的任务,相互之间相互协作,最终实现了高效的数据传输。本文将深入介绍5层网络协议的概念、功能与作用,带您一探网络协议的奥秘。

一、OSI七层模型

OSIOpen Systems Interconnection)模型是一种网络通信协议的理论参考模型,用于描述和规划计算机系统中不同层次的通信功能。它由国际标准化组织(ISO)于1984年发布,是一个标准的网络通信架构。

OSI模型将网络通信划分为七个不同的层次,每个层次都负责特定的功能和任务,并通过接口与上下层进行通信。以下是对每个层次的详细介绍:

  1. 物理层Physical Layer):物理层负责传输比特流,即通过物理媒介传输电压、电流或光信号。它定义了电缆类型、接口规范、传输距离等。

  2. 数据链路层Data Link Layer):数据链路层负责将物理层提供的比特流划分为数据帧,并处理错误检测和纠正。它定义了帧格式、MAC地址等。

  3. 网络层Network Layer):网络层负责数据的路由和转发,以及地址解析和逻辑编址。它定义了IP地址、路由协议等。

  4. 传输层Transport Layer):传输层提供端到端的可靠传输和数据分段的功能。它定义了传输协议(如TCP)和端口号等。

  5. 会话层Session Layer):会话层负责建立、管理和终止两个应用程序之间的会话连接。它定义了会话控制机制和同步规则。

  6. 表示层Presentation Layer):表示层处理数据的格式转换、加密和解密,以确保不同系统之间的数据兼容性。它定义了数据压缩、加密和格式转换等。

  7. 应用层Application Layer):应用层提供网络服务和应用程序之间的接口,以满足用户的具体需求。它定义了许多应用层协议,如HTTP、FTPSMTP等。

        +------------------------+7 |   Application Layer    |+------------------------++------------------------+6 |   Presentation Layer   |+------------------------++------------------------+5 |      Session Layer     |+------------------------++------------------------+4 |    Transport Layer     |+------------------------++------------------------+3 |      Network Layer     |+------------------------++------------------------+2 |   Data Link Layer      |+------------------------++------------------------+1 |    Physical Layer      |+------------------------+

每个层次独立工作,只与相邻层次交换信息,而不涉及其他层次的具体实现细节。这种分层的设计使得网络协议的开发、维护和升级更加简化和可靠。此外,由于每个层次的功能和责任明确,不同厂商可以独立开发和实现特定的层次,从而促进了网络技术的快速发展和互通性。

二、TCP/IP参考模型

TCP/IP参考模型是一种将TCP/IP协议栈划分为不同层级的模型,用于解释和描述网络通信中各个层级的功能与作用。它是互联网通信协议族的基础,也是广泛使用的网络协议。

TCP/IP参考模型一般分为五个层级,从上到下分别是应用层、传输层、网络层、数据链路层和物理层。每个层级都有不同的功能和任务,它们协同工作,以实现数据从发送端到接收端的可靠传输。

  1. 应用层:应用层是最靠近用户的一层,负责处理网络应用程序之间的通信。它定义了一系列通信的标准和协议,如HTTP、FTPSMTP等。应用层的数据称为报文。

  2. 传输层:传输层负责处理端到端的数据传输,提供可靠的数据传输服务。它使用传输层协议(如TCPUDP)将数据分割成适当的大小并在发送方和接收方之间进行传输。

  3. 网络层:网络层负责进行网络间的数据通信,通过IP协议提供寻址和路由的功能。它将数据打包成数据包,通过网络传输到目的地。

  4. 数据链路层:数据链路层负责在物理介质上传输数据包,它将数据包转换为比特流,并提供差错检测与纠正的功能。

  5. 物理层:物理层定义了如何在物理媒介上传输数据比特流,例如通过电缆、光纤或无线信号进行传输。

下图例表示数据从应用层到物理层的传输过程:

------------------------------------
|      应用层       |
------------------------------------
|              发送数据              |
------------------------------------|
------------------------------------
|      传输层       |
------------------------------------
|          TCP/UDP协议          |
|              分割数据              |
|              添加头部              |
|              端口号              |
|              检查差错              |
------------------------------------|
------------------------------------
|      网络层       |
------------------------------------
|              IP协议              |
|              寻址              |
|              路由              |
|              打包成数据包              |
------------------------------------|
------------------------------------
|      数据链路层       |
------------------------------------
|         数据链路协议          |
|             转换为比特流             |
|      添加帧头和帧尾(开始和结束标记)       |
|            物理层传输            |
------------------------------------

三、网络协议的概念和作用

网络协议是指计算机网络中通信设备和计算机之间进行数据通信时所遵循的规范和规则的集合。它定义了数据传输的格式、传输的步骤和控制信息等,以确保在计算机网络中的各种设备和应用程序之间进行有效的通信。

网络协议的主要作用有:

  1. 数据传输规范:网络协议定义了数据在网络中的传输格式和结构,确保不同设备之间可以正确地解析和处理数据。

  2. 网络连接管理:网络协议定义了建立、维护和断开网络连接的方式,包括握手过程、数据传输的流程控制和错误处理等。

  3. 数据安全性和验证:网络协议可以提供数据的加密、认证和校验等机制,保障数据的安全性和完整性。

  4. 网络资源管理:网络协议可以定义和管理网络资源的分配和调度,包括IP地址的分配、路由选择和带宽控制等。

  5. 服务质量保障:网络协议可以定义和管理不同应用程序和服务的优先级、带宽分配和拥塞控制等,以提供更好的服务质量。

总之,网络协议是计算机网络通信的基础,它提供了通信设备和计算机之间进行有效和可靠通信所需要的规范和规则。网络协议的正确实施和应用,可以确保网络通信的正常运行和安全传输数据。

以下是TCP/IP模型中每层对应的协议:

层级协议
应用层HTTP、FTP、SMTP、Telnet、DNS
传输层TCP、UDP
网络层IP、ICMP、ARP
链路层Ethernet、PPP

需要注意的是,表格中只列举了每层对应的一些常见协议,实际上每个层级包含更多的协议。

四、TCP/IP参考模型每层详细介绍

1.物理层

TCP/IP模型中的物理层是网络体系结构中的最底层,负责实际的数据传输,在网络媒介上传输比特流(即0和1的电信号)。它提供了将比特流转换成可传输的信号的物理接口。

物理层的主要职责包括:

  1. 数据的编码和解码:物理层将数字信号转换为模拟信号,并且在接收端将传输的模拟信号解码为数字信号,以确保正确的数据传输。

  2. 数据的传输方式:物理层定义了用于在物理媒介上传输数据的方式,可以是串行传输或并行传输。它还定义了信号的传输速率、带宽以及电压等参数。

  3. 物理连接的建立和拆除:物理层负责在发送和接收设备之间建立和拆除物理连接,以确保有效的数据传输。

  4. 物理媒介的接口标准:物理层定义了连接设备的物理媒介(如网线、光纤等)的接口标准,以保证不同设备之间的互操作性。

  5. 基本的传输设备:物理层包括各种传输设备,如中继器、集线器等,用于放大和传输信号,并增强网络的覆盖范围。

总的来说,物理层的主要任务是提供一种可靠地传输比特流的机制,为更高层的协议提供可靠的物理连接和传输媒介。

类比实际案例解释
可以将物理层的功能类比为邮寄系统。邮寄系统负责将书信或包裹从发件人传递给收件人,并确保信件在传输过程中不损坏或遗失。在此类比中,信件或包裹就相当于数据,而发件人和收件人之间的邮寄系统就相当于物理层物理层负责将信件或包裹封装好,选择合适的包装材料和传输方式(如邮寄方式、快递方式),并确保传输过程中高效且可靠地将物品送到收件人手中,同时提供跟踪和确认服务确保准确性

2.数据链路层

1. 基本概念

数据链路层是TCP/IP模型中的第二层,主要负责将网络层传输过来的IP数据报转换为可在物理链路上传输的比特流,并确保信道传输的可靠性和数据的完整性。

数据链路层中的核心概念包括:

  1. 媒体访问控制Media Access Control,MAC):它定义了在共享介质上的多个设备之间进行数据传输的方法和规则,以及设备的地址识别方法。常见的MAC协议有以太网中的CSMA/CD(载波侦听多点接入/碰撞检测)和无线局域网中的CSMA/CA(载波侦听多点接入/碰撞避免)。

  2. 逻辑链路控制Logical Link Control,LLC):它提供了面向通信服务的接口,使得上层的网络层可以透明地访问不同的物理介质。

  3. 帧封装:数据链路层将从网络层接收到的数据报封装成帧,在每个帧的头部和尾部添加控制信息,比如同步位、帧起始与结束字符、校验码等,以便接收方正确识别并解析出数据。

类比一个实际案例,可以将数据链路层比喻为邮局的分拣与包装工作。邮局为了传递邮件,在数据链路层的角色中,它将邮件(网络层数据报)进行包装、贴上正确的地址(MAC地址)以及编号(帧序列号),然后封装成一个包裹(帧),并标注开始和结束标记以及其他控制信息。接收方的邮局会解析包裹,检查地址是否正确,然后将邮件递送给正确的收件人(上层的网络层)

数据链路层的主要目的就是确保数据能够在物理链路上准确无误地传输,并提供了一些机制来处理数据传输过程中可能出现的错误和重传的情况,以保证可靠的数据传输。

2.MAC地址

MAC地址(Media Access Control address)又称物理地址或硬件地址,是用于识别计算机网络设备的唯一标识符。每个网络设备(如计算机、路由器、交换机、网络打印机等)在制造时,都会被分配一个唯一的MAC地址。

MAC地址由48位二进制数字组成,通常以十六进制表示。它被分为6个组,每个组包含8位或者16位二进制数。例如:00-1A-2B-3C-4D-5E。

MAC地址由两部分组成:全球唯一标识符(OUI)和设备唯一标识符(NIC)。OUI是由IEEEInstitute of Electrical and Electronics Engineers)分配给每个制造商的3个字节标识符,用于表示制造商的身份。NIC是由制造商自行分配的3个字节标识符,用于标识制造商设备的唯一值。

MAC地址在计算机网络中起着至关重要的作用。在数据链路层,当网络设备收到数据包时,会使用目标MAC地址来确定数据是发送给自己的还是其他设备的,并进行相应的处理。因此,MAC地址主要用于数据包的寻址和传输控制。

MAC地址是全球范围内唯一的,这意味着不同制造商的设备在出厂时,MAC地址是不同的。并且MAC地址在设备的整个生命周期中都是固定不变的,即使在网络环境中改变物理设备的位置或连接。

尽管MAC地址是唯一的,但它仅在局域网(LAN)范围内有效。在跨越不同网络的情况下,需要使用更高层次的地址,例如IP地址

需要注意的是,MAC地址是可以被修改的,这在某些特定情况下可能是必要的,但一般情况下应该避免修改MAC地址,以免导致网络通信问题。

3.ARP协议

ARPAddress Resolution Protocol是一种用于将IP地址映射为物理MAC地址的协议。在计算机网络中,当一个主机需要发送数据给另一个主机时,它需要知道目标主机的MAC地址。然而,主机只能通过IP地址来寻址,而不能直接使用MAC地址。

ARP协议的作用就是用于解决IP地址到MAC地址的映射关系。当一个主机想要发送数据给目标主机时,首先它会检查本地的ARP缓存表(ARP Cache),这个缓存表会记录一些已知的IP地址和对应的MAC地址。

如果目标的IP地址没有在ARP缓存表中找到对应的MAC地址,发送方主机就会发送一个广播ARP请求包(ARP Request),在局域网中广播给其他主机。这个ARP请求包包含了源主机的IP地址和MAC地址,以及目的主机的IP地址。

当目标主机接收到ARP请求包后,它会检查自己的IP地址是否与目标IP地址匹配。如果匹配,目标主机会发送一个单播ARP响应包(ARP Reply)给源主机,包含自己的IP地址和MAC地址。

当源主机收到ARP响应包后,它会将目标主机的IP地址和MAC地址添加到ARP缓存表中,以便以后的通信使用。

总结来说,ARP协议就是通过广播和相应的ARP请求和响应包来确定目标主机的MAC地址,以便能够建立起IP地址与MAC地址的映射关系,从而实现数据包的正确传递。

3. 网络层

1. 基本概念

网络层是TCP/IP模型中的第三层,负责在不同网络间进行路由和转发数据包。它的主要功能包括 IP 地址分配、路由选择和数据分组的转发

类比实际案例,可以想象网络层就像是一个邮递局系统。当一个人需要向另一个城市的朋友寄信时,他首先写下朋友的地址(IP地址),然后将信交给自己当地的邮递局。邮局系统的工作就是负责将这些信件分发到不同的城市,确保它们能够按照正确的路径到达目的地

在这个例子中,网络层就扮演着邮局系统的角色。它的具体工作包括:

  1. IP 地址分配:网络层负责向每个设备分配唯一的 IP 地址。就像邮局系统会给每个人分配一个独特的地址一样,网络层为连接到网络的设备分配唯一的 IP 地址,以便它们可以互相识别和通信。

  2. 路由选择:网络层通过使用路由协议,决定数据包在不同网络之间的传输路径。就像邮局系统根据邮编系统为信件选择最佳路由一样,网络层使用路由协议确定数据包在不同网络之间传输的最佳路径。

  3. 数据分组与转发:网络层将上层传输层提供的数据分割成较小的数据包(也称为数据分组),并将它们添加到网络层头部的数据包头中。这些数据包会根据网络层中的路由表,通过合适的网络节点进行转发,以确保数据包以正确的路径到达目的地。

通过上述流程,网络层起到了连接不同网络的功能,使得整个网络理论上能够无缝通信。网络层的工作可以帮助实现数据的分发、转发和路由选择,确保数据的准确传输和到达目标的网络服务。

2.ip协议

IP协议是指互联网传输协议Internet Protocol),它是计算机网络中最为重要的协议之一。IP协议使用一种分组交换数据的方式来实现网络通信,它定义了数据在网络中传输的格式、规则和机制。

IP协议主要负责两个重要的功能:寻址和路由。寻址指的是通过IP地址来唯一标识在网络中的设备或主机,通过IP地址可以将数据发送到目标设备。路由指的是根据目标IP地址选择合适的路径将数据包传输到目标设备的过程。

IP协议采用的是无连接的通信方式,这意味着每个数据包在传输的时候是独立的,没有建立长久的连接。数据包在传输过程中可能经过多个网络节点,这些节点根据路由表来选择传输的路径。IP协议负责将数据包从源地址传输到目标地址,但不保证数据包按顺序到达、不丢失和不重复,这些问题需要在更高层的协议(如TCP)中解决

IP协议使用了32位的IP地址来标识设备或主机,IPv4采用点分十进制表示法(如192.168.0.1),而IPv6采用128位的地址空间(如2001:db8:0:1234:0:567:8:1)。除了IP地址之外,IP协议还定义了其他的字段,如版本、首部长度、服务类型、总长度、标识、标志、片偏移、生存时间、协议、首部校验和、源IP地址和目标IP地址等。

IP版本IP地址格式
IPv4四个十进制数,每个数范围从0到255,用点分隔,例如192.168.0.1
IPv6八组四位十六进制数,每组之间使用冒号分隔,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334

IPv4地址由32位二进制数组成,通常以点分十进制表示。每个十进制数表示8位二进制数的值。IPv4地址分为网络部分和主机部分,其中网络部分表示网络的身份,主机部分表示特定主机的身份。

IPv6地址由128位二进制数组成。为了减少冗余,IPv6使用了缩写规则,如去除前导0、连续的0组合、使用双冒号来表示一组0等。IPv6地址的增加是为了解决IPv4地址不足的问题。

IP协议是计算机网络中的核心协议,它使得互联网的通信变得可能。通过IP协议,不同类型的设备和主机能够互相交换数据和信息,实现全球范围的互联网传输。

3.子网掩码

子网掩码是用于划分网络地址的一种方法。它以32位二进制数表示,与IP地址结构相同。子网掩码通过指示IP地址中哪些位用于网络标识,哪些位用于主机标识来划分网络

在计算机网络中,IP地址由网络地址和主机地址两部分组成。子网掩码将IP地址分成两个部分:网络标识和主机标识。网络标识用于指示IP地址所在的网络,而主机标识用于标识网络中的具体主机。子网掩码中的1位表示网络标识,0位表示主机标识。

判断两个IP地址是否在同一个局域网中,可以通过比较两个IP地址的网络标识部分是否相同来判断。具体步骤如下:

  1. 获取两个IP地址的子网掩码。
  2. 将两个IP地址和子网掩码进行逻辑与操作。
  3. 比较结果,如果两个IP地址与子网掩码进行逻辑与操作的结果相同,则表示它们在同一个局域网中,否则不在同一个局域网中。

例如,假设有两个IP地址:192.168.1.100和192.168.1.200,子网掩码为255.255.255.0。将这两个IP地址和子网掩码进行逻辑与操作,得到的结果如下:

192.168.1.100与255.255.255.0进行逻辑与操作的结果为192.168.1.0
192.168.1.200与255.255.255.0进行逻辑与操作的结果为192.168.1.0

由此可见,这两个IP地址与子网掩码进行逻辑与操作的结果相同,因此它们在同一个局域网中。

需要注意的是,如果两个IP地址的子网掩码不同,那么即使它们的网络标识部分相同,也不一定在同一个局域网中。因此,在判断两个IP地址是否在同一个局域网中时,除了比较网络标识部分,还需要考虑子网掩码是否相同。

4. 传输层

1. 基本概念

计算机网络中的传输层是网络层次结构中的一个层面,负责管理数据的传输和连接。传输层的主要功能是在源主机和目标主机之间提供端到端的通信服务

传输层的主要任务包括:

  1. 分段和重组:传输层将应用层数据分成较小的数据块(称为段),并在目标主机上重组这些段以还原原始数据。这种分段和重组的过程可以解决网络传输中的大小限制和不可靠性问题

  2. 端口标识:传输层使用端口号来标识通信中的应用程序。每个应用程序可以使用唯一的端口号,这样传输层可以将接收到的数据准确地传递给目标应用程序

  3. 传输控制:传输层通过实施差错检测和校正、流量控制和拥塞控制等机制,确保数据的可靠传输。这些机制可以保证数据的完整性、按序传输和可靠性

  4. 多路复用和多路分解:传输层可以实现多个应用程序之间共享网络连接,通过将多个应用程序的数据打包在一个传输层连接中进行传输,然后在目标主机上将数据分解给各个应用程序。

一个类比的实际应用是邮寄服务。传输层可以被类比为邮局,邮局负责管理和控制邮件的传输过程。具体而言,邮局通过将邮件分成较小的信封(分段和重组)来解决邮件尺寸限制的问题。每个信封都有一个唯一的地址(端口标识),以确保邮件准确地发送给目标收件人。此外,邮局还会提供差错检测和修复机制,以保证邮件的完整性和可靠性。当多个人同时使用邮局时,邮局可以通过多路复用和多路分解来处理不同人的邮件,确保每个人都可以收到自己的邮件

总之,传输层就像是一个承载着数据分割、传输控制和连接管理的关键服务层。它通过各种机制,确保网络传输的可靠性和可靠性。

2. 协议

在计算机网络中的传输层涉及以下网络协议:

协议描述
TCP传输控制协议(Transmission Control Protocol)是一种面向连接的协议,提供可靠的数据传输。它通过序列号、确认和重传机制来确保数据的可靠性,并通过滑动窗口机制来实现流量控制和拥塞控制。TCP是传输层中最常用的协议。
UDP用户数据报协议(User Datagram Protocol)是一种无连接的协议,不提供可靠性保证。它仅提供基本的数据传输功能,并且传输效率较高。UDP适用于对实时性要求较高的应用,如视频流和音频流传输。
SCTP流控制传输协议(Stream Control Transmission Protocol)是一种面向消息的协议,具有可靠性和消息完整性保证。SCTP支持多流传输、多宿主连接和可选有序传输。SCTP适用于要求可靠且有序数据传输的应用。

这些协议在计算机网络中的传输层发挥着不同的作用和功能,提供了不同的数据传输方式和可靠性保证。在实际应用中,根据应用程序的需求和网络环境的不同,选择合适的传输层协议来进行数据传输。

除了以上几种协议,还有一些其他的传输层协议如数据报传输协议(Datagram Congestion Control Protocol,DCCP)和传输层安全协议(Transport Layer Security,TLS)等。这些协议在计算机网络中起到了不同的作用,满足了不同应用的需求。

3. TCP(三次握手四次挥手)

TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议。它是互联网协议栈中的一部分,用于在网络中传输数据

TCP协议主要作用提供可靠的数据传输。它通过以下方式来保证数据的可靠性:

  1. 为每个连接建立一个虚拟的通道,确保数据按照正确的顺序传输。
  2. 通过确认和重传机制来保证数据的可靠性。每次发送数据后,接收方会发送一个确认消息给发送方,如果发送方没有收到确认消息,则会重新发送数据。
  3. 提供流量控制机制,防止发送方发送速度过快导致接收方无法处理。

TCP协议的工作过程如下:

  1. 建立连接:在传输数据之前,发送方和接收方需要建立一个连接。连接的建立过程称为三次握手。发送方发送一个请求连接的消息,接收方收到后回复一个确认消息,发送方再回复一个最终确认消息。
  2. 数据传输:建立连接后,发送方可以开始向接收方发送数据。数据包会按照指定的顺序传输,并且接收方会发送确认消息给发送方。
  3. 关闭连接:数据传输完成后,发送方和接收方可以关闭连接。关闭连接的过程称为四次挥手。发送方发送一个请求关闭连接的消息,接收方回复一个确认消息,然后接收方发送一个请求关闭连接的消息,发送方再回复一个最终确认消息。

三次握手建立连接的过程如下:

  1. 客户端向服务器发送一个SYN(同步)报文,表示客户端请求建立连接。
  2. 服务器接收到SYN报文后,发送一个SYN + ACK(同步+确认)报文作为回应,表示可以建立连接。
  3. 客户端收到服务器的SYN + ACK报文后,再发送一个ACK(确认)报文,表示客户端确认可以建立连接。
    连接建立完成后,双方可以进行数据传输。
客户端                  服务器|                       ||     SYN报文发送        ||---------------------> ||                       ||  SYN + ACK报文发送    || <---------------------||                       ||     ACK报文发送        ||---------------------> ||       连接建立         ||                       |

四次挥手关闭连接的过程如下:

  1. 客户端发送一个FIN(结束)报文,表示客户端希望关闭连接。
  2. 服务器接收到FIN报文后,发送一个ACK报文作为回应,表示确认连接关闭请求。
  3. 服务器发送一个FIN报文,表示服务器也希望关闭连接。
  4. 客户端接收到服务器的FIN报文后,发送一个ACK报文作为回应,表示确认连接关闭。
客户端                            服务器|                                 ||  FIN报文发送                    ||------------------------------>  ||                                 ||      ACK报文发送                 || <------------------------------- ||                                 ||  FIN报文发送                    ||------------------------------>  ||                                 ||      ACK报文发送                 || <------------------------------- ||        连接关闭                 ||                                 |

通过三次握手建立连接和四次挥手关闭连接,TCP保证了数据传输的可靠性,以及连接的正确建立和关闭。

+--------+                     +-----------+
| 客户端 |                     | 服务器   |
+--------+                     +-----------+|                                 ||    SYN=1,seq=x                ||------------------------------>||                                 ||    SYN=1,ACK=1,seq=y, ack=x+1 ||<------------------------------||                                 ||    ACK=1,seq=x+1, ack=y+1      ||------------------------------>||                                 ||       请求连接建立             ||                                 ||                                 ||    FIN=1,seq=x                ||------------------------------>||                                 ||   ACK=1,seq=y, ack=x+1         ||<------------------------------||                                 ||      通知结束连接              ||                                 ||    FIN=1,ACK=1,seq=y+1, ack=x ||<------------------------------||                                 ||    ACK=1,seq=x, ack=y+1        ||------------------------------>||                                 |

总结来说,TCP协议是一种可靠的传输协议,通过建立连接、确认和重传机制以及流量控制来保证数据的可靠性。它是互联网中最常用的传输协议之一。

4. UDP

UDP(User Datagram Protocol)是一种无连接的、不可靠的传输协议,它用于在网络上发送数据报。与TCP不同,UDP在传输数据之前不需要建立连接,也不进行可靠性保证和数据验证。

UDP协议的工作方式如下:

  1. 应用程序将数据封装成数据包(Datagram),并指定目标IP地址和端口号。
  2. 数据包通过网络传输,但不保证数据包的顺序、完整性或是否到达目的地。
  3. 接收方应用程序通过网络接收到数据包。
  4. 接收方应用程序根据数据包的源IP地址和端口号进行处理。
  5. 应用程序提取出数据包中的数据,并进行相应的操作。

UDP协议的特点包括:

  1. 无连接性:发送方不需要和接收方事先建立连接,可以直接发送数据包。
  2. 不可靠性:发送方无法得知数据包是否到达目的地,也无法保证数据包的顺序,因此不适用于对数据传输的可靠性要求较高的场景。
  3. 快速性:由于无需建立连接和进行可靠性保证,UDP的数据传输速度相对较快。
  4. 简单性:与TCP相比,UDP的协议头部较小,更简单,因此在某些对网络开销较为敏感的应用中,如实时视频传输、语音通信等,UDP更为适合。

UDP常用于以下情况:

  1. 实时应用:如音视频传输、实时通信等,因为UDP的快速性和简单性可以提供较低的延迟。
  2. 广播和组播应用:UDP可以将数据包同时发送给多个接收方。
  3. DNS解析:域名解析中使用UDP发送请求。

需要注意的是,由于UDP的不可靠性,在某些情况下可能丢失部分数据包,因此在重要的数据传输或对数据完整性要求较高的情况下,建议使用TCP协议。

5.应用层

1. 基本介绍

应用层是计算机网络中最高层的一层,它提供了网络应用程序与网络传输层之间的接口。应用层主要负责处理用户应用程序的通信服务,使不同网络中的应用程序能够相互通信和交换数据。

应用层的主要工作包括以下几个方面:

  1. 应用协议的定义:应用层定义了应用程序之间交换数据的格式和规则,例如HTTP、SMTP、FTP等协议,这些协议描述了数据的结构、编码和传输方式,以及通信的各种细节。

  2. 数据编码和格式转换:应用层负责将应用程序生成的数据转换为适合在网络上传输的格式,并在接收端将其转换为应用程序可识别的格式。例如,将数据转换为ASCII码或Unicode编码,或将音频、视频等数据转换为适合传输的格式。

  3. 数据分段和重组:当数据量过大时,应用层负责将数据进行分段,并在接收端将分段的数据重组为完整的数据。分段可以提高传输效率,同时确保数据的完整性。

  4. 数据传输控制:应用层负责控制数据的传输,包括传输的速度、安全性、可靠性等。例如,通过建立多个并行的连接提高传输速率,通过使用加密技术保证数据的安全性,通过使用确认和重传机制保证数据的可靠传输。

  5. 用户认证和授权:应用层可以提供用户认证和授权的服务,确保只有合法的用户能够访问网络资源,并控制用户的操作权限。这种服务一般通过用户名和密码等身份验证方式实现。

总之,应用层是计算机网络中负责实现用户应用程序与网络传输层之间通信的关键一环,它定义了应用程序的通信规则和格式,并提供了数据传输控制、数据转换和处理等功能。

2.URI和URL

URI (Uniform Resource Identifier)URL (Uniform Resource Locator) 都是用来标识并访问网络资源的方式。它们之间有一定的关系,URI 是 URL 的一种特殊形式。下表展示了它们的解释和说明:

词汇解释说明
URIUniform Resource Identifier (统一资源标识符)用于标识和定位一个唯一的资源,可以是网络上任何一种可访问的资源,比如网页、文件等。
URLUniform Resource Locator (统一资源定位器)是 URI 的一种具体形式,它包含了指向特定资源的完整地址,可以在浏览器中直接打开。
格式URI 可以有多种不同的格式,包括 URL、URN 等URL 是最常见的一种 URI 格式,用于定位资源并指定资源的访问方式。
用途用于标识和访问网络上的资源通过 URI 或 URL 可以准确地定位网络上的资源,比如网页、图片、视频等。
包含关系URL 是 URI 的一种具体实现,是 URI 的子集URL 是一种特定格式的 URI,即包含了资源的定位信息。因此,所有的 URL 都是 URI,但不是所有的 URI 都是 URL。
示例http://www.example.com/index.html这是一个典型的 URL,表示一个 HTTP 协议下的网站页面链接。
file:///path/to/file.txt这也是一个 URL,表示一个本地文件的路径。
urn:isbn:0-486-27557-4这是一个 URN,它用于唯一标识国际标准书号 (ISBN)。虽然是 URI 但不是 URL,因为它没有指定访问该资源的具体方式(如网络协议)。

需要注意的是,虽然 URI 和 URL 的概念有所区别,但在实际使用中,它们经常被混用,URL 一词也常常用来泛指某个资源的唯一标识符。

URL(Uniform Resource Locator)由以下部分组成:

  1. 协议(Protocol):URL的第一部分是协议,用于指定客户端与服务器之间的通信协议。常见的协议有:HTTP(用于网页访问)、HTTPS(加密的网页访问)、FTP(文件传输协议)等。示例:http://

  2. 域名(Domain Name):URL的第二部分是域名,用于指定要访问的资源所在的服务器。域名由点(.)分隔的多个部分组成,从右向左依次表示更高级的域名级别。示例:www.example.com

  3. 端口号(Port):URL的第三部分是端口号,用于指定服务器上正在监听的端口。如果没有明确指定,将使用默认端口号。HTTP默认端口是80,HTTPS默认端口是443。示例::8080

  4. 路径(Path):URL的第四部分是路径,用于指定要访问的资源所在的路径或目录。路径可以是绝对路径(以/开头)或相对路径。示例:/path/to/resource

  5. 查询参数(Query Parameters):URL的第五部分是查询参数,用于向服务器传递额外的信息或请求参数。参数以?开头,多个参数之间用&分隔。每个参数由键值对组成,键和值之间用=连接。示例:?param1=value1&param2=value2

  6. 锚点(Anchor):URL的最后部分是锚点,用于指定页面中的具体位置。锚点由#开头,跟随一个特定的标识符。示例:#section1

假设要访问网站上的一篇博客文章的URL为https://www.example.com/blog/article?id=123#comments

组成部分示例说明
方案https://使用HTTPS协议进行网络通信
域名www.example.com访问的网站域名为www.example.com
端口号443默认使用HTTPS的默认端口号443
路径/blog/article访问的资源路径为/blog/article
查询参数?id=123在URI中传递参数id的值为123
片段标识符#comments定位到资源内部具体标识为comments的部分

3. http协议

1. 基本介绍

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,它是Web通信的基础。HTTP协议的主要工作是在客户端和服务器之间传输信息,使客户端能够请求和接收服务器上的Web资源

HTTP协议的工作方式是基于请求-响应模型。客户端发送包含请求的HTTP报文给服务器,然后服务器发送包含响应的HTTP报文给客户端。请求报文包括请求方法、请求URI(Uniform Resource Identifier)、协议版本、请求头部和请求数据等,而响应报文则包括协议版本、状态码、响应头部和响应数据等。

HTTP协议具有以下特点:

  1. 无连接:每个请求-响应交互都是独立的,服务器不会保存关于客户端的任何状态信息。这样有利于服务器处理多个客户端请求,但也导致每次请求都需要建立新的连接,增加了一定的开销。

  2. 无状态:服务器不会保存之前请求的任何信息,每个请求都是独立的。如果需要保持客户端状态,可以借助Cookie等机制来实现。

HTTP协议的主要工作包括:

  1. 建立连接:客户端向服务器发起请求时,需要先建立TCP连接。通过三次握手的过程,在客户端和服务器之间建立可靠的通信链路。

  2. 发送请求:客户端发送HTTP请求给服务器,包括请求的方法(GET、POST等)、请求的URI和协议版本等。请求可能包含额外的头部信息和请求数据,如请求的参数Cookie等。

  3. 处理请求:服务器接收到请求后,根据请求的URI和方法等信息进行相应的处理,如查询数据库、读取文件等。服务器可能会验证请求的合法性,并生成响应数据。

  4. 发送响应:服务器生成响应报文,包括协议版本、状态码、响应头部和响应数据等。然后将响应发送给客户端。

  5. 接收响应:客户端接收到服务器发送的响应报文后,根据协议版本和状态码等进行解析。客户端可以获取响应的数据并进行相应的处理,如解析HTML、渲染页面等。

HTTP协议在Web通信中起到了关键的作用,它使得客户端能够与服务器进行交互,并获取所需的Web资源。它定义了通信的规则和格式,并提供了灵活的扩展机制,使得Web应用能够快速、可靠地进行数据传输。

2. 请求报文

HTTP请求报文由请求行、请求头部和请求主体三部分组成。

  1. 请求行:请求行包含请求方法、请求的URL和HTTP协议版本。常见的请求方法有GET、POST、PUT、DELETE等。例如:

    GET /index.html HTTP/1.1
    
  2. 请求头部:请求头部包含关于请求的附加信息,以键值对的形式呈现。常见的请求头部有Host、User-Agent、Accept、Content-Type等。

请求头字段描述示例
Host指定请求的服务器的域名和端口号Host: www.example.com
User-Agent标识发送请求的用户代理User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36
Accept告诉服务器可以接受的响应内容类型Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Language告诉服务器可接受的响应内容语言Accept-Language: en-US,en;q=0.9
Accept-Encoding告诉服务器可接受的响应内容的压缩方法Accept-Encoding: gzip, deflate, br
Connection维持持久连接,或关闭连接Connection: keep-alive
Referer告诉服务器发送请求的前一页URLReferer: http://www.example.com/page1.html
Cookie包含之前由服务器设置的cookieCookie: name=value; name2=value2
Authorization用于身份验证的凭证信息Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type请求体的媒体类型Content-Type: application/json
Content-Length请求体的字节数Content-Length: 348
If-None-Match如果资源的ETag与请求头中指定的一致,则返回304 Not ModifiedIf-None-Match: “686897696a7c876b7e”
If-Match如果资源的ETag与请求头中指定的一致,则进行请求处理If-Match: “686897696a7c876b7e”

例如:

Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Content-Type: application/json
  1. 请求主体:请求主体可选,用于传输请求的数据,例如表单数据或JSON数据。在POST请求中常见的请求主体就是要发送的数据。例如:
    {"username": "example_user","password": "123456"
    }
    

综合示例:

POST /login HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Content-Type: application/json{"username": "example_user","password": "123456"
}

以上示例是一个使用POST方法向www.example.com/login路径发送JSON数据的HTTP请求报文。

3. 响应报文

HTTP的响应报文是服务器向客户端返回的数据格式,它由三部分组成:响应行、响应头和响应体。下面对每个部分进行详细的介绍,并举例说明。

  1. 响应行:
    响应行包含了响应的状态码和状态码的文本描述,格式为“HTTP版本 状态码 状态码文本描述”。例如:HTTP/1.1 200 OK
  • HTTP版本指明服务器所使用的HTTP协议的版本。
  • 状态码代表了请求的处理结果的状态。常见的状态码有:
    • 200:请求成功
    • 404:资源未找到
    • 500:服务器内部错误

以下是常见的HTTP响应状态码表格说明:

状态码状态码描述说明
200OK请求成功
201Created请求已成功处理,并且已创建了一个新的资源
204No Content请求已成功处理,但响应报文中无返回内容
301Moved Permanently资源的URL被永久移动到了另一个位置
302Found资源的URL被临时移动到了另一个位置
304Not Modified资源自从上次请求后未发生过修改,可使用客户端缓存的版本
400Bad Request客户端请求的语法错误或无法被服务器理解
401Unauthorized请求缺乏有效的身份验证凭证
403Forbidden服务器理解请求,但拒绝执行操作,权限不足或者对资源的访问被禁止
404Not Found请求的资源在服务器上不存在
500Internal Server Error服务器在执行请求时遇到了无法处理的错误
503Service Unavailable服务器暂时无法处理请求,一般为过载或维护
  1. 响应头:
    响应头包含了关于响应的一些补充信息,格式为“名称: 值”。常见的消息报头有:
  • Content-Type:指明了响应正文的MIME类型。例如:Content-Type: text/html
  • Content-Length:指明了响应正文的字节长度。例如:Content-Length: 1024
  • Server:指明了服务器的软件信息。例如:Server: Apache/2.4.29 (Unix)
  1. 响应体:
    响应体是服务器返回给客户端的实际数据,它可以是文本、HTML、XML、JSON等格式。请求成功时,响应正文会包含所请求资源的内容;而出现错误时,响应正文可能包含出错信息或者空白。

下面是一个简单的例子:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1024
Server: Apache/2.4.29 (Unix)<!DOCTYPE html>
<html>
<head><title>Example Page</title>
</head>
<body><h1>Hello, World!</h1><p>This is an example page.</p>
</body>
</html>

在这个例子中,状态行指明了响应的状态是200 OK,消息报头指明了响应正文的MIME类型为text/html,响应正文是一个简单的HTML页面。

4.DNS服务器

1. 基本概念

DNS服务器是一个专门用于域名系统(DNS)的服务器。它的主要功能是将域名解析成相应的IP地址,并将网络请求路由到正确的服务器上。DNS服务器保存着域名和IP地址的对应关系,当用户在浏览器中输入一个域名时,DNS服务器会根据域名查询DNS解析记录,并返回相应的IP地址给用户的计算机,从而使用户能够访问目标网站。DNS服务器也可以进行其他功能,如缓存DNS解析结果以提高解析速度、执行反向DNS解析等。

2. 域名

域名是指用于在互联网上标识和定位网站的字符串。它由多个部分组成,包括顶级域名(TLD)、二级域名(SLD)和子域名(Subdomain)等。

以下是域名的组成及其说明:

组成说明示例
协议域名所使用的网络协议或协议组合http://或https://
子域可选的域名部分blog.
主域域名的主要部分example
顶级域域名的最高级部分.com

例如,对于URL “http://blog.example.com”,其域名的组成如下:

  • 协议:http://://
  • 子域:blog.
  • 主域:example
  • 顶级域:.com

通过域名,用户可以更容易地记住和访问网站,而不需要记住复杂的IP地址。

以下是一些常见的顶级域名

顶级域名说明
.com商业领域,普遍用于商业网站
.org非营利组织,常用于非盈利性质的组织或个人
.net网络,常用于网络相关的网站
.edu教育,主要用于教育机构或学术机构
.gov政府,用于政府或政府机构
.mil军事,用于军事组织或军方机构
.int国际组织,用于国际性组织
.info信息,常用于提供信息的网站
.biz商务,用于商务相关的网站
.name个人名称,用于个人网站
.pro专业人士,常用于专业人士的网站
.coop合作社,常用于合作社或合作组织
.museum博物馆,用于博物馆相关的网站
.aero航空运输业,用于航空运输业
.int网际,常用于国际性的互联网机构
.travel旅游,用于旅游业相关的网站
.jobs就业机会,用于提供就业机会
.mobi移动互联网,用于移动互联网相关的网站
.asia亚洲,用于亚洲地区的网站
.cat加泰罗尼亚语,用于加泰罗尼亚语言的网站
.eu欧洲联盟,用于欧洲联盟成员国
.tel电话号码,用于电话号码相关的网站
.xxx含有成人内容的网站
.cn中国,用于中国地区的网站

3. DNS解析域名的过程

域名系统(DNS)通过将域名解析为相应的IP地址来帮助计算机在互联网上定位其他计算机。以下是DNS通过域名查找IP地址的过程:

  1. 用户在浏览器中输入一个域名(例如www.example.com)。
  2. 本地计算机首先检查它的本地DNS缓存,看看是否已经解析过这个域名。如果有,它将返回对应的IP地址,并跳到第6步。
  3. 如果本地缓存没有相应的解析记录,计算机将发送一个DNS查询到本地网络的DNS服务器。
  4. 本地DNS服务器检查它的缓存,如果没有相应的解析记录,它将发起一个迭代查询,开始解析这个域名。
  5. 本地DNS服务器首先询问根域名服务器,根域名服务器知道所有的顶级域名服务器的IP地址。根域名服务器告诉本地DNS服务器.com顶级域名服务器的IP地址。
  6. 本地DNS服务器接着向.com顶级域名服务器发送一个查询请求。
  7. .com顶级域名服务器根据请求返回相应的权威域名服务器的IP地址。权威域名服务器是负责保存特定域名解析记录的服务器。
  8. 本地DNS服务器在知道权威域名服务器的IP地址后,发送一个查询请求给权威域名服务器。
  9. 权威域名服务器检查自己的数据库,找到对应的域名解析记录,并将IP地址返回给本地DNS服务器。
  10. 本地DNS服务器将IP地址存储在缓存中,并将IP地址返回给用户的计算机。
  11. 用户的计算机通过获取到的IP地址与目标计算机建立连接,并开始进行通信。

5. DHCP

Dynamic Host Configuration Protocol (DHCP)是一种网络协议,用于自动分配IP地址、子网掩码、默认网关和DNS服务器的配置给连接到网络上的设备。

DHCP服务是在网络中提供自动IP地址分配和其他网络配置设置的服务。当设备连接到网络时,它会向DHCP服务器发送请求,DHCP服务器会为设备分配一个可用的IP地址,并提供其他网络配置信息。这样,设备就可以自动获得所需的网络配置,而不需要手动配置。DHCP服务可以大大简化网络管理员的工作,同时提供更方便和高效的网络管理。

DHCP服务的工作原理如下:

  1. 设备加入网络时,向网络中的DHCP服务器发送一个DHCP请求。
  2. DHCP服务器收到请求后,在可用的IP地址池中分配一个可用的IP地址,并将其回复给设备。
  3. 设备收到DHCP服务器分配的IP地址,并使用该地址进行网络通信。
  4. DHCP服务器还可以提供其他网络配置信息,如子网掩码、默认网关和DNS服务器的IP地址等。
  5. 设备接受到其他网络配置信息后,可以根据配置信息进行网络设置,以正常使用网络服务。

通过使用DHCP服务,网络管理员可以更方便地管理整个网络,而不需要手动为每个设备分配IP地址和其他网络配置。同时,DHCP还支持IP地址的动态分配和租用,可以在设备不再需要时将分配给它的IP地址回收,以供其他设备使用。这使得网络中的IP地址使用更加高效。

总而言之,DHCP服务是一种自动分配IP地址和其他网络配置的服务,它提供了简化和高效的网络管理方式,使设备能够更方便地连接到网络并使用网络服务。

6. 在浏览器地址栏里输入一个URL,到这个页面呈现出来,中间会发生

以下是从输入URL到页面呈现的基本流程:

  1. 用户在浏览器地址栏中输入URL(统一资源定位符)。
  2. 浏览器通过URL解析出主机名(例如 www.example.com)。
  3. 浏览器使用DNS(域名系统)解析器将主机名转换为IP地址,该IP地址对应于服务器,以便能够建立与服务器的连接。
  4. 浏览器使用HTTP(超文本传输协议)建立与服务器的TCP(传输控制协议)连接。
  5. 建立连接后,浏览器发送一个HTTP请求到服务器,该请求包含请求的资源(例如网页、图像等)的详细信息。
  6. 服务器接收到请求后,根据请求的资源,生成相应的HTTP响应。
  7. 服务器将HTTP响应发送回浏览器。
  8. 浏览器接收到HTTP响应后,解析响应并获取所请求资源的数据。
  9. 浏览器将获取到的数据渲染为用户可见的页面。
  10. 页面呈现完成后,浏览器会继续解析页面上的其他资源(例如脚本、样式表等)并进行相应的处理。

整个过程涉及到多个步骤和技术,包括URL解析、DNS解析、建立连接、发送请求、接收响应、解析和渲染等。这些步骤之间的具体实现可能因浏览器的不同而有所变化,但基本流程是大致相同的。

总结

通过本篇文章的介绍,我们对计算机网络中的五层网络协议有了更深入的了解。首先,我们了解了网络协议的概念以及为什么需要将网络协议分为不同的层次。接着,我们详细介绍了每一层网络协议的功能和作用,从物理层到应用层,每一层都扮演着重要的角色。我们了解了数据在每一层传输的方式以及相应的协议。同时,我们也了解了网络协议的分层模型,如OSI模型和TCP/IP模型,并了解了它们之间的关系。最后,我们讨论了网络协议在实际应用中的作用,如网络安全和网络性能优化。通过学习五层网络协议,我们对计算机网络的运行机制和原理有了更加深入的了解,这对我们在网络相关的工作和学习中都非常有帮助。

相关文章:

计算机网络之5层网络协议

文章目录 引言一、OSI七层模型二、TCP/IP参考模型三、网络协议的概念和作用四、TCP/IP参考模型每层详细介绍1.物理层2.数据链路层1. 基本概念2.MAC地址3.ARP协议 3. 网络层1. 基本概念2.ip协议3.子网掩码 4. 传输层1. 基本概念2. 协议3. TCP&#xff08;三次握手四次挥手&#…...

常见前端面试之VUE面试题汇总十一

31. Vuex 有哪几种属性&#xff1f; 有五种&#xff0c;分别是 State、 Getter、Mutation 、Action、 Module state > 基本数据(数据源存放地) getters > 从基本数据派生出来的数据 mutations > 提交更改数据的方法&#xff0c;同步 actions > 像一个装饰器&a…...

2021年12月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;书架 John最近买了一个书架用来存放奶牛养殖书籍&#xff0c;但书架很快被存满了&#xff0c;只剩最顶层有空余。 John共有N头奶牛(1 ≤ N ≤ 20,000)&#xff0c;每头奶牛有自己的高度Hi(1 ≤ Hi ≤ 10,000)&#xff0c;N头奶牛的总高度为S。书架高度为B(1 ≤…...

解决 git clone 时出现Failed to connect to 127.0.0.1 port 1573问题

今天去拉一个仓库代码&#xff0c;往常都是一下就拉下来了&#xff0c;今天却报错&#xff0c;报错信息如下&#xff1a; 原因&#xff1a;这种情况是因为代理在git中配置的&#xff0c;但是本身环境就有SSL协议了&#xff0c;所以取消git的https或者http代理即可 方法如下&…...

日本核污染水排海,有必要囤盐吗?

据央视新闻24日报道&#xff0c;当地时间8月24日13时&#xff0c;日本福岛第一核电站启动污水排海。消息一出&#xff0c;全球哗然。虽然事情已经过去了几天&#xff0c;但是&#xff0c;随着这一举动&#xff0c;大家就乱了阵脚&#xff0c;恐惧者有之&#xff0c;辱骂者有之&…...

windows 10自带命令查看文件的哈希值

windows的powershell自带了查看文件哈希值的命令&#xff1a; Get-FileHash 文件名 -Algorithm MD5/SHA1/SHA256 【案例】 查看文件的MD5值&#xff1a; 查看文件的SHA1值&#xff1a; 查看文件的SHA256值&#xff1a;...

ssm+vue理发店会员管理系统源码和论文

ssmvue理发店会员管理系统源码和论文089 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&a…...

Python的for循环

for语法&#xff1a; """ for 临时变量 in 待处理数据集(序列):循环满足条件时执行的代码 """ 例子&#xff1a; name "itheima is a brand of itcast" count 0 for i in name:if i "a":count 1 print(f"a的数量…...

爬虫逆向实战(二十七)--某某招标投标网站招标公告

一、数据接口分析 主页地址&#xff1a;某网站 1、抓包 通过抓包可以发现数据接口是page 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现&#xff0c;请求参数是一整个密文 请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 通…...

线程和之间的通讯方式、进程之间的通讯方式、线程之间如何同步

通信是指线程之间以何种机制来交换信息&#xff0c;同步是指程序中用于控制不同线程间操作发生相对顺序的机制 进程由线程组成&#xff0c;所以进程中有的通讯机制线程中全都有 线程的通讯方式&#xff1a; 1. 锁机制&#xff1a;包括互斥锁、条件变量、读写锁 互斥锁提供了以…...

CRM线索公海如何管理?

对于销售和CRM客户管理而言&#xff0c;公海线索的管理极为重要&#xff0c;今天本文将告诉大家&#xff1a; 1、如何合理设置公海线索规则和流程&#xff1f;2、手把手教你完成公海管理系统的搭建 关于CRM的公海管理问题&#xff0c;需要根据企业的具体情况和销售流程来设置…...

创建web应用程序,React和Vue怎么选?

React和Vue都是创建web应用程序的绝佳选择。React得到了科技巨头和庞大的开源社区的支持&#xff0c;代码库可以很大程度地扩展&#xff0c;允许你创建企业级web应用程序。React拥有大量合格甚至优秀的开发人员粉丝&#xff0c;可以解决你在开发阶段可能遇到的任何问题。 毫无疑…...

【每日一题】1267. 统计参与通信的服务器

【每日一题】1267. 统计参与通信的服务器 1267. 统计参与通信的服务器题目描述解题思路 1267. 统计参与通信的服务器 题目描述 这里有一幅服务器分布图&#xff0c;服务器的位置标识在 m * n 的整数矩阵网格 grid 中&#xff0c;1 表示单元格上有服务器&#xff0c;0 表示没有…...

Python入门教程29:字符串前加r、u、b、f是什么意思?

★★★★★博文原创不易&#xff0c;我的博文不需要打赏&#xff0c;也不需要知识付费&#xff0c;可以白嫖学习编程小技巧&#xff0c;喜欢的老铁可以多多帮忙点赞&#xff0c;小红牛在此表示感谢。★★★★★ 关键字参数字符串前加上r、u、b和f&#xff0c;分别表示不同的字…...

java8 IntStream.range

简介 IntStream.range是Java 8中的一个方法&#xff0c;它是java.util.stream.IntStream类中的静态方法。这个方法用于生成一个顺序排列的整数流&#xff0c;包含起始值但不包含结束值。可以使用以下代码调用IntStream.range方法&#xff1a; IntStream.range(int startInclu…...

数据库集群的简单了解

Update 关于操作的日志 1.0 redo log 读一次写一次 一共2次, 不安全 注意redo log是顺写 而file是随机 所以Mysql做出类似HDFS的操作 行为日志和数据分离&#xff0c;但是不同的是&#xff0c;Mysql在内存中操作修改&#xff0c;如果不出事故&#xff0c;由内存中的行为来直接…...

CSS中如何实现文字阴影效果(text-shadow)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 实现思路⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前…...

Nginx从入门到精通(超级详细)

文章目录 一、什么是Nginx1、正向代理2、反向代理3、负载均衡4、动静分离 二、centos7环境安装Nginx1、安装依赖2、下载安装包3、安装4、启动5、停止 三、Nginx核心基础知识1、nginx核心目录2、常用命令3、默认配置文件讲解4、Nginx虚拟主机-搭建前端静态服务器5、使用nignx搭建…...

为何反射探针关闭Mipmap后变成了白图

1&#xff09;为何反射探针关闭Mipmap后变成了白图 2&#xff09;2021.3 Android从AssetBundle中加载视频播放失败问题 3&#xff09;SBP是否可以解决打包时FBX等模型文件中额外的GameObject 4&#xff09;Addressables加载已打包过的Prefab后Mono脚本丢失 这是第349篇UWA技术知…...

成都睿趣科技:抖音开网店前期的流程是什么

随着互联网的快速发展&#xff0c;电子商务成为了商业领域中的一大利器&#xff0c;而在电商领域中&#xff0c;抖音作为一个强大的平台&#xff0c;也吸引了众多商家的目光。然而&#xff0c;要在抖音上开设一家成功的网店&#xff0c;并不是一件简单的事情&#xff0c;需要经…...

机房安全之道:构筑坚固的网络防线

引言&#xff1a; 在数字化时代&#xff0c;机房成为了许多组织和企业的核心基础设施&#xff0c;承载着重要的数据和应用。然而&#xff0c;随着网络攻击日益猖獗&#xff0c;机房的安全性显得尤为重要。本文将深入探讨如何构建坚固的网络防线&#xff0c;保护机房免受攻击的方…...

使用GoLand进行远程调试

对部署进行配置 在此配置远程服务器地址&#xff0c;映射&#xff0c;是否自动上传(更新)等 选择SFTP类型 选择上传 另外给自动上传选项打钩 此时在本地修改某个文件&#xff0c;远程机器相应目录的文件&#xff0c;也会被同步修改 对远程调试进行配置 远程机器需要安装delve 而…...

C++通过JNI调用JAVA方法返回ArrayList对象

运行效果: JAVA实现: 获取系统已安装应用列表并返回List<String>对象 //使用系统API获取安装包列表public List<String> getAppList(MainActivity act) {List<String> packages = new ArrayList<String>();try {//取包信息列表List<PackageInf…...

.netcore grpc截止时间和取消详解

一、截止时间概述 截止时间功能让 gRPC 客户端可以指定等待调用完成的时间。 超过截止时间时&#xff0c;将取消调用。 设定一个截止时间非常重要&#xff0c;因为它将提供调用可运行的最长时间。它能阻止异常运行的服务持续运行并耗尽服务器资源。截止时间对于构建可靠应用非…...

React组件间数据传递(弹框和高阶组件(HOC)特性实现)

前言 在现代前端开发中&#xff0c;React 已经成为了最受欢迎的 JavaScript 库之一。而在复杂的应用中&#xff0c;不同组件之间的数据传递问题显得尤为关键。在本文中&#xff0c;我们将探讨一种高效的方法&#xff0c;即如何利用弹框和高阶组件特性来实现 React 组件间的数据…...

只考一门数据结构,计算机学硕复录比1:1的山东双非学校考情分析

青岛理工大学 考研难度&#xff08;☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分析&#xff09;、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1420字&#xff0c;预计阅读&#xff1a;3分钟 2023考情概况 青岛理工…...

SpringMVC之异常处理器

文章目录 前言一、基于配置的异常处理二、基于注解的异常处理总结 前言 SpringMVC提供了一个处理控制器方法执行过程中所出现的异常的接口&#xff1a;HandlerExceptionResolver。 HandlerExceptionResolver接口的实现类有&#xff1a;DefaultHandlerExceptionResolver&#x…...

【数据结构与算法篇】手撕八大排序算法之快排的非递归实现及递归版本优化(三路划分)

​&#x1f47b;内容专栏&#xff1a; 《数据结构与算法篇》 &#x1f428;本文概括&#xff1a; 利用数据结构栈(Stack)来模拟递归&#xff0c;实现快排的非递归版本&#xff1b;递归版本测试OJ题时&#xff0c;有大量重复元素样例不能通过&#xff0c;导致性能下降&#xff0…...

docker network

docker network create <network>docker network connect <network> <container>docker network inspect <network>使用这个地址作为host即可 TODO&#xff1a;添加docker-compose...

回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测

回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测 目录 回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现DBN-ELM深度置信网络结合极限学习…...

新亮点!安防视频监控/视频集中存储/云存储平台EasyCVR平台六分屏功能展示

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...

深入解析SNMP协议及其在网络设备管理中的应用

SNMP&#xff08;Simple Network Management Protocol&#xff0c;简单网络管理协议&#xff09;作为一种用于网络设备管理的协议&#xff0c;在实现网络设备的监控、配置和故障排除方面发挥着重要的作用。本文将深入解析SNMP协议的工作原理、重要概念和功能&#xff0c;并探讨…...

【SA8295P 源码分析】86 - AIS Camera Device 设备初始化 之 AisProcChainManager 模块初始化源码分析

【SA8295P 源码分析】86 - AIS Camera Device 设备初始化 之 AisProcChainManager 模块初始化源码分析 一、AisProcChainManager::CreateInstance()二、AisPProcIsp::Create()三、AisPProcGpu::Create()系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》 本文链接…...

十五、pikachu之CSRF

文章目录 一、CSRF概述二、CSRF实战2.1 CSRF(get)2.2 CSRF之token 一、CSRF概述 Cross-site request forgery 简称为“CSRF”&#xff0c;在CSRF的攻击场景中攻击者会伪造一个请求&#xff08;这个请求一般是一个链接&#xff09;&#xff0c;然后欺骗目标用户进行点击&#xf…...

C语言网络编程:实现自己的高性能网络框架

一般生产环境中最耗时的其实是业务逻辑处理。所以&#xff0c;是不是可以将处理业务逻辑的代码给拆出来丢到线程池中去执行。 比如像下面这样&#xff1a; ​我们事先创建好一堆worker线程&#xff0c;主线程accepter拿到一个连接上来的套接字&#xff0c;就从线程池中取出一个…...

hive表向es集群同步数据20230830

背景&#xff1a;实际开发中遇到一个需求&#xff0c;就是需要将hive表中的数据同步到es集群中&#xff0c;之前没有做过&#xff0c;查看一些帖子&#xff0c;发现有一种方案挺不错的&#xff0c;记录一下。 我的电脑环境如下 软件名称版本Hadoop3.3.0hive3.1.3jdk1.8Elasti…...

五、Kafka消费者

目录 5.1 Kafka的消费方式5.2 Kafka 消费者工作流程1、总体流程2、消费者组原理3、消费者组初始化流程4、消费者组详细消费流程 5.3 消费者API1 独立消费者案例&#xff08;订阅主题&#xff09;2 独立消费者案例&#xff08;订阅分区&#xff09;3 消费者组案例 5.4 生产经验—…...

类 中下的一些碎片知识点

判断下面两个函数是否能同时存在 void Print(); void Pirnt() const 答&#xff1a;能同时存在&#xff0c;因为构成函数重载&#xff08;注意函数的返回值不同是不能构成函数重载的&#xff09;。 const 对象能调用 非const 成员函数吗 答&#xff1a;不能&#xff0c;因为权…...

JVM第二篇 类加载子系统

JVM主要包含两个模块&#xff0c;类加载子系统和执行引擎&#xff0c;本篇博客将类加载子系统做一下梳理总结。 目录 1. 类加载子系统功能 2. 类加载子系统执行过程 2.1 加载 2.2 链接 2.3 初始化 3. 类加载器分类 3.1 引导类加载器 3.2 自定义加载器 3.2.1 自定义加载器实…...

火爆全网!HubSpot CRM全面集成,引爆营销业绩!

HubSpot CRM是什么&#xff1f;它是一款强大的客户关系管理工具&#xff0c;专为企业优化销售、服务和市场营销流程而设计。它在B2B行业中扮演着极为重要的角色&#xff0c;让我来告诉你为什么吧&#xff01; HubSpot CRM不仅拥有用户友好的界面和强大的功能&#xff0c;还能够…...

远程调试环境

一、远程调试 1.安装vscode 2.打开vscode&#xff0c;下载插件Remote-SSH,用于远程连接 3.安装php debug 4.远程连接&#xff0c;连接到远端服务器 注&#xff1a;连接远程成功后&#xff0c;在远程依然要进行安装xdebug&#xff0c;刚才只是在vscode中进行的安装。 5.配置la…...

Java面试之用两个栈实现队列

文章目录 题目一、什么是队列和栈&#xff1f;1.1队列1.2栈 二、具体实现2.1 思路分析2.2代码实现 题目 用两个栈实现一个队列&#xff0c;实现在队列尾部插入节点和在队列头部删除节点的功能。 一、什么是队列和栈&#xff1f; 1.1队列 队列是一种特殊的线性表&#xff0c;…...

Python-实用的文件管理及操作

本章&#xff0c;来说说&#xff0c;个人写代码过程中&#xff0c;对于文件管理常用的几种操作。 三个维度 1、指定文件的路径拼接2、检查某文件是否存在3、配置文件的路径管理 1、指定文件的路径拼接 这个操作可以用来管理文件路径也就是上述中的第三点。但是&#xff0c;这里…...

Mysql 事物与存储引擎

MySQL事务 MySQL 事务主要用于处理操作量大&#xff0c;复杂度高的数据。比如说&#xff0c;在人员管理系统中&#xff0c; 要删除一个人员&#xff0c;即需要删除人员的基本资料&#xff0c;又需要删除和该人员相关的信息&#xff0c;如信箱&#xff0c; 文章等等。这样&#…...

java.lang.classnotfoundexception: com.android.tools.lint.client.api.vendor

Unity Android studio打包报错修复 解决方式 java.lang.classnotfoundexception: com.android.tools.lint.client.api.vendor 解决方式 在 launcherTemplate 目录下找到 Android/lintOptions 选项 加上 checkReleaseBuilds false lintOptions { abortOnError false checkRelea…...

pytest fixture夹具,@pytest.fixture

fixture 是pytest 用于测试前后进行预备&#xff0c;清理工作的代码处理机制 fixture相对于setup 和teardown&#xff1a; fixure &#xff0c;命名更加灵活&#xff0c;局限性比较小 conftest.py 配置里面可以实现数据共享&#xff0c;不需要import 就能自动找到一些配置 setu…...

YOLOv7源码解析

YOLOv7源码解析 YAML文件 YAML文件 以yolov7 cfg/yolov7-w6-pose.yaml为例&#xff1a; # parametersnc: 1 # number of classes nkpt: 4 # number of key points depth_multiple: 1.0 # model depth multiple width_multiple: 1.0 # layer channel multiple dw_conv_kpt:…...

2023高教社杯数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…...

ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564)

安全之安全(security)博客目录导读 ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564) 二、 CVE-2017-7564 一、ATF(TF-A)安全通告 TFV-2 (CVE-2017-7564) Title 启用安全自托管侵入式调试接口&#xff0c;可允许非安全世界引发安全世界panic CV…...

无涯教程-PHP - 标量函数声明

在PHP 7中&#xff0c;引入了一个新函数&#xff0c;即标量类型声明。标量类型声明有两个选项- Coercive - 强制性是默认模式。Strict - 严格模式必须明确提示。 可以使用上述模式强制执行以下类型的函数参数- intfloatbooleanstringinterfacesarraycallable 强制模…...