校招知识点总结篇之计算机网络

1.计算机网络组成、分类

物理组成:硬件——主机(host、终端设备)、处理机(前端FEP、通信CCP-网卡)、连接设备(路由器、交换机)、通信线路(有线、无线);软件——协议(语义、语法、时序)、应用;

功能组成:功能——资源子网、通信子网;工作方式——边缘、核心部分;

分类:通信距离-广域网、局域网、城域网;信息交换技术-电路、报文、分组(时延、丢包、吞吐量);网络拓扑-星型、树形、环形、总线型;通信介质-双绞线、同轴电缆网、光纤、卫星;传输宽带-基带、宽带;使用范围-公用、专用;速率-高速、中速、低速;通行传播方式-广播、点播;

2.计算机网络四层/七层ISO/OSI模型

物理层移动比特流从一个节点到下一个节点;

数据链路层移动在相邻网络元素之间,SDLC、STP、以太网、wifi、PPP

网络层通过路由器数据报的分组从一台主机移动到另一台主机,IP、RIP(内部网关,选路信息协议,15跳)、OSPF(开放最短路径优先)、ICMP(Internet控制信息协议,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。五种差错报文-源抑制、超时、目的不可达、重定向、要求分段,4种信息报文-回应请求、回应应答、地址屏蔽码请求、地址屏蔽码应答)、ARP(IP地址转为MAC物理地址)、RARP(物理地址转为IP地址,广泛用于获取无盘工作站的IP地址)、AKP、UUCP、BGP(边界网关协议)

传输层提供端到端之间的服务,报文段,TCP(可靠、面向连接(流量控制和拥塞控制)、全双工)、UDP(不可靠的、无连接的)、SPX(序列包交换)

会话层单工、半双工、全双工、SMTP、DNS、NFS、RPC

表示层:SNMP、TELNET、

应用层网络应用程序及其协议存留的地方,报文,协议有FTP、HTTP、DNS、SMTP、TFTP(简单文件传输的协议,提供不复杂、开销不大的文件传输服务)、WAIS;

套接字:应用程序和网络之间的应用程序编程接口;

HTTP:持久和非持久连接;cookie(站点跟踪用户);

HTTP报文格式:请求报文——请求行(方法字段-get/post用户提交表单/head/put/delete、URL字段、HTTP协议版本字段)、首部行、空格、实体主体;

响应报文——状态行(2请求成功/3重指定/4客户端错误/5服务器不支持该版本)、6个首部、实体主体

FTP:使用两个并行的TCP连接,控制连接、数据连接;

邮件访问协议:SMTP(发送邮件)、POP3(接受邮件)、IMAP;

DNS:

四层模型:应用层、传输层、网际层、网络接口层

http://s6.51cto.com/wyfs01/M02/31/33/wKioOVJpyoiwv5o-AAFl51p0GRU008.jpg-wh_651x-s_1488370685.jpg

校招知识点总结篇之计算机网络_第1张图片

硬件地址(物理地址,MAC地址)是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的。

NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。

DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

3.计算机网络互连设备

中继器:物理层,连接两个逻辑上是同一个网络;

集线器:用来集中所有局域网内网络设备(电脑和其他集线器等),并且将网络带宽平均分给各个网络设备(共享宽带),是中继器的一种,能够提供更多端口服务;改进方式加入交换技术;

网桥:链路层;工作原理:根据路径表转发或过滤信息包,如下图所示,同一网段中通信的帧,如H1、H2和H3、H4,会被丢弃,不会被网桥转发到另一网段中去如H1、H3,若此帧未出现差错,且目的站地址属于另一个网段,通过查找站表将收到的帧往对应的端口转发出去。分类:透明网桥、源站选路网桥

校招知识点总结篇之计算机网络_第2张图片

交换机:数据链路层,第二层分组交换机,独占宽带,相对较高的分组过滤和转发速率;

路由器:网络层,第三层分组交换机,连接不同类型的网络,依靠路由表和其他路由器为每个信息包选择最佳路径,具有广播包抑制和子网隔离功能;

(路由器、交换机、网桥的区别?)

网关:传输层及其以上,连接两个完全不同结构的网络,常见网关-电子邮件网关、IBM主机网关、因特网网关、局域网网

校招知识点总结篇之计算机网络_第3张图片

4.TCP协议三次握手建立连接、四次挥手断开连接?为什么要三次握手,而不是两次或者四次?

Tcp报文格式如下:Seq序列号、Ack=Seq+1确认序号

校招知识点总结篇之计算机网络_第4张图片

三次握手如下图:建立Tcp连接时,客户端和服务端需总共发送3个包确认连接的建立;具体过程如下:

