网络基础
一、计算机通信:一些名词的解释
网卡 :相当于我们的身份证,每张网卡都是全球唯一的。
交换机 :负责一个网络内的多台机器之间的信息交换。
网桥:是连接两个局域网的一种存储/转发设备,扩展局域网最常见的方法是使用网桥。

网络交换机(英语:Network switch)是一个扩大网络的器材,能为子网中提供更多的连接端口,以便连接更多的电脑。 通俗来说其起到的作用就是把一个网络端口分成多个网络端口,就像从一根水管里流出的水你用多根水管同时去分流。 网速和带宽有关,你们宿舍网速慢是带宽小,相当于水管里流的水量小,即使使用交换机也不能多出带宽, 你可以简单理解成,你和你室友加起来的速度是固定的,无论分出多少个端口总和不变。 交换机和路由器的区别: 路由器可以给你的局域网自动分配IP,虚拟拨号。交换机只是用来分配网络数据的。 路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以。交换机在中继层,交换机根据MAC地址寻址。 路由器提供防火墙的服务,交换机不能提供该功能。 路由器可以把一个IP分配给很多个主机使用。交换机可以把各有IP的很多主机连起来。
mac地址:
固化在网卡上的物理地址,每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号),
相当于计算机在网络上的身份证。
ip地址:
规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,现在广泛使用的ipv4,它规定网络地址由32位2进制表示,
它的范围是0.0.0.0-255.255.255.255
一个ip地址通常写成四段十进制数(点分十进制数),例:192.168.16.11
还有ipv6,,48位二进制表示。
局域网(LAN Local Area Network):指在某一区域内由多台计算机互联成的计算机组 。
城域网(MAN,Metropolitan Area Network):是在一个城市范围内所建立的计算机通信网,简称MAN,通过它将位于同一城市内不同地点的主机、数据库,以及LAN等互相联接起来。
广域网(WAN,Wide Area Network):通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,
形成国际性的远程网络。它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。
网关ip:同一个局域网内所有的主机都是使用同一个网关IP对外访问的,它是不同局域网之间通信依赖的ip地址,通过NAT协议,把内网地址转换成外网(公网)IP
网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。
例如,从192.168.0.1到192.168.255.255这之间就是一个网段。
子网掩码:判断两个ip地址是否在同一个网段内
二、计算机之间的通信
早期:通过网线连接进行通信
发展:局域网(LAN,Local Area Network)
现在大部分局域网都是采用以太网的标准进行通信的
以太网它不是一种具体的网络,是一种技术规范。
该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法
arp协议(Address Resolution Protocol):即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
交互机基于arp协议进行工作
交互机的三种通信方式:单播、广播、组播
在局域网内通过交换机进行通信
局域网内通过交换机和arp协议进行通信
通过网桥扩展局域网
三、局域网之间的通信:通过路由器、网关ip、子网掩码、网段进行通信
路由器:
路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况选择
以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽,"交通警察"。目前路由器已经广泛应用于各行各业,
各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。
路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。
这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。
路由器又称网关设备是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。
当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,
它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,
属网络层的一种互联设备。
子网掩码:就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。
比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),
然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
例如:
ip地址:192.168.16.115
子网掩码:255.255.255.0
192.168.16.115转位二进制:11000000.10101000.00001011.10011011
子网掩码转为二进制:11111111.11111111.11111111.00000000
AND运算:
11000000.10101000.00001011.10011011
11111111.11111111.11111111.00000000
11000000.10101000.00001011.00000000 = 192.168.16.0
那么192.168.16.115所在的网段就是192.168.16.0
然后用同样的方法计算192.168.16.16的网段,也得出是192.168.16.0,网段相同就代表192.168.16.115和192.168.16.16是在同一个局域网,
同一个局域网内通信就不需要用路由器了,而如果不是在同一个局域网,那么就需要通过路由来通信。
不同局域网间的通信,需要通过路由器
四、一些特殊的ip地址
外网(公网)ip:我们谁都能访问。
内网(局域网)ip:从外部不能访问,只能在内部环境中互相访问,但是可以通过NAT协议转换进入外网访问
为什么外网ip永远不会和内网ip冲突?
因为在0.0.0.0 - 255.255.255.255所有的ip地址中,默认为内网保留了一些字段:
192.168.0.0 - 192.168.255.255
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
上面这些都是内网的IP。
不同局域网可用相同的ip
局域网内的IP为私有IP,一个局域网内的IP不可相同,但不同局域网内的IP没有限制。
局域网设备连接到公网时,会通过出口的路由器进行NAT协议转发,将局域网的私有IP转换为公网唯一IP,
同一局域网内的所有设备可能共享一个公网IP(通过不同的端口进行区分)。
所以,私有IP在公网上是看不到的,不同的局域网可以使用同一个私有IP,最终经过NAT协议转发后,会变为公网的IP地址。

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),
但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。
这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。
回环地址:指的是在我们的测试过程中使用的一个地址
127.0.0.1是回环地址中的一个
0.0.0.0
当一台主机还没有被分配一个IP地址的时候,用于表示主机本身。(DHCP分配IP地址的时候)
用作默认路由,表示”任意IPV4主机”。
用作服务端,表示本机上的任意IPV4地址。
127.0.0.1和0.0.0.0的区别
假设我的服务器有两个网卡ip分别是192.168.3.16和172.16.2.122,那么
127.0.0.1 代表本机回环地址
0.0.0.0 代表着127.0.0.1加上192.168.3.16和172.16.2.122,代表的是本服务器的所有IP地址
那么,如果我在本机起了一个服务,
如果我设置的服务ip地址为127.0.0.1,就代表这个服务只有我自己本机才能访问,
如果我设置的服务ip地址为0.0.0.0,就代表这个服务我自己本机可以访问,你使用192.168.3.16和172.16.2.122也可以访问到。
五、tcp协议和udp协议:基于端口工作
1、端口
端口:通过IP地址+端口号定位到某台主机的某个应用程序
计算机上的端口范围 0-65535,0-1024为系统端口
每一个网络服务都会占用计算机上的一个端口
在同一时刻 同一台计算机上 不同的网络应用 占用的端口一定是不同的
也就是通过IP地址和mac地址可以定位到某个局域网的某台机器,而端口是定位到这台机器的某个应用程序
2、TCP协议
当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。
在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。
这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。
3、tcp的三次握手
简单来说:
我要和你通信,我就去问你:“我可以和你说话吗(第一次握手)”,你就回答说:“可以啊”,然后顺便问我:“那我可以和你通信吗(第二次握手[回答和问都是一次完成的])”,
我又回答:“可以啊(第三次握手)”,这样就建立起了我和你之间的连接。
专业点来说
TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接。
TCP三次握手的过程如下:
客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
4、tcp的四次挥手
简单来说:
跟谈恋爱很相似,两个人谈恋爱,我不爱你了,我就跟你说:“我们分手吧(第一次挥手)”,我跟你说了分手后,你就表示知道了(第二次挥手),
但是此时,我是单方面跟你断开连接了,如果你还喜欢我,你还是可以给我发信息的,只是我并不会回复你,直到你也跟我说分手(第三次挥手),
我告诉你我知道了(第四次挥手),然后我们就彻底断开连接了。
专业点来说
建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。
(1) 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。
既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。
注意:
(1) “通常”是指,某些情况下,步骤1的FIN随数据一起发送,另外,步骤2和步骤3发送的分节都出自执行被动关闭那一端,有可能被合并成一个分节。
(2) 在步骤2与步骤3之间,从执行被动关闭一端到执行主动关闭一端流动数据是可能的,这称为“半关闭”(half-close)。
(3) 当一个Unix进程无论自愿地(调用exit或从main函数返回)还是非自愿地(收到一个终止本进程的信号)终止时,所有打开的描述符都被关闭,这也导致仍然打开的任何TCP连接上也发出一个FIN。
无论是客户还是服务器,任何一端都可以执行主动关闭。通常情况是,客户执行主动关闭,但是某些协议,例如,HTTP/1.0却由服务器执行主动关闭。
更详细的tcp握手跟挥手流程可以看:TCP的三次握手与四次挥手理解
六、UDP协议
当应用程序希望通过UDP与一个应用程序通信时,传输数据之前源端和终端不建立连接,直接发送信息,
当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。
tcp与udp区别
tcp 面向连接的 可靠的 但是慢
两个应用之间要想通信必须先建立连接
然后基于连接来通信
用于比较重要的文件邮件的发送 、下载安装包
udp 无连接的 不可靠 但是快
能够发送的信息长度是有限的
所以不能发送过长的数据
用于即时通讯类的程序(例如QQ)
七、osi模型
1、互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
1.物理层(Physical Layer) 物理层是计算机网络OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的, 电子的,功能的和规范的特性。简单的说,物理层确保原始的数据可在各种物理媒体上传输 2.数据链路层(Data Link Layer) 数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务, 其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。 3.网络层(Network Layer) 网络层是位于物联网三层结构中第二层的信息处理系统,其功能为“传送”,即通过通信网络进行信息传输。 网络层作为纽带连接着感知层和应用层,它由各种私有网络、互联网、有线和无线通信网等组成,相当于人的神经中枢系统,负责将感知层获取的信息, 安全可靠地传输到应用层,然后根据不同的应用需求进行信息处理。 4.传输层(Transport Layer) 传输层是整个网络体系结构中的关键层次之一,主要负责向两个主机中进程之间的通信提供服务。 由于一个主机同时运行多个进程,因此运输层具有复用和分用功能。传输层在终端用户之间提供透明的数据传输, 向上层提供可靠的数据传输服务。传输层在给定的链路上通过流量控制、分段/重组和差错控制来保证数据传输的可靠性。 传输层的一些协议是面向链接的,这就意味着传输层能保持对分段的跟踪,并且重传那些失败的分段。 5.会话层(Session Layer) 会话层(Session)是建立在传输层之上,利用传输层提供的服务,使应用建立和维持会话,并能使会话获得同步。 会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要 6.表示层(Presentation Layer) 表示层向上对应用层服务,向下接受来自会话层的服务。表示层为在应用过程之间传送的信息提供表示方法的服务,它只关心信息发出的语法和语义. 7.应用层(Application Layer) 应用层位于物联网三层结构中的最顶层,其功能为“处理”,即通过云计算平台进行信息处理。 应用层与最低端的感知层一起,是物联网的显著特征和核心所在, 应用层可以对感知层采集数据进行计算、处理和知识挖掘,从而实现对物理世界的实时控制、精确管理和科学决策。
2、每层运行常见的物理设备
传输层 四层路由器、四层交换机
网络层 路由器、三层交换机
数据链路层 网卡、以太网交换机、网桥
物理层 中继器、集线器、双绞线
注意:
二层交换机:就是我们说的正常的交换机,只能广播,单播,组播,只认识mac地址等功能的交换机
三层交换机:还能认识IP地址,发挥路由器功能的交换机
四层交换机、四层的路由器:能够直接基于端口通信的
3、每层运行常见的协议
应用层 http、https、telnet、DNS、smtp、ftp、tftp
传输层 tcp、udp协议
网络层 ipv4、ipv6、ping(ping使用的是ICMP协议,因此属于网络层)
数据链路层 arp协议
物理层
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix