目录
TCP/IP协议介绍
协议是什么,有什么作用?
网络协议为什么要分层
TCP/IP五层网络协议每层的作用
应⽤层
DNS的作用及原理
DNS工作流程
数据链路层
以太⽹帧格式
MAC地址的作用
ARP协议的作⽤
ARP协议的工作流程
MTU以及MTU对 IP / UD / TCP 协议的影响
传输层(TCP协议)
介绍TCP协议段格式
理解端⼝号的概念
能够基于UDP实现可靠传输.
⽹络层(IP协议)
IP协议的头格式
IP地址的作用:
局域网(子网/LAN)
局域网地址
广域网(公网/WAN)
广域网地址
MAC地址的作用:
对⽐理解MAC地址和IP地址
NAT技术
如何解决IPv4的IP地址数⽬不⾜的问题
理解IP数据分包组包
为什么分包
分包组包过程中和哪些IP报头字段有关联
组包时如何保证数据的顺序和完整性
MSS
⽹络层的IP地址路由过程
TCP/IP协议介绍
协议是什么,有什么作用?
协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能 相互通信交流。协议(protocol)最终体现为在⽹络上传输的数据包的格式。网络协议对于 实现网络通信的互操作性、标准化、数据封装、路由和寻址、错误检测和恢复、流量控制以及安全性 等方面都起着至关重要的作用
网络协议为什么要分层
一整个协议太庞大,不利于学习和维护,拆分出来的协议又太多了,就引入协议分层,只有相邻层次之间才可以沟通,不能跨层沟通,好处就是
1) 上层协议直接用下层协议即可,不需要了解下层协议的细节(相当于两个人打电话,直接用对应的电话就好,电话内部的怎么接收信号,转换信号怎么传播怎么解码,上层人不需要知道,使用接口就行)
2) 某一层协议替换之后,对其他层没有影响(换个电话用用)
TCP/IP五层网络协议每层的作用
- 1. 应用层 (Application Layer)
功能:定义了应用程序之间通信的协议和方式。例如,HTTP用于网页浏览,SMTP用于电子邮件发送,FTP用于文件传输等。
关注传输的数据在应用程序中如何使用,如数据的表示、加密、压缩等。
- 2. 传输层 (Transport Layer)
功能:提供端到端的通信服务,确保数据包的可靠传输或提供无连接的不可靠服务。
关注通信的起点和终点。主要协议包括TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的数据传输服务,UDP提供不可靠的数据传输服务。
- 3. 网络层 (Network Layer)
功能:负责数据包的路由和转发,将数据从源地址传输到目的地址。
关注通信中的路线规划。主要协议是IP(互联网协议),它定义了数据包的格式、地址和路由规则。此外,还包括ICMP(Internet控制消息协议)、IGMP(Internet组管理协议)等辅助协议。
- 4. 数据链路层 (Data Link Layer)
功能:在相邻节点之间无差错的传输数据帧,并负责帧的封装和解封装、差错检测等。
关注相邻节点之间的通信细节。该层定义了如何访问传输介质(如局域网、广域网等),以及如何将数据封装成帧进行传输。主要协议包括以太网、令牌环、PPP(点对点协议)等。
- 5. 物理层 (Physical Layer)(硬件层面不重点介绍)
功能:负责传输比特流,是网络通信的基础设施。
关注网络通信的物理连接,包括电缆规格、电压级别、接口类型等。该层定义了数据传输的电气、机械和定时接口等特性,确保比特流在物理介质上的正确传输。
应⽤层
DNS的作用及原理
DNS是互联网上的域名解析系统,它建立了一个分布式数据库,将人们易于记忆的域名映射到计算机易于识别的IP地址。这样用户就可以通过输入域名来访问互联网资源,而无需记住复杂的IP地址。
在浏览器中键入
www.microsoft.com
这个域名, DNS系统会将www.microsoft.com
这个域名解析为相应的IP地址207.46.230.229
DNS工作流程
- 用户请求:当用户在浏览器中输入一个域名时,计算机会向本地域名服务器(Local DNS Server)发送一个域名解析请求。
- 本地查询:本地域名服务器首先在其缓存中查找该域名的解析记录。如果找到,则直接返回IP地址给用户;否则,继续下一步。
- 逐级查询:本地域名服务器会向根域名服务器(Root DNS Server)查询,根域名服务器会返回顶级域名服务器(TLD Server)的地址。接着,本地域名服务器向顶级域名服务器查询,顶级域名服务器会返回权威域名服务器(Authoritative DNS Server)的地址。最后,权威域名服务器会返回相应的IP地址。
- 结果返回:本地域名服务器将解析到的IP地址返回给用户,并将该结果保存在缓存中,以便后续使用。
数据链路层
以太⽹帧格式
- 源地址和⽬的地址是指⽹卡的硬件地址(也叫MAC地址), ⻓度是48位,是在⽹卡出⼚时固化的;
- 帧协议类型字段有三种值,分别对应IP、ARP、RARP;
- IP:当Type字段的值为0x0800时,代表帧包含的是IP协议的数据。
- ARP:当Type字段的值为0x0806时,代表帧包含的是ARP(地址解析协议)的数据。ARP用于将网络层(IP层)地址解析为链路层(MAC层)地址。
- RARP:当Type字段的值为0x8035时,代表帧包含的是RARP(逆地址解析协议)的数据。RARP与ARP相反,它用于将MAC地址解析为IP地址,但RARP在实际应用中已经较少使用。
- 帧末尾是CRC校验码,主要功能是检验数据是否在传输过程中被破坏,可能是由于物理干扰等原因
MAC地址的作用
- MAC地址(Media Access Control Address)是物理地址或硬件地址,用于在数据链路层进行数据帧的目标设备识别和传输控制。
- 它由6个字节(48位)组成,通常用十六进制数表示,例如00:1A:2B:3C:4D:5E。
- MAC地址被永久地嵌入到设备的网络接口卡(NIC)中,由设备制造商在设备制造过程中分配,并且无法更改。
ARP协议的作⽤
ARP协议建⽴了主机 IP地址和MAC地址的映射关系.当主机需要发送数据给另一台主机时,需要知道目标主机的MAC地址,如果接收到的数据包的MAC地址和本机的MAC地址不一样会被直接丢弃。ARP协议可以通过查询网络中其他主机的IP和MAC地址映射表,将目标主机的IP地址转换为对应的MAC地址。
- IP地址到MAC地址的映射:当主机需要发送数据给另一台主机时,需要知道目标主机的MAC地址。ARP协议可以通过查询网络中其他主机的IP和MAC地址映射表,将目标主机的IP地址转换为对应的MAC地址。
- ARP缓存:ARP协议会将查询到的IP和MAC地址映射保存在本地缓存中,以便下次快速查询。这样可以减少网络中的广播流量,提高通信效率。
- 支持局域网通信:在局域网中,设备之间通过MAC地址进行通信。通过ARP协议,本地主机可以向局域网中的所有设备广播ARP请求,以获取目标设备的MAC地址,从而实现设备之间的通信。
- 实现无连接协议的功能:在以太网上,数据包的传输是无连接的。ARP协议通过动态地将IP地址和MAC地址进行绑定,使得源主机无需事先知道目标主机的MAC地址,就可以直接向目标主机发送数据包。
- 网络层和数据链路层的转换:ARP协议位于网络层和数据链路层之间,起着一个转换器的作用。网络层使用IP地址来标识设备,而数据链路层使用MAC地址来标识设备。ARP协议可以根据IP地址找到对应的MAC地址,并将数据包从网络层转发到数据链路层。
ARP协议的工作流程
以两台主机A和B为例,如果主机A需要向主机B发送数据,ARP协议的工作流程如下:
- 本地ARP缓存查询:主机A首先会在自己的ARP缓存中查找主机B的MAC地址。如果找到了,则直接使用该地址进行通信;否则进入下一步。
- ARP请求广播:主机A会向整个局域网发送一个ARP请求广播包,该广播包中包含主机A的IP地址、MAC地址以及主机B的IP地址。局域网内的所有设备都会收到这个广播包。
- ARP响应:当主机B收到这个ARP请求广播包后,会检查请求中的目标IP地址是否与自己匹配。如果匹配,则主机B会向主机A发送一个ARP响应包,其中包含自己的MAC地址。
- ARP缓存更新:主机A收到主机B的ARP响应包后,会将主机B的IP地址和MAC地址映射关系保存在自己的ARP缓存中,并使用该地址发送数据包给主机B。
- ARP缓存超时:如果主机A在一段时间内没有再次向主机B发送数据,则主机A的ARP缓存中的相关条目可能会因为超时而被自动删除,以避免ARP缓存污染攻击。
MTU以及MTU对 IP / UD / TCP 协议的影响
MTU(Maximum Transmission Unit,最大传输单元)是网络层协议的一部分,它定义了数据链路层帧中能够承载的最大数据长度。这个长度包括了网络层数据报(如IP数据报)的头部和数据部分。(发快递对包裹尺寸的限制)
对IP协议的影响:
- 数据包分片:当IP数据报的大小超过MTU时,发送方会将其分割成多个较小的数据包(分片),每个分片都有自己的IP头部,但共享相同的16位标识符。
- 重组:接收方会根据每个分片中的标识符、标志位和片偏移信息,将多个分片重新组合成一个完整的IP数据报。
- 丢包风险:如果分片中的一个或多个丢失,接收方可能无法成功重组原始数据报,导致数据丢失。
对UDP协议的影响:
- 分包:与IP协议类似,当UDP数据报的大小超过MTU时,也会被分割成多个IP数据包进行传输。
- 无重传机制:UDP协议本身不提供重传机制,所以如果分片中的一个或多个丢失,UDP数据将完全丢失,且不会被重新传输。
对TCP协议的影响:
- MTU探测与调整:TCP协议会通过MTU探测机制来确定当前路径的MTU大小,并据此动态调整其发送的数据包大小。
- 避免分片:通过MTU探测和调整,TCP协议可以尽量避免数据包的分片,从而提高传输效率和可靠性。
- 重传机制:TCP协议具有强大的重传机制,如果数据包丢失,它会重新发送丢失的数据包,直到成功接收为止。
传输层(TCP协议)
介绍TCP协议段格式
- 源端口号(16位):用于标识发送方应用程序的端口号,表示数据是从哪个进程来。
- 目的端口号(16位):用于标识接收方应用程序的端口号,表示数据到哪个进程去。
- 序号(32位):用于标识发送方发送的数据字节所占的序列号,表示本报文段所发送数据的第一个字节的编号。
- 确认序号(32位):用于确认接收方已经收到的数据字节的序列号,即接收方期望收到发送方下一个报文段的第一个字节数据的编号。
- 首部长度(4位):用来指明TCP报文段首部的长度,以4字节为单位。最大为60字节,最小为20字节。通过这个字段可以确定TCP报头中是否包含选项字段。
- 保留(6位):保留的6位用于将来的功能扩展,目前必须全部为0。
- 控制位(6位):用于控制TCP报文段的传输状态和控制信息,包括:
URG(紧急指针有效位):告知接收方此报文段中有紧急数据需要处理。
ACK(确认序号有效位):表示确认序号字段中的数据有效。
PSH(推送位):告知接收方应立即将数据交给应用程序,而不是等待缓冲区填满。
RST(复位位):用于重置连接。
SYN(同步位):用于建立连接。
FIN(结束位):用于终止连接。
- 窗口大小(16位):指明发送方的接收窗口大小,用于流量控制。
- 校验和(16位):用于检验TCP报文段是否在传输过程中发生错误。发送端基于数据内容校验生成一个数值,接收端根据接收的数据校验生成一个值,如果两个值不匹配,则认为数据有问题。
- 紧急指针(16位):仅当URG标志位被设置时有效,表示紧急数据的末尾位置。
- 选项(可变长度):用于提供更多的可选功能,如MSS、时间戳等。这些可选字段可以用于实现拥塞控制、数据加密、性能优化等功能。
理解端⼝号的概念
端口号标识了主机上通信的不同应用程序
- 0 - 1023: 知名端⼝号, HTTP, FTP, SSH等这些⼴为使⽤的应⽤层协议, 他们的端⼝号都是固定的.
- 1024 - 65535: 操作系统动态分配的端⼝号. 客⼾端程序的端⼝号, 就是由操作系统从这个范围分配 的.
认识知名端⼝号
- ssh服务器, 使⽤22端⼝
- ftp服务器, 使⽤21端⼝
- telnet服务器, 使⽤23端⼝
- http服务器, 使⽤80端⼝
- https服务器, 使⽤443
我们⾃⼰写⼀个程序使⽤端⼝号时, 要避开这些知名端⼝号
认识UDP协议, 了解UDP协议的特点.
认识TCP协议, 理解TCP协议的可靠性. 理解TCP协议的状态转化.
掌握TCP的连接管理, 确认应答, 超时重传, 滑动窗⼝, 流量控制, 拥塞控制, 延迟应答, 捎带应答特性.
理解TCP⾯向字节流, 理解粘包问题和解决⽅案.
上面关于TCP和UDP的一些问题可以参考小编之前发过的文章
能够基于UDP实现可靠传输.
实际就是参考TCP的可靠性机制, 在应⽤层实现类似的逻辑;
- 1. 序列号
每个数据包都被分配一个唯一的序列号,以便接收端能按正确的顺序重新组装数据。
- 2. 确认应答 (ACK)
接收端在成功接收数据包后,会发送一个ACK包给发送端,其中包含了已接收数据包的序列号。如果发送端未收到ACK,则会在一定时间后重传数据包。
- 3. 超时重传
发送端为每个数据包设置一个定时器。如果定时器超时且未收到对应的ACK,则重传该数据包。超时时间可以根据网络条件动态调整。
- 4. 连接管理 (模拟)
三次握手 (模拟):
发送端发送一个带有SYN标志的数据包请求建立连接。
接收端回复一个带有SYN和ACK标志的数据包表示同意连接请求。
发送端再发送一个带有ACK标志的数据包以确认连接建立。
四次挥手 (模拟):
一方发送一个FIN包请求关闭连接。
另一方回复一个ACK包表示收到关闭请求。
当另一方也准备好关闭连接时,它发送一个FIN包。
最后,接收方回复一个ACK包以确认连接关闭。
注意:由于UDP是无连接的协议,这些握手和挥手过程实际上是通过发送特定的数据包来模拟的。
- 5. TCP状态转换
在UDP的可靠传输实现中,虽然不需要完整的TCP状态机,但可能需要跟踪一些关键状态,如等待ACK、重传等。
- 6. 滑动窗口,解决滑动窗口产生的丢包问题
发送端和接收端可以协商一个滑动窗口大小,允许发送端在接收到ACK之前连续发送多个数据包。接收端通过ACK告知发送端哪些数据包已接收,发送端据此调整滑动窗口。
如果在滑动窗口内的数据包丢失,发送端会在收到ACK时检测到丢包,并重新发送这些数据包。
- 7. 流量控制和拥塞控制
流量控制:通过接收端的ACK包来控制发送端的发送速率,避免接收端缓冲区溢出。
拥塞控制:通过调整发送速率、重传策略等方式来避免网络拥塞。
- 8. 延时应答和捎带应答
延时应答:接收端可以延迟发送ACK以合并多个ACK,减少网络开销。
捎带应答:如果接收端需要发送数据给发送端,可以将ACK捎带在数据包中一起发送。
- 9. 面向字节流
在应用层上,将数据封装为字节流进行传输,并在接收端重新组装成原始数据。
- 10. 异常情况
处理丢包、乱序、超时、重传等异常情况,确保数据的完整性和可靠性。
⽹络层(IP协议)
IP协议的头格式
- 版本号:占4位,用来指定IP协议的版本。对于IPv4来说,版本号字段的值为4。
- 首部长度:占4位,用来表示IP协议头部的长度,以4字节为单位。最大值为15,即IP协议头部最大长度为60字节。
- 服务类型(Type of Service, TOS):占8位,包含三个已经弃用的优先权比特位,一个保留字段(必须置为0),以及四个有效的TOS字段。这四个字段分别表示最小延时、最大吞吐量、最高可靠性和最小成本,且这四者相互冲突,只能选择一个为侧重点。
- 总长度:占16位,用来标识IP数据包的整体长度,包括头部和有效载荷的长度。:
- 标识:占16位,表示当前IP数据包分片是属于哪一个完整的IP报文,同一个IP数据包当中的所有分片具有相同的标识。
- 标志:占3位,表示包被分片的相关信息,如是否允许拆包、是否是最后一个包等。
- 片偏移:占13位,用来标识分片在原来数据之中的位置,用于接收方进行组装。
- 生存时间(Time To Live, TTL):占8位,描述数据包在网络上还能存活多久,即允许经过的路由器的个数。每经过一个路由器,TTL值减1,当TTL为0时,数据包将被丢弃。
- 协议:占8位,标识传输层使用的协议,如UDP或TCP,以便在数据分用时决定将数据交给哪个传输层协议。
- 首部校验和:某些版本的IP协议头中包含此字段,用于校验IP头部的完整性,但不包括数据部分。
- 源IP地址和目的IP地址:分别占32位,表示数据包的发送方和接收方的IP地址。
IP地址的作用:
- IP地址(Internet Protocol Address)是一个逻辑地址,用于在跨越不同网络的情况下进行通信时对设备进行寻址。
- 它由32位二进制数组成(IPv4),通常以4个十进制数(0-255)表示,并用点号分隔开,例如192.168.0.1。
- IP地址分为公共IP地址和私有IP地址。公共IP地址用于互联网上的通信,而私有IP地址则在局域网内部使用。
- IP地址用于网络层的路由和寻址,它告诉路由器数据包应该向哪个方向发送,以便最终到达目标设备。
局域网(子网/LAN)
局域网是指在相对较小的地理范围内(如办公室、学校、企业内部等)建立起来的计算机网络。局域网通常用于连接位于同一物理位置的设备,使这些设备能够进行数据交换和共享资源。局域网一般覆盖范围小,设备自己购买和维护,而且带宽是固定的。局域网的设备不能直接被外部访问
局域网地址
也称为内网IP地址或私有IP地址,是在局域网内部使用的IP地址。这些地址不会被用于公共互联网,而是在局域网内部用于计算机之间的通信。私有IP地址包括A类地址(如10.X.X.X)、B类地址(如172.16.0.0--172.31.255.255)和C类地址(如192.168.X.X)。
广域网(公网/WAN)
广域网是指覆盖范围更广、跨越较大地理区域的计算机网络。与局域网相比,广域网连接的地理范围更大,可以跨越城市、国家甚至全球范围。广域网就是我们通常所说的Internet,它是一个遍及全世界的网络。
广域网地址
也称为公网IP地址或外网IP地址,是广域网中每一台电脑(或其他网络设备)所具有的唯一标识符。广域网IP地址一般要到ISP(Internet服务提供商)处交费之后才能申请到,而且不能重复。广域网上的设备可以通过公网IP地址与其他设备进行通信,实现全球范围内的数据交换和信息共享。
- ⼀个路由器可以配置两个IP地址, ⼀个是WAN⼝IP, ⼀个是LAN⼝IP(⼦⽹IP).
- 路由器LAN⼝连接的主机/手机, 都从属于当前这个路由器的⼦⽹中.
- 不同的路由器, ⼦⽹IP其实都是⼀样的(通常都是192.168.1.1). ⼦⽹内的主机IP地址不能重复. 但是⼦⽹之间的IP地址就可以重复了
- 每⼀个家⽤路由器, 其实⼜作为运营商路由器的⼦⽹中的⼀个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN⼝IP就是⼀个公⽹IP了.
- ⼦⽹内的主机需要和外⽹进⾏通信时, 路由器将IP⾸部中的IP地址进⾏替换(替换成WAN⼝IP), 这样 逐级替换, 最终数据包中的IP地址成为⼀个公⽹IP. 这种技术称为NAT(Network Address Translation,⽹络地址转换).
MAC地址的作用:
- MAC地址(Media Access Control Address)是物理地址或硬件地址,用于在数据链路层进行数据帧的目标设备识别和传输控制。
- 它由6个字节(48位)组成,通常用十六进制数表示,例如00:1A:2B:3C:4D:5E。
- MAC地址被永久地嵌入到设备的网络接口卡(NIC)中,由设备制造商在设备制造过程中分配,并且无法更改。
对⽐理解MAC地址和IP地址
- IP地址描述的是路途总体的起点和终点;
- MAC地址描述的是路途上的每⼀个区间的起点和终点;
NAT技术
NAT技术当前解决IP地址不够⽤的主要⼿段, 是路由器的⼀个重要功能;
- NAT能够将私有IP对外通信时转为全局IP. 也就是就是⼀种将私有IP和全局IP相互转化的技术⽅法:
- 很多学校, 家庭, 公司内部采⽤每个终端设置私有IP, ⽽在路由器或必要的服务器上设置全局IP;
- 全局IP要求唯⼀, 但是私有IP不需要; 在不同的局域⽹中出现相同的私有IP是完全不影响的;
如何解决IPv4的IP地址数⽬不⾜的问题
注: IPv4有2^32个地址大约42亿个IP地址
- 使用NAT技术(网络地址替换),NAT技术允许私有网络中的设备使用私有IP地址,并通过NAT路由器或网关与外部网络进行通信。多个私有网络中的设备可以共享一个或少数几个公网IP地址与外部网络通信,从而节省了公网IP地址的使用。只能缓解问题
- IPV6:可以表示2^128个地址,地址数量可以给地球上每一粒沙子一个独一无二的IP地址,IPv6是更根本和长远的解决方案
理解IP数据分包组包
为什么分包
在TCP/IP模型中,网络层的下一层是数据链路层,网络层中的IP协议并不是把数据直接发送到了网络中,而是交给了数据链路层,数据链路层才是真正将数据发送到网络中。
数据链路层中使用的是MAC帧协议,该协议规定自己的有效载荷不能超过1500个字节。虽然可以修改,但是这里我们不考虑,就按默认情况来说。所以这里需要网络层进行分片后再交给链路层
分包组包过程中和哪些IP报头字段有关联
- 标识字段(Identification):用于唯一标识一个IP数据报,确保在拆包组包过程中能够正确地识别原始数据包。每个片段都应该具有相同的标识符,以便在接收端重新组装成原始数据包。
- 片偏移字段(Fragment Offset):指示当前片段在整个原始数据包中的位置。在分包过程中,每个片段都需要设置正确的偏移量,以便在组装时能够重新构建完整的数据包。
- 标志位字段(Flags):
- 第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到).
- 第二位置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文.
- 第三位表示"更多分片",当前是1,表示后面还有被分片的报文在路上,当前是0表示它是最后一个分片
组包时如何保证数据的顺序和完整性
- 利用片偏移字段:通过片偏移字段来确定每个片段在原始数据包中的位置,从而确保数据在重新组装时能够按照正确的顺序排列。
- 利用标识符字段:唯一性,若报文被片分,同一报文中被片分的标识位相同
- 计算校验和:在组包过程中重新计算校验和字段的值,以确保数据包在传输过程中没有被篡改或损坏。如果校验和不匹配,则不能使用该数据包片段进行组包。
MSS
- 优化数据传输效率:MSS用于在TCP连接建立时,由收发双方协商确定每一个报文段所能承载的最大数据长度(不包括文段头)。通过选择合适的MSS值,TCP可以优化数据传输的效率,避免过大或过小的数据段导致的性能问题。
- 避免或减少IP分片:IP层在传输数据包时有一个最大传输单元(MTU)的限制。如果TCP数据段的大小超过MTU,IP层就会对其进行分片。分片会增加数据丢失的风险,并可能降低传输效率。因此,通过协商确定一个合适的MSS值,可以确保TCP数据段的大小不会超过MTU,从而避免或减少IP分片的发生。
- 确保数据传输的可靠性:MSS的确定和使用,是基于TCP协议的可靠性和流量控制机制。TCP协议通过确认、重传、拥塞控制等机制,确保数据的可靠传输。MSS作为TCP协议的一个选项,与这些机制共同工作,为数据传输提供可靠保障。
⽹络层的IP地址路由过程
一个数据包如何跨越网段到达最终目的地
- 封装数据包:在源主机上,数据包会被封装成IP报文,并添加源IP地址和目标IP地址。
- 转发到默认网关:如果目标IP地址与源主机不在同一网段,数据包会被发送到默认网关(通常是路由器)。
- 路由决策与转发:在路由器上,根据路由表进行路由决策,并将数据包转发到下一跳路由器或最终目的地。
- MAC地址替换:在每个路由器上,数据包的MAC地址会被替换为下一跳路由器的MAC地址,以确保数据包能够正确地传输到下一跳。
- 逐层解封装:当数据包到达最终目的地时,目标主机会逐层解封装数据包,从数据链路层开始,然后是网络层、传输层和应用层,直到数据到达最终的应用程序。
- 无匹配的处理:如果在路由表中没有找到匹配的条目,路由器通常会丢弃该数据包。