热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【第2章】OSI参考模型与TCP/IP模型

第2章OSI参考模型与TCP

第2章 OSI参考模型与TCP/IP模型

  • 1. 本章目标
  • 2. OSI参考模型
    • 2.1 OSI参考模型的产生
    • 2.2 OSI参考模型的层次结构
    • 2.3 OSI参考模型层次间的关系以及数据封装
    • 2.4 物理层
    • 2.5 数据链路层
    • 2.6 网络层
      • 2.6.1 网络层地址
      • 2.6.2 路由协议与可路由协议
      • 2.6.3面向连接和无连接服务
      • 2.6.4 网络层协议操作
    • 2.7传输层
    • 2.8 会话层、表示层和应用层
  • 3. TCP/IP模型
    • 3.1 TCP/IP模型的层次结构
    • 3.2 网络接口层
    • 3.3 网络层
    • 3.4 传输层
    • 3.5 应用层
  • 4. 本章总结
  • 5. 习题

  1. 为了解决网络之间的兼容性问题,1984年国际标准化组织(International Organization for Standardization,ISO)提出了OSI参考模型(Open System Interconnection Reference Model,开放系统互联参考模型)。ISO提出了OSI,OSI模型作为理论学习可以,现实中很少有完全采用OSI的。
  2. 源于美国国防部高级研究项目机构(Defense Advanced Research Project Agency,DARPA)20世纪60年代开发的ARPANET的TCP/IP协议得到了广泛应用,成为了Internet的事实标准
1. 本章目标
  1. 掌握OSI参考模型的分层结构
  2. 理解两个系统如何通过OSI模型进行通信
  3. 理解OSI模型的七层功能及其关系
  4. 理解数据封装的过程
  5. 掌握TCP/IP参考模型的分层结构
  6. 理解TCP/IP模型各层的功能
2. OSI参考模型

2.1 OSI参考模型的产生

为了解决不同的网络产品的兼容性。

OSI参考模型的主要优点:

  1. 开放的标准化接口
  2. 多厂商兼容性
  3. 易于理解、学习和更新协议标准
  4. 实现模块化工程,降低了开发实现的复杂度
  5. 便于故障排除

2.2 OSI参考模型的层次结构

OSI参考模型
OSI参考模型自下而上分为7层:

  1. 物理层(Physical Layer)
  2. 数据链路层(Data Link Layer)
  3. 网络层(Network Layer)
  4. 传输层(Transport Layer)
  5. 会话层(Session Layer)
  6. 表示层(Presentation Layer)
  7. 应用层(Application Layer)

