您的位置:首页 > 理论基础 > 计算机网络

笔试怎么过(2)TCP/IP、HTTP、进程/线程、sql

2015-10-09 20:18 399 查看

笔试怎么过(2)TCP/IP、HTTP、进程/线程、sql

TCP/IP

TCP/IP协议的工作流程如下:

1、在源主机上,应用层将一串应用数据流传送给传输层。

2、传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。

3、在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。

4、链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。

5、在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。

6、网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。

7、传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。

8、在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

应用层(Application layer)、表示层(Presentation layer)、会话层(Session layer)、传输层(Transport layer)、网络层(Network layer)、数据链路层(Data link layer)、物理层(Physical layer)

TCP和UDP的区别:

TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。

简单的说,TCP注重数据安全,而UDP数据传输快点,但安全性一般。

建立连接协议(三次握手)

1、客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。

2、服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。

3、客户必须再次回应服务段一个ACK报文,这是报文段3。

连接终止协议(四次挥手)

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

1、TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。

2、服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。

3、服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。

4、客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。

HTTP协议

工作流程:

一次HTTP操作称为一个事务,其工作过程可分为四步:

1、首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

2、建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

3、服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

4、客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

常用的请求方式是GET和POST:

GET方式:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。

POST方式:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,Post被设计成用统一的方法实现下列功能:

1、对现有资源的解释;

2、向电子公告栏、新闻组、邮件列表或类似讨论组发信息;

3、提交数据块;

4、通过附加操作来扩展数据库 。

从上面描述可以看出,Get是向服务器发索取数据的一种请求;而Post是向服务器提交数据的一种请求,要提交的数据位于信息头后面的实体中。

GET与POST方法有以下区别:

1、在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

2、GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

3、安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。

4、安全的和幂等的。

进程与线程的区别与联系:

进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。

线程,在网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,为每一个请求都创建一个进程显然是行不通的,——无论是从系统资源开销方面或是响应用户请求的效率方面来看。因此,操作系统中线程的概念便被引进了。线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。

线程的执行特性

线程只有 3 个基本状态:就绪,执行,阻塞。

线程存在 5 种基本操作来切换线程的状态:派生,阻塞,激活,调度,结束。

进程通信。

单机系统中进程通信有 4 种形式:主从式,会话式,消息或邮箱机制,共享存储区方式。

主从式典型例子:终端控制进程和终端进程。

会话式典型例子:用户进程与磁盘管理进程之间的通信。

SQL

SQL分类:

DDL数据定义语言(CREATE,ALTER,DROP,DECLARE)

DML数据操纵语言(SELECT,DELETE,UPDATE,INSERT)

DCL数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句:

创建数据库

CREATE DATABASE database-name

删除数据库

drop database dbname

备份sql server

创建 备份数据的 device

USE master

EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'

开始 备份

BACKUP DATABASE pubs TO testBack

创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2… from tab_old definition only

删除新表drop table tabname

增加一个列

Alter table tabname add column col type注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col)

创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。

====================================================================================
结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: