文章目录

  • 一、 前言
  • 二、应用和数据
    • 故事的起源-应用
    • 应用的实现-数据
  • 三、网络参考模型与标准协议
    • OSI参考模型
    • TCP/IP参考模型
    • TCP/IP常见协议
    • 常见协议标准化组织
    • 应用层
      • 常见应用层协议-FTP
      • 常见应用层协议-TeInet
      • 常见应用层协议-HTTP
    • 传输层
      • TCP和UDP--报文格式
      • TCP和UDP-端口号
      • TCP的建立-三次握手
      • TCP的序列号与确认序列号
      • TCP的窗口滑动机制
      • TCP的关闭-四次挥手
      • TCP和UDP总结
    • 网络层
      • 网络层协议工作过程
    • 数据链路层
      • 以太网与MAC地址
      • 地址解析协议(ARP)
        • ARP的工作原理(1)
        • ARP的工作原理(2)
        • ARP的工作原理(3)
        • ARP的工作原理(4)
        • ARP的工作原理(5)
    • 物理层
      • 常见传输介质
  • 四、数据通信过程
    • 发送方数据封装
    • 中间网络数据传输
    • 接收方数据解封装
  • 五、总结

一、 前言

数字化时代,各种信息以数据的形式充斥着我们的生活。什么是数据? 数据又是如何传递的?
本篇我们将通过网络参考模型去简单了解数据的"一生"。


二、应用和数据

故事的起源-应用

应用的存在,是为了满足人们的各种需求,比如访问网页,在线游戏,在线视频等。
伴随着应用会有信息的产生。比如文本,图片,视频等都是信息的不同呈现方式。

应用的实现-数据

数据的产生:在计算机领域,数据是各种信息的载体。
数据传输:大部分应用程序所产生的数据需要在不同的设备之间传递。

备注:计算机只能识别0和1的组成的电子数据(digital data)。 它不具备读取各种信息的能力,所以信息需要通过一 定的规则翻译成数据。
而对人来说,我们不具备读取电子数据的能力,所以在读取信息的时候,需要将数据转成人能理解的信息。
对于一名网络工程师来说,需要更关注数据的端到端传递的过程。

三、网络参考模型与标准协议

OSI参考模型

OSI模型,由国际化标准组织ISO收录在ISO 7489标准中并于1984年发布。
OSI参考模型又被称为七层模型由下至上依次为:
物理层: 在设备之间传输比特流,提供机械和电气的规约,规定了电平、速度和电缆针脚等物理特性。
数据链路层: 将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。
网络层: 定义逻辑地址,供路由器确定路径,负责将数据从源网络传输到目的网络。
传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
会话层: 负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
表示层: 提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另个系统的应用层识别。
应用层: OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

TCP/IP参考模型

因为OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型。
TCP/IP模型在结构上与OSI模型类似,采用分层架构,同时层与层之间联系紧密。
TCP/IP标准参考模型将OSI中的数据链路层和物理层合并为网络接入层,这种划分方式其实是有悖于现实协议制定情况的,故融合了TCP/IP标准模型OSI模型的TCP/IP对等模型被提出,后面的讲解也都将基于这种模型。

TCP/IP常见协议

TCP/IP协议栈定义了一系列的标准协议。
应用层
HTTP (Hypertext Transfer Protocol,超文本传输协议) :用来访问在网页服务器上的各种页面。
FTP (File Transfer Protocol,文件传输协议) : 为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。
DNS (Domain Name Service,域名称解析服务) :用于实现从主机域名到IP地址之间的转换。

传输层
TCP (Transmission Control Protocol, 传输控制协议) : 为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。
UDP (User Datagram Protocol,用户数据报协议) : 提供了无连接通信,且不对传送数据包进行可靠性的保证。

网络层
IP(Internet Protocol, 互联网协议) : 将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。
IGMP (Internet Group Management Protocol,因特网组管理协议) : 负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
ICMP (Internet Control Message Protocol,网际报文控制协议) : 基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。