物理层

  1. 在通信信道上传输原始比特流。
  2. 定义传输数据所需要的机械、电气、功能及规程的特征等,包括电压、电缆线、数据传输速率、接口等的定义。(物理层不是单单指传输电缆,而是指完成传输比特流所需要的机械、电气、功能及规程的特征,是一个整体

数据链路层

  1. 提供对物理层的控制,检测(bit流)并纠正可能出现的错误。
  2. 进行流量控制。
  3. 数据链路层与物理地址、网络拓扑、线缆规划、错误校验、流量控制有关。

网络层

  1. 决定传输包的最佳路由。
  2. 关键问题是确定数据包从源端到目的端如何选择路由。网络层通过路由选择协议来计算路由。
  3. 网络层通过 路由选择协议来计算路由。

传输层

  1. 从会话层(上级)接受数据,分成较小的单元,传递给网络层(下级)。
  2. 确保到达对方的各段信息正确无误。
  3. 传输层建立、维护虚电路、进行差错校验和流量控制。

会话层

  1. 建立、管理和终止应用程序间的会话关系。
  2. 会话层提供双工(Duplex)协商、会话同步等。

表示层

  1. 关注传输信息的语法和语义,把来自应用层与计算机有关的数据格式处理成与计算机无关的格式,以保证对端设备能够准确无误地理解发送数据。
  2. 表示层也负责数据加密等。

应用层

  1. 最接近用户的一层,负责为应用程序提供网络服务。
  2. 文件出书、文件管理、电子邮件的消息处理等。

2.3 OSI参考模型层次间的关系以及数据封装

PDU(Protocol Data Unit,协议数据单元)泛指网络通信对等实体之间交换的信息单元,包括用户数据信息和协议控制信息等。

上三层PDU:

  1. 应用层数据——APDU(Application Protocol Data Unit,应用层协议数据单元)
  2. 表示层数据——PPDU(Presentation Protocol Data Unit,表示层协议数据单元)
  3. 会话层数据——SPDU(Session Protocol Data Unit,会话层协议数据单元)
  4. 传输层数据——段(Segment)
  5. 网络层数据——包(Packet)
  6. 数据链路层——帧(Frame)
  7. 物理层——比特(bit)

对等通信
终端主机每一层都与另一方的对等层次进行通信。这种通信并非直接进行的,而是通过下一层为其提供的服务来间接与对端的对等层交换数据。

  1. 下一层通过服务访问点(Service Access Point,SAP)为上一层提供服务。
  2. 为了保证对等层之间能够准确无误地传递数据,对等层之间运行相同的网络协议。

对等通信示意图
对等通信
对等通信的意思就是:HostA的数据链路层和HostB的数据链路层通信,而不会直接和HostB的网络层通信。

封装(Encapsulation)
指网络节点将要传送的数据用特定的协议打包后传送。

  1. 多数协议是通过在原有数据之前加上封装头(Header)来实现封装。
  2. 一些协议还要再数据之后加上封装尾(Trailer)。
  3. 原有数据此时便称为载荷(Payload)。
  4. 发送方:接收上层的数据(载荷),封装,传递给下一层。
  5. 接收方:接收下层的数据(载荷),解封装,传递给上一层。

数据的封装与解封装

2.4 物理层

物理层(Physical Layer)是OSI参考模型的最底层或称为第1层,其功能是在终端设备间传输比特流。
物理层并不是指物理设备或物理媒介,而是有关物理设备通过物理媒体进行互连的描述和规定。
物理层协议定义了通信传输介质的物理特性。

  1. 机械特性
  2. 电气特性
  3. 功能特性
  4. 规程特性

物理层以比特流的方式传送来自数据链路层的数据,而不理会数据的含义或格式。同样,它接收数据后直接传送给数据链路层。
物理层只能看到0和1,它不能理解所处理的比特流的具体意义。

常见的物理层传输介质有:

  1. 同轴电缆(Coaxial Cable)
  2. 双绞线(Twisted Pair)
  3. 光纤(Fiber)
  4. 串行电缆(Serial Cable)
  5. 电磁波

典型的局域网物理层设备:

  1. 中继器
  2. 集线器

典型的广域网物理层设备:
调制解调器(Modem),数模转换

2.5 数据链路层

数据链路层的目的是负责在某一特定的介质或链路上传递数据
数据链路层协议与链路介质有较强的相关性,不同的传输介质需要不同的数据链路层协议给予支持。

数据链路层的主要功能:

  1. 帧同步:编帧和识别帧
  2. 数据链路的建立、维持和释放
  3. 传输资源控制
  4. 流量控制
  5. 差错控制
  6. 寻址
  7. 标识上层数据

帧同步:
编帧和识别帧。

  1. 物理层只发送和接收比特流,而不关心比特流的次序、结构和含义。
  2. 数据链路层,数据以帧(Frame)为单位传送,因此发送方需要链路层将比特编成帧,接收方需要在链路层能从接收到的比特流中明确地区分出数据帧起始与终止的地方。
  3. 帧同步的方法包括:字节计数法、使用字符或比特填充的首尾界定符法、违法编码法等。

数据链路的建立、维持和释放

  1. 通信双方首先要建立一条数据链路。
  2. 建立链路时需要确保安全性。
  3. 传输过程中要维持数据链路。
  4. 通信结束后要释放数据链路。

传输资源控制:
在一些共享介质上,多个终端设备可能同时需要发送数据,此时必须由数据链路层协议对资源的分配加以裁决。

流量控制:

  1. 为了确保正常地收发数据
  2. 防止发送数据过快,导致接收方的缓存空间溢出,网络出现拥塞
  3. 必须及时控制发送方发送数据的速率
  4. 数据链路层控制的是相邻两节点之间数据链路上的流量

差错控制:

  1. 物理层无法辨别比特流错误,数据链路层协议需要以帧为单位实施差错检测。
  2. 最长用的差错检测方法是FCS(Frame Check Sequence,帧校验序列)
  3. FCS校验方法举例:发送一个帧时,根据其内容,通过诸如CRC(Cyclic Redundancy Check,循环冗余校验)这样的算法计算出校验和(Checksum),并将其加入此帧的FCS字段中发送给接收方。接收方通过对校验和进行检查,检测收到的帧在传输过程中是否发生差错。
  4. 一旦发现差错,就丢弃此帧。

寻址:
数据链路层标识介质上的所有节点,并且能寻找到目的节点,以便将数据发送到正确的节点。

标识上层数据:

  1. 数据链路层采用透明传输的方法传送网络层包(Packet),它对网络层呈现为一条无错的线路。
  2. 为了在同一链路上支持多种网络层协议,发送方必须在帧的控制信息中标识载荷(包)所属的网络层协议,这样才能将载荷提交给正确的上层协议来处理。

数据链路层的划分

  1. 为了对网络层协议提供统一接口
  2. 为了同时对下层的各种介质进行管理控制。
  3. 局域网的数据链路层划分为:LLC(Logic Link Control,逻辑链路控制)和MAC(Media Access Control,介质访问控制)两个子层。(个人理解,逻辑层是面向网络层的,介质层是面向物理层的)

IEEE的数据链路成标准是当今最流行的LAN(局域网)标准。这些标准统称为IEEE 802标准。

  1. 802.1小组描述了基本的局域网需要解决的问题,例如802.1d描述了生成树协议。
  2. 802.2小组负责LLC子层标准的制定。
  3. 802.3小组负责MAC子层标准的制定,典型技术如CSMA/CD(Carrier Sense Multiple Access with Collision Detection载波侦听多路访问/冲突检测)。
  4. 802.4小组负责令牌总线标准的制定。
  5. 802.5小组负责令牌环网标准的制定,IBM的令牌环小组和IEEE 802.5小组建立的标准是基本相同的。
  6. 802.11小组负责无线局域网标准的制定。

目前我国应用最为广泛的LAN标准是基于IEEE 802.3的以太网标准。
以太网交换机就是一种典型的数据链路层设备。

广域网常见的数据链路层标准有:

  1. HDLC(High-level Data Link Control,高级数据链路控制)
  2. PPP(Point-to-Point Protocol,点到点协议)
  3. X.25
  4. 帧中继(Frame Relay)

HDLC是ISO开发的一种面向位同步的数据链路层协议,它规定了使用帧字符和校验和的同步串行链路的数据封装方法。

PPP由RFC(Request for Comment)1661描述。
PPP协议由LCP(Link Control Protocol)、NCP(Network Control Protocol)以及PPP扩展协议族组成。
LCP规定了链路的建立、维护以及拆除。PPP协议支持同步和异步连接,支持多种网络层协议。

帧中继是一种交换式的数据链路层协议。相对于X.25来说,帧中继通过使用无差错校验机制,加快了数据转发速度,因此比X.25更有效。

2.6 网络层

  1. 网络层传送的是包(Packet,也称为分组或报文)。
  2. 网络层的任务就是要选择合适的路径转发数据包,使数据包能够正确无误地从发送方传递到接收方。

网络层的主要功能:

  1. 编址
  2. 路由选择
  3. 拥塞控制
  4. 异种网络互联

编址:

  1. 网络层为每个节点分配标识,这就是网络层的地址(Address)。
  2. 地址的分配为从源到目的路径的选择提供了基础。

路由选择:

  1. 网络层设备在计算路由之后,按照路由信息对数据包进行转发。
  2. 执行网络层路由选择的设备称为路由器(Router)

拥塞控制:

  1. 网络层负责控制拥塞。
  2. 防止网络上同时传输的数据包过多,可能会产生拥塞。

异种网络互联:

  1. 通信链路和介质类型是多种多样的,每一种链路都有其特殊的通信规定。
  2. 网络层必须能够工作在多种多样的链路和介质类型上,以便能够跨越多个网段提供通信服务。

网络层功能概述:

  1. 网络层处于传输层(上)和数据链路层之间,它负责向传输层提服务,同时负责将网络地址译成对应的物理地址。
  2. 网络层协议还能协调发送、传输以及接收设备的处理能力的不平衡性,如网络层可以对数据进行分段和重组,以使得数据包的长度能够满足该链路的数据链路层协议所支持的最大数据帧长度。

2.6.1 网络层地址

网络层地址

  1. IP地址由4字节组成,通常采用点分十进制表示。(局域网)
  2. IPX地址由10字节组成,前4字节表示网络地址,后6字节表示主机地址,通常用十六进制数字表示。(广域网?)
  3. 网络层地址通常具有层次化结构,以便将一个巨大的网络区分成若干小块,以便寻址和管理。一般的做法是划分网络地址和主机地址,这样转发数据包时就可以先发送到网络地址所标识的网络,再由网络上的网关将其发送给主机地址所标识的目的主机。
  4. 网络层地址通常是由管理员从逻辑上分配的,因此也称为逻辑地址。一般来说是唯一的。

2.6.2 路由协议与可路由协议

路由协议与可路由协议

可路由协议(Routed Protocol)

  1. 定义数据包内各个字段的格式和用途的网络层封装协议。
  2. 该网络层协议允许将数据包从一个网络设备转发到另一个网络设备。
  3. 常见的可路由协议:TCP/IP协议族中的IP协议,Novell IPX协议族中的IPX协议

个人理解:可路由协议routed,是定义了格式和用途,同时说明怎么转发。IP和IPX是常见的协议。

路由协议(Routing Protocol)

  1. 运行于路由器上,在路由器之间传递信息,计算用于转发的路由并形成路由表(Routing Table),以便为可路由协议提供路由选择服务。
  2. 路由协议使路由信息能够在相邻路由器之间传递,确保所有路由器了解到达各个目的地的路径。
  3. 常见的路由协议:RIP(Routing Information Protocol,路由信息协议)、OSPF(Open Shortest Path First,开放式最短路径优先)、IS-IS(Intermediate System to Intermediate System)等。

个人理解:路由协议就是在路由器之间传递路由信息,形成路由表,给可路由协议选择的余地。
路由协议形成路由表,Routing Protocol
可路由协议规定格式和用途,怎么转发数据包,Routed Protocol

2.6.3面向连接和无连接服务

  1. 面向连接的服务(Connect-oriented Service)
  2. 无连接服务(Connectionless Service)

面向连接的服务:

  1. 在通信前首先要建立连接,通信完成后释放连接。
  2. 被叫用户拒绝连接时,连接宣告失败。
  3. 在建立连接阶段,有关的服务原语以及协议数据单元中,必须给出源主机和目的主机的地址,建立虚链路连接。
  4. 在数据传输阶段,可以使用一个连接标识符来表示上述这种连接关系。
  5. 通常面向连接的服务提供可靠的报文序列服务。接受一方确认收到的每一份报文,确认信息传递给发送方,增加了额外的开销和延迟。另外接收方利用序列号判断接收到的报文是否乱序,并对其按正确的顺序进行排列。
  6. 面向连接的服务比较适用于在一定时间内向同一个目的地发送很多报文的情况,对于短报文数据的发送而言,面向连接的服务开销过大。

无连接服务:

  1. 两个实体之间的通信不需要先建立一个连接。其下层的资源不需要事先预定保留,这些资源是在数据传输时动态分配的。
  2. 无连接服务类似邮政系统,提供尽力而为(Best-Effort)服务。
  3. 无连接服务不需要通信的两个实体同时处于激活状态,只需要正在工作的实体处于激活状态。
  4. 优点是灵活方便且比较迅速,但是不能防止报文的丢失、重复或失序。
  5. 无连接服务适合传送少量的零星的报文。

并不是所有的应用程序都需要连接,对于某些应用而言,百分之百的可靠性没有必要;对另一些应用而言,其上层应用已经实现了可靠应答机制,所以其本身也不必再确保可靠性。
OSI参考模型的网络层协议通常提供无连接的服务,不保证数据包的有序可靠传输,数据可靠传输功能通常在传输层实现。

2.6.4 网络层协议操作

网络层协议操作
如上图HostA应用程序发送数据到HostB

  1. HostA应用层将信息转化为能在网络中传输的数据。

  2. HostA表示层给数据加上表示层报头,协商数据格式,是否加密,转化成对端能够理解的数据格式。

  3. HostA会话层加上会话层报头。

  4. HostA传输层加上传输层报头称为段(Segment)。

  5. HostA网络层将段封装成包(Packet)。

  6. HostA数据链路层加上数据链路层头封装为帧(Frame)。

  7. HostA物理层转换为比特流。

  8. HostA将比特流发送给网络中距离自己最近的网关(Gateway)——路由器RTA。——物理层

  9. RTA接收到比特流后,辨认出数据帧并检查该帧。——数据链路层

  10. RTA,去掉链路层头得到网络层包,检查包头以决定目的地址所在网段,然后通过查找路由转发信息获取相应输出接口及下一跳的路由器RTB——网络层

  11. RTA输出接口链路层为该包加上数据链路层帧头,封装成数据链路层帧。

  12. RTA物理层转化为比特流,发送给RTB。

  13. 依次最终发送到HostB。

  14. HostB进行逐层解封装,最终到达相应的应用程序。

2.7传输层

  1. 传输层(Transport Layer)的功能是为会话层提供无差错的传送链路,保证两台设备间传递信息的正确无误。
  2. 传输层传送的数据单位是段(Segment)。
  3. 传输层从会话层接收数据,并传递给网络层,如果会话层的数据过大,传输层将其切割成较小的数据单元——段,进行传送。
  4. 传输层负责创建端到端的通信连接。通过这一层,通信双方主机上的应用程序之间通过对方的地址信息进行直接对话,而不用考虑中间网络上有多少个中间节点(这是网络层和其下层需要考虑的)。
  5. 传输层既可以为每个会话层请求建立一个单独的连接,也可以为多个会话层请求建立一个单独的连接,这称为多路复用(Multiplexing)。但不论如何,这种传输层服务对会话层都是透明的。
  6. 差错校验和重传。接收方的传输层识别除包的顺序,重新排序,验证所有的包都已被收到,如果出现错误和丢失,接收方必须请求对方重新传送丢失的包。
  7. 为了避免发送速度超出网络或接收方的处理能力,传输层还负责执行流量控制(Flow Control),在资源不足时降低流量,在资源充足时提高流量。

2.8 会话层、表示层和应用层

会话层:

  1. 会话层(Session Layer)利用传出层提供的端到端服务,向表示层或会话用户提供会话服务。
  2. 会话层建立会话关系,保持会话过程的畅通。
  3. 会话层也处理差错恢复,如断点续传。
  4. 如果会话断开 会话层能重新建立通信。

表示层(Presentation Layer)

  1. 表示层负责将应用层信息“表示”成一种格式,让对端设备能够正确识别。
  2. 表示层主要关心语义和语法。如JPEG、BMP格式。
  3. 表示层还负责数据的加密(Encryption)和压缩(Compression)。

应用层(Application Layer)

  1. 是OSI的最高层,它直接与用户和应用程序打交道。
  2. 负责对软件提供接口以使程序能使用网络服务,如文件传输、文件管理、电子邮件等。
3. TCP/IP模型
  1. OSI参考模型为清晰地理解互联网络、开发网络产品和网络设计带来了极大的方便。
  2. 但是OSI过于复杂,难以完全实现。
  3. OSI各层功能具有一定的重复性,效率较低。
  4. 目前TCP/IP开放系统因其实现简单,目前已经成为事实上的互联网基础协议族。

3.1 TCP/IP模型的层次结构

TCP/IP模型的层次结构
与OSI参考模型一样,TCP/IP(Transfer Control Protocol/Internet Protocol,传输控制协议/网际协议)模型也采用层次化结构,每一层负责不同的通信功能。
TCP/IP模型分为4层——应用层、传输层、网络层、网络接口层。

3.2 网络接口层

  1. TCP/IP的网络接口层大体对应于OSI模型的数据链路层和物理层。

局域网常用的网络接口层协议包括:

  1. 以太网
  2. FDDI(Fiber Distributed Data Interface,光纤分布式数据接口)
  3. 令牌环(Token Ring)

串行连接:

  1. SLIP(Serial Line IP,串行线路IP)
  2. HDLC
  3. PPP

分组交换技术:

  1. X.25
  2. 帧中继(Frame Relay)
  3. ATM(Asynchronous Transfer Mode,异步传输模式)

3.3 网络层

  1. 网络层是TCP/IP模型的关键部分。
  2. 主要功能是使主机能够将信息发往任何网络并传送到正确的目标。
  3. 网络层定义了包格式及其协议——IP(Internet Protocol,互联网协议)
  4. 网络层使用IP地址(IP Address)标识网络节点。
  5. 使用路由协议(Routing Protocol)生成路由信息,并且根据这些路由信息实现包的转发。
  6. 使用ICMP、IGMP协议协助管理网络。
  7. ICMP(Internet Control Message Protocol,互联网控制消息协议)通常也被当作一个网络层协议,通过预定义的消息在互联网上传递IP协议的相关信息,从而对IP网络提供管理控制功能。(一般把ICMP和IGMP算作是传输层的协议)
  8. ICMP的一个典型应用就是探测IP网络的可达性。

3.4 传输层

传输层位于应用层和网络层之间,主要负责为两台主机上的应用程序提供端到端的连接,使源、目的端主机上的对等实体可以进行会话。
传输层协议主要包括:

  1. TCP(Transmission Control Protocol,传输控制协议)
  2. UDP(User Datagram Protocol,用户数据报协议)

TCP/IP传输层协议的主要作用:

  1. 提供面向连接或无连接的服务
  2. 维护连接状态
  3. 对应用层数据进行分段和封装
  4. 实现多路复用(Multiplexing)
  5. 可靠地传输数据(TCP通过序列号和校验等机制,UDP智能由应用层保证可靠性)
  6. 执行流量控制(Flow Control)

3.5 应用层

  1. TCP/IP模型没有单独的会话层和表示层,其功能融合在应用层中。
  2. 应用层直接与用户和应用程序打交道,负责对软件提供接口以使程序能使用网络服务。
  3. 常见的应用层协议包括:
  4. Telnet(TELecommunications)
  5. FTP(File Transfer Protocol,文件传输协议)
  6. TFTP(Trivial File Transfer Protocol,简单文件传输协议)
  7. SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)
  8. SNMP(Simple Network Management Protocol,简单网络管理协议)
  9. HTTP(HyperText Transfer Protocol,超文本传输协议)
4. 本章总结
  1. 理解并掌握OSI参考模型和TCP/IP模型
  2. OSI模型为七层结构;TCP/IP为四层结构
5. 习题

第2章习题


推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
hushuoni_133
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有