2025年面试官都震惊,你这网络基础可以啊!

面试官都震惊,你这网络基础可以啊!目录网络 1 对网络的基础认识 1 组网方式 2 OSI 七层模型 3 TCP IP 五层 四层模型 4 对封装分用的理解 2 网络数据传输 1 局域网 1 认识 IP 和 MAC 2 网络数据传输的特性 3 网络数据传输流程 1 网络互联的方式 2 局域网交换机组网的方式 3 局域网交换机 路由器组网的方式 2 广域网传输流程 3 UDP 和 TCP1UDP 协议 2TCP 协议 可靠的传输协议 1 TCP 相关概念 2 如何判断你自己的网络基础

目录


打个小广告:最近和朋友搞个副业,做计算机编程相关服务(包括作业,课程设计,毕业设计,就业相关,考研相关,学习遇到的问题),各种语言技术栈都可以。如果有需要的加

网络

1.对网络的基础认识

<1>.组网方式

1.网络互联:使用集线器将少量主机连在一起

在这里插入图片描述

  1. 局域网(LAN):使用交换机和路由器将主机连接,可以自由组合三种方式

    组网方式:

    <1>.交换机

    <2>.路由器

    <3>.交换机+路由器

在这里插入图片描述

3.广域网(WAN):广域网和局域网知识相对的概念

例如:一个学校之间的网络就可以成为局域网,而一个国家,多个国家之间可以称为广域网,覆盖的区域不同在这里插入图片描述

组网方式:公网上,网络结点组成,每一个结点可以是:

在这里插入图片描述

<2>.OSI七层模型

1.对协议的简单理解:本质上是数据格式的定义。而知名的数据格式,大家普遍遵循的规定,就属于协议

2.OSI七层模型:一种网络分层的设计方法论,比较复杂且不实用,落地几乎都是TCP/IP四层,五层模型

在这里插入图片描述

<3>.TCP/IP五层(四层模型)

五层模型:除去OSI的表示层和会话层

四层模型:除去OSI的表示层,会话层和物理层

在这里插入图片描述

注意:

应用程序实现对应用层的封装分用

<4>.对封装分用的理解

1.封装:发送数据时,从高到低的顺序,按照对应的网络分层协议对数据进行包装
在这里插入图片描述

例如:

在这里插入图片描述

2.分用:封装的逆过程:接收数据时,从低到高的顺序,按照对应的网络分层协议,解析数据

在这里插入图片描述

例如:

在这里插入图片描述

2.网络数据传输

<1>局域网

(1)认识IP和MAC

IP:

MAC:

总结:
IP地址描述的是路途总体的起点和终点。(给人用的,网络主机的逻辑地址)
MAC地址描述的是路途上的每一个区间的起点和终点(给电脑硬件用的,网络主机的物理地址)




(2)网络数据传输的特性

在这里插入图片描述

五组:
源IP,目的IP,源端口,目的端口,协议号

DNS协议:
作用:域名转IP

在这里插入图片描述

特殊的IP,域名:本机IP为127.0.0.1,本机域名为localhost

(3)网络数据传输流程

ARP/RARP协议:
主机中有ARP缓存表
ARP协议:IP转MAC
RARP协议:MAC转IP







1)网络互联的方式

在这里插入图片描述

首先介绍集线器:如上图,网络数据传输时,直接转发到其他所有端口(工作在物理层)

网络数据传输的过程:

1.ARP缓存表找到了

在这里插入图片描述

2.ARP缓存表没找到

在这里插入图片描述

注意:

在这里插入图片描述

注意:使用集线器的缺陷
网络冲突,这样构成的网络区域叫冲突域/碰撞域(例如,房间里有多个人说话,那么其中某一个人说话就听不清楚了)

2).局域网交换机组网的方式

在这里插入图片描述

在这里插入图片描述

3)局域网交换机+路由器组网的方式

