Fork me on GitHub
To the moon

A Coder,a Programmer,a Developer


  • Home

  • Tags

  • Categories

  • Archives

  • Search

计算机网络第二章练习

Posted on 2018-08-23 | Edited on 2023-05-09 | In examination

计算机网络第二章——物理层

1. 什么是奈氏准则,什么是香农定理?

  • 推荐阅读:奈氏准则和香农公式
  • 奈氏准则:
    • 在理想低通(只允许低频通过)的信道中,极限码元传输率为2W Baud。W是理想低通信道的带宽,单位Hz;Baud是单位波特,一个Baud表示一秒一个码元(一秒变化一次电平,变化次数而非周期数)。整体理解就是:每赫带宽的理想低通信道的最高码元传输速率是每秒2个码元。
    • 比特率bps(bit per second),每秒传输数据的位数。
    • 比特率=log(2)V×波特率
    • 极限数据传输率为2Wlog(2)V。一秒一个码元等价于一秒log(2)V个单位的数据,其中V是指每个码元离散电平的数量。
  • 信道容量:
    • 数据在信道中传输中,最高的比特率就叫做这个信道的容量,单位是bps
    • 口语中也会把信道容量叫做“带宽”的,比如“带宽10M的网络”,“网络带宽是10M”等等。所以这两个概念也很容易混淆:我们平常所说的“带宽”不是带宽,而是信道容量。
  • 香农定理:
    • 信道的极限数据传输速率=Wlog(2)[1+S/N],单位b/s。其中,W是信道的带宽,S为信道所传输信号的平均功率,N为信道内部的高斯噪声功率。S/N表示信噪比,即信号的平均功率和噪声的平均功率之比,常用分贝dB来表示,信噪比=10log(10)(S/N),当S/N为10时,信噪比为10dB,当S/N为1000时,信噪比为30dB。
    • 香农公式表明,信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高。
    • 香农公式是用来估测,一个信道中能传输的数据的速度的上限
    • 香农定理可以解释现代各种无线制式由于带宽不同,所支持的单载波最大吞吐量的不同。
Read more »

计算机网络练习题之一

Posted on 2018-08-22 | Edited on 2023-05-09 | In examination

计算机网络第一章——概述

1. HTTPS采用()实现安全网站访问?:SSL协议

  • 另一种说法是SSL协议+TSL协议
  • SSL(Secure Sockets Layer安全套接层),
  • Https的作用:
    1. 内容加密。建立信息安全通道来实现;
    2. 身份认证。确认网站的真实性;
    3. 数据完整性。防止内容被第三方冒充或篡改
  • Https的劣势:
    1. 需要进行非对称的加解密,且需要三次握手。首次连接比较慢

2. 假设一个主机的IP地址为192.168.5.121,而子网掩码为255.255.255.248,那么该主机的网络号部分(包括子网号部分)为:192.168.5.120

1
2
3
4
5
6
IP:192.168.5.121
掩码:255.255.255.248
前者地址转化为二进制:11000000.10101000.00000101.01111001
子网掩码转化为二进制:11111111.11111111.11111111.11111000
IP地址的前24位不变,后8位将子网掩码中的后8位复制过去,即以每个"."符号为单位,如果第二个"."和第三个"."中的数字不全为1,则子网掩码的后16位复制到IP的后16位,得到新"IP"地址则为网络号。
按照上面的运算规则,运算后结果为11000000.10101000.00000101.11111000,转化为十进制则为192.168.5.120。
Read more »

数据库系统概论练习题之一

Posted on 2018-08-21 | Edited on 2023-05-09 | In examination

数据库第一套卷

一、选择题

1. 关系代数的四个组合操作是:选择、投影、连接、除法

理解:

  • 选择是按照某条件,筛选出部分行,这些行具有所有列的属性;
  • 投影是选取部分属性,形成新的表格,并去除重复记录;
  • 连接是按照公共属性,将多表的属性列汇总在一张表里;
  • 除法是A÷B时,A{X,Y},B{Y,Z},将A的X上各值看作一个整体{a1,a2,a3…}进行分组,如果某组,例如a1对应的A.Y能够包含所有的B.Y组合的情况,那么a1就是结果

2. SQL的DML操作有:排序插入修改等,但索引属于DDL操作

  • DML即数据操作语言
  • DDL包括模式定义、表定义、视图和索引的定义

3. 关系数据模型的三个组成部分:数据结构、数据操作、完整性约束

  • 数据结构。所描述对象类型的集合,是对系统静态特性的描述。通常可分为层次结构、网状结构和关系结构,并以此为模型命名(层次模型、网状模型、关系模型)
  • 数据操作。主要有查询和更新两大操作。是对系统动态特性的描述。
  • 完整性约束。是用来限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
Read more »

Java实现WEB-SSO单点登录

Posted on 2018-08-10 | Edited on 2023-05-09 | In java

SSO的基本原理与Java代码实现

推荐阅读:单点登录原理与简单实现