第一次握手:Client将标志位SYN置为1,随机产生一个序列号seq=J,将该数据包发送给server,并立即进入SYN_SENT状态;

第二次握手:server收到数据包后由标志位SYN置为1知道Client请求建立连接,将标志位SYN和ACK都置为1,ack=J+1,并随机产生一个序列号seq=k,将该数据包发给Client以确认请求连接,server进入SYN_RCVD状态;

第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否1,正确则将ACK置为1,ack=k+1, 并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了;

 

校招知识点总结篇之计算机网络_第5张图片

理由:防止已过期的连接请求,再次传到被连接主机,导致server资源浪费;

安全隐患:SYN攻击,拒绝服务攻击——发送大量无效的SYN请求包,伪造的SYN包将产时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪(SYN包容量限制);

                 IP欺骗——伪造序列号;

解决方法:SYN cookies,不缓存请求信息,回发状态编码给Client(开销、需要足够bits)

Tcp连接为什么可靠:三次握手的最主要目的是保证连接是双工的,可靠更多的是通过重传机制来保证的,TCP连接的每一端必须有两个窗口,一个接收窗口和一个发送窗口,TCP的可靠传输机制用字节的序号控制,所有的确认都是基于序号;

(发送过的数据未收到确认之前必须保留,以便超时重传时使用。发送窗口没收到确认不动,和收到新的确认后前移。发送缓存用来暂时存放:发送应用程序传送给发送方 TCP 准备发送的数据;TCP 已发送出但尚未收到确认的数据。接收缓存用来暂时存放:按序到达的、但尚未被接收应用程序读取的数据;不按序到达的数据。)

Tcp长短连接:tcp短连接——client向server发起连接,server接到请求,双方建立连接,client向server发送消息,server回应client,一次读写完成双方都可以发起close请求;tcp短连接优缺点:短连接对于服务器来说较为简单,存在的连接都是有用的连接,不需要额外的控制,但如果客户端连接频繁,会在tcp的建立和关闭上浪费时间。

tcp长连接:client向server发起连接,server接到请求,双方建立连接,client向server发送消息,server回应client,一次读写完成,连接不关闭,后续读写操作,长时间操作之后client发起关闭请求。tcp长连接优缺点:长连接可以省去较多的tcp建立/关闭的操作,减少浪费,节省时间,对于频繁请求资源的客户,较适用于长连接;client和server如果长时间不关闭的话,会存在一个问题,随着客户的越来越多,server早晚会有扛不住的一天,这时需要采取一些策略,如关闭一些长时间不读写操作的连接,这样可以避免一些恶意连接导致server端服务受损,如果条件再允许,就可以以客户端为颗粒度,限制每个客户端的最大连接数。

各种状态含义:closed——初识状态;listen——表示服务器端的某个SOCKET处于监听状态,可以接受连接;SYN_SENT:表示客户端已发送SYN报文;SYN_RCVD:表示接收到了SYN报文,中间状态;ESTABLISHED:连接已经建立;FIN_WAIT_1/ FIN_WAIT_2:表示等待对方的FIN报文,FIN_WAIT_1主动关闭连接,FIN_WAIT_2表示半连接,也即有一方要求关闭连接;CLOSING:表示你发送FIN报文后,并没有收到对方的ACK报文,却也收到了对方的FIN报文;TIME_WAIT:表示在等待关闭;LAST_ACK: 它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文,收到ACK报文后,即可以进入到CLOSED状态。

四次挥手如下图

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;

第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态;

第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态;

第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手;

客户端收到服务端确认包后等待2*ml时间后会直接关闭连接。若没有收到则不会关闭连接

http://blog.chinaunix.net/attachment/201304/10/22312037_13655617062cGr.png

为什么建立连接是三次握手,而关闭连接却是四次挥手呢?

这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。

5.DNS域名解析服务器寻址过程

DNS服务器将域名解析为IP地址,例如要查询www.baidu.com的IP地址,解析过程如下:

  1. 在浏览器中输入www.baidu.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
  2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,有则直接返回完成域名解析。
  3. 如果hosts和DNS解析器缓存都没有网址映射关系(上述两个),请求本地域名服务器(DNS)来解析这个域名,服务器收到查询,如果查询域名包含在本地配置区域资源中,则将解析结果返回给客户机,完成解析过程;
  4. 要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析;
  5. 前面失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发根DNS,根DNS服务器收到请求后会判断这个域名是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责域名的这台服务器,若服务器收到请求后自己无法解析,它就会找下一级DNS服务器地址给本地DNS服务器,重复上面的动作,进行查询,直至找到主机。
  6. 若用转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。
  7. 最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

