- 博客(21)
- 收藏
- 关注
原创 计网 数据链路层
基本术语节点(nodes):主机和路由器都被称为节点链路(links):连接相邻节点的通信信道(有线链路、无线链路、局域网)帧(frame):链路层将网络层的数据包封装到帧中链路层通过链路将网络数据报从一个节点传输到另一个节点链路层提供的服务成帧将数据报封装成数据帧,添加头部和尾部帧同步(确定链路开始与否)链路接入多个节点共享单个广播链路时需要考虑如何协调节点的帧传输问题首部中的MAC地址用来标识源地址和目的地址可靠交付与传输层可靠交付类似,在无线链路等链路中,用于本地纠正(在链
2022-01-24 19:54:46
708
原创 计网 网络层
2022.1.6虚电路网络虚电路是一条从源主机传输到目的主机的链接,在路径上的所有路由器都负责维护该电路的连接虚电路需要先建立后使用虚电路中每个分组都携带者虚电路标识(VCID),而不是目的主机的地址由于虚电路整个路径中的链路能包含的链路数不一样,因此VCID在同一条路径上并不是唯一的,采用分段管理的方式,因此需要利用虚电路转发表来保证分组需要转发的目的在虚电路中采用信令协议建立协议,在虚电路的建立过程中,通过该协议选择一条合适的路径发送到目的主机,目的主机同意建立连接后沿着该路径返回到源主机
2022-01-11 09:01:21
775
原创 计网 套接字编程
进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接受报文如果将进程类比为一座房子,那么套接字可以类比为门,当进程发送报文时,进程将报文推出门。接收报文时,通过接收进程的门传递。套接字是同一台主机内应用层与传输层之间的接口,是建立网络应用程序的可编程接口,因此套接字称为应用程序和网络之间的应用程序编程接口(Application Programming Interface,API)UDP套接字编程客户端# socket模块形成了在Python中所有网络通信的基础from so
2021-11-29 00:07:03
1698
2
原创 计网 传输层
2021.11.28回顾网络结构概述传输层协议为不同主机上的应用程序提供了逻辑通信,从应用程序的角度看,通过逻辑通信,不同主机之间好像直接进行了连接,而实际上,主机之间可能通过大量的路由器以及多种不同链路相连。应用进程使用传输层提供的逻辑通信功能彼此发送报文。报文段传输层协议在端系统之间实现,而不是在路由器中实现在发送端,传输层将从发送应用程序接收到的报文转换为传输层分组,这些分组被称为报文段(segment),这些报文段在网络层被封装成网络层分组(数据报),接着再进行传输在接收端,传输层
2021-11-28 23:57:21
1818
原创 网络应用层
2021.11.22网络应用层网络应用的体系结构客户机/服务(C/S)服务器长时间提供服务永久性访问地址/域名,不改变地址(如百度等网站,客户需要经常访问,因此不能随意改变)利用大量服务器实现客户机与服务器通信间歇性接入网络可能动态使用ip不会与其他客户机直接通信点对点结构(P2P/peer to peer)互相之间连接没有一个永久的服务器节点可能改变IP地址间歇性接入网络常用于文件共享混合结构(Hybrid)常见的有讲文件传输用p2p实现文件搜索用cs结构
2021-11-22 22:48:24
570
原创 OSI参考模型 TCP/IP模型 五层模型
OSI参考模型OSI参考模型是理论上可行,但是实际上不可行的模型两个端之间通常有七层,而中间系统只包含三层数据封装每一层都会在传入下一层的数据时添加数据封装包括地址、差错检测编码、协议控制等信息物理层将数据链路层的数据编码,经过物理介质传播传输模式单工(Simplex)只能单向数据发送(电视台发送数据到电视)半双工(half-duplex)可以双向通信,但只能交替进行(对讲机)全双工(full-duplex)一般采用独立的两个信道数据链路层数据链路层主要解决接收的对
2021-11-21 22:06:26
282
原创 数据交换 电路交换 报文交换 分组交换
数据交换通过源主机到达目的主机如果点对点数据交换,那么n台主机就需要n(n-1)/2条链路如果采用一台中转交换设备,那么如果该设备断开会导致所有网络全部瘫痪,而在网络规模增大时,这一台交换设备的负载会大大增大因此采用两者结合的方式电路交换电话交换的三个阶段:建立连接(呼叫/电路建立)通信释放连接(拆除电路)这样通信的问题在于建立了连接之后会独占资源典型的电路交换网络:电话网络多路复用上面的方法会独占信道,导致需要的资源无法共享,下面的方法使用复用器和分用器可以达到共享信道的
2021-11-20 22:14:54
960
原创 进程与线程 调度 信号量 临界区 死锁
2021.11.6CPU调度策略在系统调度的Schedule函数中,如果就绪队列中有多个进程,那么CPU应该如何选择?CPU调度的目标让进程满意尽快结束任务周转时间短(从任务进入到任务结束),不能让进程长时间处于等待用户操作尽快响应响应时间短(从操作发生到响应),如在用户打开一个进程时需要很快展示在系统显示中系统内耗时间少吞吐量(完成的任务量),即进程切换等耗时总原则:系统专注于任务执行,又能合理调配任务CPU调度的矛盾吞吐量和响应时间之间有矛盾响应时间少,切换次数多,系统
2021-11-06 22:36:50
170
原创 进程与线程 用户级线程,核心级线程
2021.11.4进程引入管理CPU最直观的方式通过设定PC的值,让CPU反复取指执行然而在调用IO操作时,会使用硬件调用(磁臂),使用的时间会远远大于其他操作如果CPU在此期间直接等待,会导致长时间处于闲置状态于是提出了CPU切换进程,交替进行并发在一个CPU上交替的执行多个程序在程序之间切换时,更改PC的值而切回是PC再置为53为了切换成功,单纯设置PC的值是不可行的,还需要保存程序1的现场,即ax,bx等信息,否则会根据程序2中更改成别的值进程运行中的程序被称为进程多进
2021-11-04 23:11:17
356
原创 高级子查询
2021.10.31高级子查询多列子查询子查询返回的值含有多行主查询与子查询返回的多个列进行比较Main querywhere (manager_id,department_id) insubquery100 90102 60124 60--数字为返回值在from子句中使用子查询select last_name,e1.department_id,salary,e2.avg_salfrom employees e1,(select...avg(salary) avg_sal fr
2021-10-31 20:39:02
128
原创 set操作符的使用
2021.10.31set操作符union取并集,union仅包含一个表中的重复值,union all包含两表中的重复值select employee_id emp_id, department_id dept_id--可以在第一个表的列中写别名,第一个表中写了就不用写在第二个表中from employees01unionselect employee_id,department_id--两表内容需要一一对应from employees02order by emp_idinters
2021-10-31 13:49:24
98
原创 控制用户权限
可以直接在图形化界面进行更改也可以利用命令行进行系统权限创建用户create user user_nameindentified by password通过命令行创建的角色没有一切权限,包括登录权限赋予权限grant create view/session/sequence/table/procedureto user_name创建用户表空间alter user user_name quota unlimited--unlimited可以换成大小,如5mon users修改
2021-10-31 10:40:13
132
原创 视图,序列,索引,同义词
2021.10.30目录视图的定义视图的操作创建修改视图中的值修改视图删除视图限制权限简单视图和复杂视图复杂视图TOP-N分析伪列rownum序列创建currval和nextval修改裂缝删除索引创建和删除创建时机同义词synonym视图的定义视图可以简单理解为从表中选定部分信息存在view中不同于select操作,select只能存在于内存中,重启后会消失可以直接利用视图更改源表中的内容和表的主要区别:表可以认为是CEO使用的,而数据库管理员DBA只能看并修改表中部分信息,因此使用视图即可视
2021-10-30 22:34:24
80
原创 约束 主键、外键、非空、唯一、检查
2021.10.30目录添加约束表级约束和列级约束not nullunique主键primary key外键foreign keyon delete cascade(级联删除)on delete set null(级联置空)check“修改”约束添加not null约束要使用modify语句删除约束添加其他约束无效化/有效化约束查询约束查询定义约束的列总结添加约束表级约束和列级约束列级约束只能作用在一个列上表级约束可以作用在多个列上,也可以在一个列上not null非空约束,填入数据为空时会报
2021-10-30 21:31:34
799
原创 数据处理 增删改查
2021.10.29insertinsert into table_namevalues(1,'Tome')--插入数据需要和表定义一一对应添加列名可以改变顺序insert into table_name(list_1,list_2) values(value_1,value_2)非nullable的列不能加入空值也可以用上述两种方法从其他表中拷贝数据,利用select语句即可insert into table_nameselect...利用&可以选择输入的value值ins
2021-10-29 21:46:32
76
原创 创建和管理表
2021.10.29查看用户定义的表select table_namefrom user_tables查看用户定义的各种数据库对象select distinct object_typesfrom user_objects查看用户定义的表,视图,同义词和序列select *from user_catalog表的命名规则以字母开头,不能重名,长度1-30字符create tablecreate table table_name(id number(10)salary numb
2021-10-29 21:22:49
67
原创 SQL-SELECT(3)多表查询,分组函数,子查询
目录多表查询等值连接非等值连接外连接cross join & natural joinjoin usingjoin onleft/right/full outer join自连接分组函数group byhaving子句子查询单行子查询多行子查询多表查询课件中主要表结构:select employee_id,department_id,department_namefrom employees,departments由于department_id字段同时存在于两个表中,该查询方式会导致将
2021-10-28 21:25:15
589
原创 SQL-SELECT(2)单行函数 常见函数和条件表达式
2021.10.27单行函数一条记录对应一个输出字符函数LOWER:转为小写UPPER:转为大写INITCAP:首字母转为大写常见用法:查询某未知大小写字符串,将其全部转为小写/大写字符控制函数CONCAT:连接SUBSTR:求子字符串,从第1位开始,长度为5LENGTH:求长度INSTR:查找某个字符在原字符串中的位置LPAD/RPAD:将字符串向左/右补齐至十位,添加字符’*’TRIM:去除首尾部分的指定字符REPLACE:去除所有指定字符数字函数ROUND/TR
2021-10-27 21:39:30
253
原创 SQL-SELECT(1)基本查询、关键字和部分函数
2021.10.26SQL SELECT语句DML:Data Manipulation Language数据操纵语言INSERT:增UPDATE:改DELETE:删SELECT:查DDL:Data Definition Language数据定义语言CREATE TABLE:创建数据库表ALTER TABLE:更改表结构、添加、删除、修改列长度DROP TABLE:删除表CREATE INDEX:在表上建立索引DROP INDEX:删除索引DCL:Data Control Langu
2021-10-26 21:51:51
1033
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人