注意:单独由路由器组网的方式,和上述由交换机单独组网的方式相同
首先介绍路由器,这里介绍两种:
<1>LAN口连接局域网,为主机分配局域网IP,分配的局域网IP都是一个网段(路由器下连接多个主机的类型)
路由器还有个网卡:绑定局域网的IP,和下面连接的主机进行信息交互用的







在这里插入图片描述

<2>LAN口是网卡。每个LAN口都可以连接类似交换机组网的方式

在这里插入图片描述

主机上的网络信息:

在这里插入图片描述

第二种路由器组网方式:

在这里插入图片描述

<2>广域网传输流程

1.NAT和NAPT

2.传输流程

在这里插入图片描述

结合上图,理解广域网传输流程
首先:主机1发送http://www.baidu.com网络流程

传输流程
1首先主机1发送http请求,使用DNS协议:进行域名转IP
域名转IP:首先在本机DNS缓存表找,如果找不到---->向上查找------>如果根域名服务器也找不到,表示公网上没有该域名的主机




2. 找到IP,数据报IP部分,PORT部分都有了:

在这里插入图片描述

  1. 根据目的IP计算是否和主机在同一个网段
    主机1的IP+子网掩码 计算出------>主机1的网段
    目的IP+子网掩码 计算出------->目的主机的网段
    通过上述计算,判断目的IP和主机是否在同一个网段








  2. 如果是同一个网段,和局域网传输一样
    如果不是同一个网段:发送数据到网关
    找网关的MAC:
    在这里插入图片描述








  3. 找到网关的MAC之后,将http数据重新封装,交由交换机转发
    交换机转发:在MAC地址转换表(MAC映射端口),通过目的MAC找端口(交换机的屁股口)
    注意:这个过程没有封装和分用





注意:前五个步骤,和路由器组成的局域网传输流程一样 参考:局域网传输

  1. 路由器接收,分用数据报

注意:路由器会根据最短路径算法,计算出下一个发送数据的设备,会离目的IP更近一步

在这里插入图片描述

7. 上述步骤之后,数据报由局域网到广域网进行传输
路途中的设备:

在这里插入图片描述

8. 数据报到达百度服务器之后
在这里插入图片描述

在这里插入图片描述

11. 之后的步骤,和局域网传输相同
主机接收数据报,分用

3.UDP和TCP

<1>UDP协议

16位UDP校验和作用:类似于藏头诗,双方约定好的校验数据,进行数据校验

<2>TCP协议(可靠的传输协议)

(1)TCP相关概念

在这里插入图片描述

(2)确认应答机制

在这里插入图片描述

(3)超时重传机制(安全机制)

超时重传机制触发:主机A发送数据给主机B,如果主机A在一个特定的时间间隔内没有收到来自主机B的确认应答,就会进行数据重发。

没有收到确认应答的情况:1.主机A的数据报在发送的过程中丢了。2.主机B的ACK应答丢了

超时时间的确定:TCP会根据当时的网络状态,动态的计算数据发送的速度,得到单次数据报发送的最大生存时间(MSL),超时时间即为(2MSL)

(4)连接管理机制(安全机制)

流程图:

在这里插入图片描述

1.建立连接------>TCP三次握手:

TCP------>三次握手的流程

2.断开连接------>TCP四次挥手:

(5)滑动窗口(效率)

如果没有滑动窗口,网路数据传输就是串行的方式(发送一次之后,等待应答,这个时间内,主机A无事可做,主机B也一样),效率比较差。

在这里插入图片描述

在这里插入图片描述

如上图:如果主机A发送的数据报丢包,主机B的ack应答,会根据主机A已经收到的连续数据报的最大值+1返回ack应答,当主机A收到三个同样的ack应答之后,会将丢掉的数据报进行重发(具有接收缓冲区,来记录已经接收的数据报的序号)

如果是滑动窗口的第一个包丢了,根据上述数据报丢包的情况,收到了第6个报的ACK应答,是从6001开始,说明第一个报主机B已经收到,所以ack丢包可以根据后序ack确定数据报主机B是否收到

