zoukankan      html  css  js  c++  java
  • 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、应用层:规定应用程序的数据格式。

  • 相关阅读:
    Auto.js 入门教程
    几乎纯css实现弹出框
    php curl访问https 域名接口一直报错的问题
    金山打字通刷打字速度脚本
    centos 安装 图像识别工具 tesseract-ocr 流程
    js 实现俄罗斯方块(三)
    小程序报错 .wxss 无法找到
    Redis存储数组
    问题记录-databinding/hilt踩坑记录
    问题记录-CoordinatorLayout+WebView使用遇到的问题
  • 原文地址:https://www.cnblogs.com/hongdanni/p/14583736.html
Copyright © 2011-2022 走看看