美文网首页Java网络编程
常见TCP/IP面试题目

常见TCP/IP面试题目

作者: 杰伦哎呦哎呦 | 来源:发表于2018-06-18 23:04 被阅读99次

    TCP/IP协议的工作流程如下:

    ●在源主机上,应用层将一串应用数据流传送给传输层。

    ●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。

    ●在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。

    ●链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。

    ●在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。

    ●网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。

    ●传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。

    ●在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

    第一套:

    网络基础知识考查

    日期:2008/3/3

    姓名:Amxking

    一,基础部份

    1、OSI的中文全称是( 国际标准化组织),

    它们分别是( 应用层(Application layer) 表示层(Presentation layer) 会话层(Session layer) 传输层(Transport layer)

    网络层(Network layer) 数据链路层(Data link layer) 物理层(Physical layer) )。

    2、集线器hub工作在OSI参考模型的(物理)层;网卡工作在OSI参考模型的(物理)层;

    路由器router工作在OSI参考模型的(网络)层;交换机Switch工作在OSI参考模型的(数据链路)层。

    3、机器A的IP地址为202.96.128.130,子网掩码为255.255.255.128,则该IP地址的网络号是(202.96.128),

    主机号是(130 )。

    4、ARP的中文意思是(地址解析协议),请用简单语言说明其的工作原理。

      1. 首先,每台主机都会在自己的ARP缓冲区 (ARP Cache)中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。

    2. 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,

    如果有﹐就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的

    主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。

    3. 网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此

    数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP

    的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;

    4. 源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息

    开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

    5、DNS是指(  域名系统Domain Name System)。请用简单语言描述其工作原理。

    当 DNS 客户机需要查询程序中使用的名称时,它会查询 DNS 服务器来解析该名称。

    客户机发送的每条查询消息都包括3条信息,以指定服务器应回答的问题。

      1 指定的 DNS 域名,表示为完全合格的域名 (FQDN) 。

      2 指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型。

      3 DNS域名的指定类别。

    6、TCP和UDP的区别

    TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。

    简单的说,TCP注重数据安全,而UDP数据传输快点,但安全性一般

    7、网关的作用。

    通过它可以访问外网

    二,网络命令

    1、ipconfig的作用是什么?

    显示当前的TCP/IP配置的设置值

    2、运行net share 返回的结果是什么?

    列出共享资源相关信息 如 IPC$

    3、net use 和net user分别是指什么?

    net user 用于用户管理,添加,删除网络使用用户。

    net use 用于网络设备管理,例如添加磁盘

    4、如何在命令行下面查看当前系统开放的服务?

       在命令行下执行net services 命令

    5、除以上命令,还有哪些,请写出你知道的命令。

    taskill

    taslist

    net view显示计算机列表

    netstat

    ftp

    telnet

    三,系统端口及服务

     1、关掉以下服务,会出现什么样的情况,并请说明你的看法。

    Automatic Updates

    不能自动更新

    Plug and Play

    禁用会导致USB不能使用.

    Remote Registry Service

    防范通过浏览网页来修改你的注册表

    Computer Browser

    无法通过该服务维护网络上计算机的最新列表以及提供这个列表给请求的程序。

    2.端口及相对的服务

    FTP(21 文件传输FTP服务   )

    Terminal Services 的端口是( 3389   )

    23端口是(TELNET)开放的默认端口

    25端口是(E-mail SMTP)开放

    109端口是(  POP2 )开放

    1433端口是(  SQL Server   )开放

    四,网络协议

    ICMP:

    是Internet Control Message Protocol(Internet控制消息协议)的缩写。

    它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

    控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

    这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

    TFTP:

    Trivial File Transfer Protocol,是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议

    提供不复杂、开销不大的文件传输服务。

    HTTP:

    HTTP超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统,

    它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。

    DHCP:动态主机配置协议, 是一种让系统得以连接到网络上,并获取所需要的配置参数手段

      第二套:

    网络知识考查

    日期:2008/3/3

    姓名:Amxking

    一,填空题。

    1,浏览器与WWW服务器之间传输信息时使用的协议是(http       )。

    2,在星型局域网结构中,连接文件服务器与工作站的设备是(交换机   )。

    3,在安装完成Linux系统后,系统自动创建的管理员帐号是( root )。

    4,单位分得合法IP地址202.112.68.40 掩码为255.255.255.248,其中,路由器的外口和ISP之间占据了2个,

    若使用202.112.68.41和202.112.68.42,掩码为255.255.255.252

    问:1,则可供使用的合法IP还有多少哪些?

    还可用的有 202.112.68.44/29, 202.112.68.45/29 ,202.112.68.46/29

    问:2,使用内部IP进行地址转换,若用一台主机连接内外两个网络,请说出2中不同的网络接法;并进行比较?

    1)主机接一块网卡绑定两个不同子网的地址,运行代理软件,内部网络将网关设置指向该主机。

    2)主机插2块网卡,分别连接内外网,主机起到网关和地址转换作用。

    1)中方案若内网盗用主机合法IP可以绕过主机

    2)不能绕过主机。

    问:3,Internet上保留了哪些内部IP有可以供使用?

     可以使用10.0.0.0 或 172.16直172.31 或192.168.0 直192.168.255

    5,如何规划防火墙,将内部业务服务器和部分PC机与Internet隔离?

    可以构建一个非军事区,将内部业务服务器通过内网路由器对内提供服务。

    部分PC通过外网路由连接INTERNET,Internet上限制内部的部分pc机访问Internet。

    在非军事区和内网之间设置路由器或代理服务器作为防火墙,限制外部的访问。

    6,在我国,目前可供选择大的用户选择的接入方式有哪些,各自的接入速率为多少?

    DDN 最高2M

    ISDN 64K*2 (2B+D)

    帧中继 最高2M

    X.25 64K

    [[[DDH  ( 最高2M  )

    ADSL  ( 非对称数字用户线,下行速率从512Kbit/s到8Mbit/s,而上行速率则从64Kbit/s到640Kbit/s   )

    ISDN   (综合业务数字网最高速度可达到64Kbps或128Kbps  )]]]

    7,被路由器隔离的2个子网能否公用一台DHCP服务器?( 不能  )

    8,用户通过什么命令可以看到自己申请到的本机IP地址?用何命令可以重新向DHCP服务器申请IP?用何命令可以释放IP?

    ipconfig /all

    ipconfig /release释放ip

    ipconfig /renew 获取新ip

    8,ADSL使用的多路复用技术是(a )

    A.频分多路复用 B.时分多路复用

    C.码分多址 D.空分多址

    二,问答题。

    1,写出下面网络命令的作用。

    Netstat –p   (只打印给出名字的协议的统计数字和协议控制块信息         )

    Net   view      (显示当前域或网络上的计算机上的列表)

    如何在命令行下显示windows的服务 (   net services        )

    2, 网桥的作用。

    是一个局域网与另一个局域网之间建立连接的桥梁

    3,用一条命令实现:将远程主机C盘映射为自己的F盘

     net use f: \\远程主机IP\c$ "密码" /user:"用户名"

    5,防火墙的端口防护是指?

       指通过对防火墙的端口开关的设置,关闭一些非必需端口,达到一定安全防护目的的行为。

    1、建立连接协议(三次握手)

    (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。

    (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。

    (3) 客户必须再次回应服务段一个ACK报文,这是报文段3。

    2、连接终止协议(四次挥手)

    由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

    (1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。

    (2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。

    (3) 服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。

    (4) 客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。

    CLOSED: 这个没什么好说的了,表示初始状态。

    LISTEN: 这个也是非常容易理解的一个状态,表示服务器端的某个SOCKET处于监听状态,可以接受连接了。

    SYN_RCVD: 这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你特意写了一个客户端测试程序,故意将三次TCP握手过程中最后一个ACK报文不予发送。因此这种状态时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状态。

    SYN_SENT: 这个状态与SYN_RCVD遥想呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,因此也随即它会进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。

    ESTABLISHED:这个容易理解了,表示连接已经建立了。

    FIN_WAIT_1: 这个状态要好好解释一下,其实FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。

    FIN_WAIT_2:上面已经详细解释了这种状态,实际上FIN_WAIT_2状态下的SOCKET,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。

    TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。

    CLOSING: 这种状态比较特殊,实际情况中应该是很少见,属于一种比较罕见的例外状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?其实细想一下,也不难得出结论:那就是如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。

    CLOSE_WAIT: 这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以close这个SOCKET,发送FIN报文给对方,也即关闭连接。所以你在CLOSE_WAIT状态下,需要完成的事情是等待你去关闭连接。

    LAST_ACK: 这个状态还是比较容易好理解的,它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了。

    最后有2个问题的回答,我自己分析后的结论(不一定保证100%正确)

    1、 为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?

    这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

    2、 为什么TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?

    这是因为:虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文。

    相关文章

      网友评论

        本文标题:常见TCP/IP面试题目

        本文链接:https://www.haomeiwen.com/subject/cnjoeftx.html