程序员面试笔试宝典学习记录(四)(网络相关知识)

  网络模型:

    

    C/S和B/S的区别,主要以下部分:

    (a)硬件要求不同,C/S一般建立在专用的网络上,是小范围的网络环境;而B/S一般构建在广域网上,不需要专门的网络硬件环境,只要能够接入网络即可。B/S架构应用中,客户端只需要能够运行浏览器即可。 

    (b)架构要求不同,C/S程序更加注重流程,需要对权限多层次校验,对系统运行速度可以较少考虑。而B/S对安全以及访问速度需要多重的考虑,建立在需要更加优化的基础之上,比C/S有更高的要求。

    (c)安全要求不同,C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统适宜采用C/S架构,可以通过B/S发布部分可以公开的信息。B/S架构在广域网之上,对安全的控制能力较弱。

    (d)系统维护不同,C/S程序由于整体性导致升级比较困难。B/S基于构件组成,只需要进行构建局部的更换就可以实现系统的无缝升级。

    (e)软件重用性不同,C/S程序的重用性不如B/S架构下的构建的重用性好。

    (f)用户接口不同。

    MVC模型

    (a)低耦合性

    (b)高重用性和高适用性

    (c)较低的生命周期成本

    (d)部署快速

    (e)可维护性

    (f)有利于软件工程化管理

    集线器(HUB)工作在物理层,交换机工作在数据链路层,利用MAC地址寻址,路由器工作在网络层,利用IP地址寻址。

    路由表分为静态路由信息表和动态路由信息表。

    TCP和UDP的主要区别:

    (a)TCP是面向连接的传输控制协议,UDP提供的是无连接的数据报服务。

    (b)TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序,UDP在传输数据前不需要建立连接,不对数据报进行检查和修改,无需等待对方应答,所以会出现分组丢失,重复,乱序,应用程序需要负责传输可靠性方面的所有工作。

    (c)TCP对系统资源要求较多,UDP对系统资源要求较少。

    (d)UDP具有较好的实时性,工作效率较TCP高。

    (e)UDP的段结构比TCP的段结构简单,网络开销较小。

    TCP的三次握手和四次断开。

    三次握手:首先发送客户端发送SYN同步信息,当服务端收到SYN同步信息之后发送SYN_ACK确认信息(即该信息包含ACK信息和SYN同步信息),所以当客户端再次收到服务端的SYN同步信息之后,再次发送ACK确认信息即创建连接,客户端和服务端进入连接状态。

    四次断开:断开的时候因为服务端收到客户端的FIN请求信息之后,不能同时发送ACK确认信息和FIN退出信息,因为这个地方所以断开4次,而连接使用3次。因为此时无法确定是否还有信息需要发送客户端,所以发送完ACK确认信息之后,无信息发送之后再次发送FIN服务端退出信息,客户端收到FIN之后发送ACK信息,服务端收到进入CLOSED状态,客户端超时进入CLOSED状态。

    ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,它用于映射计算机的物理地址与网络的IP地址。

    RARP与ARP工作方式相反,RARP发出要反向解析的物理地址并希望返回其对应的IP地址,应答包括由能够提供所需信息的RARP服务器发出的IP地址。

    ping程序使用的是ICMP协议(属于网际层的协议)

    一个常见的面试题目是详细描述一下当在浏览器输入URL后到返回网页的这个过程,具体参考这个地方,内容非常的详细。

    Socket的基本编程方法(TCP模型)

    

都是一些比较基础的知识,关于网络编程中的非阻塞IO和异步IO,此书中也未涉及。

原文地址:https://www.cnblogs.com/yfzhang/p/3939086.html