zoukankan      html  css  js  c++  java
  • 网络分层架构学习

      为了简化网络的复杂度,网络通信的不同方面被分解为多层次结构,每一层至于紧挨着的上层或者下层进行交互,将网络分层,这样就可以修改、甚至替换某一层的软件,只要层与层之间的接口保持不变,就不会影响到其他层。

    起初网络分层是标准的七层,也就是我们所说的 OSI 七层模型。 后面又简化成了 TCP/IP 五层模型。

     

     每一层的作用及与上下层的关系:

    1. 物理层

      光纤、双绞线电缆,无线设备等将计算机之间连接,主要用来传输 0、1 信号

    2. 数据链路层

      物理层仅用来传输 0、1 信号,但规定不了代表什么意义。所以在数据链路层规定一套协议,专门给 0、1 信号进行分组,以及规定不同的组代表什么意义,从而使双方计算机都能够进行识别,这就是“以太网协议”。

      但是如何标识对方呢?:MAC 地址

    · MAC地址:作为网络中计算机设备的唯一标识,从计算机在厂商生产出来就被十六进制的数标识为 MAC 地址。(也叫网卡地址,烧录在网卡上,可通过程序擦写)

       既然我们知道了用 MAC 地址作为标识,那么怎么才能知道我们要进行通信的计算机 MAC 地址呢?:广播

     · 广播:可以帮助我们能够知道对方的 MAC 地址。广播存在两种情况,一种是同一子网络(局域网)中的计算机是通过 ARP 协议获取到对方 MAC 地址的。第二是不同子网络中是交给两个局域网的网关(路由器)去处理。

    3. 网络层

      通过 IP 地址来判断两台计算机是否在同一子网络中

    · IP 地址:与 MAC 地址不同,MAC 地址是物理上的地址,是固定死的;IP 地址是逻辑上的地址,是动态分配的。 

    · DNS 解析:可以将域名解析为 IP 地址。

    · 子网掩码:子网掩码就是用来标识同一局域网中的 IP 地址的信息。IP 地址由 32 个二进制位组成,也就是 4 个十进制组成,如 255.255.255.000 ;子网掩码也是 32 个二进制位组成,但是只能用 0 或 1 来表示,如11111111.11111111.11111111.00000000。有1的部分表示网络部分,有0则表示主机部分。两台计算机的 IP 地址分别和子网掩码进行一种运算( AND 运算),如果结果相同,两台计算机就在同一局域网中,反正就不在同一局域网中。

    4. 传输层

      实现“端口到端口”的通信,计算机运行的不同程序都会分配不同的端口,所以才能使得数据能够正确的传输给不同的应用程序。

    · UDP 协议:加入端口后也需要一套规则,那就是 UDP 协议,该协议不需要建立连接。

      UDP 协议不提供差错恢复、不提供数据重传、传输安全性差。所以一旦进行通信,就不知道对方是否接收到了数据。那我们再定义一套规则:TCP

    · TCP 协议:建立起一个 TCP 连接需要经过客户端和服务器的 "三次握手",握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

      断开连接时服务器和客户端均可以主动发起断开 TCP 连接的请求,断开过程需要经过 "四次挥手"。

      TCP 提供可靠的服务。也就是说,通过 TCP 连接传送的数据,无差错,不丢失,不重复,且按序到达。

     5. 应用层

      应用层协议规定应用程序的数据格式。如电子邮件、HTTP 协议、FTP 数据的格式。

    · HTTP协议:即超文本传输协议,是建立在 TCP 协议之上的一种应用。

      在 HTTP 1.0 中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

      在 HTTP 1.1 中,则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

      是一种“短连接”。

      在Web浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何方式的数据加密,所以不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用了另一种协议:HTTPS

    · HTTPS协议:安全套接字层超文本传输协议。为了数据传输的安全,HTTPS 在 HTTP 的基础上加入了SSL协议,SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

    · HTTPS 和 HTTP 的区别

      HTTPS 协议需要到ca申请证书,一般免费证书很少,需要交费;

      HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议;

      HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;

      HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络,比 HTTP 协议安全。

    · 套接字(socket)

      套接字是通信的基石,是支持 TCP/IP 协议的网络通信的基本操作单元。

      包含进行网络通信必须的五种信息:连接使用的协议,本地主机的 IP 地址,本地进程的协议端口,远地主机的 IP 地址,远地进程的协议端口。

      建立 Socket 连接至少需要一对套接字,其中一个运行于客户端,称为 ClientSocket,另一个运行于服务器端,称为 ServerSocket。

      套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

      详情:https://www.cnblogs.com/shmilynanmei/p/9033877.html

    常用端口

      21:FTP 文件传输服务
      22:SSH 远程连接服务
      80:HTTP 超文本传输服务
    443:HTTPS 加密的超文本传输服务

    1433:SQLServer数据库端口
    3306:MYSQL数据库端口
    6379:Redis数据库端口
    8080:TCP服务端默认端口

    学习来源:

    https://juejin.cn/post/6844903934159519757

    https://www.bilibili.com/video/BV1Qt4y1C7XK

  • 相关阅读:
    Windows 8.1 应用开发文章汇总
    演绎事件委托
    Azure China
    Orchard 刨析:导航篇
    为ASP.NET MVC应用程序使用高级功能
    兼容Mono的下一代云环境Web开发框架ASP.NET vNext
    商品导航菜单
    纳斯达克对经济泡沫的定义是:当交易价格远大于内在价值的时候,就称为泡沫(转)
    当一个低级问题,第一次解决时,你会感受到成就;第二次解决时,你感受到责任,第三次解决时,你可能更多的感受到无力(转)
    互联网组织的未来:剖析GitHub员工的任性之源(转)
  • 原文地址:https://www.cnblogs.com/Allofus/p/14860581.html
Copyright © 2011-2022 走看看