1. 数据通信基础
- 数据传输概念:数据传输是指在两个设备之间传输数据的过程。在传输过程中,数据可能通过多个中间设备,比如路由器、交换机等,最终到达目的地。
- 数据传输的媒介:数据可以通过不同的媒介进行传输,如有线媒介(如光纤、双绞线)、无线媒介(如无线电波)和卫星传输等。
- 通信协议:数据通信过程需要遵循一定的规则和约定,这就是通信协议。通信协议规定了数据传输的格式、传输控制、同步方式、错误处理、数据压缩等方面的规范。
- 数据传输的方式:数据传输可以是单向的(如广播)、双向的(如对话)、半双工的(如对讲机),也可以是全双工的(如电话)。
- 数据传输的速率:数据传输速率是指单位时间内传输的数据量,通常以每秒比特数(bps)或其相关的衍生单位进行描述。
- 数据加密和安全:随着网络安全的重要性不断提高,数据通信中的数据加密和数据安全也变得越来越重要。数据通信的安全性包括了数据的加密、身份认证、权限控制等内容。
2. OSI七层,TCP四层

OSI(Open Systems Interconnection)模型是国际标准化组织(ISO)制定的计算机网络互联互通的标准框架,共分为七层,从物理层到应用层:
- 物理层(Physical Layer):负责在物理媒体上传输原始比特流。
- 数据链路层(Data Link Layer):提供数据的可靠传输,处理不可靠物理层上的传输错误。
- 网络层(Network Layer):负责数据包的路由、转发和片段重组。
- 传输层(Transport Layer):提供端到端的可靠数据传输服务,TCP 和 UDP 协议工作在此层。
- 会话层(Session Layer):负责建立、管理和终止会话(会话即两个设备间的通信)。
- 表示层(Presentation Layer):负责数据的加密、解密、压缩和格式转换。
- 应用层(Application Layer):为用户和应用程序提供网络服务和接口。
TCP/IP 协议是实际使用最广泛的互联网通信协议,它的体系结构通常被概括为四层模型,从低到高分别是:
- 网络接口层:对应 OSI 模型的数据链路层和物理层。
- 网络层:对应 OSI 模型的网络层。
- 传输层:对应 OSI 模型的传输层。主要有 TCP 和 UDP 协议。
- 应用层:对应 OSI 模型的应用层。
各协议位于哪层
- 网络层:IP、ICMP、ARP、RARP、BOOTP
- 传输层:TCP、UDP
- 应用层:FTP、HTTP、DNS、TELNET、SMTP
3. TCP三次握手四次挥手详解
TCP的三次握手和四次挥手实质就是TCP通信的连接和断开。
三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。
四次挥手:即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

三次握手过程详细说明:
- 客户端发送建立TCP连接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的,并且将报文中的SYN字段置为1,表示需要建立TCP连接。(SYN=1,seq=x,x为随机生成数值);
- 服务端回复客户端发送的TCP连接请求报文,其中包含seq序列号,是由回复端随机生成的,并且将SYN置为1,而且会产生ACK字段,ACK字段数值是在客户端发送过来的序列号seq的基础上加1进行回复,以便客户端收到信息时,知晓自己的TCP建立请求已得到验证。(SYN=1,ACK=x+1,seq=y,y为随机生成数值)这里的ack加1可以理解为是确认和谁建立连接;
- 客户端收到服务端发送的TCP建立验证请求后,会使自己的序列号加1表示,并且再次回复ACK验证请求,在服务端发过来的seq上加1进行回复。(SYN=1,ACK=y+1,seq=x+1)。

