网络编程面试系列-01

1. 应用层中常见的协议都有哪些?

应用层协议(application layer protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文。

应用层协议

1)DNS:一种用以将域名转换为IP地址的Internet服务,域名系统DNS是因特网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。

现在顶级域名TLD分为三大类:国家顶级域名nTLD;通用顶级域名gTLD;基础结构域名。

域名服务器分为四种类型:根域名服务器;顶级域名服务器;本地域名服务器;权限域名服务器。

2)FTP:文件传输协议FTP是因特网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。

基于客户服务器模式,FTP协议包括两个组成部分,一是FTP服务器,二是FTP客户端,提供交互式的访问面向连接,使用TCP/IP可靠的运输服务,主要功能:减少/消除不同操作系统下文件的不兼容性 。

3)telnet远程终端协议:telnet是一个简单的远程终端协议,它也是因特网的正式标准。又称为终端仿真协议。

4)HTTP:超文本传送协议,是面向事务的应用层协议,它是万维网上能够可靠地交换文件的重要基础。http使用面向连接的TCP作为运输层协议,保证了数据的可靠传输。

5)电子邮件协议SMTP:即简单邮件传送协议。SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。SMTP通信的三个阶段:建立连接、邮件传送、连接释放。

6)POP3:邮件读取协议,POP3(Post Office Protocol 3)协议通常被用来接收电子邮件。

7)远程登录协议(Telnet):用于实现远程登录功能。

8)SNMP:简单网络管理协议。由三部分组成:SNMP本身、管理信息结构SMI和管理信息MIB。SNMP定义了管理站和代理之间所交换的分组格式。SMI定义了命名对象类型的通用规则,以及把对象和对象的值进行编码。MIB在被管理的实体中创建了命名对象,并规定类型。

2. TCP 和 UDP 协议有什么区别?

1)基于连接

TCP是面向连接的协议,而UDP是无连接的协议。即TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。

2)可靠性和有序性

TCP 提供交付保证(Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输),无差错,不丢失,不重复,且按序到达,也保证了消息的有序性。该消息将以从服务器端发出的同样的顺序发送到客户端,尽管这些消息到网络的另一端时可能是无序的。TCP协议将会为你排好序。

UDP不提供任何有序性或序列性的保证。UDP尽最大努力交付,数据包将以任何可能的顺序到达。

TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。

3)实时性

UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

4)协议首部大小

TCP首部开销20字节;UDP的首部开销小,只有8个字节。

5)运行速度

TCP速度比较慢,而UDP速度比较快,因为TCP必须创建连接,以保证消息的可靠交付和有序性,毕竟TCP协议比UDP复杂。

6)拥塞机制

UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低,对实时应用很有用,如IP电话,实时视频会议等。

7)流模式(TCP)与数据报模式(UDP) TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的 。

8)资源占用

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

TCP被认为是重量级的协议,而与之相比,UDP协议则是一个轻量级的协议。因为UDP传输的信息中不承担任何间接创造连接,保证交货或秩序的的信息。这也反映在用于承载元数据的头的大小。

9)应用

每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信 。基于UDP不需要建立连接,所以且适合多播的环境,UDP是大量使用在游戏和娱乐场所。

3. Socket 前后端通信是如何实现服务器集群?

假设有两台A服务器服务S1和B服务器服务S2,应用服务S0

首先你接收客户端(浏览器)请求的服务肯定是单点(一对一)

你可能感兴趣的:(网络)