网络编程作业

42 篇文章 0 订阅
39 篇文章 0 订阅

一.常见网络编程面试题目

1.简述 OSI 七层协议。

  • 应用层:与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的.一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。
  • 表示层:这一层的主要功能是定义数据格式及加密.
  • 会话层:它定义例如何开始控制、和结束一个会话,包括对多个双向消息的控制 和管理。以便在只有完成连续消息的一部分时可以通知应用,从而使表示层看到的数据时连续的,在某些情况下,如果表示层收到了所有数据,则用数据代表表示层。示例:RPC,SQL等。
  • 传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
  • 网络层:这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
  • 数据链路层:它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
  • 物理层:OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。

2、 简述 TCP/IP 四层协议。

  1. 链路层:链路层有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。把链路层地址和网络层地址联系起来的协议有ARP(Address Resolution Protocol,地址解析协议)和RARP(Reverse Address Resolution Protocol,逆地址解析协议)。
  2. 网络层:网络层处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(Internet Protocol,网际协议)、ICMP协议(Internet Control Message Protocol,网际控制报文协议)和IGMP协议(Internet Group Management Protocol,网际组管理协议)。
  3. 传输层:传输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。
  4. 应用层:应用层负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:Telnet远程登录、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、FTP(File Transfer Protocol,文件传输协议)、HTTP(Hyper Text Transfer Protocol,超文本传输协议)

3、TCP 和 UDP 的区别是什么?
UDP:无连接、面向数据报、不可靠、每一个数据报都是一个独立的信息、效率较高
TCP:面向连接、可靠的、基于字节流的传输层协议、效率较低、有流量控制、有阻塞控制
4、TCP 连接建立的时候 3 次握手的具体过程,以及其中的每一步是为什么?

  1. 客户端向服务端发送连接请求时会同步的发送SYN到服务器,此时客户端状态为:SYN_SENT
  2. 服务端收到客户端发来的SYN后,会向客户端发送一个确认包ACK。同时也会向客户端发送SYN包。此时服务端的状态为SYN_RECV.
  3. 客户端收到服务端发送的SYN和ACK时,向服务端发送确认包ACK,发送完成后,客户端与服务端的状态为:ESTABLISH,即连接完成。

5、TCP 断开连接的具体过程,其中每一步是为什么那么做?
TCP断开时有4步分手:例:A端向B端请求断开

  1. A端向B端发送一个带有标识的FIN
  2. B端收到后先向A端发送一个确认序号ACK。
  3. 发送完确认序号后并且B端传输已经完成时,在向A端发送FIN序号
  4. A端接收到B端发送的FIN序号后在向B端发送一个确认序号ACK。经过两个MSL后断开连接

6、TCP 的十一种状态?

LISTEN服务端listen,accept时的状态
SYN_RECV收到SYN后的状态
SYN_SENT发送SYN后的状态
ESTABLISH建立连接,对应三次握手后
FIN_WAIT1调用close,发送FIN后的状态
FIN_WAIT2收到FIN对应ACK的状态
-CLOSING同时关闭,发送FIN后收到FIN
TIME_WAIT四次分手后,进去套接字维持状态
CLOSE_WAIT收到FIN后
LAST_ACK应请求,关闭写端后

7、什么是 socket?简述基于 tcp 协议的套接字通信流程。

  1. socket(简称套接字) 是进程间通信的⼀种⽅式, 能实现不同主机间的进程间通信,我们⽹络上各种各样的服务⼤多都是基于 Socket 来完成通信的。
  2. 服务端:socket()–>bind()–>listen()–>accept()–>read()–>process\request–>write()–>close()
  3. 客户端:socket()–>connect()–>read()–>close()

8、udp协议的套接字通信流程

  • 服务端:socket()–>bind()–>recvfrom()–>sendto()
  • 客户端:socket()–>sendto()–>recvfrom()–>close()

9、TCP 为什么不是两次连接?而是三次握手?
服务端与客户端都发送了两个包,只不过服务端需要两次发送,而客户端需要一次发送。所以必须要i三次才可以完成。
10、为何基于 tcp 协议的通信比基于 udp 协议的通信更可靠?
数据传送的过程中难免有会有数据的丢失、延迟、错误等。
在TCP协议中ACK机制就很好的解决了这个情况。每次发送后服务端都会返回一个ACK确认。如果没有收到正确的ACK,就会重新发送直到接收正确的ACK为止。
11、网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?

  • 使用多进程设计并发器时不能有太多,因为每一次创建的时候都需要i较大的资源。
  • 多线程在同一个进程中数据共享也非常高效快捷。

12、大规模连接上来,并发模型怎么设计?
可以使用Pool提供指定数量。

二、常见笔试题目

1、TCP/IP体系中运输层最重要的协议之一是:UDP
2、DNS服务的作用是:

  • 将主机名翻译到指定的IP地址
  • 将IP地址反解成主机名
  • 解析特定类型的服务地址,如:MX,NS

3、在无连接系统中,正确的是

  • 发送数据包之前联系目的设备

4、IP地址是一个32为的二进制,它通常采用点分:十进制
5、服务与协议是完全不同的两个概念,下列说法正确的有:

  • 协议是水平的,即协议是控制对等实体间通信的规则。服务是垂直的,即服务是从下层向上层通过层间接口提供的。
  • 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议还需要使用下面一层所以提供的服务
  • 协议的实现保证了能够向上一层提供服务

6、TCP协议正确的有:

  • 面向连接
  • 可靠交付
  • 报文头部长,传输开销大

7、为了保证可靠性,TCP通常采用:

  • 3次握手

8、计算机通过(端口号)确定应用程序、
9、当建立连接时,数据包发送的正确顺序是:

  • SYN,SYN+ACK,ACK

10、会话层是七层协议中的第三层
11、TCP协议使用三次握手建立连接后,设双方发送初始序号分别为X,Y 甲方发送帧为SYN=1,Seq=X的报文给乙方,则乙方接受报文后发送()给甲方,甲方发送一个确认报文给乙方后便建立连接:

  • SYN=1,Seq=X+1,AN=Y

12、ip地址192.1.1.2属于C类,其默认的子掩码为:255.255.255.0
13、将物理地址转换为IP地址的协议是:RARP
将IP地址转换为物理地址的协议是:ARP
14、

  • Netstat命令可以用来查看TCP和UDP连接状态
  • ping:检查网络是否连通,可以分析和判定网络故障。
  • lpconfig:显示IP地址、子网掩码和缺省网关值
  • Nslookkup:查询DNS的记录,查看域名解析是否正常,子阿网络故障的时候用来诊断网络问题

15、网络协议主要要素是:语法、语义、定时。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值