OSI七层模型与TCP/IP五层

一、什么是协议?

协议就是规则,为了通信需求,所以定义协议标准。多个协议就是一个标准

二、OSI七层及对应单位

OSI七层模型 PDU
应用层
表示层
会话层
传输层 数据段
网络层 数据包
数据链路层
物理层 比特

三、TCP/IP五层协议

TCP/IP协议簇 单位 工作设备 常用协议
应用层 数据/PDU PC/防火墙 HTTP SSH Telnet FTP DHCP SMTP
传输层 数据段 防火墙 TCP UDP
网络层 数据包/报文 路由器 IP ARP ICMP
数据链路层 交换机 网卡 MAC子层协议
物理层 比特 网线 光纤 RJ45、IEEE802.3等

四、数据封装过程

应用层:在TCP/IP五层中,应用层合并了表示层和会话层。
OSI七层模型与TCP/IP五层
传输层:给数据前添加TCP/UDP头。包含源端口和目标端口。完成的是进程到进程之间的通信。单位是数据段。
OSI七层模型与TCP/IP五层
网络层:给数据前再添加IP包头。包含源IP地址和目标IP地址。完成的是点到点的通信。单位是数据包,也叫IP包或者包。
OSI七层模型与TCP/IP五层
数据链路层:给数据前再添加MAC子层,包含源MAC地址和目标MAC地址;数据后添加FCS。FCS有4个字节,是CRC算法计算出来的一个值,为了满足数据的完整性,称为帧校验序列。单位是帧。
OSI七层模型与TCP/IP五层
物理层:使用传输介质传输数字信号,也叫比特流。单位是比特。8bit=1Byte
OSI七层模型与TCP/IP五层

五、协议的对应关系及每层关联

OSI七层模型与TCP/IP五层



分割线

①.物理层

1.在物理层工作的设备有网线、光纤、网卡等。单位是比特bit。
2.单位换算:
    8bit=1Byte
    1024B=1KB
    1024KB=1MB
    1024MB=1GB
    1024GB=1TB
    1024TB=1PB
3.网线/双绞线线序:
    T568a 线序:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕
    T568b 线序:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕
4.网线的用途分类:
    1.交叉线:一端为A线序,一端为B线序。同种设备间使用
    2.直通线:两端都是A或者B线序。不通设备间使用

②.数据链路层

数据链路层,俗称二层,传输的数据单位为帧,这里详细说一下帧结构:
OSI七层模型与TCP/IP五层
1.帧头内容:目标MAC、源MAC、类型,共14个字节。
    类型的作用:识别上层协议,为上层提供服务。
    类型不同取值的含义(0x表示16进制):
        0x0800:表示上层为IP协议
        0x0806:表示上层为ARP协议
    MAC地址:也叫物理地址,是全球唯一。长度48位、6个字节。

2.上三层数据:最大传输单元(MTU值)为1500字节。包含上层IP包头、TCP/IP头、要发送的数据。(下面讲到网络层时,会详细介绍)

3.帧尾:帧校验序列。4个字节
    FCS 作用是把帧头的所有字段提取出来,经过计算得出一个值存入,接收方收到数据再把帧头提取出来,通过计算得出一个新的FCS值,做一个比较,一样的,表示数据完整,不一样则丢弃。

③.网络层

网络层传输的数据单位是包,到数据到网络层时,会给数据前添加IP包头,详细内容如下:
OSI七层模型与TCP/IP五层
版本:占用4个比特。作用是为了表示在此IP包里,用的是IPv4版本还是IPv6版本。0100为IPv4版本,0110为IPv6版本。

首部长度:占用4个比特。用来标识本ip数据包的包头长度。
    取值:基本包头(20字节)+可选项(0-40字节)=20-60字节

优先级与服务类型:占用8个比特。标识此ip数据包是否需要优先发送

总长度:占用16个比特。ip数据包包头加数据的总长度,超过1500字节就要进行分段
    取值:基本包头(20字节)+可选项(0-40字节)+数据

标识符:发送端随机生成的,标识同一个报文分段后的编号,以此判断是否为同一个包

标志:此数据是否经过分段。第一个比特位保留,未使用;第二个比特位表示是否分段,0表示进行了分段(源数据未超过1500字节),1表示未分段;第三个比特位表示是否为最后一段分段

段偏移量:表示此数据段距离初始位置的值

TTL:time to live 生存时间。数据包初始发送时有一个生存时间,每经过一个路由器TTL会减1,当TTL为0时,丢弃该数据包

协议号:识别上层(同层)协议号。值为1表示为同层的ICMP协议;6为TCP协议;17为UDP协议

取值 所表示的协议
1 ICMP(同层)
6 TCP
17 UDP

首部校验和:校验数据包头部在传输中是否出错。