数据库:

  • 数据库系统特点:数据结构化、数据独立性高、数据共享性高、冗余性低、易扩展,由DBMS统一管理控制。
  • 事务是DBMS的基本单位,是用户定义的一组逻辑一致的程序序列。

JAVA

  • Java类的构造方法:构造方法是一种特殊的方法,它必须具备和所在类相同的名字,没有返回值类型,构造方法是在创建一个对象使用new操作符时调用的,作用是初始化对象。

  • 连通图:连通图中的任意两顶点互达。
  • 连通分量:无向图的极大连通子图。

  • 修饰符访问规则

56896909647

加密

  • 公钥密码体制:加密和解密采用不同的密钥。对于传统对称密码而言,密文的安全性完全依赖于密钥的保密性,一旦密钥泄漏,将毫无保密性可言。公钥密码体制中,密钥是公开的,只有私钥是需要保密的。知道公钥和密码算法要推测私钥在计算上是不可行的,这样只要私钥是安全的那么加密就是安全的。

网络

1、MAC地址长度为48比特。

2、OSI分层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

3、TCP/IP分层:网络接口层、网际层、运输层、应用层。

4、五层协议:物理层、数据链路层、网络层、运输层、应用层。

OSI七层协议大白话解读

  • 物理层

    实现计算机之间通信底层物理方面的连通,中间的物理链接可以是光缆、电缆、双绞线、无线电波。

    传输的是电信号,即0100…这些二进制串。

    如果要让这些01串有意义,那么必须把电信号做分组,例如8位一组,分组的实现就是数据链路层做的事。

  • 数据链路层

    以太网协议EtherNet规定

    一组电信号称为一个数据包,或者叫做一个帧。

    每一个数据帧分成:报头(head)和数据(data)两部分。

    报头包含(固定18字节,一个字节8位):

    • 源地址,6个字节
    • 目的地址,6个字节
    • 数据类型,6个字节

    数据包含(最短46字节,最长1500字节):

    • 数据包的具体内容

    那么 报头长度+数据长度=最短64字节,最长1518字节,超过最大限制就分片发送。

    源地址和目的地址都是指MAC地址。

    MAC地址即网卡的地址(EtherNet规定接入Intenet的设备必须具备网卡)。

    每块网卡上的一个唯一的MAC地址,长度为48位2进制,通常由12位16进制数表示,前六位代表厂商编号,后六位是流水线号。

    有了MAC地址计算机就可以通信了,在一个局域网内,计算机之间通过广播的方式进行通信,即将源地址、目的地址及数据构成一个数据帧,通过广播的方式发送出去,那么所有其它机器都会接收到这个包,都会拆开包查看目的地址是否是自己,只要不是自己就丢弃掉。那么接收到的机器以同样的方式发送数据帧,实现计算机之间的通信。

    但是全世界并不是一个局域网,也不可能是一个局域网,所以就有了网络层。

  • 网络层

    MAC地址是用来标识计算机在某个局域网的具体位置,IP地址则是标识计算机在哪个局域网。比如要访问百度,肯定要知道百度的ip地址,计算机在发包之前会判断你在哪个局域网,对方在哪个局域网,如果处于同一局域网,基于mac地址的广播发包就可以了。如果不在同一局域网下,那么就会把你个包交给网关来转发。MAC地址和IP地址唯一标识了你在互联网中的位置。

    数据链路层会把网络层的数据包封装到数据链路层的数据位置,再加上自己的包头,再发给物理层,物理层发给网关,网关再发送给对方局域网的网关,对方网关在那个局域网做广播。

    在数据链路层看,数据封装了两层:

    56911856171

    那么在广播之前如何知道对方的MAC地址,这就得靠ARP协议。

    在获取对方的MAC地址之前,首先需要发送一个ARP包,ARP也是靠广播的方式发,如下:

    56911887269

    在局域网中,获取对方MAC地址:

    首先需要知道对方的IP地址,自己的IP以及MAC地址都能得到,目标MAC为12个F,称之为广播地址。意思就是想要获取172.16.10.11的机器的MAC地址,计算机的MAC地址永远不可能是12个F,假设在一个局域网内广播,所有机器都会开始解包,但是只有172.16.10.11这个机器才会返回它的MAC地址,发回来的源MAC改成它自己的MAC地址,同时把自己的MAC地址放入数据部分。

    跨网络获取对方的MAC地址:

    通过IP地址区分,计算机判断目标地址不再同一个局域网下,目标IP就变成了网关IP了,网关IP可以在计算机上获取

    56912049331

    56912050205

    这样网关就会把它的MAC地址给你,然后正常发包:

    56912053520

    网关帮你去找目标用户,但是用户根本就感觉不到。

  • 传输层

    网络层的IP用于区分子网,MAC帮助找到主机,然后大家使用的都是应用程序,那么你的电脑可能同时开启多个应用程序,比如QQ、微信等。

    那么我们通过IP和MAC找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口。端口即为应用程序与网卡关联的编号。

    传输层功能就是建立端口到端口的通信。

    端口范围:0~65535,0~1023为系统占用端口。

    • TCP协议

      可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    • UDP协议

      不可靠传输,“报头”一共只有8个字节,总长度不超过65535字节,正好放入一个IP数据包。

  • 应用层

    用户使用的都是应用程序,均工作与应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式。

    功能:规定应用程序的数据格式。

    比如:TCP协议可以为各种各样的程序传递数据,比如Email、www、FTP等,那么必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了应用层。