四次挥手过程详细说明:
1、客户端发送断开TCP连接请求的报文,其中报文中包含seq序列号,是由发送端随机生成的,并且还将报文中的FIN字段置为1,表示需要断开TCP连接。(FIN=1,seq=x,x由客户端随机生成);
2、服务端会回复客户端发送的TCP断开请求报文,其包含seq序列号,是由回复端随机生成的,而且会产生ACK字段,ACK字段数值是在客户端发过来的seq序列号基础上加1进行回复,以便客户端收到信息时,知晓自己的TCP断开请求已经得到验证。(FIN=1,ACK=x+1,seq=y,y由服务端随机生成);
3、服务端在回复完客户端的TCP断开请求后,不会马上进行TCP连接的断开,服务端会先确保断开前,所有传输到A的数据是否已经传输完毕,一旦确认传输数据完毕,就会将回复报文的FIN字段置1,并且产生随机seq序列号。(FIN=1,ACK=x+1,seq=z,z由服务端随机生成);
4、客户端收到服务端的TCP断开请求后,会回复服务端的断开请求,包含随机生成的seq字段和ACK字段,ACK字段会在服务端的TCP断开请求的seq基础上加1,从而完成服务端请求的验证回复。(FIN=1,ACK=z+1,seq=h,h为客户端随机生成)
至此TCP断开的4次挥手过程完毕。

4. TCP/UDP的区别