(6)流量控制机制(安全机制)
(7)拥塞控制机制(安全机制)

少量的丢包, 我们仅仅是触发超时重传; 大量的丢包, 我们就认为网络拥塞;

(8)延迟应答机制(效率)
(9)捎带机制(效率)

在延迟应答的基础上, 我们发现, 很多情况下, 客户端服务器在应用层也是 “一发一收” 的,意味着当客户端给服务端发送请求时,服务端会给客户端响应数据,此时ACK就像可以搭请求数据的顺风车,一起发送。

接收端响应的ACK,和主动发送的数据,可以合并返回。

<3>TCP的总结

(1)TCP特性

TCP是有连接的可靠协议

在这里插入图片描述

(2)面向字节流

TCP既有发送缓冲区,也有接收缓冲区,数据没有大小限制

(3)粘包问题

<4>UDP VS TCP

(1)UDP和TCP的特性
(2)如何使用UDP进行可靠传输

4.MTU和IP协议

<1>MTU协议

<2>IP协议

1.协议头格式

在这里插入图片描述

8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位 TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要(应用层协议需要不同安全/效率需求,此时可以设置服务类型来满足)

5.HTTP和HTTPS

<1>HTTP

(1)Http的前置知识
1)网络数据传输

在这里插入图片描述

2)认识URL

在这里插入图片描述

(2)HTTP
1)域名
2)http协议格式

在这里插入图片描述

3)http请求方法

在这里插入图片描述

重点了解get和post方法

get和post方法的区别:

在这里插入图片描述

1.get的请求数据只能放在url中,post的数据,可以放在url和请求体

2.url长度有限制,所有get方法请求数据不能太多,冰球url只能传输ascli字符

3.安全性将,post可以存放请求数据在请求体,相对更加安全

其他区别:了解即可

4)http状态码

服务端返回(服务端设置),站在服务端的角色上,状态码都是对应的含义,站在客户端的角色上就不一定

在这里插入图片描述

在这里插入图片描述

5)http头信息

在这里插入图片描述

<2>HTTPS

<1>.前置知识:为什么需要HTTPS

在这里插入图片描述

如上图:HTTP是不安全的,在传输的过程中,当客户端发送数据时,可能被钓鱼网站“欺骗”,将钓鱼网站当作服务端,或者直接被钓鱼网站窃取到数据,然后更改,造成不安全的影响

2.HTTPS握手阶段(根据公钥私钥生成对话密钥)(以上1,2步需要保证对话密钥不被钓鱼)

在这里插入图片描述

<1>.首先客户端给出协议版本号,一个客户端生成的随机数,以及支持的加密方式

<2>.服务端确认双方使用的加密方式,给出数字证书,以及一个服务器生成的随机数

<3>.客户端确认数字证书有效,然后生成一个新的随机数,并使用数字证书中的公钥,加密这个随机数,发个服务端

<4>.服务端使用自己的私钥,获取客户端发来的随机数

<5>.客户端和服务端根据约定的加密方式,使用前面的三个随机数,生成密钥

6.正向代理和反向代理

<1>.正向代理服务器

<1>概念

<2>原理图

在这里插入图片描述

<3>使用场景和特点

<2>.反向代理服务器

<1>概念

<2>原理图

在这里插入图片描述

<3>使用场景和特点

7.网络面试题

<1>.说一说TCP/IP模型,以及都做了哪些事情

TCP/IP模型分为五层,分别是应用层,传输层,网络层,数据链路层,物理层

TCP/IP协议群主要是报文的拆分,增加协议头,数据的传输,路由和寻址以及数据的重组

<2>.说一说TCP的三次握手四次挥手

1.建立连接------>TCP三次握手:

TCP------>三次握手的流程

2.断开连接------>TCP四次挥手:

<3>IPV4和IPV6的区别

1.地址不同(IPV4 32位,IPV6 128位),所有地址的空间,数目不同

2.地址分配不同(IPV4资源不够,分配的话需要竞争,而IPV6可以给每个人都分配很多的地址)

