zoukankan      html  css  js  c++  java
  • 网络通信原理 五层协议

      1. 定义

        任意两台计算机正常通信,需要通过一套统一的标准协议规范,这一系列协议就是‘互联网协议‘。

        互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。

      2. tcp/ip五层协议

        互联网协议分为好多种,下面通过tcp/ip五层协议为例举例说明。

        应用层(Application Layer)、传输层(Transport Layer)、网络层(Network Layer)、链接层(Link Layer)、实体层(Physical Layer)。

        a、物理层(Pyhsical Layer):

          通过光纤、电缆、网线、无线电波等物理方式把计算机接入网络。通过高低电压发送二进制信息。传输0和1信号。

        b、数据链路层(Link Layer)

          1. 定义

            数据链路层定义了电信号分组方式,保证传输的0和1信号有意义。

          2. 以太网协议(Ethernet)

              一组电信号为一‘帧’,包括两部分:报头(head)、数据(data)。

                报头:固定为【18字节】=发送者(源mac地址)【6字节】+ 接收者(目标mac地址)【6字节】+ 数据类型【6字节】

                数据:数据内容【46~1500字节】

          3. mac地址

              mac地址也就是报头中的原mac地址和目标mac地址。

              每一块网卡具有唯一mac地址,长:48位的2进制组成(正好6个字节),表示为12位16进制(前6厂商编号、后6流水线编号)。

              

          4. 广播:

              通过mac地址,同一局域网内的两台主机就可以通信了:

              一台计算机向网络中广播数据包,所有计算机都会收到数据包,每台计算机读取数据包中的报头中的目标mac地址,和自己的一样就接受这个数据包,做进一步处理,否则,丢弃这个数据包。

              ps:一块网卡通过ARP协议获取另外一块网卡的mac地址。

        c、网络层(Network Layer)

          使用以太网协议,单单应用mac地址在局域网内广播方式传输数据不是办法,于是乎‘网络层’诞生了。

          引入一套新的地址用来区分不同的广播域(子网),这套地址即网络地址。

          规定网络地址的协议,叫做IP协议,其定义的地址,叫做IP地址。

          1. IP协议:

            目前流行的是IP协议是IPv4,32个二进制位组成(4个字节)。

            IP协议的作用1是为每一台计算机分配IP地址,2是确定哪些IP地址是在同一个子网内。

            ps:确定IP地址是否在同一个子网,需要和子网掩码AND运算。

          2. IP地址:

            IP地址:网络部分可以是前24位(或者前16位),后8位(或者后16位)是主机部分。

            子网掩码:网络部分是前24位,主机部分是后8位,

                 那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

          3. IP数据包:

            IP数据包也分为:报头(head)和数据(data),总长最大65535字节。

              报头:固定为【20~60字节】= 版本、长度、IP地址

              数据:数据内容【65475~65515字节】

            ps:以太网数据包的数据(data)部分就是IP数据包。

          4. ARP协议:

            从IP地址得倒mac地址。

            。。。

        

        d、传输层(Transport Layer)

          传输层就是建立‘端口到端口’的通信,端口号就是使用网卡的程序的编号。

          ps:网络层是建立了‘主机到主机’的通信。

          端口号:

            端口号:[0~65535],[0~1023]被系统占用。

            ps:Unix把主机+端口,叫做‘套接字’。

          1. UDP协议

            UDP数据包也分为:报头(head)和数据(data),不超65535字节。

              报头:端口号8个字节

              数据:

            ps:IP数据包的数据(data)部分就是UDP数据包。

            UDP协议不可靠,发出数据,不管对方是否接收到。

          2. TCP协议

            TCP协议可靠,每个数据包都有确认机制。

            TCP数据包没有长度限制,但是为了保证网络效率,一般不超过IP数据包长度。

        E、应用层(Application Layer)

          规定应用程序数据格式

      总结:

        以太网数据包构成:

        以太网报头+[IP报头+ [TCP报头 + data]]

  • 相关阅读:
    Bootstrap 2.2.2 的新特性
    Apache POI 3.9 发布,性能显著提升
    SQL Relay 0.48 发布,数据库中继器
    ProjectForge 4.2.0 发布,项目管理系统
    红帽企业 Linux 发布 6.4 Beta 版本
    红薯 快速的 MySQL 本地和远程密码破解
    MariaDB 宣布成立基金会
    Percona XtraBackup 2.0.4 发布
    Rocks 6.1 发布,光盘机群解决方案
    精通Servlet研究,HttpServlet的实现追究
  • 原文地址:https://www.cnblogs.com/sunqim16/p/6544884.html
Copyright © 2011-2022 走看看