5. 二层交换机和三层交换机的区别
- 二层交换机,也称为数据链路层交换机,主要工作在OSI模型的第二层,即数据链路层。它的主要功能是根据数据包的目标MAC地址进行转发和过滤。二层交换机通过学习源MAC地址和目标MAC地址的对应关系,建立MAC地址表,从而向目标设备转发数据包。它主要用于构建局域网(LAN)的数据传输。
- 三层交换机,也称为网络层交换机,主要工作在OSI模型的第三层,即网络层。它除了拥有二层交换机的基本功能外,还具备路由功能。三层交换机能够理解IP地址,并基于IP地址对数据包进行路由和转发。因此,它不仅可以在局域网内进行数据包交换,还可以在不同子网之间进行路由转发。三层交换机通常用于构建大型企业网络和数据中心网络等复杂的网络环境。
综上所述,二层交换机主要用于局域网内部的数据包转发和过滤,而三层交换机则具备路由功能,可以在不同子网之间进行数据包的路由转发。在构建网络时,需要根据实际需求选择合适的交换机类型来进行部署。
6. 网址栏里输入URL发生了什么
- URL解析:浏览器首先解析输入的 URL,分解成协议(如HTTP、HTTPS)、主机名(如www.example.com)、端口号(如80)、路径(如/index.html)等各个部分,以便后续步骤进行访问。
- DNS解析:浏览器通过域名解析系统(DNS)将主机名解析成对应的 IP 地址。浏览器向DNS服务器发起域名解析请求,获取主机名对应的IP地址,以便后续建立与目标服务器的连接。
- 建立TCP连接:浏览器与服务器之间通过 TCP 协议建立连接。浏览器向服务器发送一个SYN包,服务器回应一个SYN-ACK包,最后浏览器发送一个ACK包,完成三次握手,建立连接。
- 发送HTTP请求:浏览器发送一个 HTTP 请求,包括请求方法(GET、POST等)、请求头部、请求体等信息,向服务器请求特定资源。
- 服务器处理请求:服务器接收到浏览器发送的请求后,根据请求的资源进行处理,处理完成后生成响应数据。
- 接收HTTP响应:服务器将处理后的响应数据发送给浏览器,响应数据包括响应状态码、响应头部以及响应体等信息。
7. tcp如何保证其可靠性
TCP(Transmission Control Protocol)通过以下几种方式来保证数据传输的可靠性:
- 序列号和确认应答:TCP采用序列号和确认应答机制,每个数据包都有一个序列号,接收方会对收到的数据包进行确认应答,发送方会根据确认信息决定是否需要重传数据包。
- 数据校验:TCP使用校验和字段来检测数据在传输过程中是否出现了错误或者数据损坏,以保证数据的完整性。
- 重传机制:如果发送方没有收到接收方的确认信息,就会触发重传机制,重新发送相应的数据包,以确保数据的准确传输。
- 流量控制:TCP通过滑动窗口机制来进行流量控制,即发送方会根据接收方的接收能力来调整发送数据的速率,以避免发送过快导致数据丢失或堵塞。
- 拥塞控制:TCP会根据网络的拥塞程度来动态调整数据包的发送速率,以避免网络拥塞导致数据丢失,同时也会通过重传等机制来避免由于拥塞导致数据的丢失。
8. DNS
DNS(Domain Name System)是互联网上用于将域名解析为 IP 地址的分布式数据库系统。它充当了互联网上域名和 IP 地址之间的映射关系。当你输入一个网址,比如www.example.com,浏览器会向DNS服务器查询该域名对应的IP地址,然后才能连接到目标服务器。
DNS的工作原理如下:
- 当用户在浏览器中输入域名时,操作系统首先会检查本地缓存中是否有该域名对应的IP地址,如果有则直接返回,如果没有则向下一步转移。
- 如果本地缓存中没有,操作系统会向本地的DNS服务器发起域名解析请求,比如ISP提供的DNS服务器。本地DNS服务器也可能有缓存,如果有则会直接返回,如果没有则继续进行以下步骤。
- 如果本地DNS服务器也没有该域名对应的IP地址,则会向根DNS服务器发起查询请求。根DNS服务器负责最顶层域名的解析,它会告诉本地DNS服务器下一步应该向哪个顶级域名服务器(如.com、.org等)发起查询。
- 本地DNS服务器向顶级域名服务器发送查询请求,顶级域名服务器会指示本地DNS服务器向授权的域名服务器发起查询。
- 授权的域名服务器返回该域名的IP地址给本地DNS服务器。
- 最后,本地DNS服务器将解析结果返回给用户的操作系统,同时也会缓存该域名和IP地址的映射关系,方便下次的查询。
9. DHCP
DHCP(Dynamic Host Configuration Protocol)是一个用于局域网中自动分配 IP 地址和其他网络配置信息的协议。通过DHCP,网络管理员可以为客户端设备动态分配IP地址、子网掩码、网关地址、DNS服务器地址等网络配置参数,使得网络管理更加灵活和方便。
DHCP的工作方式如下:
- DHCP发现:当设备连接到局域网或启动时,它会广播一个 DHCP Discover 报文,请求一个可用的DHCP服务器。
- DHCP提供:DHCP服务器收到发现请求后,会向设备发送一个 DHCP Offer 报文,其中包含了可用的IP地址、子网掩码、网关等网络配置信息。
- DHCP请求:设备在收到DHCP服务器的提供后,会选择一个提供的IP地址并向DHCP服务器发送一个 DHCP Request 报文以请求这个IP地址。
- DHCP确认:DHCP服务器收到请求后,会向设备发送一个 DHCP Ack 报文,确认设备获取该IP地址和其他配置信息。
- 使用配置:设备接收到DHCP服务器的确认后,会开始使用该IP地址和其他网络配置信息来进行网络通信。
10. NAT
NAT(Network Address Translation,网络地址转换)是一种网络技术,用于在私有网络内部与公共网络之间转换IP地址。它允许多个设备通过单一的公共IP地址访问互联网,是因特网中较为常见的技术之一。
NAT的工作原理是将内部私有网络中的IP地址映射为公共IP地址,以允许内部设备与外部网络进行通信。通常,一个网络中的大多数设备都使用私有IP地址,而仅有一部分设备具有公共IP地址,通过NAT可以将多个私有IP地址转换为单个公共IP地址,实现了IP地址的共享和节省了公共IP地址资源。NAT还可以用于增强网络安全性,由于内部设备的私有IP地址不直接暴露在外部网络中,有助于减少网络攻击。
NAT主要有三种类型:
- 静态NAT:将指定的私有IP地址映射为一个唯一的公共IP地址,映射关系固定不变。
- 动态NAT:动态地将私有IP地址映射为公共IP地址,使得内部设备可以临时共享公共IP地址。
- PAT(Port Address Translation,端口地址转换):通过将私有IP地址和端口号转换为公共IP地址和不同的端口号,以允许同一公共IP地址被多个内部设备共享。
总的来说,NAT允许私有网络内的多个设备通过单一的公共IP地址访问互联网,提高了IP地址的利用率和网络的安全性。
11. SNAT和DNAT的区别
SNAT(Source Network Address Translation)和DNAT(Destination Network Address Translation)是NAT(Network Address Translation)的两种形式,它们分别用于处理出站流量和入站流量。
SNAT:
- SNAT通常用于将内部私有IP地址转换为公共IP地址,以便内部设备能够与外部网络通信。
- 在出站流量时,源地址被替换为NAT设备的公共IP地址。这样内部网络的多个设备可以共享单一的公共IP地址。
DNAT:
- DNAT通常用于将公共IP地址映射为内部私有IP地址,以便外部网络可访问内部设备。
- 在入站流量时,目标地址被替换为内部设备的私有IP地址。这样外部网络可以访问内部网络中的特定设备。
总的来说,SNAT和DNAT分别应用于处理出站和入站流量中的地址转换,以便内部网络与外部网络之间能够进行通信。
12. OSPF
OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在自治系统内部的路由选择。它是一种链路状态路由协议,通过交换链路状态信息,计算出网络拓扑图,并动态地选择最佳路径为数据包进行转发。OSPF是因特网上使用最广泛的动态路由协议之一。
以下是OSPF的一些主要特点和工作原理:
- 路由选择:OSPF使用 Dijkstra 算法来计算最短路径,并根据这些计算结果动态选择最优路径,以便数据包能够快速和高效地传输。
- 链路状态广播:OSPF路由器之间交换链路状态信息,包括连接的接口、带宽、延迟、可达性等许多参数。通过这种信息交换,路由器可以动态地维护整个网络的拓扑图。
- 区域划分:为了提高路由器的扩展性,OSPF将整个自治系统划分为几个区域,每个区域内部的路由信息不会被其他区域的路由器所了解。这可以减少路由器之间的信息交换量,提高路由器的运行效率。
- 收敛速度:OSPF的链路状态信息变更时,路由器可以快速地适应新的拓扑结构,从而提高了网络的收敛速度。
总的来说,OSPF是一种功能强大的动态路由协议,它通过动态选择最优路径,动态维护网络的拓扑结构,提高了网络的可扩展性、可靠性和效率。
13. RIP
RIP,全称为Routing Information Protocol,是一种最简单的距离向量路由选择协议,用于在自治系统内部的路由选择。RIP采用跳数(Hop Count)作为路由衡量标准,它将距离理解为跳数,即通过多少个路由器可以到达目的地。RIP协议的主要特点包括:
- 跳数作为度量标准:RIP以跳数作为度量标准,认为跳数越少的路由路径越好,因此具有较强的简单性和易于实现的特点。
- 路由信息的定期分享:RIP路由器周期性地向周围的路由器广播自己所知道的路由表信息,以便共享路由信息,同时原路由器检查它知道的其他路由信息是否有效,如果无效则告诉周围其他路由器。
- 每30秒更新:RIP每30秒发送路由表信息更新,通过这种定期的路由信息更新,RIP能够自适应网络拓扑的变化。
虽然RIP在构建和维护简单、实现容易的特点使得它被广泛应用在较小的网络中,但是RIP也具有一些缺点,例如:
- 收敛慢:由于RIP的跳数作为度量标准,它无法很好地适应大型网络的变化,导致收敛速度较慢。
- 最大跳数限制:RIP最初设计时支持最多15个跳数,这个限制限制了RIP的使用范围。
由于这些缺点,RIP在很多大型的现代网络中被OSPF、EIGRP等更先进的动态路由协议所取代。
14. BGP
BGP,全称为Border Gateway Protocol,是一种用于互联网中的路径矢量协议,它用于在不同自治系统之间进行路由选择。BGP主要用于在互联网中交换路由信息,以确定数据包在不同自治系统之间的传输路径。以下是BGP的一些主要特点:
- 路径矢量协议:BGP是一种路径矢量协议,它根据网络拓扑及其他因素选择最佳的路由路径,以便跨越多个自治系统中传输数据包。
- 交换路由信息:BGP路由器之间通过BGP协议交换路由信息。这些信息主要包括可以到达的目的地网络的IP前缀,以及沿着最佳路径到达该网络所经过的自治系统。
- 稳定性和安全性:BGP具有高度的稳定性和安全性,它能够支持大型的网络拓扑并提供多种安全机制,以确保网络的可靠运行。
- 多路径选择:BGP支持在选择路径时考虑多种因素,如AS-PATH属性(路由所经过的自治系统路径)、路由器特定的策略等,以选择最佳路径并实现负载均衡。
- 多种传输介质支持:BGP不限于任何特定的传输介质,因此,在不同类型的网络(如IPv4、IPv6、MPLS等)之间均能使用BGP协议。
总的来说,BGP是互联网核心路由器之间用于交换路由信息的协议,它在全球互联网的路由选择中起着至关重要的作用。BGP的设计非常灵活,支持大型网络、多路径选择和安全稳定的路由交换。
15. OSPF和BGP和RIP三者之间的区别
- RIP 是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
- OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP。
- BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。

