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]]

  • 相关阅读:
    Gson简要使用笔记
    android入门到熟练(五)---广播
    95&&96.Unique Binary Search Trees I&&II
    day 08 文件操作
    07 深浅拷贝
    06 day小数据池
    05,.字典,集合
    列表和元组
    字符串
    while 循环,格式化输出和运算编码
  • 原文地址:https://www.cnblogs.com/sunqim16/p/6544884.html
Copyright © 2011-2022 走看看