作者:饮娃_456 | 来源:互联网 | 2023-08-18 08:27
一、什么是计算机网络?网络的主要类型有哪些; 答: 计算机网络是将不同地理位置的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
网络的主要类型: 一、网络的地理覆盖范围分: A、局域网: 1、属于一个组织,一个单位或一个部门所有。 2、网络一般不对外提供公共服务,管理方便,安全保密性高。 3、组建方便,投资少,见效快,使用灵活应用最普遍的计算机网络. B、城域网: 1、一般是一个地区或一个城市 C、广域网: 1、小到一个地区,一个城市,大到一个国家,几个国家乃至全世界 2、提供大范围的公共服务。因特网就是典型的广域网。 3、与局域网相比,广域网投资大,安全保密性差,传输速率慢。
二、按计算机网络的线路结构分: A、总线型 1、 该结构采用一条公共总线作为传输介质,每台计算机通过相应的 硬件接口入网。信号沿总线进行广播式传送 2、是典型的共享传输介质的网络。从信源所发的信息会传送到介质 长度所及之处,被其他所有站点看到。如果有两个以上的节点同 时发送数据,可能会造成冲突,就像公路上的两车相撞一样。 优缺点: 优点:布线容易;增删容易;节约电缆; 缺点: 1、任何两个站点传送信息都要经过总线,总线称为传输瓶颈; 当计算机站点多时,容易造成信息阻塞,传递不畅。 2、一台计算机接入总线的接口发生故障,会造成整个网络瘫痪。 3、当网络发生故障时,故障诊断和隔离困难。 B、星型 由一台中央节点和周围的从节点组成。中央节点和从节点可以直接 通信,而从节点必须经过中央节点转接才能通信。 优缺点: 优点: 1、可靠性高。每台计算机及其接口的故障不会影响其他计算机,不会影响整个网络,也不会造成网络瘫痪。 2、故障诊断和隔离容易,网络容易管理和维护。 3、可扩性好,配置灵活。增删改一个站点容易实现,和其他计算机没有关系 4、传输速率高。每个节点独占一条线路,消除了信息阻塞的情况。而总线和环形网络的瓶颈都在线路上。 缺点: 1、线缆使用量大。 2、布线、安装工作量大。 3、网络可靠性依赖于中央节点。如交换机或集线器选择不当,发生故障 会造成全网瘫痪。 C、环型 1、计算机通过硬件接口入网,这些接口首尾相连成一条链路。信息传送 也是广播式的,沿着一个方向(如逆时针方向)单向逐点传送。 优点: 点到点且沿一个方向单向传输,非常适合用光纤作为传输介质。 1、传输距离远,适合做主干网。 2、故障诊断容易定位。 3、初始安装容易,线缆用量少。环形线路也是一条总线,只是首尾封 闭。
三、按传输介质分: A、有线网络 1、同轴电缆:成本低,安装方便,但传输率低,抗干扰能力一般, 传输距离短 2、双绞线:组建局域网时常用,优缺点类似于同轴电缆。 3、光纤:主要用于网络的主干部分,其特点是成本高,安装技术要 求高,传输距离长,传输率高,抗干扰能力强,且不会受到电子 监听设备的监听等,是组建高安全性网络的理想选择。 B、无线网络 1、红外线; 2、微波; 3、无线电;
二、常见的网络分层模型有哪两个?哪个更流行?为什么? 答: 1、OSI/ISO 参考模型 OSI:(Open System Interconnection),开放式网络互连; ISO:(International Standard Organization),国际标准化组织; OSI 参考模型把网络模型分成7层,每一层为上一层提供服务,并为其上一层 提供一个访问接口或界面。 因OSI模型设计得过于庞大、复杂,不易应用;于是TCP/IP协议栈获得了更为广泛的应用。
2、TCP/IP 协议栈:4 层网络模型.
三、请说出 TCP 和 UDP 的区别? 答: TCP: 一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议 特点: 1、面向连接; 2、点到点的通信; 3、高可靠性;
UDP: 一种无连接的、提供面向事务的简单不可靠信息传送服务的传输层通信协 议 特点: 1、非面向连接; 2、传输不可靠,数据容易丢失; 3、发送不管对方是否准备好,接收方收到也不确认; 4、可以广播发送; 5、非常简单的协议,开销小;
四、详细描述 TCP 的机制; 答: 1、客户端发送连接请求给服务器端,等候服务器端确认; 2、服务器端收到客户端发来的请求,向客户端发送确认连接信息; 3、客户端接到服务器端发送来的确认连接信息,也要向服务器端再发送 一次确认连接信息。客户端和服务器端进入准备传送数据状态。
五、IP 的全称是? IP 的作用是?: 答: IP: Internet Protocol address,互联网协议地址 IP 地址是 IP 协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址。 作用: 用来标志网络中的一个通信实体的地址.
六、为什么需要端口?端口是真实存在的还是虚拟的概念? 答: 1、 IP 地址用来标志一台计算机,但是一台计算机上可能提供多种网络应用程序,使用端口来区分这些应用程序。 2、端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。 3、端口范围 0—65535。
七、 UDP 和 TCP 端口是各自独立的吗? 答: TCP/IP 传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立。
八、 URL 类有什么作用? 答: 1、URL:Uniform Resource Locator,统一资源定位器;俗称“网址” 2、由 4 部分组成: 协议: http; 存放资源的主机域名:www.baidu.com; 端口号:8080; 资源文件名: index.html; 3、URL 是指向互联网“资源”的指针。
九、【编程题】网络对话编程。
public class MySocket { Socket socket= null ; BufferedReader bufferedReader= null ; PrintWriter printWriter = null ; BufferedReader bufferedReader1 = null ; public MySocket ( ) { try { System . out. println ( "等待发送.............." ) ; socket = new Socket ( "127.0.0.1" , 65535 ) ; bufferedReader = new BufferedReader ( new InputStreamReader ( System . in) ) ; String str = bufferedReader. readLine ( ) ; printWriter = new PrintWriter ( socket. getOutputStream ( ) ) ; bufferedReader1 = new BufferedReader ( new InputStreamReader ( socket. getInputStream ( ) ) ) ; while ( true ) { printWriter. println ( str) ; printWriter. flush ( ) ; str = bufferedReader1. readLine ( ) ; System . out. println ( "客户收到" + str) ; str = bufferedReader. readLine ( ) ; } } catch ( Exception e) { e. printStackTrace ( ) ; } finally { try { bufferedReader1. close ( ) ; printWriter. close ( ) ; bufferedReader. close ( ) ; socket. close ( ) ; } catch ( IOException e) { e. printStackTrace ( ) ; } } } public static void main ( String [ ] args) { new MySocket ( ) ; } } public class MyServerSocket { ServerSocket serverSocket = null ; Socket socket = null ; BufferedReader bufferedReader = null ; BufferedReader bufferedReader1 = null ; PrintWriter printWriter = null ; public MyServerSocket ( ) { try { serverSocket = new ServerSocket ( 65535 ) ; System . out. println ( "等待请求............" ) ; socket = serverSocket. accept ( ) ; String str; bufferedReader = new BufferedReader ( new InputStreamReader ( socket. getInputStream ( ) ) ) ; bufferedReader1 = new BufferedReader ( new InputStreamReader ( System . in) ) ; printWriter = new PrintWriter ( socket. getOutputStream ( ) ) ; while ( true ) { str = bufferedReader. readLine ( ) ; System . out. println ( "服务器" + str) ; str = bufferedReader1. readLine ( ) ; printWriter. println ( str) ; printWriter. flush ( ) ; } } catch ( Exception e) { e. printStackTrace ( ) ; } finally { try { printWriter. close ( ) ; bufferedReader1. close ( ) ; bufferedReader. close ( ) ; socket. close ( ) ; serverSocket. close ( ) ; } catch ( IOException e) { e. printStackTrace ( ) ; } } } public static void main ( String [ ] args) { new MyServerSocket ( ) ; } }