1 网络模型
1.1 OSI七层模型--Open System Interconnection
七层网络模型称为开放式网络互参考模型,由下到上分为:物理层,数据链路层,网络层、传输层、会话层、表示层和应用层。上三层用于定义应用程序之间的通信和人机界面。下四层用于定义数据间端到端的传输。
应用层
负责确定通信对象,并确保有足够的资源用于通信,是用户与网络的界面。常见协议有:FTP、HTTP、SNMP
表示层
两个通信系统中交互信息的格式。
会话层
不同主机格进程(SYN)会话。负责在网络中的两个结点之间建立、维护、控制会话,区分不同的会话,以及提供单工、半双工、全双工3种通信模式的服务。NFS、RPC、 X Windows等工作在此层。
传输层
负责分割、组合数据、实现端到端的逻辑连接。这一层分割后的数据被称为段(TCP、UPD数据段)。流量控制、差错控制、服务质量、数据传输管理、复用和分用、工作在传输层的一种服务是TCP/IP中的TCP,另一项是IPX/SPX协议集的SPX(序列包交换)常见的传输层协议有TCP、UPD、SPX等。
网络层
网络层将网络地址翻译为物理地址,并决定将数据从发送方路由到接收方,主要负责管理网络地址、定位设备、决定路由、对上层传来的报文进行分组为数据报,进行流量控制、拥塞控制、差错控制和网际互联。路由器就工作在该层。常见的协议有:IP、RIP、OSPF等。
数据链路层
将数据报分装成帧(成帧、流量控制、差错控制、传输管理)主要负责物理传输的准备,包括物理地址寻址、CRC校验、错误通知、网络拓扑、流量控制、重发等。常见的协议有:SDLC、STP、帧中继、HDLC等。
物理层
物理层是实实在在的物理链路,实现比特流的透明传输。
1.2 TCP/IP模型---Transimission Control Protocol/Internet Protocol
TCP/IP模型基于四层参考模型:网络接口层、网际层、传输层、应用层。网络接口层负责底层传输;网络层负责不同计算机之间的通信;传输层负责应用程序间的通信;应用层为用户提供服务。
OSI-TCP/IP对应关系表
OSI七层网络模型 | TCP/IP四层网络模型 | 对应协议 |
应用层 | 应用层 | TFTP FTP NFS WAIS |
表示层 | Telent Rlogin SNMP Gopher | |
会话层 |
| SNTP DNS |
传输层 | 传输层 | TCP UDP |
网络层 | 网际层 | IP ICMP ARP RARP AKP UUCP |
数据链路层 | 网络接口层 | FDDI Ethernet Arpanet PDN SLIP PPP |
物理层 | IEEE802.1A IEEE802.2--IEEE802.11 |
1.3 B/S与C/S区别
· 硬件要求不同。C/S一般建立在专用网络,是小范围网络环境;B/S一般构建在广域网之上。
· 架构要求不同。C/S更注重流程,对系统运行速度可以较少考虑。B/S对安全及访问速度需要多重考虑,建立在需要更加优化的基础之上。
· 安全要求不同。C/S面向相对固定的用户群,对信息安全的控制能力强。B/S建立在广域网之上,面向的用户群不固定,对信息安全控制能力较弱。
· 系统维护不同。 C/S程序由于整体性到值升级比较困难,可能需要重做,而B/S既有构建构成,只需要进行构建局部的更换就可以实现系统的无缝升级,将系统维护开销减小。
· 软件重用性不同。C/S由于整体性,重用性差;B/S的多重结构,要求构建相对独立,重用性好。
· 用户接口不同。C/S是建立在操作系统平台上,表现能力有限;B/S跨平台,建立在浏览器陕个,有更加丰富和生动的表现方式。
1.4MVC模型结构--model+view+control
实现Web系统的职能分工。模型用来是吸纳系统的业务逻辑,通常用JavaBean或BIB来实现;视图层用于与用户的交互;控制层用于模型与视图之间沟通的桥梁。
1) 低耦合性
2) 高重用性和可适应性
3) 较低的生命周期成本
4) 部署快速
5) 可维护性
6) 有利于软件工程化管理
2 网络设备
2.1 交换机与路由器
交互机是一种基于MAC识别,能完成封装转发数据包功能的网络设备。它具有流量控制能力,常用于组建局域网。
路由器是连接Internet中各局域网、广域网的网络设备。它是网络的枢纽,是组成广域网的一个重要部分,用于为数据包找到最合适的到达路径。
具体区别:
1) 工作层次不同。交换机工作在数据链路层;路由器在网络层
2) 数据转发所依据的对象不同。交换机是利用物理地址来确定转发数据的目的地址,而路由器则是利用IP地址来确定数据转发的地址。
3) 传统的交换机智能分割冲突域,不能分割广播域。而路由器可以分割广播域。
4) 交换机负责同一网段的通信,路由器负责不同网段的通信。路由器可以防止广播风暴。、
2.2 集线器与交换机的区别
集线器实际上是一个中继器,它与网卡、双绞线等传输介质一眼个,是数据通信系统中的设备,工作在物理层,对接收到的信号进行放大,同时把所有结点集中在以它为中心的结点上。
它与交互机的区别:
1) 工作位置不同。集线器工作在物理层,交互机工作在数据链路层
2) 工作方式不同。集线器是一种广播模式,当集线器的某个端口工作是,其他所有端口都可以收到信息,容易产生广播风暴,并且每一时刻只有一个端口发送数据,而且基线器的安全性不好,所有网卡都会接收到它发送的数据,只是非目的地网卡会丢弃接收到的数据。当交换机工作的时候,只有发出请求的端口和目的端口之间互相响应而不影响其他端口,因此交换机能够分割冲突域,有效的抑制广播风暴。
3) 带宽不同。不管有多少端口,集线器的所有端口都是共享一条带宽,同一时刻只能有两个端口传送数据,其他端口只能等待,同时集线器工作在半双工模式下;交换机每个端口都有一条独占的带宽,当两个端口工作时不影响其他端口工作,同时交换机不但可以在半双工模式下工作,也支持全双工模式。
4) 性能不同。交换机一MAC地址寻址,有额外的开销;集线器以广播方式传输数据,流量小时性能下降不明显,适合共享总线型结构的局域网。
2.3路由表
路由表时值路由器或者其他互联网网络设备上存储的表,它决定如何将包从一个子网传递到另一个子网,该表中存有到达特定网络终端的路径。路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传递到目的站点。
路由表分为静态路由表和动态路由表,静态路由表网络管理员手动配置,是私有的,当网络结构发生改变时,需要手动更改。动态路由是指路由器能够自动地建立自己的动态路由表,并且能够根据实际情况的变化时时地进行调整。
3 网络协议
3.1TCP与UDP的区别
UPD提供无连接的通信,不能保证数据报被发送到目标地址,典型的即时传输少量数据的应用程序通常使用UDP。TCP是一种面向连接的、可靠的、基于字节流的通信协议,它为传输大量数据或为需要接收数据许可的程序提供连接定向和可靠的通信。
TCP与UDP的区别:
1) TCP面向连接;UDP无连接
2) TCP具有高可靠性,保证传输数据的正确性,不出现乱序或丢失;UDP传输数据前不建立连接,不对数据报进行检查与修改,无需等待对方的应答,所以会出现分组丢失、重复、乱序
3) TCP对系统资源要求多;UDP对系统资源要求少
4) UDP具有较好的实时性,工作效率高于TCP
5) UDP的段结构比TCP简单,因此网络开销少。 TCP 通常与IP一起,注意IP不保证数据传输的可靠性
3.2 三次握手和四次断开
三次握手
1 建立连接,客户端发送SYN包(例如SEQ=100)该服务器,进入SYN_SEND状态,等待服务器的确认。
2 服务器收到SYN,发送ACK=101给客户端,同时发送SYN包(例如序列号SEQ=300)等待客户端确认,进入SYN_RECV状态
3 客户端收到SYN+ACK,项服务器发送确认包ACK=301,该包发送完毕后,客户端和服务器端进入ESTABLISHED,两者可以开始进行数据交换。
采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。
四次断开
由于TCP是全双工的,因此每个方向上都必须单独进行关闭。
1 客户端发送数据完毕后,发送一个FIN,提出断开连接的要求
2 服务器收到该FIN后对其进行响应,发送一个ACK包,确认这一方的连接将关闭。
3 服务器准备关闭,发送一个FIN给客户端,请求关闭连接
4 客户端对服务器发送的请求进行确认,并发送ACK
3.3 ARP和RARP
ARP--Address Resolution Protocol,用于映射计算机网络的物理地址与网络IP地址。在主机发哦送你个帧前,根据目标IP地址获取MAC地址,以确保通信过程的顺畅。
ARP请求数据包里包括源主机的IP地址、硬件地址以及目标主机的IP地址。广播查找。
RARP与ARP工作方式相反,RARP发出要反向解析的物理地址,并希望返回其对应的IP地址。
3.4 IP Phone
IP电话是通过互联网或其他使用IP技术的网络来实现电话通信的。它建立在IP技术上的分组化、数字化传输技术基础之上。其原理是通过语音压缩算法对语音数据进行压缩编码处理,然后把这些语音数据按IP等相关协议进行打包,经过IP网络把数据包传输到接收方,再报这些语音数据包串起来,经过解码解压处理后,恢复成原来的语音信号,从而达到由IP网络传送语音的目的。VIOP(Voice Over Internet Protocol)使用的协议有H.323协议簇、SIP、Skype协议、H.248和MGCP
3.5Ping命令
Ping是一个用于测试网络连接量的程序。它使用的是ICMP,Ping发送一个ICMP(因特网控制报文协议)请求消息个目的地并报告是否收到所希望的ICMP应答。
3.6 基本的HTTP流程
HTTP超文本传输协议,负责服务器与浏览器之间的通信。包括以下几个步骤
1 打开HTTP连接
2 初始化方法请求
3 设置HTTP请求头(包含传输的数据类型和数据长度)
4 发送请求
5 读取请求
6 调用方法
7 初始化响应方法
8 设置HTTP响应头 (响应头中设置待发送的数据类型与长度)
9 发送响应
10 关闭连接
4 网络编程
4.1 Socket编程
Socket在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信,应用程序在网络上传输、接收的信息都是通过这个Socket接口来实现的。
Socket通信原理:服务器端实现监听连接,客户端实现发送连接请求,建立连接后,发送和接收数据进行通信。
4.2阻塞模式和非阻塞模式的区别
1) 发送操作:阻塞模式:内核将应用进程的缓冲区向该套接字的发送缓冲区复制数据。对于阻塞的套接字,如果其发送缓冲区中没有空间,进程将挂起,知道有空间为止。非阻塞模式,如果其发送缓冲区中没有空间,发送函数调用将立即返回一个EWOULDBLOCK错误。
2) 接收操作:当套接字的接收缓冲区中没有数据可读,该进程将被挂起,直到有数据。非阻塞模式,如果接收操作不能被满足,相应的调用将立即返回一个EWOULDBLOCK错误。
5 其他问题
5.1常用的网络安全防护措施有哪些?
网络安全是指“在一个网络环境里,为数据处理系统建立和采取的技术与管理的安全保护,利用网络管理控制和技术措施保护计算机软件、硬件数据不因为偶然或恶意的原因而遭到破坏、更改和泄露”。常见的网络安全防护措施有加密技术、验证码技术、认证技术、访问控制技术、防火墙技术、网络隔离技术、入侵检测技术、防病毒技术、数据备份与恢复技术、VPN技术、安全脆弱性扫描技术、网络数据技术、备份及容灾规划等
5.2 什么是SQL注入式攻击
所谓SQL注入式攻击就是攻击者把SQL命令插入到Web表单的域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。
由于SQL注入的语句利用的是合法的SQL语句,使得这种攻击不能被防火墙检测出来,且注入的SQL语句对任何基于SQL语言的数据库都有效,所以SQL注入危害非常大,基于目前也提出了非常多的防范措施:
1) 在利用表单输入的内容构造SQL语句前对用户输入进行验证和替换。
2) 避免使用解释程序,攻击者一般借以执行非法命令。
3) 对查询字符串、用户登录名称、密码等进行加密处理
4) 删除用户输入内容中的所有连字符,防止攻击者顺利获得访问权限。
5) 对于用来执行查询的数据库账户,限制其权限
6) 用存储过程来执行查询
7) 检查用户输入的合法性,却行输入的内容只包含合法的数据。
8) 检查提取数据的查询所返回的记录数量。
5.3 电路交换、报文交换、分组交换的区别
电路交换
特点:面向连接(一定是物理连接),
过程:建立连接,传输数据,断开连接
优点:在通信过程中可以保证为用户提供足够的带宽,并且实时性强,时延小,交换设备成本低。
缺点:网络的带宽利用率低,一旦电路被建立不管通信双方是否处于通话状态,分
配的电路都一直被占用。
报文交换
特点:将报文作为传送单元,采用存储转发机制
优点:无需建立连接
缺点:由于报文长度差异大,长报文可能导致很大的时延,并且对每个结点来说缓冲区的分配也比较困难,需要按需分配,否则就有可能造成数据传输失败。
分组交换
特点:将较长的报文化为较短的 “固定” 长度的数据块。划分的数据块分为首部+数据段,首部包含源地址和目的地,首部的作用:作为转发的依据。
优点:高效动态,由交换结点决定。灵活迅速、可靠(自适应路由选择协议)
缺点:额外开销(排队,存储转发),如果遇到拥塞比较严重的情况,等待转发可能导致很长的时延,甚至会造成数据分组丢失。
注意:因特网在网络层用数据报进行分组交换
5.4数据报与虚电路
对比方面 | 虚电路 | 数据报 |
思路 | 可靠性由网络保证 | 可靠性由用户主机保证 |
连接 | 必须有 | 不需要 |
目的地地址 | 仅在连接建立阶段使用,每个分组使用较短的虚电路号 | 每个分组都有目的站的全部地址 |
分组的转发 | 属于同一个虚电路的分组均按同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出现故障时 | 所有通过故障的结点的虚电路均不能正常工作 | 故障结点可能丢失分组,一些路由可能发生改变 |
分组的顺序 | 总是按顺序到达目的地 | 不按序 |
端到端的差错控制和流量控制 | 可以由分组交换网负责也可以由用户主机负责 | 由用户主机负责 |
9.6 相比IPV4,IPV6有什么优点
随着互联网的高速发展,IPV4定义的有限地址空间将被耗尽,地址空间的不足必将妨碍互联网的进一步发展。
IPV6采用128位地址发展,几乎可以不受限制的提供地址。IPV6不仅解决了地址短缺的问题,它还考虑了在IPV4中存在的端到端IP连接、服务质量、安全性、多播、移动性、即插即用等。
相比IPv4,IPv6的主要优点有
1) 更大的地址空间
2) 更小的路由表
3) 增强的组播支持以及对流的支持
4) 更高的安全性