计算机网络面试题

来源:互联网 发布:活体脑细胞结局知乎 编辑:程序博客网 时间:2024/06/13 22:23
  1. TCP/UDP区别以及TCP如何保证传输可靠性
    TCP是基于连接的协议,UDP是面向非连接的协议;
    TCP传输可靠,UDP传输不可靠;
    TCP的可靠性是通过顺序编号和确认(ACK)来实现的。TCP在开始传送一个段时,首先将该段插入到发送队列之中,同时启动时钟。其后,如果收到了接受端对该段的ACK信息,就将该段从队列中删去。如果在时钟规定的时间内,ACK未返回,那么就从发送队列中再次送出这个段。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状态,完成三次握手。
    四次握手:
    第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送。此时主动关闭方还可以接受数据。
    第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方;
    第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送
    第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方
    这里写图片描述四次挥手
  3. 常见的路由选择协议
    RIP协议、OSPF协议
    内部网关协议、外部网关协议
    RIP协议:底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包
    OSPF协议:底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。
  4. TCP/IP五层模型
    应用层 :FTP(文件传送协议)、Telenet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议
    传输层:UDP协议、TCP协议
    网络层:IP协议、ICMP协议、ARP协议、RARP协议
    数据链路层
    物理层
  5. OSI七层模型
    应用层:负责确定通信对象,并确保足够的资源用于通信。为操作系统或网络应用程序提供访问网络服务的接口;
    表示层:负责数据的编码、转化,根据不同的应用目的将数据处理为不同的格式;
    会话层:负责建立、维护、控制会话,区分不同的会话
    传输层:是第一个端到端,即主机到主机的层次。负责将上层数据分段并提供端到端的、可靠的或不可靠的传输;
    网络层:上层的数据段在这一层被分割,封装后叫做包;
    数据链路层:上层传下来的包在这一层被分割封装后叫做帧
    物理层:负责将数据以比特流的方式发送、接收
  6. IP地址的分类
    网络号,主机号
    A类:8位网络号(首位为0) 24位主机号(刨除全0和全1)
    全0代表网络地址、全1代表该网络所有主机
    B类:16位网络号(首位为10) 16位主机号(刨除全0和全1)
    C类:24位网络号(首位为110) 8位主机号(刨除全0和全1)
  7. 划分子网
    网络号,子网号,主机号
    子网号是从二级IP的主机号中借用
    子网掩码:通过将IP与子网掩码与运算得到网络地址
  8. ARP协议的工作原理
    每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。
    发送数据时,首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。
    网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;
    源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
  9. 在浏览器中输入www.baidu.com后执行的全部过程
    DNS解析得到IP地址,客户端浏览器发起一个HTTP会话,通过TCP进行封装数据包,输入到网络层;
    客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口;
    客户端的网络层主要做的是通过查找路由表确定如何到达服务器;
    客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
  10. TCP为什么会采用三次握手,若采用二次握手可以吗?
    采用三次握手是为了防止失效的连接请求报文段突然又传送到服务器。
    失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。
    主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。
  11. HTTP协议与HTTPS协议的区别
    http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议;
    http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443;
    HTTPS协议是由SSL(安全套接字层)+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全
原创粉丝点击