网络通信
网络通信

名词解释
- IP:IP地址是网络层使用的一种统一的地址格式,它为互联网上的每个网络和每个主机分配一个逻辑地址,以便于寻址和通信。IP地址由32位二进制数字组成,通常以点分十进制表示,如192.168.1.1。
- 网段:网段是指具有相同网络前缀的一组连续的IP地址。网络前缀是IP地址中的一部分,用来标识网络的范围和层次。网络前缀的长度可以通过子网掩码或CIDR表示法来确定。
- 子网掩码:子网掩码是一个32位的二进制数,用来划分IP地址中的网络位和主机位。子网掩码中,网络位为1,主机位为0。通过子网掩码和IP地址的按位与运算,可以得到网络地址。
- 子网:子网是指将一个大的网络划分成若干个较小的网络,每个小网络都有自己的子网地址和子网掩码。划分子网的目的是为了提高网络效率,减少广播流量,节省IP地址。
- 超网:超网是指将多个相邻的子网合并成一个更大的网络,以减少路由表的大小,简化路由选择,提高网络性能。超网的表示方法是使用无类别域间路由(CIDR)的网络前缀,如192.168.0.0/22。
- 主类网络:主类网络是指按照传统的A类、B类、C类地址划分的网络,它们的网络前缀长度分别为8位、16位、24位。主类网络的缺点是不能灵活地适应不同规模的网络,造成IP地址的浪费或不足。
- 子网划分:子网划分是指将一个主类网络或子网进一步划分成更小的子网,以满足不同的网络需求。子网划分的方法是借用主机位作为子网位,从而增加子网的数量,减少每个子网的主机数量。
- 路由汇总:路由汇总是指将多个具有相同网络前缀的子网或网段用一个超网地址来表示,以简化路由表,减少路由更新,提高路由效率。路由汇总的方法是找出多个子网或网段中的最长公共前缀,作为超网的网络前缀。
URL

网线
网线分类
广义分类:
同轴电缆、双绞线、光纤
材质分类:
多股线:韧性强,弯折不易断,但抗干扰差,电阻最大
铜包铝:成本低,电阻小,易氧化,寿命短
无氧铜:较贵,电阻最低,不易氧化,寿命长,适合埋墙
网线性能参数
CAT是网线性能指标,越大性能越强,AWG是导线粗细指标,越小越粗(例如:CAT5E 24AWG 是超五类的一种标准网线)
注:网线不要选择细线和扁平线(寿命短,信号不稳定),只选择粗线,有细线刚需则直接使用光纤
| 特点/分类 | Cat5e | Cat6 | Cat6a |
|---|---|---|---|
| 传输速度 | 1000Mbps | 1000Mbps/10Gbps | 10Gbps |
| 线径AWG | 24-26 AWG | 23-24 AWG | 23 AWG |
| 频率带宽 | 100MHz | 250MHz | 500MHz |
| 最大传输距离 | 100m | 100m/55m | 100m |
| 衰减 | 22dB | 19.8dB | - |
水晶头
水晶头(英语:Registered jack,RJ),是一种标准化的电信网络接口。提供声音和数据传输的接口。水晶头首先在美国贝尔系统通用服务订购代码(USOC)系统中定义,在1970年代用于提供由联邦通信委员会(FCC)授权的计算机辅助电话设备。随后它们被编入联邦法规第68部分的47章。
模块化连接器是用来取代硬线或更大型的电话插头。 模块化连接器的通用术语包括接触位置的数量和连接的导线的数量。
8P8C,或称为RJ45,是以太网使用双绞线连接时常用的一种连接器插头。
8P8C(8 position 8 contact)的意思是8个位置(Position,指8个凹槽)、8个触点(Contact,指8个金属接点)。
水晶头分类
五类/超五类:水晶头内空位一字排开,完全水平
注:五类网线中有的可能带棉线,不用管
六类/超六类:水晶头内空位错开,上下各四个
注:六类网线中有一个十字骨架和棉线,剪断即可(可以把它从网线皮处拉回去一些方便压制)
七类:水晶头内空位位置与六类相同,但口径明显比六类更大
压制
T-568A标准
在T568A中,与之相连的8根线分别定义为:白绿、绿;白橙、蓝;白蓝、橙;白棕、棕。T568A可以跟早期的USOC向下兼容。
T-568B标准
1.轻轻剥开网线 2.橙蓝绿棕顺序解开 3.解开后每根线白色放在左边 4.交换蓝白和绿白位置 到这步,线的顺序为:橙白,橙,绿白,蓝,蓝白,绿,棕白,棕 5.预留1.5cm位置,多余网线剪断

