网络基础知识 操作系统中的进程与线程:http://www.cnblogs.com/CareySon/archive/2012/05/04/ProcessAndThread.html 进程与线程的一个简单解释:http://blog.jobbole.com/38696/
进程的三种状态及转换 http://blog.chinaunix.net/uid-23883288-id-3028968.html
线程的五大状态http://blog.****.net/peter_teng/article/details/10197785
进程与线程的一个简单解释:http://blog.jobbole.com/38696/
1. IPv4 和IPv6 地址分别是:32位、128位
- 握手的顺序是:SYN,ACK+SYN,ACK
- 通过设置FIN为来表示释放连接,当一方释放连接(发送FIN)时,只是表明这一方不会在此次连接中发送数据了,另一方还是可以发送数据。
2.TCP协议相关知识点1:
TCP是面向连接的服务;三次握手(建立连接)和四次挥手(关闭连接);使用滑动窗口机制进行流量控制;TCP要保证在所有可能的情况下使得所有的数据都能够被投递,当你关闭一个socket时,主动关闭一端的socket将进入TIME_WAIT状态,而被动关闭一方则转入CLOSED状态,这的确能够保证所有的数据都被传输。
1)首先A B端的TCP进程都处于established状态, 当A的应用程序传送完报文段,就会去 主动关闭 连接。A 会停止发送报文段(但是还会接收),并向B发送[FIN = 1,seq=u]数据,之后进入FIN-WAIT-1状态;
2)B接收到A发送的请求之后,会通知应用进程A已经不再发送数据,B会向A发送ACK确认数据[ACK=1,seq=v,ack=u+1 ],B进入 CLOSE-WAIT状态, A接收到B发送的数据之后,A进入FIN-WAIT-2状态;此时A到B方的连接已经关闭了。
3)当B的应用进程发现自己也没有数据需要传送,B应用进程就会发出 被动关闭 的请求,B此时向A发送[FIN=1,ACK=1,seq=w,ack=u+1]数据,并且进入LAST-ACK状态;【所以D不对】
4)A接收到B发送的数据之后,向B发送确认数据[ACK =1,seq=u+1,ack=w+1],进入TIME-WAIT状态,等待2MSL之后关闭连接进入CLOSED状态;B接收到A发送的确认之后进入CLOSED状态。B到A方的连接关闭
- 某主机的IP的地址202.117.131.12/20,其中子网网掩码:202.117.131.12/20代表前20位代表网络号,后12位代表主机号;前20位全1,后12位全零的IP地址为255.255.240.0.
- IP 地址中网络号的作用:指定了主机所属的网络;但是有网络号并不能确定到某一台机器上,所以不是一个节点,是一片区域,也并不是指能够通信的网络,要能够通信要达到很多条件才行。
解释2:创建进程的步骤:1.申请空白PCB(进程控制块); 2,为新进程分派资源; 3,初始化PCB; 4,将新进程插入就绪队列;
状态转换
解释:进程的分配方式:如果系统在所有进程运行前,一次性地将其在整个运行过程中所需地全部资源分配给进程,即所谓"静态分配",使可以预防死锁发生的。
解释3: 假设就绪队列中有10个进程,以时间片轮转方式进行进程调度,时间片大小为300ms,CPU进行进程切换需要花费10ms,则系统开销所占比率和进程数目增加到30个,其余条件不变时系统开销所占的比率相比,其结果是(等于)。分析:进程数为 10 的情况下,系统开销比率等于切换进程总时间 / 进程总共运行时间,其中切换进程运行时间为 10*10ms ,进程运行总时间为 300*10+10*10ms ,因此系统开销比率为 10*10/(300*10+10*10), 可以看出系统开销比率与进程数无关,故选择等于选项。
解释: 周转时间:对一个进程来说,一个重要的指标是它执行所需要的时间. 从进程提交到进程完成的时间间隔为周转时间.也就是等待进入内存的时间,在就绪队列中等待的时间,在 CPU中执行的时间和I/O操作的时间的总和.
解释:进程线程同步方法
-
常见的进程/线程同步方法有互斥锁(或称互斥量Mutex)、读写锁(rdlock)、条件变量(cond)、信号量(Semophore)等。
- 在windows系统中,临界区(Critical Section)和事件对象(Event)也是常用的同步方法。
- 递归锁/非递归锁
Mutex可以分为递归锁(recursive mutex)和非递归锁(non-recursive mutex)。 递归锁也叫可重入锁(reentrant mutex),非递归锁也叫不可重入锁(non-reentrant mutex)。二者唯一的区别是:同一个线程可以多次获取同一个递归锁,不会产生死锁。如果一个线程多次获取同一个非递归锁,则会产生死锁。
- Windows下的Mutex和Critical Section是可递归的。
- Linux下的pthread_mutex_t锁是默认是非递归的。可以通过设置PTHREAD_MUTEX_RECURSIVE属性,将pthread_mutex_t锁设置为递归锁。
NAT定义
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
NAT功能
NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
1.宽带分享:这是 NAT 主机的最大功能。
2.安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。
NAT实现方式
NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。
静态 转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
端口多路复用( Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
NAT配置
在配置NAT(网络地址转换)之前,首先需要了解内部本地地址和内部全局地址的分配情况。根据不同的需求,执行以下不同的配置任务。
内部源地址NAT配置
内部源地址NAPT配置
重叠地址NAT配置
TCP负载均衡
1.浏览器将自己支持的一套加密规则发送给网站。
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3.获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4.网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。
这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及 相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。
HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。
另 外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是 保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。
HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消 息,因此减少了链接建立的次数和经常性的链接开销。
9 网络的七层结构
应用层协议:http,ftp,SMTP,
运输层协议:TCP,UDP;
网络层协议:ICMP,IGMP,RARP,ARP
网络接口协议:
第五层是会话层,在两个结点之间建立端连接。为端系统的应用程序之间提供对话控制机制。此服务包括建立连接是以全双工还是半双工的方式进行设置,尽管可以在第四层中处理双工方式;会话层管理登入和注销过程。
第六层是表示层,主要处理两个通信系统中交换信息的表示方式。为上层用户解决用户信息的语法问题。包括数据格式交换、数据加密与解密、数据压缩与终端类型的交换。
10.交换机计费方式(非重点)
交换机计费方式与采用的计费系统、业务的类型以及 入网的方式有关,主要有如下三种:
1 CAMA计费系统
CAMA 计 费 系 统 即 Centralized Automatic Message Accounting System-集中式自动通话记帐系统的简称,又称为详细帐单 (Detail billing)方式。
这种详细话单方式在我国主要用于长途通信(国际或国 内),也有个别使用在农话中。所有以这种方式计费的呼叫,在呼结束时产生一张详 细帐单,其中包括主叫和被叫用户标识、通话日期、计费开始及结束时间、通话时长 以及呼费期间计数到的脉冲数值等信息。CAMA计费方式的计费点设在发话端长途局或者长市合一局。
2 LAMA计费系统
LAMA计费系统即Local Automatic Message Accounting System-本地自动 通话记帐系统的简称,也叫市话计费方式。
这种计费系统目前用于市内电话通信 时,采用汇总帐单的形式,也称简式同(BUIK Billing)。这种计费在通知期间,采用 脉冲计次的方式,将计费脉冲在主叫用户的汇总计数器中累加。
LAMA计费方式的计费点在发端市话或者长市 合一局。在一些本地网呼叫时,根据需要,LAMA 计费系统也可以在市话局实现详细计费(Detail Billing)。
3 PAMA计费系统
PAMA计费系统即Private Automatic Message Accounting System-专用自 动通话记帐系统的简称,也称用户交换机计费系统。如果用户交换机(或者利用用户 交换作为农话端)作为发端局采用全自动直拨方式(DOD1+DID)入网,则发端局本 身即采用PAMA计费 系 统 , 其 帐 单 方 式 类 似 于 CAMA,但较为简单。
在国内交换机中,长途交换局一般采用CAMA方式,市话局采用 LAMA方式,而长市 合一局二者均需采用。