目录

前言:

一.数据链路层

1.数据链路层的用途

2.数据链路层的作用

二.交换机

1.交换机的工作原理

2.交换机的工作流程

3.交换机的三种工作模式

三.Mac地址与帧格式

1.Mac地址

2.以太网帧格式

四.网络层

1.网络层的功能

1.1 IP地址编址与逻辑寻址

1.2 异构网络互联

2.路由器的工作原理

3.IP数据包格式

4.ICMP协议

4.1.两大核心任务

4.2.ICMP协议的封装方法

4.3.ping命令的使用方法

5.ARP协议

5.1.ARP工作原理

5.2.ARP相关命令

5.3.ARP攻击与防御

五.传输层

1.TCP协议

1.1.特点

1.2.TCP报文段

1.3.控制标志位

1.4连接管理

1.4.1.三次握手

1.4.2.四次挥手

1.5.常见应用

2.UDP协议

2.1.特点

2.2.常见应用

3.两者对比

总结:

前言:

         在和各位一起学习了OSI七层模型之后,今天我为读者们归纳一下主要层级的功能及原理,包括一些协议的具体内容和原理,并对交换机和路由器进行详解。

一.数据链路层

1.数据链路层的用途

数据链路层就像快递公司的 打包和配送部门 ,负责把网络层的数据(包)包装成 ,然后通过物理层 (网线、光纤等)发送出去。

2.数据链路层的作用

建立连接 :插上网线,设备之间就能通信(类似快递公司开通配送路线)。
帧包装 :给数据加上 ,变成 (像快递盒 + 快递单)。
差错检测 :检查数据在传输过程中是否损坏(类似快递员检查包裹是否破损)。
流量控制 :防止发送方发得太快,接收方处理不过来(类似快递站爆仓时暂停收件)。

二.交换机

1.交换机的工作原理

交换机就像快递站的分拣员,负责把数据(快递)送到正确的设备(收件人)。

2.交换机的工作流程

2.1基于源 MAC 地址学习
2.2 基于已知目标 MAC 地址转发
2.3 当目标 MAC 地址未知时,泛洪处理
2.4 交换机收到广播 / 组播帧时,无条件泛洪处理
2.5 交换机一个接口可以学习多个 MAC 地址
2.6 交换机学习到同一个 MAC 地址,但是是从不同的端口到学习到的,此时,将此 MAC 与后学习到的端口绑定起来

3.交换机的三种工作模式

单工 :只能发或收,不能同时。
半双工 :能发也能收,但不能同时。
全双工 :能同时收发。

三.Mac地址与帧格式

1.Mac地址

计算机联网必需的硬件是安装在计算机上的网卡
通信中,用来标识主机身份的地址就是制作在网卡上的一个硬件地址。
每块网卡在生产出来后,除了具有基本的功能外,都有一个全球唯一的编号来标识自己,这个地址就是 MAC 地址,即网卡的物理地址。
MAC 地址的 第 8 位为 0 时,表示该 MAC 地址为单播地址;为 1 时,表示该 MAC 地址为组播 MAC 地址。一 块物理网卡的地址一定是一个单播地址,也就是第 8 位一定为 0 ;组播地址是一个逻辑地址, 用来表示一组接收者,而不是一个接收者。

2.以太网帧格式

前导码( 7 字节) :告诉接收方 数据来了
帧起始定界符( 1 字节) :标记帧的开始。
MAC 地址( 12 字节)
目标 MAC (收件人地址):数据要发给谁?
MAC (寄件人地址):数据是谁发的?
类型( 2 字节) :标明数据是 IP 包( 0800H )还是 ARP 包( 0806H)。
数据( 46~1500 字节) :真正的 货物
FCS 4 字节) :校验码,检查数据是否损坏。

四.网络层

1.网络层的功能

1.1 IP地址编址与逻辑寻址

网络层通过 IP 协议为全网设备分配唯一的逻辑地址( IPv4/IPv6 ),实现跨网络的主机标识。例如,将域名(如 www.example.com )解析为 IP 地址(如 192.0.2.1 )。

1.2 异构网络互联