OSPF:
- OSPF是一种链路状态协议,通过路由器之间交换链路状态信息,计算出网络的拓扑图,并动态选择最佳路径进行数据包的传输。它主要用于大型企业或者服务提供商的内部网络。
- OSPF对于网络的拓扑变化和大型网络的路由计算有很好的适应性,拥有较快的收敛速度和高可靠性。
BGP:
- BGP是一种路径矢量协议,主要用于在自治系统之间交换路由信息,并确定数据包在不同自治系统之间的传输路径。它是互联网核心路由器之间用于交换路由信息的协议。
- BGP支持在选择路径时考虑多种因素,包括AS-PATH属性、路由器特定的策略等,以选择最佳路径并实现负载均衡。
RIP:
- RIP是一种最简单的距离向量协议,以跳数(Hop Count)作为路由选择的度量标准。它主要用于小型网络中,由于其简单性和易实现性而被广泛使用。
- 由于其跳数度量的限制,RIP不太适合于大型网络的复杂路由环境。
总的来说,OSPF主要用于内部网络的路由选择,BGP主要用于自治系统之间的路由交换,而RIP在小型网络中使用较多。选择何种协议取决于网络的规模、复杂程度以及设计需求。
16. 什么是vlan
VLAN是Virtual Local Area Network(虚拟局域网)的缩写,是一种逻辑上划分网络的技术,它允许将一个物理局域网划分为多个逻辑网段。每个VLAN被认为是一个独立的网络,即使这些网络在物理上共享同一个交换机。以下是关于VLAN的一些重要概念:
- 逻辑分割:VLAN可以将一个物理网络按照逻辑上的需求,划分为多个独立的虚拟网络。不同的VLAN之间的数据包在交换机内部是隔离的,这种分割可以提高网络的安全性和管理灵活性。
- 广播控制:VLAN可以控制广播和多播流量的传播范围,有效减少了广播风暴对整个网络的影响。
- 安全性:VLAN可以增强网络的安全性,因为设备只能在同一个VLAN内相互通信,跨VLAN的通信需要经过路由器。这有助于提高网络访问控制和隔离不同业务层的流量。
- 灵活性:通过VLAN技术,网络管理员可以根据需要调整网络拓扑,改善网络性能,简化网络管理,提高网络的灵活性和可扩展性。
17. vlan和vxlan的区别
VLAN(Virtual Local Area Network)和VXLAN(Virtual Extensible LAN)是两种不同的网络虚拟化技术,它们虽然具有相似的名称,但是在实际应用和工作原理上有一些明显的区别。
- VLAN:
VLAN是一种在数据链路层进行逻辑划分的技术,它可以将一个物理网络划分为多个逻辑网络。VLAN通过在交换机上设置不同的虚拟LAN ID,将不同设备划分到不同的虚拟网络中,从而实现逻辑上的网络隔离和管理。VLAN的主要目的是提供网络分段和隔离,并且可以避免广播风暴。 - VXLAN:
VXLAN是一种在网络层进行逻辑划分的技术,用于构建大规模的虚拟化网络。VXLAN通过在现有的网络基础设施上封装数据包,使用隧道技术将不同物理设备上的虚拟网络连接起来,以实现在跨越物理网络的不同数据中心之间进行扩展的虚拟网络。VXLAN可以支持更多的虚拟网络标识,并且可以提供更多的灵活性和可扩展性。
在总体上,VLAN用于在局域网内部实现逻辑分段和隔离,而VXLAN主要用于构建大规模的虚拟网络,跨越物理网络,实现不同数据中心之间的虚拟网络扩展。两者的应用场景、工作原理和目的都有所不同。