zoukankan      html  css  js  c++  java
  • 五层网络模型

    前言

    整个互联网的实现都是建立在上面五层分层模型的基础上的,上面的每一层都要依靠下面的分层模型支持。每一层都是为了完成某个特定的功能,计算机之间要想建立通信都需要遵循约定好的协议,因此每一层都有约定好的协议(protocol)

    物理层

    物理层指的是把电脑连接起来的物理手段,常用的方式有光缆、电缆、双绞线、无线电波等,它们的作用是负责传送0和1的电信号

    数据链路层

    单纯的电信号0和1计算机是无法直接解读的,于是需要规定一种协议表示每个信号的意义,占据主导地位的是以太网协议,它规定了一组电信号构成一个数据包(叫做帧),每一帧都包含标头和数据两部分。"标头"包含数据包的发送者、接受者、数据类型等等;"数据"则是数据包的具体内容

    有了数据包,接下来还需要知道接收方的地址。以太网规定,接入网络的的所有设备都必须有网卡接口,每个网卡都有一个唯一的MAC地址,数据包的传输是从一块网卡传到另一块网卡

    有了MAC地址,接下来要想办法把数据传输过去。如果计算机在同一个子网内,可以通过ARP协议得到对方的MAC地址,然后通过广播的方式把数据包发送给子网内的所有计算机,计算机通过对比MAC地址信息,决定是否接受数据包。

    网络层

    以太网通过MAC地址的方式发送数据包会有一个缺陷,即如果两台计算机不在同一个子网内,广播是传不过去的。于是网络层引入了一套新的地址,能够区分不同计算机是否属于同一个子网,这套地址叫做“网络地址”,简称“网址”。现在每台计算机都有MAC地址和网络地址,两个地址本身没有联系的,MAC地址是绑定在网卡上的,而网络地址则是管理员分配的

    规定网络地址的协议叫做IP协议,目前使用最广泛的是IPv4,它为每一台计算机分配IP地址,用于确定哪些地址在同一个子网络。

    传输层

    有了MAC地址和IP地址,互联网上的任意两台计算机之间都可以建立通信。现在的问题是计算机上的很多应用程序都需要联网,需要有一种方式确定数据包是要发送给哪个程序的,于是就有了端口。端口是每一个使用网卡程序的编号,不同的程序根据特定的端口号获取对应的数据包

    传输层的作用就是建立端口和端口的通信,而网络层的作用是建立主机之间的通信。有了端口和主机,就可以实现软件之间的通信

    传输层使用的最广泛的协议是TCP协议,这个协议要比同属传输层的UDP协议复杂,但是它们保证不会出现数据包丢失的情况

    应用层

    应用层的很多协议大家应该都听说过,比如FTP、HTTP这些都是应用层协议。它主要的作用是为了规定数据的格式,由于TCP协议可以传输任何数据,因此必须有不同的协议规定诸如电子邮件、网页、FTP数据的格式。

    参考文章

    互联网协议入门一
    互联网协议入门二

  • 相关阅读:
    h5 拍照上传 代码
    java jdbc 链接本地mysql数据库 报错 Access denied for user 'root'@'localhost' (using password: YES)
    react.js 中对props 的理解
    react.js 如何 设置页面div 背景图片
    关于Vue.js 和 react.js 的异同
    如何用 npm ,搭建react 项目
    如何进行vue vux版本更新
    js 继承 函数
    absolute 和 z-index妙用
    关于 white-space: pre-wrap;的灵异现象
  • 原文地址:https://www.cnblogs.com/yesyes/p/15375851.html
Copyright © 2011-2022 走看看