数据链路层
PPP (Point-to- Point Protocol,点对点协议) :一种点对点模式的数据链路层协议,多用于广域网。
Ethernet(以太网协议): 一种多路访问广播型数据链路层协议,是当前应用最为广泛的局域网技术。
PPPoE (Point-to-Point Protocol over Ethernet,以太网承载PPP协议):PPPoE提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能。常见的应用有家庭宽带拨号上网。

常见协议标准化组织

IETF(Internet Engineering Task Force)
负责开发和推广互联网协议(特别是构成TCP/IP协议族的协议)的志愿组织,通过RFC发布新的或者取代老的协议标准。

IEEE(Institute of Electrical and Electronics Engineers)
IEEE制定了全世界电子、电气和计算机科学领域30%左右的标准,比较知名的有IEEE802.3(Ethernet)、IEEE802.11(WiFi)等。

ISO(International Organization for Standardization)
在制定计算机网络标准方面,ISo是起着重大作用的国际组织,如OSI模型,定义于ISO/IEC7498-1。

应用层

应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。
应用层的PDU被称为Data (数据)

TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU (Packet Data Unit,协议数据单元)彼此交换信息,确保网络设备之间能够通信。
不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称

常见应用层协议-FTP

FTP (File Transfer Protocol) 是一个用于从一台主机传送文件到另一台主机的协议,用于文件的
"下载”和"上传”,它采用C/S (Client/Server) 结构。

常见应用层协议-TeInet

Telnet是数据网络中提供远程登录服务的标准协议。Telnet为用户提供了在本地计算机上完成远程设备工作的能力。

常见应用层协议-HTTP

