TCP/IP协议第一、二层

toc

总览

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全部协议如下





posted @ 2020-11-17 15:30  無雙  阅读(658)  评论(0编辑  收藏  举报