5、计算机内的传输是并行传输,而通信线路上的传输是串行传输。

6、在操作系统中,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。

  • 并发:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行),也可以说是多个线程的轮流执行(单核CPU)。
  • 并行:多个线程同时执行(多核CPU),微观上是同时的。
  • 串行:就是一个一个执行,处理完一个才能处理下一个。

7、中继器:是工作在物理层的连接设备,适用于完全相同两类网络的互连,主要功能是通过对数据信号的重新发送或转发,来扩大网络传输的距离。

8、各层设备

  • 物理层:转发器、集线器。
  • 数据链路层:适配器、网桥。
  • 网络层:路由器。

第三层以上的功能都是由软件实现,没有硬件设备与之对应。

操作系统

1、设计现代操作系统的主要目标是什么?

方便性、有效性、可扩充性、开发性。

2、树形目录解决了文件的重名问题,可以在不同目录下建立相同文件名的文件。

3、在虚拟内存管理中,地址变换机构将逻辑地址变为物理地址,形成该逻辑地址的阶段是链接。

以C语言为例:C语言经过预处理、编译、汇编、链接、生成可执行文件。其中链接的前一步产生了可重定位的二进制目标文件。

C语言采用源文件独立编译的方式,如程序main.c、file1.c、file2.c、file1.h、file2.h,在链接前一步生成了main.0、file1.o、file2.o,链接器将这三个文件和其它库文件链接成一个可执行文件。链接阶段完成了重定向,形成了逻辑的地址空间。

4、Linux的虚拟内存空间

为了防止不同进程在同一时刻在物理内存中运行而对物理内存的争夺,采用了虚拟内存。

虚拟内存技术使得不同进程在运行过程中,它看到的是自己独自占用了当前系统的内存。所有进程共享同一物理内存,每个进程只是把自己目前需要的虚拟内存空间映射并存储到物理地址上。事实上,在每个进程创建的时候,内核只是为进程创建了虚拟内存的布局,具体就是初始化进程控制表中内存相关的链表,实际上并不立即就把虚拟内存对应位置的数据和代码拷贝到物理内存中,只是建立好虚拟内存和物理内存之间的映射,等到运行对应程序时,才会通过缺页异常,来拷贝数据。还有进程运行过程中要动态分配内存,如malloc、new,也只是分配了虚拟内存,即为这块虚拟内存对应的页表项做相应设置,当进程真正访问到此数据时,才发生缺页异常。

最后更新: 2019年09月24日 21:22

原始链接: http://tanruidd.github.io/2019/09/20/知识点总结/