数据包称谓
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。
参考链接
物理层
数据链路层
- 规定一组 0/1 电信号的分组方式。采用 以太网协议
-
以太网协议
一组 0/1 电信号为一帧、即数据帧(Frame)
标识网卡的物理地址
长度是48个二进制位,通常用12个十六进制数表示
数据包不会精准投放
- 以太网规定只会向同一子网(即同一局域网)内将数据包进行广播
- 让网络中各个计算机自己判断该数据包是否是发给自己的
物理介质
- 交换机
网络层
- 建立 主机到主机 的通信
- 解决不同子网下的数据通信
- 以太网协议是依托 MAC 地址发送数据包
- 以太网又只会向同一子网将数据包进行广播
可以采用 ip 确定网络地址 + MAC 确定物理地址的方式进行数据传输
数据传输方式
- MAC 地址属于同一子网,广播方式发送
- MAC 地址属于不同子网,路由方式进行发送
如何判断是否同一个子网
-
ip 协议
ip + 子网掩码 进行目标地址匹配 —> ip 协议 作用在这一层
- ip 有 32 位
- ip 与 子网掩码 进行二进制与运算,网络部分相同,则表明属于同一个子网(局域网)
- 子网掩码为1的部分就是用来判断网络地址
IP协议的作用主要有两个
ip 数据包也分为 标头 和 数据
- 放在以太网数据帧的 数据 部分内
- 标头 部分主要包括版本、长度、IP地址等信息。长度为20到60字节
- 数据 部分则是IP数据包的具体内容。长度最长为 65515 字节
- ip 数据包的总长度最大为 65535 字节
- 由于以太网的 数据 部分最长是 1500 字节,所以会分为多个以太网数据包
ARP协议
- 上面说过,将数据传输到目标网卡,需要 ip 确定网络地址 + MAC 确定物理地址
- ip 一般是确定的,但是 MAC 不一定
- 分发送方接收方是否同一网络区分
- 同一网络
- 会发送一个 ARP 请求帧
- 源主机根据自己的路由表内容,确定数据包要转发的 ip 为目标 ip,会从本地的 APR 缓存中检查是否有匹配到的 MAC 地址
- 源主机如果没有找到映射会发送一个ARP请求数据帧,将包含自己的ip和目标 ip 的ARP请求广播(使用MAC = 0x FF.FF.FF.FF.FF.FF 表示广播)到局域网络上的所有主机
- 同一子网中的各个主机判断ip并且进行判断,目标主机确定 ARP 请求中的 ip 地址和自己的一致,则将源主机的 ip 地址 和 mac 地址映射添加到本地 ARP 缓存中;非目标主机发现不匹配,会丢弃 ARP 请求
- 目标主机将包含自己的 MAC 地址的 APR 回复信息发回源主机
- 源主机收到返回消息后将目标IP地址和 MAC 地址存入本机ARP缓存中并保留一定时间(生存期),下次请求时直接查询ARP缓存以节约资源。
- 不同网络
- 通过交换机将数据包交给连接不同子网的网关(比如路由器)进行处理
- 源主机将自己的 ip 地址 和 目标主机 ip 地址 写入数据包中,而目标 MAC 地址为同一网段的网关的 MAC 地址(表明交给路由器)
- 路由器接收、判断数据包后,根据自己的ARP映射表将目标主机 ip 地址对应的 MAC 地址写入头部,通过目标主机的子网的交换机进行广播通知
- 可能会出现通过多个网关进行多次转发
- 网关会存储多个子网的交换机的地址
- 通过交换机将数据包交给连接不同子网的网关(比如路由器)进行处理
- 同一网络
物理介质
- 路由器
传输层
- 同一主机不同端口如何通信
- 即是建立 端口到端口 的通信
- 为数据帧加入 端口 信息,即新的协议
UDP
-
UDP 数据包
数据包也分为 标头 和 数据
- 放在ip数据帧的 数据 部分内
- 标头 部分主要主要定义了发出端口和接收端口。长度为 8 个字节
- 数据 部分则是数据包的具体内容。
- udp 数据包的总长度最大为65535字节
TCP
它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。
TCP 数据包
数据包也分为 标头 和 数据
- 放在ip数据帧的 数据 部分内
- 标头 部分主要主要定义了发出端口和接收端口。长度为 20 个字节
- 数据 部分则是数据包的具体内容。
- tcp 数据包的总长度理论上无限
应用层
- 规定应用程序的数据格式。
HTTP 协议
- http 协议走这一层
疑问
- 发送请求前,源主机会先判断请求是否为同一子网,是就发送 ARP 请求,否则直接转发请求给网关(会用到MAC地址?
- 会