HTTP (HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

传输层

传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端"(Port to Port)的连接。
传输层的PDU被称为Segment (段)。

TCP和UDP–报文格式

TCP报文头部:
Source Port:源端口,标识哪个应用程序发送。长度为16比特。
Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
Sequence Number:序号字段。TCP链接中传输的数据流每个字节都编上一个序号。序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有Ack标识为1, 此字段有效。长度为32比特。
Header Length:头部长度,指出TCP报文头部长度,以32比特(4字节)为计算单位。若无选项内容,则该字段为5,即头部为20字节。
Reserved:保留,必须填0。长度为6比特。
Control bits:控制位,包含FIN、ACK、SYN等标志位,代表不同状态下的TCP数据段。
Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数(以字节为单位)。窗口最大为65535字节。长度为16比特。
Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验证。在计算检验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12字节的伪头部。长度为16比特。
Urgent:紧急指针,只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。长度为16比特。
Options:选项字段(可选),长度为0-40字节。

UDP报文头部:
Source Port:源端口,标识哪个应用程序发送。长度为16比特。
Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
Length:该字段指定UDP报头和数据总共占用的长度。可能的最小长度是8字节,因为UDP报头已经占用了8字节。由于这个字段的存在,UDP报文总长不可能超过65535字节(包括8字节的报头和65527字节的数据)
Checksum:覆盖UDP头部和UDP数据的校验和,长度为16比特。

TCP和UDP-端口号

TCP的建立-三次握手

任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接。

TCP连接建立的详细过程如下:

  1. 由TCP连接发起方(图中PC1),发送第一 个SYN位置 1的TCP报文。初始序列号a为一个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0 ;
  2. 接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确认序列号为a+1;
  3. PC1接收到PC2发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时序列号为a + 1,确认序列号为b+1.PC2收到之后,TCP双向连接建立。

TCP的序列号与确认序列号

TCP使用序列号和确认序列号字段实现数据的可靠和有序传输。

TCP的窗口滑动机制

TCP通过滑动窗口机制来控制数据的传输速率。


1.在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字节数(也就是缓冲区大小)。
2.连接建立成功之后,发送方会根据接受方宣告的Window大小发送相应字节数的数据。
3.接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上层取走,则相应的缓冲空间将被释放。
4.接收方根据自身的缓存空间大小通告当前的可以接受的数据大小( Window )。
5. 发送方根据接收方当前的Window大小发送相应数量的数据。

TCP的关闭-四次挥手

当数据传输完成, TCP需要通过”四次挥手”机制断开TCP连接,释放系统资源。


TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。如图所示:
1.由PC1发出一个FIN字段置"1 "的不带数据的TCP段;
2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
3.若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。
3. PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。

TCP和UDP总结

TCP:头部大小20个字节,通过三次握手、序列号和确认序列号.四次挥手等机制确保可靠性
优点如下:
1.传输数据前,先进行三次握手,确保可靠性
2.传输数据时,根据确认序列号确保数据能准确接收(重传机制保证数据可靠性)
(当确认序列号与发送的数据不相等时,证明数据可能发生丢包,下次发送数据时,则从确认序列号数值开始发送)
3.通过滑动窗口和慢启动机制,控制接收方和发生方的数据流量大小(减少带宽的浪费和数据包重传问题)
缺点如下:
每次收到数据都需要确认,对于时延比较敏感的流量影响较大(如:语音、视频等)
常用于对可靠性要求非常高的网络应用(例如: Http. Ftp. 邮件服务等)

UDP:头部大小8字节,没有可靠性的机制,没有重传机制,数据包发送和接收顺序由应用层提供(或者应用软件提供)
优点:传输速率更快,相同大小的文件传递,相比于TCP每个数据包都能节省12个字节,无需进行重传和确认。
缺点:面向无连接的传输协议,无法保障可靠性
常用于对时延敏感的业务,并且对可靠性要求不高(例如:语音电话、视频流量等)

网络层

传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间的传递。
网络层的PDU被称为Packet (包)。
IPv4简称IP,是目前应用最广泛的网络层协议

网络层协议工作过程


当采用IP作为网络层协议时,通信的双方都会被分配到一个"独一无二"的IP地址来标识自己. IP地址可被写成32位的二进制整数值形式,但为了方便人们阅读和分析,它通常被写成点分十进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如192.168.1.1。
IP数据包的封装与转发:
网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。
中间经过的网络设备(如路由器),会维护一张指导IP报文转发的"地图"——路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。
IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。
除了IP协议外,网络层中还有如OSPF、IS-IS、 BGP等各种路由协议帮助路由器建立路由表,ICMP帮忙进行网络的控制和状态诊断。

数据链路层

数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。
数据链路层的PDU被称为Frame (帧)
以太网(Ethernet) 是最常见的数据链路层协议。

以太网与MAC地址

MAC地址由48比特(6个字节) 长,12位的16进制数字组成。例如: 48-A4-72-1C-8F-4F

地址解析协议(ARP)

ARP (Address Resolution Protocol) 地址解析协议:
根据已知的IP地址解析获得其对应的MAC地址。

ARP (Address Resolution Protocol, 地址解析协议)是根据IP地址获取数据链路层地址的一个TCP/IP协议。
ARP是IPv4中必不可少的一种协议,它的主要功能是
将IP地址解析为MAC地址;
维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
实现网段内重复IP地址的检测。

ARP的工作原理(1)


网络设备一般都有一 个ARP缓存(ARP Cache)。 ARP缓存用来存放IP地址和MAC地址的关联信息。
在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的ARP表项,则直接采用该表项中的MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发送ARP Request报文来获得它。
学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内(缺省: 180s),设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了这段有效期,ARP表项会被自动删除。
如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址。然后将数据发送给网关。最后网关再把数据转发给目的设备。

ARP的工作原理(2)


1.主机1的ARP缓存表中不存在主机2的MAC地址,所以主机1会发送ARP Request来获取目的MAC地址。
2.ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机1的MAC地址。此时,由于主机1不知道主机2的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。
3.ARP Request报文中包含发送端MAC地址、发送端IP地址、目的端MAC地址、 目的端IP地址, 其中目的端MAC地址的值为0。ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP Request报文。

ARP的工作原理(3)


所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP请求报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。

ARP的工作原理(4)


1.主机2会向主机1回应ARP Reply报文。
2.ARP Reply报文中的发送端IP地址是主机2自己的IP地址,目的端IP地址是主机1的IP地址,目的端MAC地址是主机1的MAC地址,发送端MAC地址是自己的MAC地址,同时操作类型被设置为Reply。
3.ARP Reply报文通过单播传送。

ARP的工作原理(5)


主机1收到ARP Replyl以后,会检查ARP报文中目的端IP地址字段与自身的IP地址是否匹配。如果匹配,ARP报文中的发送端MAC地址和发送端IP地址会被记录到主机1的ARP缓存表中。

物理层

数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。
物理层的PDU被称为比特流(Bitstream)

常见传输介质


双绞线当今以太网最常见的传输介质按照抗电磁干扰能力还可以分为:
STP-屏蔽双绞线
UTP-非屏蔽双绞线

光纤传输按照功能部件可分为:
光纤:光传输介质,简单的说,就是一根玻璃纤维, 用于约束光传输的通道。
光模块: 将电信号与光信号互转的器件,产生光信号。

串口电缆在WAN (Wide Area Network,广域网)中大规模使用,根据WAN线路类型不同,串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM接口、POS接口、CE1/PRI接口等。

无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据传输。

四、数据通信过程

发送方数据封装


假设你正在通过网页浏览器访问华为官网,当你输入完网址,敲下回车后,计算机内部会发生下列事情:
1.IE浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装(图中DATA还应包括HTTP头部,此处省略)。
2. HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块。
3. TCP模块给应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口等)。此时的PDU被称作Segment(段)。
4.在IPv4网络中,TCP模块会将封装好的Segment传递给网络层的IPv4模块(若在IPv6环境,会交给IPv6模块进行处理)。
5.IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时的PDU被称为Packet(包)。
6.由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将Packet交由数据链路层的Ethernet模块(例如以太网卡)处理。
7. Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应Ethernet头部信息和FCS帧尾,此时的PDU被称为Frame(帧)。
8.在Ethernet模块封装完毕之后,会将数据传递到物理层。
9.根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波(无线)信号等。
10.转换完成的信号在网络中开始传递。

