- OSI参考模型
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
网络层设备:
逻辑地址
路由
6.数据链路层
MAC地址
MAC地址的作用范围只在一个LAN(局域网)当中
如下图,A和B在一个LAN中,C在另外一个LAN中。
在同一LAN下,A与B通信,A要知道B的IP地址和MAC地址
在不同LAN中,A与C通信,A要知道C的IP地址和路由器上那个A所在局域网接口的网关MAC地址
数据链路层设备::同一时间,所有设备都可以占用带宽
7.物理层
物理层设备: 同一时间只有一台设备可以占用带宽
OSI参考模型数据传输过程:
网络结构:
A:客户端,一个IP地址,一个网关 B:服务器,一个IP地址,一个网关
终端A发送消息:
顶层交互::A中的进程与B中的进程使用HTTP协议进行交互
应用层,表示层,会话层: 交互产生荷载(要传输的数据内容)通过表示层
PS:会话层处理(应用层,表示层,会话层可以当成一层看待)
传输层:上三层下来的包会被加上一个"信封"(包含源端口号,目的端口号以及一些其他字段)
网络层:传输层下来的包再被加上一个"信封"(包含源IP地址,目的IP地址以及一些其他字段)
数据链路层:网络层下来的包再再被加上一个"信封"(包含源MAC地址,目的MAC地址)
PS:正如前面所讲的在同一个LAN下,目的MAC地址就是目标终端自己的MAC地址,不在同一个LAN下则是源终端所在的网关MAC地址
消息路由:
此时的数据包结构:<MAC地址<IP地址<端口号<数据内容>/>/>/>
从外到内分别对应于:第2层,3层,4层
路由器接收到数据包:"拆信封"(第2层:数据链路层)得到MAC地址,发现目的MAC地址就是路由器所属的,然后继续"拆信封"(第3层:网络层)得到IP地址,发现目的IP地址写的是终端B的IP地址,然后包装已经拆过的数据包,给它重新加上新的"信封"(终端B所在的IP地址),再加上新的"信封"(加上B所在LAN的网关MAC地址)
终端B接收到消息:
先看第2层,发现目的MAC地址就是自己的MAC
再看第3层,发现目的IP地址就是自己的IP
再看第4层,发现目的的端口号80,发现本机80端口是OPEN的,所以之后会把剩下的"信封"全部撕掉,把http的数据包交给协议的进程去处理
来源:oschina
链接:https://my.oschina.net/u/4442211/blog/3211284