通过路由器等设备实现不同传输媒介(如以太网、 Wi-Fi 5G )或不同协议网络(如 IPv4 IPv6
数据域包含 46 1500 字节。数据域封装了通过以太网传输的高层协议信息。由于 CSMA/CD 算法的限制, 以太网帧不能小于某个最小长度。高层协议要确保这个域至少包含 46 字节。如果实际数据不足 46 字节,则高层协议必须执行某些(未指定) 填充算法。数据域长度的上限是任意的,但已经被设置为 1500 字节。帧校验序列(FCS )包含 4 字节。 FCS 是从 DA 开始到数据域结束这部分的校验和。 校验和的算法是 32 位的 CRC Cyclic Redundancy Check ,循环冗余校验法)。
MTU 1500 最大传输单元
总长度: 64-1518

2.路由器的工作原理

通过路由表信息,选择最佳最优的路径到达对端。

3.IP数据包格式

IP 数据包的 包装信息 分为 头部 Header) 数据( Data 两部分。
版本( 4 比特)
比如 IPv4 (写的是 4 )或 IPv6 (写的是 6 ),这里显然是 IPv4
首部长度( 4 比特)
表示 IP 头有多长(单位是 4 字节),一般最小是 5 (即 20 字节,没有可选字段时)。
优先级与服务类型( 8 比特)
用来区分包裹的 紧急程度 ,比如视频通话的包优先级比普通网页高。
总长度( 16 比特)
整个 IP 包的长度(头部 + 数据),最大能到 65535 字节。
标识符、标志、段偏移量(共 32 比特)
标识符 :给数据包编号,方便分片后重组(比如大文件拆成多个小包)。
标志 :比如 不要分片( DF 还有更多分片( MF
段偏移量 :告诉接收方 这个分片在原数据中的位置
如果数据太大(比如超大文件), IP 层会把它切成多个小包(分片),接收方再拼回去。
通过 标识符 标志 段偏移量 这三个字段控制分片和重组。
TTL 8 比特)
存活时间 ,每经过一个路由器就减 1 ,到 0 就丢弃(防止包在网络上无限转圈)。
协议号( 8 比特)
说明数据部分是什么 快递公司 的货(比如 6=TCP 17=UDP )。 首部校验和( 16 比特)
检查头部是否在传输中出错(如果错了就丢掉)。
源地址 & 目标地址(各 32 比特)
就是发件人(你的 IP )和收件人(服务器 IP )的地址。
可选项(可选)
额外功能,比如安全标签,一般不用。
数据
上层(比如 TCP/UDP )传下来的内容, IP 层只负责搬运,不关心里面具体是啥。

4.ICMP协议

4.1.两大核心任务

       
       发错误通知
       传控制消息

4.2.ICMP协议的封装方法

|-----------------------------|
| ICMP 报文 | 最核心的内容(如 ping 请求)
|-----------------------------|
| IP 头部 | ICMP 穿上 IP" 外套 " (协议号 =1
|-----------------------------|
| 数据链路层帧头 / 帧尾 | 最后套上 " 快递盒 " (如以太网帧)
|-----------------------------|

4.3.ping命令的使用方法

-t Windows 操作系统中,默认情况下发送 4 ping 包,如果在 ping 命令后面加上参数 “-t”
系统将会一直不停地 ping 下去。
-a 显示主机名。
-l 一般情况下, ping 包的大小为 32 字节,有时为了检测大数据包的通过情况,可以使用参数改变
ping 包的大小,例如“-l 200”。
# linux 系统下为   -s
-n 指定发送包的个数  -c
-S 指定源 IP ping -I

5.ARP协议

5.1.ARP工作原理

为了实现 IP 地址与 MAC 地址的查询与转换, ARP 协议引入了 ARP 缓存表的概念,每台主机或路由器在维护着一个ARP 缓存表( ARP table ),这个表包含 IP 地址到 MAC 地址的映射关系,表中记录了 <IP 地 址,MAC 地址 > 对,称之为 ARP表项。
主机最近运行时获得关于其他主机的IP 地址到 MAC 地址的映射,当需要发送数据的时候,主机就会根据数据报中的目标 IP 地址 信息,然后在ARP 缓存表中进行查找对应的 MAC地址,最后通过网卡将数据发送出去。具体如下:
 PC1 想发送数据给 PC2 , 会先检查自己的 ARP 缓存表。
如果发现要查找的 MAC 地址不在表中,就会发送一个 ARP 请求广播,用于发现目的地的 MAC 地址。
ARP 请求消息中包括 PC1 IP 地址和 MAC 地址以及 PC2 IP 地址和目的 MAC 地址 ( 此时为广播 MAC 地址FF-FF-FF-FF-FF-FF)
  交换机收到广播后做泛洪处理,除 PC1 外所有主机收到 ARP 请求消息, PC2 以单播方式发送 ARP 应答,并在自己的ARP 表中缓存 PC1 IP 地址和 MAC 地址的对应关系,而其他主机则丢弃这个 ARP 请求消息。
 PC1 在自己的 ARP 表中添加 PC2 IP 地址和 MAC 地址的对应关系,以单播方式与 PC2 通信。

5.2.ARP相关命令

arp -a ### 查看 arp 缓存表
arp -d [IP] ### 删除 arp 缓存表
arp -s IP MAC ### 删除 arp 静态绑定

5.3.ARP攻击与防御

黑客可以伪造 ARP 应答,骗你的电脑说: 我是路由器,数据都发给我!
这样,你的所有流量都会经过黑客的设备。
防御方法:
ARP 绑定 :手动设置 IP MAC 的对应关系,防止被欺骗。
网络监控 :用工具(如 Wireshark )检测异常 ARP 包。

五.传输层

1.TCP协议

1.1.特点

面向连接 :必须先 握手 建立连接。
可靠传输 :数据丢了会重传。
流量控制 :根据接收方的能力调整发送速度。

1.2.TCP报文段

端口号:标识收发进程
序号,确认号:确保数据有序传输
控制标志:SYN:请求连接,FIN:断开连接
窗口大小:通告接收缓冲区剩余空间
校验和:计算数据完整性,发现错误就丢弃

1.3.控制标志位

URG:紧急数据
ACK:确认有效
PSH:催促立刻处理
RST:强制断开连接
SYN:发起连接请求
FIN:申请断开连接

1.4连接管理

1.4.1.三次握手
客户端 服务器 :发送SKN报文 SYN=1
服务器 客户端 :发送SKN以及ACK报文 SYN=1, ACK=1
客户端 服务器 :发送ACK报文 ACK=1
1.4.2.四次挥手
主动方-被动方:发送FIN,ACK报文(FIN=1,ACK=1)
被动方-主动方:发送ACK报文(ACK=1)
被动方-主动方:发送FIN,ACK报文(FIN=1,ACK=1)
主动方-被动方:发送ACK报文(ACK=1)
说明:另外存在一种半关闭状态。即如果有一方已经停止发送,但仍可以接收,则视为半关闭。

1.5.常见应用

网页( HTTP/HTTPS ,端口 80/443
文件传输( FTP ,端口 21
邮件( SMTP ,端口 25
远程登录( TELNET 23
邮件的接收( POP3 110
dns– 域名服务 53
mysql 数据库( 3306

2.UDP协议

2.1.特点

无连接 :直接发数据,不握手。
不可靠 :数据可能丢失。
速度快 :适合实时应用。

2.2.常见应用

NTP-- 网络时间协议 123
DHCP-- 动态主机配置协议 67
SNMP-- 简单网络管理协议 161
TFTP-- 简单文件传输协议 69
RPC-- 远程调用协议 111

3.两者对比

TCP 是面向连接的传输控制协议;而 UDP 提供了无连接的数据报服务。
TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序; UDP 在传输数据前不建立连接,不对数据报错进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作。
UDP 具有较好的实时性,工作效率较 TCP 协议高。 UDP 段结构比 TCP 的段结构简单,因此网络开销也小。
TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据。
TCP 协议传输更加稳定可靠, UDP 协议传输效率更高。
总结:TCP 稳定但慢,UDP 快但不可靠

总结:

         
        本文相对详细的描述了传输层,网络层以及数据链路层的主要工作内容及原理,其中延伸的例如交换机,路由器,以及相应的ARP,UDP和TCP协议也做了详细的解释说明,希望对各位读者有所帮助,谢谢!

更多推荐