非常经典的笔试题。
2.网络编程(29道)
2.1列举一下OSI协议的各种分层。说说你最熟悉的一层协议的功能。
( 1 )七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理
层。
( 2 )五层划分为:应用层、传输层、网络层、数据链路层、物理层。
( 3 )四层划分为:应用层、传输层、网络层、网络接口层。( TCP/IP 协议对应模型)
( 4 )各层功能:
应用层 :在实现多个应用进程相互通信的同时,完成一系列业务处理所需的服务,比如电子邮件、文件传输、远程登录等。
传输层 :为通信双方的主机提供端到端的服务,有两个不同的传输协议TCP 和 UDP ,TCP提供可靠交付,而 UDP 并不能保证可靠交付。
网络层 :处理分组在网络中的活动,例如分组的选路。
网络接口层 :处理与电缆(或其他任何传输媒介)的物理接口细节。
2.2 TCP/IP协议包括?
应用层 :Telnet(远程登录服务)、 FTP (文件传输,使用 TCP )、 SMTP (建立于FTP上的邮件服务)、DNS(域名与IP地址相互转换)等
传输层 :UDP(无连接、不可靠)、 TCP (面向连接、可靠传输)
网络层 :IP(为主机提供一种无连接、不可靠、尽力而为的数据服务)、 ICMP (主机与路由器之间传递控制信息)、IGMP (主机与路由器之间进行组播成员信息交互)
网络接口层 :ARP( IP 地址 -> MAC 地址)、 RARP ( MAC 地址 -> IP 地址)等
2.3 TCP通信建立和释放的过程?端口的作用?
( 1 )连接是三次握手,释放是四次挥手。
( 2 )端口是一个软件结构,被客户进程或服务进程用来发送和接收信息。一个端口
对应一个 16 比特的数。服务进程通常使用一个固定的端口。
2.4 IP地址转换成物理地址的协议?反之?
答案:
( 1 )将 IP 地址转换成物理地址的协议是 ARP (地址解析协议)。
( 2 )反之则是 RARP (反地址解析协议)。
解读:
( 1 ) ARP 协议工作流程:
①首先,每台主机都会在自己的 ARP 缓冲区 ( ARP Cache ) 中建立一个 ARP 列表,以
表示 IP 地址和 MAC 地址的对应关系。
②当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP 列表中是否
存在该 IP 地址对应的 MAC 地址,如果有﹐就直接将数据包发送到这个 MAC 地址;如果
没有,就向本地网段发起一个 ARP 请求的广播包,查询此目的主机对应的 MAC 地址。
此 ARP 请求数据包里包括源主机的 IP 地址、硬件地址、以及目的主机的 IP 地址。
③网络中所有的主机收到这个 ARP 请求后,会检查数据包中的目的 IP 是否和自己的 IP
地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的 MAC 地址
和 IP 地址添加到自己的 ARP 列表中,如果 ARP 表中已经存在该 IP 的信息,则将其覆
盖,然后给源主机发送一个 ARP 响应数据包,告诉对方自己是它需要查找的 MAC 地
址;
④源主机收到这个 ARP 响应数据包后,将得到的目的主机的 IP 地址和 MAC 地址添加到
自己的 ARP 列表中,并利用此信息开始数据的传输。如果源主机一直没有收到 ARP 响
应数据包,表示 ARP 查询失败。
( 2 ) RARP 协议工作流程:
①网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的 MAC
地址。 PC1 从网卡上读取 MAC 地址,然后在网络上发送一个 RARP 请求的广播数据
包,请求 RARP 服务器回复该 PC 的 IP