网络协议:物理层、链路层与网络层

目录
一,协议模型
二,物理层
三,链路层
四,网络层
五,Wireshark

一,协议模型

1,三种模型
  • 七层模型:由ISO(国际标准化组织)制定的参考模型
  • 四层模型:实际应用最广泛的模型
  • 五层模型:为学习网络原理而设计的模型
2,请求过程
  • 客户端的应用层将数据向下传递给物理层,每一层都会在数据的头部或尾部添加一些信息
  • 客户端的物理层将数据发送给服务器的物理层
  • 服务器的物理层将数据向上传递给应用层,每一层都会解析数据的头部或尾部信息
3,常见协议和数据类型

二,物理层

1,基本知识
  • 传输介质(比如网线)不属于该层
  • 该层的主要作用:定义数据是如何在传输介质上进行传输的,比如传输速率、传输方式等
  • 在该层工作的设备:调制解调器,集线器
2,模拟信号和数字信号
  • 模拟信号

1>连续的信号,适合长距离传输
2>抗干扰能力差,受到干扰时波形变形很难纠正

  • 数字信号

1>离散的信号,不适合长距离传输
2>抗干扰能力强,受到干扰时波形失真容易修复

3,通信模型
  • 说明

1>网线传输的是数字信号,电话线传输的是模拟信号,光纤传输的是光信号
2>调制解调器用来转换数字信号和模拟信号
3>光电转换器用来转换数字信号和光信号
4>网线不适合长距离传输,电话线和光纤适合长距离传输

  • 局域网
  • 广域网
4,信道
  • 介绍

1>信息传输的通道
2>一条传输介质上(比如网线)上可以有多条信道

  • 单工通信

1>信号只能往一个方向传输,任何时候都不能改变信号的传输方向
2>比如无线电广播

  • 半双工通信

1>信号可以双向传输,但必须交替进行,同一时间只能往一个方向传输
2>比如对讲机

  • 全双工通信

1>信号可以同时双向传输
2>比如电话

三,链路层

1,基本知识
  • 链路就是某个节点到相邻节点的物理线路,中间没有其他交换节点

1>下面红色框代表一个链路
2>集线器没有智商,不算交换节点

  • 在链路上需要有对应的通信协议来控制数据的传输,不同的链路所用的通信协议也是不同的

1>广播信道:CSMA/CD协议(比如用集线器连接的信道)
2>点对点信道:PPP协议(比如两个路由器之间的信道)

⚠️注意⚠️:信道改变 -> 协议改变 -> 帧首部和帧尾部改变

  • 该层的主要作用:封装成帧、透明传输、差错检验
  • 在该层工作的设备:网桥、交换机、网卡
2,封装成帧
  • 帧的数据部分就是网络层传递下来的数据包
  • MTUMaximum Transfer Unit)表示最大传输单元
  • 每一种链路层协议都会规定MTU,一般为1500个字节
3,透明传输
  • 问题

1>SOHStart Of Header)为帧开始符
2>EOTEnd Of Transmission)为帧结束符

  • 解决

将数据中出现的特殊字符进行转义

4,差错检验
  • FCSFrame Check Sequence)表示帧校验序列,存储于帧的尾部
  • FCS是根据帧的数据部分和首部计算得出的
  • 接收端会重新计算一次,然后与FCS进行对比
5,网卡
  • 网卡会对帧进行差错检验
  • 检验通过就接收,否则就丢弃
  • 检验通过后网卡会将FCS去掉
6,CSMA/CD协议
  • 介绍

1>CSMA/CDCarrier Sense Multiple Access/Collision Detection)表示载波侦听多路访问/冲突检测协议
2>使用CSMA/CD协议的网络被称为以太网(Ethernet),传输的是以太网帧,以太网帧的常用格式为Ethernet V2
3>集线器是半双工通信,需要使用CSMA/CD协议;交换机是全双工通信,不需要使用CSMA/CD协议
4>以太网是一种计算机局域网技术

  • 说明

1>载波侦听:在发送消息之前,先侦听信道是否空闲,如果空闲就发送,否则就等待
2>冲突检测:在发送信息之后,会检测消息是否产生冲突,如果有就取消发送
3>冲突检测的前提条件:帧长度至少64个字节

  • 格式

1>数据部分长度范围:46 ~ 1500(字节),帧长度范围:64 ~ 1518(字节)
2>曼彻斯特编码技术会自动识别帧的开始与结束,所以没有帧开始符和帧结束符
3>帧首部包括:目标MAC地址、源MAC地址、协议类型(IPv4IPv6

⚠️注意⚠️:插入的8个字节是物理层首部

  • 填充

1>如果数据部分的长度小于46个字节,链路层会在数据后面填充一些字节
2>接收端会将填充的字节去掉

7,PPP协议
  • 介绍

PPPPoint to Point Protocol)表示点对点协议

  • 格式

1>F:帧开始符和帧结束符,固定值为0x7E
2>AAddress,地址域):用不上,点到点信道不需要源MAC地址和目标MAC地址,固定值为0xFF
3>CControl,控制域):作为保留,固定值为0x03
4>协议域:内部用到的协议类型

  • 转义

1>将0x7E转换为0x7D5E
2>将0x7D转换为0x7D5D

四,网络层

1,基本知识
  • 数据包包括首部和数据部分
  • 首部包括固定部分(20个字节)和可变部分(40个字节)
  • 数据部分是传输层传递下来的数据段
  • 该层的主要作用:分片与重组、路由与寻址
  • 在该层工作的设备:路由器