基本原理

  • Http无状态协议。浏览器使用http协议对服务器发出的每一次请求,服务器都会独立处理,不与之前或之后的请求产生关联,即无状态。所以为了保护服务器的某些资源,必须限制浏览器请求,鉴定请求的合法性。既然http无状态,就让服务器和浏览器共同维护一个状态,即会话机制。

  • 会话。浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器。浏览器存储该id,并在第二次第三次请求时带上该id,服务器取得请求中的会话id就知道是不是同一个用户了。

  • 会话机制。服务器在内存中保存session对象。浏览器在cookie中保存sessionId,在Tomcat中sessionId用的是JSESSIONID,流程如下:

  • 浏览器第一次输入帐密,服务器拿到帐密去数据库比对,比对正确说明是合法用户,将该会话标记为“已授权”或“已登录”的状态,该会话状态被服务器保存在会话对象中,当用户再次访问时,服务器在会话对象中查看登录状态,判断是否合法,合法后才允许访问。

  • 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器和服务器之间维护会话状态,但cookie受到域的限制(通常对应网站的域名)。浏览器在发送http请求时会自动携带与该域匹配的cookie,而不是所有cookie。。需要注意的是,曾经流行过的顶级域名的方式虽然可行,但面临着应用群域名不统一,技术不同,共享cookie无法跨语言平台登录,cookie本身不安全等诸多问题。

Read more »

InnoDB 读书笔记 2

Posted on 2018-07-31 | Edited on 2023-05-09 | In notes

缓冲池

副标题:姜承尧《MySQL技术内幕 InnoDB存储引擎》读书笔记 2

缓冲池的简介

  • InnoDB引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理

  • 缓冲池是一块内存区域,在数据库进行读取页的操作,首先将磁盘读到的页放在缓冲池中,称为将页“FIX”在缓冲池。下一次读到相同页时,首先判断该页是否在缓冲池中,若是则直接在缓冲池中读取该页,否则,读取磁盘上的页

  • 对于数据库中页的修改操作,首先修改在缓冲池中的页,然后以一定的频率刷新到磁盘上。但并不是每一次修改都会触发刷回数据的操作,而是按照一种称为checkpoint的机制进行

  • 缓冲池的大小直接影响数据库的整体性能,32位操作系统下,该值最多可以设置为3G,此外用户可以打开操作系统的PAE选项来获得32位OS下最大64G内存的支持

    1
    2
    3
    4
    5
    6
    //查看缓冲池的大小,以下134217728B表示128MB
    mysql> show variables like 'innodb_buffer_pool_size'\G;
    *************************** 1. row ***************************
    Variable_name: innodb_buffer_pool_size
    Value: 134217728
    1 row in set (0.00 sec)
Read more »

InnoDB 读书笔记 1

Posted on 2018-07-30 | Edited on 2023-05-09 | In notes

数据库内容纵览

副标题:姜承尧《MySQL技术内幕 InnoDB存储引擎》读书笔记 1

  • MySQL被设计为 一个单进程多线程架构的数据库,故MySQL数据库实例在系统上的表现就是一个进程

    1
    2
    3
    4
    5
    	[root@VM_0_2_centos bin]# mysql --help | grep my.cnf

    order of preference, my.cnf, $MYSQL_TCP_PORT,
    /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

    • 可以看出,MySQL数据库实例启动时,是按照/etc/my.cnf -> /etc/mysql/my.cnf ->/usr/etc/my.cnf-> ~/.my.cnf的顺序读取配置文件。
    • 配置文件有一个参数 datadir指定了数据库所在的路径,如datadir=/var/lib/mysql
  • 数据库是由一个个文件(二进制)组成的,要对这些文件执行SELECT、INSERT等操作,不能通过操作文件更改数据库的内容,需要通过数据库实例来完成

  • MySQL组成部分:

    • 连接池组件
    • 管理服务和工具组件
    • SQL接口组件
    • 查询分析器组件
    • 优化器组件
    • 缓冲组件
    • 插件式存储引擎(important)
    • 物理文件
  • InnoDB存储引擎支持事务,通过使用多版本并发控制(MVCC)来获得高并发性,并实现SQL标准的4种隔离级别。同时使用next-key locking的策略(也就是间隙锁)来避免幻读(phantom)现象的产生。此外,提供了插入缓存 、二次写、自适应哈希索引、预读等高性能和高可用的功能(其他引擎略过)

Read more »

Note for Computer Network 6

Posted on 2018-07-29 | Edited on 2023-05-09 | In notes

路由器、ADSL、FTTH

副标题:阅读《网络是怎么连接的(户根勤)》读书笔记6

路由器基础知识

  • 路由器分为转发模块和端口模块两部分
  • 转发模块负责,判断包的转发目的地
  • 端口模块负责,进行包的收发操作
  • 如果路由器的端口模块安装了支持无线局域网的硬件,就可以支持无线局域网了

路由器基本原理

  1. 接收。路由器在转发包时,会通过端口将发过来的包接收进来,采取以太网规范或者无线局域网规范来接收
  2. 查找目标地址。转发模块根据收到的包的IP头部中记录的接收方IP地址,在路由表中进行查询,以此判断转发目标
  3. 转发模块将包转移到转发目标对应的端口,再按照硬件的规则(委托端口模块)将包发送出去
  4. 注:端口模块会根据相应通信技术的规范来执行包收发的操作,意味着端口模块具备了发送方或接收方的身份。以以太网端口为例,端口具有MAC地址、IP地址,此时可以理解为实现了网卡的功能