校招知识点总结篇之计算机网络_第6张图片

6.计算机网络传输设备

无线:微波、无线电、激光、红外线;

有线:同轴电缆、双绞线(STP屏蔽双绞线、UTP非屏蔽双绞线)、光缆;

7.IP地址

组成:主机号0、网络号1

分类;A类:一个字节(8位)做网络号27-2(全0和1),范围1-126 ;B类:两个字节网络号214-2,范围128.1-191.245;C类:191.0.1.0-223.255.254.0;D类:多播地址;

判断两个IP地址是否属于一个子网?IP地址与子网掩码与(相同为1,不同为0)运算,结果相同属于同一子网,反之则不属于;

已知IP地址172.168.160.25,求子网掩码和最大主机数;

8.网络安全

安全控制技术:防火墙技术、加密技术(对称加密——加密和解密使用同一密钥,AES,DES,RC4,BlowFish、非对称——在加密和解密时使用不同的密钥,分别称为公钥或私钥,非对称加密的加密方法有RSA, DSA,Diffie-Hellman、数字签名)、用户识别、访问控制(权限、访问控制策略、口令 )、网络反病毒、安全漏洞扫描、入侵检测

防火墙技术:建立在内外网络边界上的过滤封锁机制;包过滤(数据包头各项信息,TCP和IP层)、应用代理网关、状态检测技术(状态连接表,跟踪每个会话状态);

常见的网络威胁/攻击类型:

恶意软件(自我复制、病毒、蠕虫、特洛伊木马)、僵尸网络

SQL注入攻击:攻击者把SQL命令插入到web表单的域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。

拒绝服务(DoS)攻击:弱点攻击(易受攻击的应用程序或者报文),带宽洪泛(向目标主机发送大量分组),连接洪泛(目标主机中创建大量半开、全开的TCP连接)

分组嗅探器(sniffer):记录每个流经的分组拷贝的被动接收机;

IP欺骗:将具有虚假源地址的分组注入因特网事务能力,解决:端点鉴别;

中间人攻击:

9.TCP流量控制和拥塞控制

拥塞控制:防止过多数据注入到网络中使网络中的路由器或者链路过载,是一个全局过程;

拥塞控制的方法:慢开始——刚开始发送报文段时,把拥塞窗口cwnd设置为一个最大报文段MSS的数值,而在每收到一个对新的报文段的确认后,把拥塞窗口增加多一个MSS的数值,用逐步增大发送方的拥塞窗口的方法,使分组注入到网络的速率更合理。为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量,如下:

当cwnd>ssthresh时,停止使用慢开始算法而改用拥塞避免算法;

当cwnd=ssthresh时,既可以使用慢开始算法,又可以使用拥塞避免算法;

发送方判断网络出现拥塞,就要把慢开始门限ssthresh设置为出现拥塞时的发送方窗口值的一半,然后把拥塞窗口重新设置为1,执行慢开始算法

校招知识点总结篇之计算机网络_第7张图片

拥塞控制——每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,拥塞窗口按线性缓慢增长;

快重传——快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等待自己发送数据时才进行捎带确认。快重传算法规定:发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段;

快恢复——两个要点:1.当发送方连续收到三个重复确认时,就执行乘法减小算法,把慢开始门限ssthresh减半,这是为了预防网络发生拥塞,接下去不执行慢开始算法;2.由于发送方现在认为网络很可能没有发生拥塞,如果发生了严重的拥塞,就不会一连好几个报文段连续到达接收方,就不会导致接收方发送重复确认,因此与慢开始不同之处是不执行慢开始算法,而是把cwnd值设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法(加法增大)。如下图所示:快重复和快恢复的示意图:

校招知识点总结篇之计算机网络_第8张图片

流量控制:点对点通信量的控制,端到端的控制,抑制发送端发送数据的速率,以便接收端来得及接收;

流量控制方法:对于成块数据流,TCP利用滑动窗体机制来实现流量的控制,对于交互数据流,TCP利用捎带ACK和Nagle算法来实现流量的控制。

校招知识点总结篇之计算机网络_第9张图片                                                                                                                如上图所示A向B发送数据,B告诉A接受窗口rwnd=400,每个报文段长为100字节,初始值seq=1, ACK确认字段有效,ack确认字段的值。接收方主机B进行了三次流量控制,第一次把窗口设置为300 ,第二次100 ,最后一次为 0,即不允许发送方再发送数据的状态。但是当某个ACK报文丢失了,就会出现A等待B确认,并且B等待A发送数据的死锁状态。为了解决这种问题,TCP引入了持续计时器(Persistence timer),当A收到rwnd=0时,就启用该计时器,时间到了则发送一个1字节的探测报文,询问B是很忙还是上个ACK丢失了,然后B回应自身的接收窗口大小,返回仍为0(A重设持续计时器继续等待)或者会重发rwnd=x。