中间网络数据传输

封装好的完整数据,将会在网络中被传递。

一般情况下:
网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的"交换操作。
网络中的三层设备 (如路由器)只会解封装到三层头部, 并且根据三层头部的信息进行相应的"路由 "操作。
注:"交换"和"路由”的详细细节和原则,将会在后面详细介绍。

接收方数据解封装


经过中间网络传递之后,数据最终到达目的服务器。根据不同的协议头部的信息,数据将被一层层的解封装并做相应的处理和传递,最终交由WEB服务器上的应用程序进行处理。

五、总结

不论是0SI参考模型还是TCP/IP参考模型,都采用了分层的设计理念。
!!!各个层次之间分工、界限明确,有助于各个部件的开发、设计和故障排除
!!!通过定义在模型的每一层实现什么功能,鼓励产业的标准化
!!!通过提供接口的方式,使得各种类型的网络硬件和软件能够相互通信,提高兼容性
数据的产生与传递,需要各模块之间相互协作,同时每个模块又需要"各司其职"。

华为HCIA-Datacom学习笔记------网络参考模型------第二篇相关推荐

  1. 华为HCIA/HCIP学习笔记Xmind

    近期在学习华为的数通工程师认证,HCIP.因为学习的知识点比较繁杂,经常学着学着就忘记前面的东西,脑子不太好,所幸我是费曼学习法的忠实教徒,同时认为对脑子不太好的人,不要去一个一个点去深究,知道重点, ...

  2. 学习笔记 第四周 第二篇

    仿真作业 对于老师所给的交流电机模型,其正常工作时,旋转磁场的转速 n0=60f/p=1500r/min 一般情况下,三相异步电动机的额定转速nN=(0.94~0.985) n0,运行老师所给的电机模 ...

  3. 软考网络管理员-华为设备命令学习笔记

    华为设备命令学习笔记 文章目录 一. 网络设备基础知识 1.1 网络设备操作系统 1.2 常见设备配置方式 1.3 基础知识 二. 基础命令与二层设备配置 2.1 配置模式 2.2 基本命令 2.3 ...

  4. 菜鸟学习笔记:Java提升篇10(网络2——UDP编程、TCPSocket通信、聊天室案例)

    菜鸟学习笔记:Java提升篇10(网络2--UDP编程.TCPSocket通信) UDP编程 TCP编程(Socket通信) 单个客户端的连接 多个客户端的连接(聊天室案例) UDP编程 在上一篇中讲 ...

  5. 菜鸟学习笔记:Java提升篇9(网络1——网络基础、Java网络编程)

    菜鸟学习笔记:Java提升篇9(网络1--网络基础.Java网络编程) 网络基础 什么是计算机网络 OS七层模型 Java网络编程 InetAddress InetSocketAddress URL类 ...

  6. HALCON 21.11:深度学习笔记---网络和训练过程(4)

    HALCON 21.11:深度学习笔记---网络和训练过程(4) HALCON 21.11.0.0中,实现了深度学习方法.关于网络和训练过程如下: 在深度学习中,任务是通过网络发送输入图像来执行的.整 ...

  7. VBA 学习笔记 - 网络请求

    VBA 学习笔记 - 网络请求 Microsoft.XMLHTTP MSXML2.serverXMLHTTP.6.0 WinHttp.WinHttpRequest.5.1 参考资料 Microsoft ...

  8. 菜鸟学习笔记:Java提升篇11(Java动态性1——注解与反射)

    Java提升篇11(Java其它高级特性--注解与反射) 注解(Annotation) JDK内置注解 自定义注解 元注解(meta-annotation) 反射(reflection) 动态语言 反 ...

  9. 菜鸟学习笔记:Java提升篇12(Java动态性2——动态编译、javassist字节码操作)

    菜鸟学习笔记:Java提升篇12(Java动态性2--动态编译.javassist字节码操作) Java的动态编译 通过脚本引擎执行代码 Java字节码操作 JAVAssist的简单使用 常用API ...

