面试_计算机网络_持续

计算机网络常见问题

  • 一、输入网址到网页显示的整个流程
  • 二、HTTP和HTTPS区别
  • 三、Cookie与Session的区别
  • 四、TCP与UDP的区别
  • 五、OSI,TCP/IP,五层协议的体系结构,以及各层协议
  • 六、TCP三次握手和四次挥手的全过程、三次握手可以改为2次吗?
  • 七、 DNS域名系统,简单描述其工作原理。
  • 八、描述RARP反向地址解析协议
  • 九、 ARP地址解析协议工作原理
  • 十、 ICMP、TFTP、HTTP、NAT、DHCP协议的介绍
  • 十一、交换机、路由器、网关的概念,各自的用途


一、输入网址到网页显示的整个流程

  1. 输入网址 www.baidu.com。www万维网的意思,baidu是域名,com是域名类型。
  2. DNS(Domain Name System,域名系统)查询,浏览器根据域名通过DNS服务器查询域名对应的服务器的IP地址:
    (浏览器缓存中 - > 系统缓存 - >路由器缓存 ->本地DNS服务器 ->根域名服务器 ),
  3. 浏览器主机根据IP地址与服务器建立TCP连接,浏览器发送请求至服务器(浏览器向重定向后的地址发送请求),浏览器将访问请求封装为一个HTTP请求报文,通过TCP协议发送给服务器。
  4. 服务器处理http请求。
  5. 服务器返回http响应,生成一个HTTP响应报文,通过TCP协议发送给浏览器主机。
  6. 浏览器请求样式以及图片文件,用以渲染界面(Ajax)并显示给用户。
  7. 浏览器异步请求其他资源。

二、HTTP和HTTPS区别

区别 HTTP HTTPS
定义 HTTP指超文本传输协议 HTTPS安全套接字层超文本传输协议。S指SSL(Secure Socket Layer),用于身份验证与加密传输。
端口 默认80 443
安全性
连接速度
成本

身份验证与加密传输过程:
(1)客户端发送HTTPS请求到服务端端口,服务端返回证书(颁发机构与过期时间),作为身份凭证,实现身份验证。

(2)客户端解析证书不存在任何问题,客户端生成一个随机数,也就是等会作为传输私钥,并用该证书对此随机数进行加密,传输给服务端;如果证书过期,客户端弹出警告框,提示证书存在问题。

(3)服务端利用对应的私钥对该加密数据进行解密,得到该随机数具体的数值。

(4)在以后数据传输中,客户端与服务端利用此随机数对传输数据进行对称加密,实现加密传输。


三、Cookie与Session的区别

区别 Cookie Session
作用 会话保持 身份跟踪
数据存放地方 客户端 服务器端
数据数量 限制 不做限制
安全 不安全 \

禁用Cookie的解决方法:

(1)URL地址重写:直接把JSESSION=ID附在请求链接的后面,而不是存放在HTTP的请求头中。

(2)表单隐藏字段:服务器根据登录名自动修改表单中某个隐藏字段的值。


四、TCP与UDP的区别

区别 TCP UDP
连接 面向连接 面向无连接
可靠交付 提供 不提供
工作效率
实时性
安全性

禁用Cookie的解决方法:

(1)URL地址重写:直接把JSESSION=ID附在请求链接的后面,而不是存放在HTTP的请求头中。

(2)表单隐藏字段:服务器根据登录名自动修改表单中某个隐藏字段的值。


五、OSI,TCP/IP,五层协议的体系结构,以及各层协议

体系 分层
OSI(7层) 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
五层协议(5层) 物理层、数据链路层、网络层、运输层、——---------------、 应用层
TCP/IP分层(4层) 网络接口层、 网际层、运输层、 ------------应用层
OSI 作用 协议
应用层 允许访问OSI环境的手段(应用协议数据单元APDU) FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
表示层 对数据进行翻译、加密和压缩(表示协议数据单元PPDU) JPEG、MPEG、ASII
会话层 建立、管理和终止会话(会话协议数据单元SPDU) NFS、SQL、NETBIOS、RPC
传输层 提供端到端的可靠报文传递和错误恢复(段Segment) TCP、UDP、SPX
网络层 负责数据包从源到宿的传递和网际互连(包Packet) IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(路由器)
数据链路层 将比特组装成帧和点到点的传递(帧Frame) PPP、FR、HDLC、VLAN、MAC(网桥,交换机)
物理层 通过媒介传输比特,确定机械及电气规范(比特Bit) RJ45、CLOCK、IEEE802.3(中继器,集线器)

六、TCP三次握手和四次挥手的全过程、三次握手可以改为2次吗?

三次握手(TCP建立连接):

  • 第一次握手:客户端发送SYN包(syn=x)的数据包到服务器,并进入SYN_SEND状态,等待服务器确认;

  • 第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

  • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

四次挥手:(TCP断开连接)

  • 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接受数据。

  • 第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号,SYN和FIN都有seq序号)。

  • 第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。

  • 第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

不可以采用二次握手的原因

采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。
失效的连接请求:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。主机A第一次发送的连接请求并没有丢失,而延迟到达主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直等待主机A发送数据,导致主机B的资源浪费。


七、 DNS域名系统,简单描述其工作原理。

当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:

  • 指定的DNS域名
  • 指定的查询类型
  • DNS域名的指定类别

DNS域名系统基于UDP服务,端口53。该应用一般不直接为用户使用,而是为其他应用服务,如HTTP、SMTP等在其中需要完成主机名到IP地址的转换。


八、描述RARP反向地址解析协议

作用:Reverse Address Resolution Protocol完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。
工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。
因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。


九、 ARP地址解析协议工作原理

  • 每个主机都会在ARP缓冲区中建立一个ARP列表,表示IP地址和MAC地址之间的对应关系。
  • 当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机IP地址。
  • 当网络所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
  • 源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应包,表示ARP查询失败。
  • 广播发送ARP请求,单播发送ARP响应。

十、 ICMP、TFTP、HTTP、NAT、DHCP协议的介绍

  • ICMP(Internet Control Message Protocol,因特网控制报文协议)
  • TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
  • TFTP(Trivial File Transfer Protocol,简单文件传输协议)
  • TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
  • HTTP(HyperText Transfer Protocol,超文本传输协议)
    是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
  • NAT(Network Address Translation,网络地址转换)
    网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。
  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
    是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

十一、交换机、路由器、网关的概念,各自的用途

1、交换机
在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC的网卡挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。
交换机工作于第二层数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

2、路由器
路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。
路由工作在第三层网络层,例如网际协议。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。

3、网关
网关(Gateway)是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家庭中或者小型企业网络中使用,用于连接局域网和Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。
在传统TCP/IP术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能转送数据包。在主机(又称终端系统,end system)中,数据包需经过TCP/IP四层协议处理,但是在网关(又称中介系统,intermediate system)只需要到达网际层(Internet layer),决定路径之后就可以转送。在当时,网关(gateway)与路由器(router)还没有区别。
在现代网络术语中,网关与路由器的定义不同。网关能在不同协议间移动数据,而路由器是在不同网络间移动数据,相当于传统所说的IP网关。网关是连接两个网络的设备,对于语音网关来说,他可以连接PSTN网络和以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。

你可能感兴趣的:(Java程序员面试笔记)