目标地址 子网掩码 网关 接口 跃点数
10.10.1.0 255.255.255.0 - e2 1
10.10.1.101 255.255.255.255 - e2 1
Read more »

Note for Computer Network 5

Posted on 2018-07-14 | Edited on 2023-05-09 | In notes

创建好了的包是如何进入互联网的

副标题:阅读《网络是怎么连接的(户根勤)》读书笔记5

网线中的信号衰减情况

  1. 信号从网卡出口到达集线器,会出现衰减、失真、噪声、能量损失等,严重时产生通信错误
  2. 局域网的网线使用双绞线,可以抑制噪声,使得网线周围或内部的电磁波在网线中产生的的干扰电流

集线器和交换机

  • 集线器将信号发往所有线路
  • 以太网的基本架构就是将包发到所有的设备,设备根据接收方的MAC地址来判断应该接收哪些包
  • 交换机按照地址表进行转发:当接收到包时,会将对应的端口号和发送方MAC地址写入表中,这样就可以根据地址判断出该设备连接在哪个端口上了
MAC地址 端口 控制信息
00-60-97-A-43-3C 2 …
00-00-C0-18-AE-FD 7 …

MAC地址表

Read more »

Note for Computer Network 4

Posted on 2018-07-14 | Edited on 2023-05-09 | In notes

包收发操作

副标题:阅读《网络是怎么连接的(户根勤)》读书笔记4

IP模块如何将包发给对方

通用流程

  1. 发送方的网络设备负责创建包,即生成含控制信息的头部,然后附上要发送的数据
  2. 接着,包被发往最近的网络转发设备
  3. 然后转发设备会根据头部信息判断接下来应该发往哪里,这个过程会用到一张表,按照头部记录的目的地址在表里查询,根据查到的信息判断接下来应该发往哪个方向
  4. 转发设备层层接力,最后到达接收方
  5. 发送方和接收方统称为终端节点,转发设备称为转发节点或中间节点

扩展流程——TCP/IP网络,用以太网规则传输包

  • 转发设备包括路由器和集线器两种
  • 路由器根据目标地址判断下一个路由器的位置,是按照IP规则传输包的设备
  • 集线器在子网中将网络包传递给下一个路由,是按照以太网规则传输包的设备
  • TCP/IP包包含MAC头部和IP头部、TCP头部和数据块,IP头部存入下一级路由器的IP地址,MAC头部存入下一级路由器的MAC地址(即以太网地址,是IP协议写入的,使用ARP广播的形式获取),MAC地址也叫物理地址(Physical Address)
  • 例:
    1. 客户端向服务器发包,先经集线器配合自己的一张表读取MAC头部获取下一个路由器甲的MAC地址,根据MAC地址,让以太网进行包的传输
    2. 包会到达下一个路由器甲,路由器有一张IP协议的表,再读取IP头部获取再下一个路由器乙的IP地址,为了将包发给再下一个路由器,就必须要下一个路由器乙的MAC地址,并记录到MAC头部
Read more »

Note for Computer Network 3

Posted on 2018-07-13 | Edited on 2023-05-09 | In notes

协议栈如何处理数据发送请求

副标题:阅读《网络是怎么连接的(户根勤)》读书笔记3

1

Tips:

  • IEEE802.3/802.2因长度太长、效率降低并未完全普及,更古老的以太网DIX规格仍在使用
  • TCP/IP协议以前是合为一体的,现在分开成两个
  • 像浏览器、邮件等一般的应用程序都是使用TCP收发数据的,而像 DNS 查询等收发较短的控制数据的时候则使用UDP
  • ICMP用于告知网络包传送过程中产生的错误以及各种控制消息,ARP 用于根据IP地址查询相应的以太网MAC地址
  • 套接字的实体就是通信控制信息:IP地址、端口号、通信操作的进行状态、是否收到响应、执行发送操作后经过了多长时间等

2

  • 图2.3的步骤1中,协议栈申请内存空间准备存放套接字(控制信息),刚刚创建时,数据收发操作还未开始,故写入初始状态的控制信息;之后将套接字描述符告知应用程序
  • 步骤2的连接是指双方交换控制信息,必要的信息放在了网络包的头部,另一类放在套接字内存区
    • 将浏览器查到的对方IP和端口号等告知协议栈
    • 服务器创建套接字(其实一般在服务器启动时已经创建好了),客户端将本机IP和端口号等告知服务器
    • 创建一块缓存区,用于临时存放收发的数据
    • connect详见后面段落
Read more »
1…12131415

Harrison Lee / Email (harrisonli60@163.com)

It is never too late to learn a new skill, even a challenging one.

150 posts
21 categories
32 tags
© 2025 Harrison Lee / Email (harrisonli60@163.com)
Powered by Hexo v6.3.0
|
Theme – NexT.Mist v7.0.0
|