10.MVC模型结构

实现web系统的职能分工:模型——用于处理应用程序数据逻辑部分(数据库存取数据);视图——应用程序中处理数据处理部分(依据数据模型创建);控制——应用程序中处理数据处理部分(负责从视图读取数据,控制用户输入,并向模型发送数据);

MVC框架:JSP + servlet + javabean的模式;

11.TCP套接字编程与通信

12.几种命令

Ping:用来发送ping命令的,通常查看线路是否通畅;工作于应用层,直接使用网络层的ICMP协议;

Ipconfig: 可以获得本机的IP地址

Tracert:是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径;

Winipcfg: 是用于显示用户所在主机内部IP协议的配置信息;

13.其他

负载均衡:当一台服务器无法支持大量的用户访问时,将用户分摊到两个或多个服务器上的方法叫负载均衡;负载均衡的方法,如:Nginx负载均衡、LVS-NAT、LVS-DR等。

NginxNginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。Nginx有4种类型的模块:core、handlers、filters(负责执行一系列过滤操作的模块)、load-balancers(负责负载均衡的模块)。

浏览器渲染

  1) 浏览器根据页面内容,生成DOM Tree。根据CSS内容,生成CSS Rule Tree(规则树)。调用JS执行引擎执行JS代码。

  2) 根据DOM Tree和CSS Rule Tree生成Render Tree(呈现树)

  3) 根据Render Tree渲染网页;

14.长连接与短链接的区别

长连接:指建立SOCKET连接后不管是否使用都保持连接,但安全性较差,连接->传输数据->保持连接 -> 传输数据-> ………..->直到一方关闭连接,多是客户端关闭连接;例如:HTTP1.1增加了持久连接支持(貌似最新的HTTP1.1可以显示的指定 keep-alive),但还是无状态或者不可以信任的、数据库的连接用长连接、smtp,pop3,telnet、网络游戏应用。多用于操作频繁,点对点的通讯,而且连接数不能太多情况

短连接:指SOCKET连接后,发送接收完数据后马上断开连接,连接——传输数据——关闭连接,例如:HTTP1.0)是无状态的的短链接,WEB网站的http服务一般都用短链接;

HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接;

15.http协议(方法、区别、组成、状态码)

http协议的特点:简单快速(直接输入URL,访问资源)、灵活(HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记)、无连接(每次连接只能处理一个请求,服务器处理完客户的请求,并收到客户应答后,断开连接,该传输方式可节省时间)、无状态(协议对于事务处理没有记忆功能);

http报文组成:

校招知识点总结篇之计算机网络_第10张图片

http方法:POST——传输实体内容资源,GET——获取资源,PUT——更新资源,HEAD——获得报文首部,DELET——删除文件;

  • 注:get和post区别:

GET在浏览器回退时是无害的,而POST会再次提交请求;  

GET产生的URL地址可以被Bookmark,而POST不可以;  

GET请求会被浏览器主动cache,而POST不会,除非手动设置;  

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留;  

GET请求在URL中传送的参数是有长度限制的(2kb不同浏览器会有所不同),而POST没有;  

对参数的数据类型,GET只接受ASCII字符,而POST没有限;  

GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息;

GET参数通过URL传递,POST放在Request body(请求主体);

GET请求只能进行url编码 -- encodeURIComponent(),而POST支持多种编码方式;

POST数据的格式与查询字符串格式相同,如果需要将页面中表单的数据进行序列化,然后再通过 XHR 发送到服务器,可以使用 serialize()函数来创建这个字符串,也就是表单序列化;

http状态码:1xx——指示信息,请求正在处理中;2xx——请求成接受正常(200 ok,206 部分内容响应);3xx——重定向,需要进行附加操作才算完成请求(301 永久重定向,302临时重定向,304 缓存);4xx——客户端错误(400 客户端语法错误,401请求授权失败,403请求不允许 Forbidden资源禁止被访问,404没有发现文件、查询或者URL);5xx——服务端错误(500服务端不可预计的错误,501服务器端在执行请求时发生了错误,此时服务器并没有正常工作503服务器不能处理客户端的请求、临时过载和当机504服务器没连上505服务器不支持或拒绝支请求头中指定的HTTP版本);

你可能感兴趣的:(校招篇)