OSI五层模型

五层模型和七层模型的区别:

七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

五层:应用层、传输层、网络层、链接层、物理层

 

五层模型里的‘应用层’对应七层模型里的‘应用层’、‘表示层’、‘会话层’。

应用层:HTTP、FTP、SMTP、DNS等协议。

表示层:为异种机通信提供一种公共语言。如html、css。

会话层:使应用建立和维持会话,使用检验点恢复通信。

在‘应用层’和‘传输层’之间有时会有一层‘安全层’:TLS=HTTP/SMTP/FTP + S

 

五层模型:

1物理层(实体层):包括光缆、电缆、双绞线、无线电波等。

电脑之间的组网负责传递0和1的电信号。

 

2链接层:确定0和1的分组方式(即电信号分组方式)。

以太网协议’为主流的电信号分组方式的协议。

一组电信号——>一个数据包——>(Frame):包含head和data。

head:数据包的说明项。包含:发送者、接受者、数据类型等信息;长度固定为18字节。

data:数据包的具体内容。长度在46-1500字节。

 

MAC地址:

电脑在安装网卡的时候会配有网卡地址(MAC地址)。同一局域网下,两台电脑之间的通信就是通过电脑上的MAC地址识别。

网卡在出厂设置的时候都是唯一的MAC地址。长度为48个2进制位,通常为12个16进制位。

00-B0-D0-86-B8-F7:‘00-B0-D0’为厂商编号,‘86-B8-F7’为该厂商的网卡流水号。

 

广播:

网卡A通过ARP协议(网络层会细讲)获得网卡B的MAC地址,通过广播式发送,将frame发送到网卡B。

A向B发送frame,同一局域网下的C、D、E都会收到这个frame;

他们读取frame的head,找到接收方的MAC地址,与自身的MAC地址比较:相同则接收这个frame;不相同则丢弃这个frame。

 

3网络层:建立主机到主机的通信。

广播式发送frame的局限性:

同一局域网下的每个电脑都会接收到该frame,效率低;

发送方和接收方需要在同一个子网络下。

 

同一子网络下,电脑之间的通信通过MAC地址广播式发送。

不同子网络下,电脑之间的通信通过路由的方式发送(向不同的子网络分发数据包)。局域网之间靠路由器连接。

 

为了区别不同电脑之间是否在同一子网路下,引进了“网络地址”,简称“网址”。

 

网络地址:由管理员分配,确定计算机所在的子网路;

MAC地址:绑在网卡上的,将frame发送到同一子网络下的目标网卡。

 

IP协议:规定网络地址的协议。

IP地址:IP协议所定义的地址。范围:0.0.0.0-255.255.255.255

举例:10进制:172.16.254.1—转成—>2进制:10101100.00010000.11111110.00000001

 

子网掩码:用于判断IP地址的网络部分和主机部分。网络部分全部为1,主机部分全部为0。

举例:

子网掩码:255.255.255.0——>11111111.11111111.11111111.00000000

ip地址    :172.16.254.1——>10101100.00010000.11111110.00000001

              |————网络部分—————||主机部分|

 

判断两个ip是否在同一个子网络:

ip1和子网掩码1进行and运算,ip2和子网掩码2进行and运算。得到的结果相同,表示在同一个子网络。

 

ip数据包:根据ip协议发送的数据packet,包含:head、data。

head:数据包的版本、长度、ip地址等信息。长度在20-60字节。

data:ip数据包具体内容。长度在0-65515字节。

head+data <= 65535字节;(head+data)IP数据包封装在以太网数据包的data里,当(head+data)长度超过1500个字节时,需要分割成几个以太网数据包。

 

ARP协议:在同一个子网络下,通过ip地址得到MAC地址。

计算机发出数据包(包含在以太网数据包里),数据包的内容:要查询的主机ip地址;对方MAC地址栏填写:FF:FF:FF:FF:FF:FF,表示这是一个广播地址。

该数据包广播式传送同一子网络下的所有主机;

各个主机比较自身的ip地址,相同的则回复其MAC地址信息,不相同的则丢包。

两台主机在同一子网络下,通过ARP协议发送数据包;不在则将数据包发送到两个子网络连接处的“网关”,让网关处理。

 

 4、传输层:建立“端口”到“端口”的通信(实现程序之间的交流)。

两台电脑之间通过:“ip地址+MAC地址”通信;

两台电脑的软件之间(例如QQ聊天)通过:“ip地址+MAC地址+port端口号”通信。

 

端口port:表示这个数据包供给哪个程序(进程)使用。

端口号范围在0-65535之间,通常为16个2进制位;0-1023被系统占用,用户可选择大于1023的端口使用。

套接字socket=主机+端口号(unix系统里)

 

网络层的协议主要有:UDP协议和TCP协议。

网络层的数据包segment,封装在ip数据包的data里。

udp协议:直接在数据前加上端口号。优点:简单易实现;缺点:可靠性差;

tcp协议:有三次握手和四次挥手的过程。优点:确保数据不会丢失;缺点:过程复杂,实现困难,消耗较多资源。

 

5、应用层:规定应用程序的数据格式。

 

posted @ 2021-03-27 13:22  DoubleFishes  阅读(4142)  评论(0编辑  收藏  举报