云计算课程:传输层,网络层及数据链路层工作原理,以及各层主要协议内容和原理
·
目录
前言:
在和各位一起学习了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协议也做了详细的解释说明,希望对各位读者有所帮助,谢谢!
更多推荐
所有评论(0)