TCP/IP 之 OSI 模型
Contents
OSI 模型传输数据过程
- 应用层
- OS 上的应用程序
- 标准 HTTP 80
- 标准 HTTPS 443
- 标准 FTP 21
- 表示层
- 转化格式 (PNG JPEG AVI MP4 等)
- 加密
- 会话层
- 建立 session、管理、维护
- 传输层
- 方式 -> TCP / UDP 协议
- ssh 服务
- 网络层
- 路由器(它会二次封包)
- IP 协议
- 为每一台计算机分配一个 IP 地址
- 确定哪些地址在
同一个子网
内
- 公网 IP
- 私网 IP
- A 类地址:10.0.0.0—10.255.255.255;
- B 类地址:172.16.0.0—172.31.255.255;
- C 类地址:192.168.0.0—192.168.255.255;
- 👇 IP 地址
- (110.47.189.108)
- 数据链路层
- 交换机 或者 HUB?
- 👇 MAC 地址
- (fa:aa:14:91:3d:be)
- 物理层
- (010100010010199)
应用层 ~ 会话层 :数据处理
传输层 ~ 物理层 :网络通信
知识整理
- 如果在同一个
子网
下,采用广播
的方式传播 - 否则,使用
路由
的方式 - MAC 地址只与厂商有关系,
不能
判断哪些 MAC 地址处于同一个子网
,所以需要网络层
的支持 - 网络层出现之后,每台计算机有两个地址,一种是
MAC 地址
,另一种是网络地址
网络地址
能够确定该计算机所在的子网络
MAC 地址
是绑定在网卡
上, 能够把数据包
发送到子网络
中的目标网卡
上
- 所以先处理网络地址,再处理 MAC 地址,
- 网络层的 IP 协议中 (最广泛ipv4)
- 8 + 8 + 8 + 8 = 32位
- 255.255.255.0(子网掩码)
IP 协议
的主要作用- 为每一次计算机分配一个 IP 地址
- 确定哪些地址在
同一个子网
内
- 一般情况下,对方的 IP 是已知的,但 MAC 地址是不知道的。
- 如果两台计算机不在同一个
子网络
:因为无法知道对方的 MAC 地址,只能把数据包传送到两个子网络连接的网关取处理 - 如果两台计算机在同一个
子网络
:可以用ARP 协议
ARP 协议
是根据IP 地址
获取MAC 地址
的一个 TCP/IP 协议- 以太网的数据包中包含了目标主机的 IP 地址,但不包含 MAC 地址
- 广播的方式传递数据包时,在子网下的所有主机都会受到数据包
- 每个主机判断数据包中的 IP 地址取出来,和自己的 IP 地址做比较。如果相同,则把自己的 MAC 地址上报上去;如果不相同,则丢弃这个包;
- 每一个数据包都会发送到主机的特定端口,不同的程序就会去到自己所需要的数据包
- UDP 协议,可靠性差,发送数据包之后不知道对方有没有收到
- 无连接
- 不可靠
- 实时性强
- 一对一,多对一,多对多
- 资源消耗较少
- TCP 协议,可靠,三次握手
- 面向连接
- 可靠
- 点对点
- 资源消耗高
- TCP 数据包需要设置一个
端口
- IP 数据包需要跑置一个双方的
IP 地址
,发送方是本机 - 以太网数据包需要设置双方的
MAC 地址
,发送方是本机的网卡 MAC 地址,接收方网关的 MAC 地址