3.寻址的方式不同:IPV4 通过子网掩码计算网络地址,而IPV6有固定的计算方式划分网络

<4>TCP和UDP的区别

5.UDP的传输速率高于TCP

<5>如何用UDP进行可靠传输

<6>正向代理和反向代理的区别

正向代理:要访问的服务器只知道代理服务器来访问它,并不知道真实的客户端是谁

反向代理:反向代理正好相反。对于客户端来说,反向代理就好像目标服务器,客户端向反向代理发送请求,接着反向代理判断请求走向何处,隐藏了真实的服务器。

<7>说说HTTP和HTTPS

HTTP是超文本传输协议,是目前应用最广泛的网络通信协议,也是客户端和服务端交互的一系列行为的标准

http header包含三大部分,有General。Response Headers(响应头)。 Request Headers(请求头)。

http是无连接,无状态的(每次连接只处理一个请求,发送完数据后,不会记录)

而https简单讲是HTTP的安全版,即HTTP下加入SSL层,主要是来确认网站的真实性和数据传输的安全。

区别:

1.http的数据是明文传输,而https是加密传输,需要用到ca证书

2.http使用80端口,而https是443端口

3.http的速度比https要快

<8>https中SSL握手的过程

<1>.首先客户端给出协议版本号,一个客户端生成的随机数,以及支持的加密方式

<2>.服务端确认双方使用的加密方式,给出数字证书,以及一个服务器生成的随机数

<3>.客户端确认数字证书有效,然后生成一个新的随机数,并使用数字证书中的公钥,加密这个随机数,发个服务端

<4>.服务端使用自己的私钥,获取客户端发来的随机数

<5>.客户端和服务端根据约定的加密方式,使用前面的三个随机数,生成密钥

<9>DNS解析(DNS找IP)

1.当浏览器中输入www.bai.com域名时,操作系统会检查自己本地的hosts文件查看是否有这个网址的映射关系,如果有,直接调用

2.如果没有,则查找本地的DNS解析器缓存,如果有,则直接返回IP

3.如果没有,再找TCP/IP参数中设置的本地的DNS服务器,如果该域名包含再本地配置区域的资源中,则返回解析结果。

4.也可能查找的域名,本地的DNS服务器已经缓存在网址的映射关系,那么直接调用这个IP

5.如果本地DNS服务器也无法解析,会根据本地的DNS服务器是否设置转发器进行查询

如果是未转发模式,本地DNS会把请求发给13台根DNS,由对应的根服务器(例如.com)向下找,最后完成解析

如果是转发模式,那么DNS服务器会把请求一级一级向上传,往上找,直到传到根DNS。

<10>GET和POST的区别

1.get的请求数据只能放在url中,post的数据,可以放在url和请求体

2.url长度有限制,所有get方法请求数据不能太多,并且url只能传输ascli字符

3.安全性将,post可以存放请求数据在请求体,相对更加安全

4.GET主要是从服务端获取数据,而POST请求主要是将数据发送到服务端

5.POST请求刷新会被重新提交,但Get请求不会

<11>常见的状态码

400:客户端请求语法错误,服务端无法理解

405:映射找到了,但是客户端请求方法和服务端提供的请求方法不匹配

500:服务端内部报错

403:无权限

<12>输入一个URL到浏览器中,会发生什么

1.域名解析(DNS解析)

2.发起TCP的三次握手

3.建立TCP连接后发起HTTP请求(如果浏览器存储了该域名下的Cookies,那么会把Cookies放入HTTP请求头里发给服务器。)

4.服务器端响应http请求,浏览器得到html代码

5.浏览器解析html代码,并请求html代码中的资源

6.浏览器对页面进行渲染呈现给用户


今天的文章 2025年面试官都震惊,你这网络基础可以啊!分享到此就结束了,感谢您的阅读。

编程小号
上一篇 2025-10-09 20:17
下一篇 2025-10-09 20:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/4495.html