计算机网络面试题

菜鸟写的,大佬轻喷。。

计算机网络

  1. OSI和TCP/IP模型各个层的名称
    (参考资料:https://www.cnblogs.com/qishui/p/5428938.html)
    OSI七层结构:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
    TCP/IP结构 :物理层、数据链路层、网络层、传输层、————–、应用层

  2. TCP/IP模型每层的功能
    2.1 物理层:传输比特流。
    2.2 数据链路层:封装成帧、点对点传递、差错控制
    2.3 网络层:分组交换、路由选择
    2.4 运输层:负责两个主机进程之间的通信。
    2.5 应用层:直接为用户的应用进程提供服务。

  3. TCP/IP模型每层的协议
    3.1 物理层:忽略
    3.2 数据链路层:CMSA/CD(载波监听多点接入碰撞检测协议),PPP(点对点协议,传输数据报的一种方法)
    3.3 网络层:ARP(地址解析协议),RARP 3.4 运输层:TCP(传输控制协议)、UDP(用户数据报协议,可靠性低)
    3.5 应用层:HTTP(超文本传输协议,客户端/服务器访问协议)、SSH、FTP(文件传输协议)、DHCP(动态分配IP地址)

  4. 计算机网络为什么要分层?优点?
    4.1 各层之间互相独立,上层不需要知道下层的结构,只使用下层提供的服务。
    4.2 灵活性,促进标准化。

  5. 简述一下层次路由的原理
    每个路由器只知道将数据包发送到自己所在区域内的目标地址,对于其他区域的内部结构不知道。节省了路由表的空间。

  6. 协议三要素
    语义:控制信息每部分的意义
    语法:用户数据与控制信息的格式,数据出现的顺序
    时序:对事件发生顺序的详细说明

  7. 香农公式意义是什么
    香农公式给出了在信道上进行无差错传输的最大速率。

  8. 简述一下CSMA/CD协议
    在一个半双工信道上,先听再发,边听边发,冲突停止,随机重发
    先听再发:在发送数据前,检测信道是否空闲,空闲了在发送。
    边听边发:发送数据时,检测信道。
    冲突停止,随机重发:因为冲突而重发丢失的数据。

  9. TCP和UDP的异同点
    相同点:都是传输层的协议,进行传输数据
    不同点:
    TCP:是一个有连接的可靠协议,可靠性高,速度慢。
    UDP:是一个无连接的不可靠协议,不可靠,但是速度快。

  10. TCP的三次握手四次挥手过程?
    (1)三次握手
    主机A$\longrightarrow$(SYN)主机B
    主机A$\longleftarrow$(ACK)主机B
    主机A$\longrightarrow$(ACK)主机B
    (2)四次挥手
    主机A$\longrightarrow$(FIN)主机B
    主机A$\longleftarrow$(ACK)主机B
    主机A$\longleftarrow$(FIN)主机B
    主机A$\longrightarrow$(ACK)主机B

  11. 为什么会采用三次握手,若采用二次握手可以吗?
    如果采用二次握手,如果第一次主机B给主机A回ACK包时发生了延迟,导致主机A重新给主机B发送SYN包,最终可能会主机A和主机B建立了两个TCP连接。

  12. 简述下TCP建立连接的过程,TCP如何保证可靠传输?
    检验和:保证数据一样
    序列号:应答作用,保证数据有序,不重复
    超时重传:保证对方收到数据包
    连接管理:三次握手、四次挥手
    流量控制:尽可能多发
    拥塞控制:控制滑动窗口大小,保证网络不堵塞

  13. 在TCP拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?
    慢开始:拥塞窗口大小每次×2
    拥塞避免:当拥塞窗口增大到一定阈值之后,拥塞滑动窗口大小每次+1
    快重传:收到1个报文的3个ACK之后立即重传,不需要等到超时
    快恢复:阈值设置为当前当前拥塞窗口的一半,拥塞窗口大小等于阈值,然后进行拥塞避免算法

  14. 流量控制和拥塞控制是什么关系?
    流量控制:让对方来得及接收数据。
    拥塞控制:避免给整体网络带来堵塞。
    流量控制是一个点对点的问题,拥塞控制是一个全局性的过程。

  15. 简述下DNS域名解析的过程。 (1) 在本地缓存中查找,在linux中就是/etc/hosts文件
    (2) 在本地DNS服务器查找
    (3) 在根域名DNS服务器查找,返回对应根域名的服务器
    (4) 在顶级域名DNS服务器查找,返回对应顶级域名的服务器
    (5) 在权威域名DNS服务器查找,返回对应IP地址

  16. 点击网页一次HTTP请求过程?
    (1) 通过DNS将域名解析为ip地址
    (2) 根据ip,建立TCP连接,三次握手
    (3) 发起HTTP请求,获得html页面
    (4) 客户端解析页面并渲染
    (5) 服务器断开连接,四次挥手

  17. MAC地址和ip地址区别?
    mac地址用来局域网电脑的通信,有了ip地址可以完成互联网中电脑之间的通信

  18. HTTP状态码及其含义, HTTP和HTTPS的区别
    1xx:信息提示性
    2xx:请求成功
    3xx:资源重定向
    4xx:客户端错误
    5xx:服务器错误

HTTPS比HTTP多了一个SSL加密的过程,更安全。

  1. DHCP的作用:
    一个应用层的协议,动态为主机分配IP地址。

  2. 什么是socket?
    socket是基于TCP/IP协议的应用程序之间的通信方式,通信前程序需要知道另一个程序的IP地址和端口。

  3. 简述一下Cookie和Session的区别
    (1) 存储位置不同,Cookie的数据信息存在客户端,Session的数据信息存在服务器当中。
    (2) 有效期不同,Cookie可设置为长时间,Session一般失效时间短,客户端关闭或者超时Session就失效了 (3) 安全性不同,Cookie存储在本地,Session比较安全。
    (4) 存储大小不同,Cookie不超过4K,而Session存储的数据远高于4K。

参考资料

B站:https://www.bilibili.com/video/BV124411k7uV?spm_id_from=333.999.0.0 牛客:https://www.nowcoder.com/discuss/751740?channel=666&source_id=feed_index_nctrack