最新文章

  1. 把本地mysql备份到服务器innodb_使用mysql备份工具innobackupex将本地数据 直接恢复 到远端服务器数据目录操作实例...
  2. 九度OJ 1434 今年暑假不AC
  3. node.js api接口_如何在Node.js API客户端中正常处理故障
  4. pku2182: Lost Cows
  5. python程序执行时间毫秒_如何使用python解析包含毫秒的时间字符串?
  6. 移动端line-height与height相同文字不居中
  7. matlab求机制,[转载]文化算法 matlab
  8. Mysql数据库内连接INNER JOIN的使用
  9. hmcl手机版下载_【HMCL启动器下载】HMCL我的世界启动器电脑版 v3.2.144 最新版-开心电玩...
  10. c#数据格式化之DataFormatString
  11. android设置动画循环播放,Android动画之AnimatorSet如何循环执行
  12. 买腾讯云服务器怎么选择
  13. 基于SSM的概念可视化程序设计学习系统毕业设计源码021009
  14. Jquery监听input回车事件
  15. Java从入门到实战总结-4.2、数据库高级
  16. vue开发APP使用微信分享和QQ分享功能
  17. INDEMIND带你玩转OpenCV4.0(一):DIS光流算法解析
  18. lnmp下nginx出现5xx问题解决汇总
  19. 如何读懂python代码_教你如何阅读 Python 开源项目代码
  20. LeetCode题解-1710.卡车上的最大单元数

热门文章

  1. 【汇正财经】白马股的特征
  2. 实现计算两个相同长度的有序数组的中位数
  3. htc820+android+l,HTC Desire 820手机更新 安卓6.0+Sense 7.0
  4. JS九九乘法表-千奇百怪的错,五彩斑斓的改
  5. 汤姆大叔JavaCript系列10阅读笔记1
  6. Fabric部署基础篇 - 单机网络
  7. MVC北京络捷斯特第三方物流系统技术解析(九)到货通知
  8. docker中mysql远程访问慢
  9. php每30分钟计算一次收益,Excel自动获取基金估值、计算当日收益和累计收益【2021/01/30更新】...
  10. visual studio 2022 设置C C++ 指针的对齐方式