TCP/IP协议第一、二层
OSI(Open System Interconnect)开放式系统互联网的7层分层与各层作用如下
OIS七层模型与TCP五层模型对比
封包过程(封装)
拆包过程(分用)
链路层
以太网与802.3帧格式
DatalinkHeader
MAC全称是媒体访问控制(Medium Access Control)
类型
MTU(Maximum Transmission Unit,最大传输单元)
CRC
环回接口
ARP
相关知识
二层设备之交换机
网络环路问题
虚拟隔离
总览
OSI(Open System Interconnect)开放式系统互联网的7层分层与各层作用如下
OIS七层模型与TCP五层模型对比
IP提供不可靠服务,无连接协议,它只是尽可能快的将数据包从源节点送到目标节点,并不提供可能性保证
IP是网络层的主要协议,ICMP协议使IP的附属协议
TCP与UDP都使用IP协议,但是TCP是可靠的,UDP是不可靠的
从下到上,链路层到传输层一般由内核协议栈中处理,再往上由应用程序处理
分层的目的使得每层只需关注当前层的东西,不需要关注其他层的细节
封包过程(封装)
用户数据经过每一层之后,相应层都会为其增加一个首部
拆包过程(分用)
当主机收到一个以太网帧后,会逐层去除各协议层加上的首部,每层协议栈都需要对首部进行检查以确定接收到数据的上层协议
链路层
以太网与802.3帧格式
DatalinkHeader
DatalinkHeader为14 bytes,分别是6字节目的MAC地址、6字节源MAC地址、2字节数据包类型
MAC全称是媒体访问控制(Medium Access Control)
MAC地址是一个网卡的物理地址,使用十六进制表示,且占6个字节
MAC地址全球唯一
MAC的通信范围仅局限于同一子网内
类型
链路首部的2字节类型部分说明了IP数据报的包类型
0x0800 | IP数据报 |
0x0806 | ARP应答/请求 |
0x8035 | RARP应答/请求 |
0x8863/0x8864 | PPOE发现阶段与会话阶段 |
MTU(Maximum Transmission Unit,最大传输单元)
以太网与802.3都对MTU有最大和最小的限制
- 以太网范围46~1500字节
- 802.3范围38~1492字节
- 不足46会有填充,即是PAD
MTU是IP数据报部分加上层协议加数据正文的长度
CRC
最后一部分4字节的CRC(冗余循环检测)值是FCS(frame check sequence)
环回接口
当发现目标地址是广播或多播地址时,如果必要,数据会被复制一份给环回驱动程序,然后再送到以太网上,因为广播和多播包含主机本身
数据发给环回接口是会经过协议栈的,但仅仅只到网络层(IP层),不会经过网卡,可用于检测协议栈是否正常
ARP
ARP协议全称为地址解析协议(Address Resolution Protocol),负责将IP地址解析成对应的MAC地址
当目标地址和源地址在同一网段时,ARP请求会被广播到该网段的所有主机,目标主机接收到请求后会以单播形式应答,目标MAC也就找到了,为了避免每次都ARP请求,目标主机的IP地址、MAC地址会存入本地ARP缓存,并保留一段时间。下次请求则直接查询ARP缓存,没有再进行ARP请求
相关知识
二层设备之交换机
工作在链路层的交换机(Switch)与工作在物理层Hub集线器不同,Hub只会无脑转发它收到的所有消息,而交换机在首次广播通信成功后会记住目的MAC地址和自身端口的对应关系,也就是一张称为转发表的MAC表,以后对同一目标的通讯中不会再广播了
网络环路问题
当两个交换机直接互联时,可能会出现环路问题,并且导致广播风暴,此时需要通过生成树(STP Spanning Tree Protocol)算法来解决,STP协议工作时1看节点优先级2看距离
虚拟隔离
也就是VLAN,也叫虚拟局域网,可以解决广播问题和安全问题,避免被抓包,虚拟隔离通过在二层协议头上加TAG来实现,内有一个VLAN ID,交换机只会转发拥有相同VLAN ID的数据。
TCP/IP全部协议如下