2,版本、首部长度、区分服务、总长度
  • 版本

1>占4位
2>值为0b0100(十进制为4)表示版本为IPv4
3>值为0b0110(十进制为6)表示版本为IPv6

  • 首部长度

1>占4位
2>值为0b0101(十进制为5)表示长度为20个字节(可变部分不用)
3>值为0b1111(十进制为15)表示长度为60个字节(可变部分全用)
4>十进制 = 长度 / 4 (4位存储的数值有限)
5>可变部分一般不用,所以长度一般为20个字节

  • 区分服务

1>占8位
2>用于提高网络的服务质量
3>值默认为0,设置值可以让数据包在网络中优先传输

  • 总长度

1>占16位
2>总长度 = 首部长度 + 数据长度,最大值为65535(16位都为1)个字节
3>由于帧的数据部分不能超过1500个字节,所以过大的数据包需要分成片传输给链路层
4>每一片都有自己的网络层首部

3,标识、标志、片偏移
  • 标识

1>占16位
2>标识代表数据包的ID,同一个数据包所有片的标识都是相同的
3>有一个计数器专门管理数据包的ID,每发出一个数据包,ID就加1
4>ID最大为65535(16位都为1),一旦超过就重新从0开始计算

  • 标志

1>占3位
2>第1位(Reserved bit):保留位
3>第2位(Don't fragment):0表示允许分片,1表示不允许分片
4>第3位(More fragments):0表示是最后一片,1表示不是最后一片

  • 片偏移

1>占13位
2>片偏移 = 字节偏移 / 8(13位存储的数值有限)
3>每一片的长度一定是8的整数倍

4,生存时间、协议、首部检验和
  • 生存时间

1>占8位
2>每个路由器在转发之前会将TTL减1,一旦发现TTL为0,路由器会停止转发并返回错误信息
3>可以防止数据包在网络中不停的被转发

  • 协议

1>占8位
2>表示数据部分使用的是哪种协议(传输层协议)

  • 首部检验和

1>占16位
2>是将首部根据某种算法计算得出的
3>接收端会重新计算一次,然后与之进行对比

5,常用协议
  • IPInternet Protocol):网际协议,根据源主机和目标主机的地址来传递数据,有IPv4IPv6两个版本
  • ARPAddress Resolution Protocol):地址解析协议,根据IP地址获取MAC地址
  • ICMPInternet Control Message Protocol):互联网控制消息协议,如果在通信过程中出现了问题,它会将错误信息返回给发送者
6,IPv6
  • 基本介绍

1>IPv4IP协议的4.0版本;IPv6IP协议的6.0版本
2>IPv4的IP地址长度为4个字节(32位),可以容纳2^32个IP地址;IPv6的IP地址长度为16个字节(128位),可以容纳2^128个IP地址
3>IPv4的IP地址一般用十进制来表示,每个字节之间用.隔开;IPv6的IP地址一般用十六进制来表示,每两个字节之间用:隔开
4>由于IPv4的IP地址不够用了,所以才推出IPv6

  • 地址格式

1>可以省略每组前面连续的0
2>可以用双冒号“::”表示一组或多组连续的0,但只能出现一次,否则会造成歧义
3>::1 = 0:0:0:0:0:0:0:1 = 0000:0000:0000:0000:0000:0000:0000:0001

  • 首部格式

固定首部占40个字节
1>Version(占4位):版本,值为0b0110
2>Traffic Class(占8位):数据包的优先级,路由器会根据优先级来处理数据包
3>Flow Label(占20位):标识该数据包属于哪一个数据流
4>Payload Length(占16位):扩展首部的长度 + 上层(传输层)数据的长度,最大值为65535个字节(16位都为1)
5>Next Header(占8位):下面详细介绍
6>Hop Limit(占8位):与IPv4的生存时间相同
7>Source Address(占128位):源IP地址
8>Destination Address(占128位):目标IP地址

  • 扩展首部

1>如果存在下一个扩展首部,那么Next Header存储的就是下一个扩展首部的类型
2>如果不存在下一个扩展首部,那么Next Header存储的就是上层(传输层)数据的协议类型(例如TCPUDP等)

五,Wireshark

网络抓包工具

1,链路层
  • 首部

1>Ethernet IIEthernet V2
2>Destination:目标MAC地址
3>Source:源MAC地址
4>Type:协议类型(IPv4IPv6

  • 尾部

1>Ethernet V2格式的尾部只有FCS
2>Wireshark抓到的都是差错检验通过的帧
3>网卡会将差错检验通过的帧的FCS去掉
4>所以在Wireshark中看不到帧的尾部

2,网络层
  • 首部

1>Internet Protocol Version 4IPv4
2>Version:版本
3>Header Length:首部长度
4>Differentiated Services Field:区分服务
5>Total Length:总长度
6>Identification:标识
7>Flags:标志
8>Fragment offset:片偏移
9>Time to liveTTL):生存时间
10>Protocol:协议
11>Header checksum:首部检验和
12>Source:源IP地址
13>Destination:目标IP地址

  • 分片

1>向www.qq.com服务器发送一个4000字节的数据包

2>网络层会将数据包分成3片(上面3片是请求的,下面3片是响应的)

3>第1片

4>第2片

5>第3片

你可能感兴趣的:(网络协议:物理层、链路层与网络层)