6.将网线塞入水晶头时一定要塞到最底端,网线皮也必须塞入一部分,然后压制
四芯网线
接1236,橙白,橙,绿白,绿
在百兆以太网(Fast Ethernet、10/100M Ethernet)中,仅使用1、2、3、6这四根线,以差分信号传输方式减少电磁干扰,其中1、2为TX(发送)(拧在一起),3、6为RX(接收)拧在一起。因此平行线就是两端同为EIA-568-A或者EIA-568-B,而跳线就是一端使用EIA-568-A,另一端使用EIA-568-B的连接方法。
在千兆以太网(Gigabit Ethernet、1000M Ethernet)或者以太网供电(PoE, Power over Ethernet)中,全部的四对差分对都被使用。
布线
网线选择:墙外五类,材质铜包铝即可(方便更换),埋墙内或户外六类非屏蔽以上,选择无氧铜及以上
1000Mbps超五类足够,考虑POE建议上六类,更高不建议。七类以上网线对其他设备也有要求(如七类水晶头必须使用专门的七类线压制工具),非必需不使用。
交换机
交换机(Switch)是网络设备的一种,主要用于连接多个网络设备,如计算机、打印机等,以实现网络内部的数据包交换。交换机根据数据包的目的地地址,决定数据包的转发路径,从而使数据能够在网络中高效地传输。
交换机中的端口和mac地址一一对应
交换机的主要特点包括:
- 高效的数据传输:交换机能够提供全双工的数据传输模式,允许数据同时在两个方向上传输。
- 自学习能力:交换机能够学习连接到其端口的设备的MAC地址,并据此转发数据包。
- 减少数据冲突:交换机能够减少网络中的数据冲突,提高网络的整体性能。
拓扑
网络拓扑结构是指用传输媒体互连各种设备的物理布局,即用什么方式把网络中的计算机等设备连接起来。网络拓扑结构有很多种,主要有星型结构、环型结构、总线结构、树型结构、网状结构、混合结构等。不同的网络拓扑结构有不同的优缺点,适用于不同的场景和需求。网络拓扑结构的选择和设计对网络的性能和可靠性有重要的影响。
网口(WAN口和LAN口)
WAN口:连接外网,负责PPPoE拨号
LAN口:连接内网,负责DHCP分配局域网IP
网关
网关是网络通信中的一个重要概念,它主要用于连接两个或多个网络,并在网络之间转发数据包。在计算机网络中,网关可以理解为一个网络连接到另一个网络的“门户”,它允许不同网络的设备相互通信。大多数网关运行在OSI 7层协议的顶层—应用层。 网关的功能包括:
- 数据转发:网关负责将来自一个网络的数据包转发到另一个网络。
- 协议转换:当两个网络使用不同的通信协议时,网关可以转换数据包格式,以确保数据能够在不同的网络之间传输。
- 安全控制:网关可以实施安全策略,如防火墙规则,来控制进出网络的数据流量。
- 地址转换:网关可以进行网络地址转换(NAT),将私有IP地址转换为公共IP地址,反之亦然。
在家庭或小型办公网络中,路由器通常充当网关的角色,连接内部网络和互联网。在企业网络中,网关可能是更复杂的设备,提供额外的功能,如VPN支持和高级网络管理

其中,根据目标IP判断数据包如何发送的行为,称之为路由

网关协议的分类
-
网关-网关协议 (GGP)
- 用于核心网关之间的通信。
- 交换路由信息,不涉及路由算法的改变。
- 依赖于完整的网络信息以计算有效路由。
- 如果两个核心网关需要交换路由信息,它们会使用GGP来更新各自的路由表。
-
外部网关协议 (EGP)
- 在非核心网关之间传输信息。
- 维护局域网或广域网信息,减少路由信息传输。
- 一个非核心网关可能使用EGP与相邻的非核心网关交换局域网的路由信息。
-
内部网关协议 (IGP)
- 包括RIP、HELLO和OSPF。
- RIP使用广播技术,可能增加网络流量,在一个局域网内,网关可能通过RIP广播更新的路由表信息。
- HELLO依赖于时钟同步,使用时间作为路由因素。
网关的类型
- 传输网关
- 建立网络间的传输连接,如路由器。
- 应用网关
- 在应用层进行协议转换,如电子邮件网关。
- 安全网关
- 提供协议级到应用级的过滤和保护。
跨网关技术
- 解决IP资源枯竭问题,通过代理服务器实现内部网与公网地址转化。
- 允许点对点交流,突破网关速度限制。
- 在IP地址不足的情况下,一个企业可能使用代理服务器作为网关,将内部网络的私有IP地址转换为可用于Internet的公网IP地址。
路由
一般来说,路由可以理解为根据一定的规则或策略,将信息或数据从一个地方传递到另一个地方的过程。路由的作用是实现信息或数据的有效传输和交换,提高网络的性能和可靠性,以及支持多样化的应用需求。
在计算机网络中,路由是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在 OSI参考模型 第三层—— 网络层 的 数据包 转发设备。路由器通过转发 数据包 来实现 网络互连 。路由器根据路由表中的信息,选择最佳的路径,将数据包发送到下一个路由器或目的主机。路由表是路由器存储和更新的一种数据结构,记录了不同目的地址对应的下一跳地址和其他相关信息。路由表可以通过静态配置或动态学习来维护。动态学习是指路由器之间通过运行一种称为路由协议的算法,来交换路由信息和更新路由表。常见的路由协议有 RIP, OSPF, BGP 等。
路由器是互联网络中必不可少的网络设备之一,路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数据,从而构成一个更大的网络。
路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
要解释路由器的概念,首先要介绍什么是路由。所谓“路由”,是指把数据从一个地方传送到另一个地方的行为和动作,而路由器,正是执行这种行为动作的机器,它的英文名称为router。
路由器的基本功能如下: 第一,网络互连:路由器支持各种局域网和广域网接口,主要用于互连局域网和广域网,实现不同网络互相通信; 第二,数据处理:提供包括分组过滤、分组转发、优先级、复用、加密、压缩和防火墙等功能; 第三,网络管理:路由器提供包括路由器配置管理、性能管理、容错管理和流量控制等功能。
路由是把信息从源穿过网络传递到目的的行为,在路上,至少遇到一个中间节点。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考协议的第二层(链接层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。
通信模式
单工(Simplex):数据只能在一个方向上传输,接收方不能回传信息。
半双工(Half Duplex):数据可以在两个方向上传输,但在任何给定时间点,只能有一个方向的传输。这就像对讲机,一方说话时,另一方必须等待,不能同时说话。
全双工(Full Duplex):是指在通信系统中,数据可以在两个方向上同时传输。这意味着发送设备和接收设备都可以在同一时刻发送和接收信息,就像电话通话一样,你可以在说话的同时听到对方的声音。
桥接
-
桥接是一种网络连接方式,它可以将两个或多个不同的网络接口(如网卡、无线路由器等)连接起来,使它们在链路层(第二层)上可以互相通信。桥接的作用是扩大网络的覆盖范围,增加网络的带宽和可靠性,以及隔离网络的广播域。
桥接有多种实现方式,例如:
- 网桥:一种硬件设备,可以连接两个或多个以太网段,实现数据帧的转发和过滤。
- 无线分布式系统(WDS):一种无线网络技术,可以将多个无线接入点(AP)通过无线信号连接起来,形成一个扩展的无线网络。
- 软件桥接:一种在操作系统中实现的桥接功能,可以将一台计算机上的多个网络接口虚拟成一个交换机,实现数据帧的转发。
家庭无线路由器一般有四个LAN口,这四个LAN口任意选取其中的两个,每个LAN口连接一台电脑A、B,两个LAN口就是桥接关系,从A发出的以太帧,原封不动地到达B,反之亦然。桥设备几乎什么都没有做,除了学习A、B的MAC地址并动态绑定在LAN口,并在转发帧时查询此种绑定关系。
WAN口与任意一个LAN口组合,则是一个路由关系,如果两端连接电脑,电脑处于两个网段,需要三层路由处理才能通信,处理的结果是,变换二层以太帧头。
最好光猫桥接,路由器拨号,只让光猫负责光电转换
DNS
DNS 是域名系统(Domain Name System)的缩写,它是一种用于将人类可读的域名(如 bing.com)转换为计算机可读的 IP 地址(如 204.79.197.200)的分布式数据库系统。
DoT 全称 DNS over TLS,它使用 TLS 来传输 DNS 协议。 DoH 全称 DNS over HTTPS,它使用 HTTPS 来传输 DNS 协议。
DoT 和 DoH 都是加密DNS的一种方式,区别在于它们采用不同的协议和端口,两个都是域名解析安全扩展协议的一种。两个协议原理是相同的,都是通过加密传输用户和 DNS 服务器之间的 DNS 消息,起到防止中间用户窃听和域名查询隐私泄漏的作用。
OSI网络模型和TCP/IP五层网络模型
不同的网络模型可能有不同的层次划分,例如OSI七层模型还包括会话层和表示层,而TCP/IP五层模型将应用层、会话层和表示层合并为应用层。


TCP/IP五层模型是一种网络协议的分层结构,它将网络通信的功能划分为五个层次,分别是:
- 应用层:负责提供各种网络服务,如文件传输、电子邮件、远程登录、网页浏览等。应用层的主要协议有:FTP(文件传输协议)、SMTP(简单邮件传输协议)、POP3(邮局协议第三版)、IMAP(互联网消息访问协议)、HTTP(超文本传输协议)、HTTPS(安全超文本传输协议)、DNS(域名系统协议)、DHCP(动态主机配置协议)、SNMP(简单网络管理协议)等。我们的网络编程主要就是针对应用层.
- 传输层:负责在两个主机之间提供可靠或不可靠的数据传输服务,以及端到端的差错控制和流量控制。传输层的主要协议有:TCP(传输控制协议)和UDP(用户数据报协议)。
- 网络层:负责对数据包进行路由选择和转发,以及实现网络互连和寻址。网络层的主要协议有:IP(网际协议)、ICMP(网际控制报文协议)、IGMP(网际组管理协议)、ARP(地址解析协议)、RARP(反向地址解析协议)等。负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.(==地址管理和路由选择==)代表设备:路由器
- 数据链路层:负责在相邻节点之间建立和维护数据链路,以及将数据帧从一台设备发送到另一台设备。数据链路层的主要协议有:以太网协议、PPP(点对点协议)、HDLC(高级数据链路控制协议)、SLIP(串行线路IP协议)等。负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.(==将比特封装成数据帧==)数据帧:以太网帧、PPP帧、帧中继帧和ATM单元等。代表设备:网卡,网桥和交换机
- 物理层:负责在物理媒体上进行比特流的传输,以及定义物理接口的标准和规范。物理层的主要标准有:RS-232C、V.35、RJ-45、光纤等。负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。代表设备:网线
TCP负责在两个主机之间提供可靠的、面向连接的数据传输服务,以及端到端的差错控制和流量控制。IP负责对数据包进行路由选择和转发,以及实现网络互连和寻址。
TCP/IP协议是互联网的基础,它使不同厂商的设备、不同的CPU以及不同操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信。每一层分别负责不同的通信功能,并且只与相邻的层次进行交互,这样可以提高网络的可扩展性和可维护性。
TCP/IP四层参考模型
- 网络接口层
网络接口层包括用于协作IP数据在已有网络介质上传输的协议。
它定义像地址解析协议这样的协议,提供 TCP/IP 协议的数据结构和实际物理硬件之间的接口。
可以理解为:确定网络数据包的形式。 - 网络层
网络层对应于 OSI 七层参考模型的网络层,本层包含 IP 协议、RIP 协议,负责数据的包装、寻址和路由。同时还包含网间控制报文协议用来提供网络诊断信息;
可以理解为:该层能确定计算机的位置。 - 传输层
传输层对应于 OSI 七层参考模型的传输层,它提供两种端到端的通信服务。其中 TCP 协议提供可靠的数据流运输服务,UDP 协议提供不可靠的用户数据报服务。
TCP:三次握手、四次挥手(面向连接,可靠);UDP:面向无连接 - 应用层 应用层对应于 OSI 七层参考模型的应用层和表达层会话层;负责应用程序间沟通,如超文本传输协议(HTTP) 、简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层.
网络协议
- Telnet (Remote Login):远程登录协议,允许用户从一台计算机远程登录到另一台计算机,仿佛直接在远程主机上操作。端口号 23
- FTP (File Transfer Protocol):远程文件传输协议,使用户能够将文件从远程主机复制到本地计算机。端口号 20(数据传输)和 21(控制命令)
- SMTP (Simple Mail Transfer Protocol):简单邮件传输协议,用于电子邮件的传输。端口号 25
- NFS (Network File Server):网络文件服务器,允许多台计算机透明地访问彼此的文件目录。
- UDP (User Datagram Protocol):用户数据报协议,位于传输层,与IP协议配合使用,传输数据时不包含包头,适合传输较短的文件。
- HTTP (HyperText Transfer Protocol):超文本传输协议,用于网页浏览器和网站服务器之间的信息传递,所有WWW文件都遵循此标准。端口号 80
- HTTPS (HyperText Transfer Protocol Secure):安全超文本传输协议,HTTP的安全版本,使用SSL作为子层来验证服务器身份并加密通信。端口号 443
- DNS (Domain Name System):域名系统协议,将域名和IP地址相互映射的分布式数据库系统,使用户能够通过域名访问互联网资源。端口号 53
- POP3 (Post Office Protocol version 3):邮局协议版本3,用于接收电子邮件,允许用户从远程服务器下载邮件到本地计算机。端口号 110
- ARP (Address Resolution Protocol):地址解析协议,通过IP地址获取设备MAC地址。
- TCP (Transmission Control Protocol):传输控制协议,提供可靠的、有序的和错误检测功能的数据传输。
- IP (Internet Protocol):互联网协议,负责在网络层定位网络中的主机并封装IP地址。
以太帧
以太帧的工作机制
当以太网软件从网络层接收到数据报之后,需要完成如下操作:
- 根据需要把网际层的数据分解为较小的块,以符合以太网帧数据段的要求。
以太网帧的整体大小必须在 64~1518 字节之间(不包含前导码)。有些系统支持更大的帧,最大可以支持 9000 字节。有些系统支持更大的帧,最大可以支持 9000 字节。
-
把数据块打包成帧。每一帧都包含数据及其他信息,这些信息是以太网网络适配器处理帧所需要的。
-
把数据帧传递给对应于 OSI 模型物理层的底层组件,后者把帧转换为比特流,并且通过传输介质发送出去。
-
以太网上的其他网络适配器接收到这个帧,检查其中的目的地址。如果目的地址与网络适配器的地址相匹配,适配器软件就会处理接收到的帧,把数据传递给协议栈中较高的层。
以太帧的结构
以太帧起始部分由前同步码和帧开始定界符组成,后面紧跟着一个以太网报头,以 MAC 地址说明目的地址和源地址。以太帧的中部是该帧负载的包含其他协议报头的数据包,如 IP 协议。
以太帧由一个 32 位冗余校验码结尾,用于检验数据传输是否出现损坏。以太帧结构如图所示。

其中IP数据包组成如下:

以太网帧首部包括:目的MAC地址+ 源MAC地址 + 类型
上图中每个字段的含义如下表所示:
| 字段 | 含义 |
|---|---|
| 前同步码 | 用来使接收端的适配器在接收 MAC 帧时能够迅速调整时钟频率,使它和发送端的频率相同。前同步码为 7 个字节,1 和 0 交替。 |
| 帧开始定界符 | 帧的起始符,为 1 个字节。前 6 位 1 和 0 交替,最后的两个连续的 1 表示告诉接收端适配器:“帧信息要来了,准备接收”。 |
| 目的地址 | 接收帧的网络适配器的物理地址(MAC 地址),为 6 个字节(48 比特)。作用是当网卡接收到一个数据帧时,首先会检查该帧的目的地址,是否与当前适配器的物理地址相同,如果相同,就会进一步处理;如果不同,则直接丢弃。 |
| 源地址 | 发送帧的网络适配器的物理地址(MAC 地址),为 6 个字节(48 比特)。 |
| 类型 | 上层协议的类型。由于上层协议众多,所以在处理数据的时候必须设置该字段,标识数据交付哪个协议处理。例如,字段为 0x0800 时,表示将数据交付给 IP 协议。 |
| 数据 | 也称为效载荷,表示交付给上层的数据。以太网帧数据长度最小为 46 字节,最大为 1500 字节。如果不足 46 字节时,会填充到最小长度。最大值也叫最大传输单元(MTU)。 在 Linux 中,使用 ifconfig 命令可以查看该值,通常为 1500。 |
| 帧检验序列 FCS | 检测该帧是否出现差错,占 4 个字节(32 比特)。发送方计算帧的循环冗余码校验(CRC)值,把这个值写到帧里。接收方计算机重新计算 CRC,与 FCS 字段的值进行比较。如果两个值不相同,则表示传输过程中发生了数据丢失或改变。这时,就需要重新传输这一帧。 |
FCS(帧检验序列)和CRC(循环冗余检验)是数据通信中用于错误检测的两个相关概念。FCS是附加在数据帧末尾的一系列检验位,而CRC是一种算法,用于生成这些检验位。
具体来说,CRC算法通过对数据帧的内容应用特定的多项式,计算出一个冗余码,这个冗余码就是FCS。在接收端,通过对接收到的数据帧再次应用相同的CRC算法,可以检测数据在传输过程中是否发生了错误。如果计算出的FCS与接收到的FCS不匹配,那么就可以判断数据帧在传输过程中可能遭受了损坏。
简而言之,CRC是生成FCS的方法,而FCS是用于验证数据完整性的结果。
TCP/IP协议
简介
TCP/IP协议实际上是一个协议族,包含了100多个协议,包括ARP、ICMP、IGMP、IP、TCP和UDP等多种协议,其中TCP协议和IP协议是最重要的两个协议。
TCP/IP协议主要由网络层的IP协议 和 传输层的TCP协议组成 。
TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
打个比方:TCP协议就相当于中国邮政快递,用来做运输 IP协议就相当于邮政编码,用来唯一标记目的地。
TCP协议
TCP协议是传输控制协议,工作在传输层。提供面向链接的,可靠的传输服务(三次握手,四次挥手)
- 面向链接:数据传输之前,客户端与服务器之间要建立连接,才可以传输数据
- 可靠的:数据传输是有序的,要对数据进行校验,数据不会丢失
UDP协议
UDP协议:用户数据报协议,提供的是不可靠的,面向无连接的传输服务(只有数据的发送方和接收方)
- 面向无连接:传输方和接收方不需要建立连接,在传输数据之前没有明确的连接链路(即不是所有的数据都是通过一条链路传输)
- 不可靠:因为数据的传输不是通过一条链路完成的,因此接收方接收的数据不一定按照发送数据的顺序接收,这样就可能造成数据包的丢失
传输方和接收方不需要建立连接,用于对数据实时性和安全性不高的场合。可以用于视频会议。

IP协议
IP协议是TCP/IP协议的核心,所有的TCP,UDP等数据都以IP数据格式传输。IP协议没有提供一种数据未传达以后的处理机制,这被认为是上层协议:TCP或UDP要做的事情,所以IP不是可靠的协议。
IP地址的分类:
内网地址: 10.0.0.0 ~ 10.255.255.255 172.16.0.0 ~ 172.31.255.255 192.168.0.0 ~ 192.168.255.255
内网地址是局域网内给主机分配的IP地址,该地址外网无法直接访问,只能内网主机之间进行访问。
补充: (1)建立TCP连接
TCP连接就是通过TCP协议在2台主机(的两个程序之间)之间建立起一个数据传输通道,主机就可以通过该通道相互传送数据,TCP连接也称为Socket。
(2)协议://域名:端口号
域名:因为IP地址不方便记忆,所以通过域名来对应IP,只要记住域名就相当于记住了IP地址。
端口号:有了TCP和IP以后,就可以实现主机之间的通信。但是一台主机可以同时运行多个应用程序,所以我们需要端口号来区分数据是属于哪一个应用程序的。
IP地址
IP地址
为互联网中的每一个网络和每一台主机分配一个逻辑地址,来和物理地址区分。
在网络中唯一标识一台主机,保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。IP地址的表示:
我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;
IP地址分类:IPV4/IPV6
IPv4采用32位地址长度,只有大约43亿个地址,而IPv6采用128位地址长度,几乎可以不受限制地提供地址
Port(端口号)
端口号(port)是传输层协议的内容,端口号是一个32位的整数;
端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理;
一个进程可以绑定多个端口号; 但是一个端口号不能被多个进程绑定;
端口号范围:
0-1023:知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议,他们的端口号都是固定的.
1024- 65535:操作系统动态分配的端口号.客户端程序的端口号,就是由操作系统从这个范围分配的.
IP地址 + 端口号能够标识网络上的某一台主机的某一个进程
IP:port就叫做socket(套接字)
子网掩码

IP地址与子网掩码进行与运算之后得出的结果相同,则认为这些IP地址在同一个子网中
PPPoE
PPPoE(Point-to-Point Protocol over Ethernet)是一种在以太网上运行的点对点协议,通常用于在广域网(WAN)环境下通过以太网连接拨号上网。它允许个人用户通过以太网连接接入Internet,常见于家庭和小型企业网络中。
简而言之,PPPoE是一种在以太网上运行的拨号协议,通过使用PPPoE,用户可以使用标准的以太网接口进行拨号连接到Internet。
PPPoE的特点
PPPoE具有以下特点:
功能上:
- PPPoE由于集成了PPP协议,实现了传统以太网不能提供的身份验证、加密以及压缩等功能。
- PPPoE通过唯一的Session ID可以很好的保障用户的安全性。
应用上:
- PPPoE拨号上网作为一种最常见的方式让终端设备能够连接ISP从而实现宽带接入。
- PPPoE可用于缆线调制解调器(Cable Modem)和数字用户线路(DSL)等以太网线,通过以太网协议向用户提供接入服务的协议体系。
总而言之,PPPoE技术将以太网技术的经济性与PPP协议的可管理控制性结合在一起,提供接入互联网的功能。对于运营商来说,它能够最大限度地利用电信接入网现有的体系结构,利用现有的拨号网络资源,运营和管理的模式也不需要很大的改变;对于用户来说,使用感与原来的拨号上网没有太大区别,较容易接受。
PPPoE报文
在了解PPPoE建立连接的阶段之前,我们先来了解下PPPoE协议的报文结构,PPPoE报文的格式就是在以太网帧中携带PPP报文,报文封装结构如下图所示。
图1-2 PPPoE协议报文结构图

表1-1 PPPoE报文字段说明
| 报文字段 | 说明 |
|---|---|
| Ver域 | 4bits,PPPoE版本号,值为0x1。 |
| Type域 | 4bits,PPPoE类型,值为0x1。 |
| Code域 | 8bits,PPPoE报文类型。Code域为0x00,表示会话数据。Code域为0x09,表示PADI报文;Code域为0x07,表示PADO或PADT报文;Code域为0x19,表示PADR报文;Code域为0x65,表示PADS报文。 |
| Session_ID域 | 16bits,对于一个给定的PPP会话,该值是一个固定值,并且与以太网Source_address和Destination_address一起实际地定义了一个PPP会话。值0xffff为将来的使用保留,不允许使用。 |
| Length域 | 16bits,定义PPPoE的Payload域长度。不包括以太网头部和PPPoE头部的长度。 |
PPPoE建立连接的阶段
在了解PPPoE建立连接的阶段之前,先了解下PPPoE组网结构中的各种角色。
PPPoE协议采用Client/Server模式,如PPPoE接入组网图所示,基本的PPPoE组网中的角色有PPPoE Client,PPPoE Server,以及RADIUS设备。
图1-3 PPPoE接入组网图

PPPoE用户上线需要经过两个阶段,发现阶段和PPP会话阶段。发现阶段主要是选择PPPoE服务器,并确定索要建立的会话标识符Session ID。PPP会话阶段即执行标准的PPP过程,包括LCP协商、PAP/CHAP认证、NCP协商等阶段。
图1-4 PPPoE工作原理实现过程

具体的PPPoE发现阶段和PPP会话阶段的时序如下图所示。
图1-5 PPPoE发现阶段和PPP会话阶段时序图

发现阶段
发现阶段是指设备为用户分配接入的Session ID,用来标识一条用户与设备之间的PPPoE虚拟链路。
- PPPoE Client广播一个PADI(PPPoE Active Discovery Initiation,PPPoE激活发现起始)报文,在此报文中包含用户想要得到的服务类型信息。
- 以太网内的所有PPPoE Server在收到这个初始化报文后,将其中请求的服务与自己能提供的服务进行比较,其中可以为PPPoE Client提供此服务的PPPoE Server会回应PADO(PPPoE Active Discovery Offer,PPPoE激活发现服务)报文。
- PPPoE Client可能会收到多个PPPoE Server回应的PADO报文。PPPoE Client会根据一定的条件从返回PADO报文的PPPoE Server中选定符合条件的PPPoE Server,并向它返回一个会话请求报文PADR(非广播)(PPPoE Active Discovery Request,PPPoE激活发现请求),在PADR报文中封装所需的服务信息。
- 被选定的PPPoE Server在收到PADR报文后,PPPoE Server会产生一个唯一的会话标识以标识它和PPPoE Client的这段PPPoE会话。并把这个特定的会话标识包含在会话确认报文PADS(PPPoE Active Discovery Session-confirmation,PPPoE激活发现会话确认)中回应给PPPoE Client,如果没有错误发生就进入到PPP会话阶段,而PPPoE Client在收到会话确认报文后如果没有错误发生也进入到PPP会话阶段。
PPP会话阶段
PPP会话阶段包括LCP协商、PAP/CHAP认证、NCP协商等阶段。
-
LCP协商
进入PPP会话阶段之后,首先进行LCP协商,LCP协商过程如下。
- PPPoE Client与PPPoE Server互相发送LCP Configure-Request报文。
- 双方收到Configure-Request报文后,根据报文中协商选项支持情况做出适当的回应(请参见下表)。若两端都回应了Configure-ACK,则标志LCP链路建立成功,否则会继续发送Request报文:
- 如果在设定的LCP协商间隔与协商次数内,对端回应了Configure-ACK,则LCP链路建立成功。
- 如果在超过了设定的LCP协商次数后,对端尚未回应Configure-ACK,则终止LCP协商。
- LCP链路建立成功后,PPPoE Server会周期性地向PPPoE Client发送LCP Echo-Request报文,然后接收PPPoE Client回应的Echo-Reply报文,来探测LCP链路是否正常,以维持LCP连接。
表1-2 回应报文类型列表
回应报文类型 含义 Configure-ACK 若完全支持对端的LCP选项,则回应Configure-ACK报文,报文中必须完全协带对端Request报文中的选项。 Configure-NAK 若支持对端的协商选项,但不认可该项协商的内容,则回应Configure-NAK报文,在Configure-NAK的选项中填上本端期望的内容,如:对端MRU值为1500,而本端期望MRU值为1492,则在Configure-NAK报文中填上1492。 Configure-Reject 若不能支持对端的协商选项,则回应Configure-Reject报文,报文中带上不能支持的选项 -
PAP/CHAP认证
LCP协商完成后,会进入认证阶段,该分为PAP认证和CHAP认证两种认证方式。
PAP认证
PAP为两次握手协议,是通过用户名和密码来对用户进行认证,并且是以明文的方式传递用户名和密码。PPPoE Server(或者RADIUS服务器)根据本端的用户表查看用户名和密码是否正确。适用于网络安全要求相对较低的环境。
CHAP认证
CHAP认证为三次握手协议,也是由PPPoE Server(或者RADIUS服务器)根据本端的用户表查看用户名和密码是否正确。但是CHAP认证方式只在网络上传输用户名,不传输用户密码,安全性比PAP要高。
-
NCP协商
NCP协商的主要功能是协商PPP报文的网络层参数,如IPCP、IPv6CP等。PPPoE Client主要通过IPCP协议来获取访问网络的IP地址或IP地址段。
NCP协商的流程与LCP流程类似。NCP协商成功之后,PPPoE Client可以正常访问网络。
NCP协商成功之后,即为PPPoE Client上线,此时PPPoE Server(通常为BRAS设备),会给RADIUS服务器发送计费请求报文,通过RADIUS服务器对PPPoE Client进行计费。
PPPoE与IPoE的区别
目前,PPPoE和IPoE作为用户接入两大最常见的接入方式,已经实现了广泛的应用。虽然两者都属于用户接入的方式,但PPPoE和IPoE之间有很大的区别。接下来对PPPoE和IPoE进行对比。
IPoE是一种在以太网络上直接封装传输IP报文的用户接入方式。IPoE技术依赖DHCP协议提供IP地址,但是DHCP协议本身并不具备建立链路、认证用户以及链路监测的功能。因而IPoE技术将DHCP协议和可扩展身份验证协议,例如Web协议,802.1x协议等,结合在一起,提供了与PPPoE相同的功能。详细对比如下图所示。
PPPoE和IPoE对比
| 拨号方式 | PPPoE | IPoE |
|---|---|---|
| 所在协议栈层 | 数据链路层 | 应用层 |
| 承载协议 | 二层以太协议 | UDP协议 |
| 封装开销 | 大 | 小 |
| IP地址分配 | IPCP协议, 基于用户名和密码, 认证通过之后分配IP地址 | DHCP协议, 认证前分配IP地址基于用户的用户物理或逻辑信息,配合其他协议进行认证 |
| 访问控制方式 | 业务认证统一 | 业务认证分离 |
| 会话建立过程 | 面向连接的SessionID | 无连接 |
| 客户端软件 | 需要 | 不需要 |
PPPoE的认证方式,可管理性强,本身安全性很高,其代价是限制了网络的使用范围和组播业务的开展,因此在HSI(High Speed Internet)高速上网业务和光纤宽带拨号上网业务应用比较广泛,给学校、企业、家庭用户带来了快速、方便的宽带接入方式。IPoE可以自主管理IP地址的使用期限,可以在局域网范围内进行设置,无需客户端软件,操作简单,但是需要配合其他协议来进行认证,在IPTV/VoIP业务上应用比较广泛。
IPoE的安全性方面需要家庭网关,网络接入设备,宽带网络网关协同工作。其保证策略包括:反地址欺骗,用户终端数限制,防 Dos 攻击,业务隔离,非法组播源抑制,端口隔离。IPoE在组播业务场景下,可以将组播复制下移到靠近用户的设备,因此在互联网电视和语音方面得到了广泛应用。
家庭内网两大原则
01:拨号的设备(网关)负责端口转发和DHCP(旁路由除外) 02:整个内网只需要一层NAT,只有一台设备负责DHCP
VLAN(虚拟局域网)
虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网,由于交换机端口有两种VLAN属性,其一是VLANID,其二是VLANTAG,分别对应VLAN对数据包设置VLAN标签和允许通过的VLANTAG(标签)数据包,不同VLANID端口,可以通过相互允许VLANTAG,构建VLAN。VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN不一定是一个广播域,VLAN之间的通信并不一定需要路由网关,其本身可以通过对VLANTAG的相互允许,组成不同访问控制属性的VLAN,当然也可以通过第3层的路由器来完成的,但是,通过VLANID和VLANTAG的允许,VLAN可以为几乎局域网内任何信息集成系统架构逻辑拓扑和访问控制,并且与其它共享物理网路链路的信息系统实现相互间无扰共享。VLAN可以为信息业务和子业务、以及信息业务间提供一个相符合业务结构的虚拟网络拓扑架构并实现访问控制功能。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点: 网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。
虚拟局域网是一种网络技术,它可以将一个物理网络划分为多个逻辑上的子网络,每个子网络就是一个虚拟局域网。虚拟局域网的优点有:
- 限制广播域,节省带宽,提高网络性能。
- 增强网络安全性,不同虚拟局域网之间的通信需要经过路由器或三层交换机,防止数据泄露或攻击。
- 提高网络灵活性,可以根据功能、部门或应用等因素将用户划分到不同的虚拟局域网,而不受物理位置的限制。
虚拟局域网的实现需要在数据帧中添加一个4字节的标签,用来标识数据帧所属的虚拟局域网。这个标签中有一个12位的字段,叫做虚拟局域网标识符(VLAN ID),它可以表示4096个不同的虚拟局域网。不同的虚拟局域网之间的通信需要经过路由器或三层交换机,进行二层到三层的转换。
虚拟局域网的接口类型有三种,分别是Access接口、Trunk接口和Hybrid接口。Access接口一般用于连接不能识别标签的用户终端,它只能收发不带标签的数据帧,并且只能属于一个虚拟局域网。Trunk接口一般用于连接交换机或路由器等设备,它可以收发多个虚拟局域网的数据帧,但只有缺省虚拟局域网的数据帧在发送时不带标签。Hybrid接口既可以连接用户终端,也可以连接交换机或路由器等设备,它可以收发多个虚拟局域网的数据帧,并且可以根据需要配置哪些虚拟局域网的数据帧在发送时带标签或不带标签。
虚拟局域网的常见应用场景有:
- 二层隔离,将不同的用户或部门划分到不同的虚拟局域网,实现业务数据的隔离和安全。
- 三层互访,通过路由器或三层交换机,实现不同虚拟局域网之间的通信,满足业务需求。
衡量网络性能的四大指标
- 带宽(Bandwidth):指在单位时间内从网络中的某一点到另一点所能通过的最高数据率,通常用bps(bit per second)表示。带宽越高,理论上网络传输数据的能力越强。
- 时延(Latency):也称为延迟,是指数据从发送端传输到接收端所需的时间。时延包括处理时延、排队时延、发送时延和传播时延。
- 抖动(Jitter):指网络延迟的波动性,是最大延迟与最小延迟的时间差。网络抖动越小,表明网络稳定性越好。
- 丢包(Packet Loss):是指数据包在传输过程中丢失的现象。丢包率是测试中所丢失数据包数量占所发送数据包的比率,丢包率越低,网络质量越好。
时延

滑动窗口的大小是动态变化的,它取决于网络条件和接收方的处理能力。窗口大小的调整有助于优化网络吞吐量和减少延迟。
广播域
广播域是网络中的一个逻辑划分,它定义了一个范围,其中的设备可以接收到同一广播包。在一个广播域内,任何设备发出的广播消息都会被域内所有设备接收。通常,一个局域网(LAN)就是一个广播域。为了提高网络效率和减少不必要的流量,通常会通过路由器或第三层交换机来划分广播域,从而限制广播流量只在特定区域内传播。
例如,如果一个设备在网络上发送了一个ARP请求(这是一种广播消息),那么同一广播域内的所有设备都会接收到这个请求。但是,如果网络中有路由器或第三层交换机的存在,它们会阻止广播包跨越到另一个广播域,因为路由器和第三层交换机不会转发广播包。
在大型或复杂的网络中,合理地划分广播域是非常重要的,因为过多的广播流量会消耗带宽并降低网络性能。通过使用虚拟局域网(VLAN)技术,网络管理员可以在物理网络结构不变的情况下,逻辑上划分不同的广播域,从而有效地管理广播流量和提高网络安全性
广播域(Broadcast domain)是计算机网络的一个逻辑划分。广播域中的任意一个节点可以在数据链路层通过广播的方式到达任意一个节点。广播域可以被部署在同一个局域网或者被桥接到其他的局域网。
根据目前的流行技术,任意连接到同一个以太网中继器或者交换机的电脑属于同一个广播域,并且任意连接到同一个互相链接的中继器或交换机的集合的电脑也是属于同一个广播域的。而路由器和其他的网络层设备会在广播域间形成隔离。
与广播域相对的是冲突域。冲突域中所有节点都链接到同一个被交换机和学习型网桥划分的相互连接的中继器集合。冲突域一般来说小于或者包含在广播域中。 一些处在数据链路层的设备能够划分冲突域,但是广播域只能由像路由器或者网络层交换机这样的网络层的设备来进行划分。虚拟局域网设备也能划分广播域,但是它们只能在网络层的功能下提供这些子域的网络方法。
IPv6地址类型
- 单播地址 (Unicast): 用于一对一通信,确保数据包只被发送到一个特定的接口。
- 多播地址 (Multicast): 用于一对多通信,数据包被发送到多个接口。
- 任播地址 (Anycast): 类似于单播,但数据包被发送到最近的(通常是路由最优的)一组接口中的一个。
- 链路本地地址 (Link-Local): 仅在单个链路或非路由共享访问网络上使用,不会被路由器转发。
- 唯一本地地址 (Unique Local Addresses, ULAs): 用于本地通信,在家庭和企业环境中使用,类似于IPv4的私有地址。
- 全球单播地址 (Global Unicast): 可在整个互联网上路由的公共地址。
IPv6没有广播地址,这一功能通过多播地址实现。
例子:
-
单播地址:
2001:0db8::1 -
多播地址:
ff02::1 -
任播地址: 通常与单播地址相同,但在多个节点配置。
-
链路本地地址:
fe80::1 -
唯一本地地址:
fd00::1 -
全球单播地址:
3001:abcd::1 -
环回地址:
::1 -
未指明地址:
:: -
内嵌IPv4地址:
::ffff:192.0.2.128(这里192.0.2.128是嵌入的IPv4地址)
环回地址是指用于测试网络内部传输的特殊地址。就像IPv4中的127.0.0.1,IPv6的环回地址是::1。这个地址用于发送数据给本机,以检查本地网络堆栈是否正常工作。
未指明地址是指在IPv6中尚未配置的地址,相当于IPv4中的0.0.0.0。这个地址通常用于表示一个接口(网络设备)尚未分配地址。
内嵌IPv4地址是IPv6地址的一种特殊形式,它允许IPv4地址被直接嵌入到IPv6地址中。这主要用于支持IPv4和IPv6双协议栈的节点。在这种情况下,IPv6地址的前80位设置为0,接下来的16位设置为1,然后是32位的IPv4地址。这样做可以帮助在过渡期间实现IPv4到IPv6的平滑过渡。