天天看点

互联网协议

## 互联网协议

- 概括:从上到下,越上越接近用户,越下越接近硬件

- 应用层:

    + 规定应用程序的数据格式

    + [head(以太网标头) [head(ip标头) [head(tcp标头) data(应用层数据包)]]]

- 传输层(端口到端口的通信): 定义端口号

    + 端口:

        * 0到65535(2^16)的整数

        * 进程使用网卡的编号

        * 通过ip+mac确定主机,只要确定主机+端口(套接字socket),就能进行程序间的通信

    + udp协议:

        * 数据包中加入端口依赖的新协议

        * 数据包[head(发送、接收mac) [head(发送、接收ip) [head(发送、接收端口) data]]]

        * 简单,可靠性差,不知道对方是否接受包

    + tcp协议:

        * 带有确认机制的udp协议

        * 过程复杂,实现困难,消耗资源

        ```

          tcp/ip connect: tcp/ip的三次握手

                  标有syn的数据包

                  ------------->

                  标有syn/ack的数据包

          client  <-------------  server

                  标有ack的数据包

                  -------------->

- 网络层(主机到主机的通信):定义ip

          tcp/ip finish: tcp/ip的四次握手

                  fin

                  <-------------

                  ack

        client    -------------> server

- 网络层(主机到主机的通信):

    + ip协议

        * ipv4:

            - 32个二进制位表示,由网络部分和主机部分构成,

            - 子网掩码: 网络部分都为1,主机部分都为0,目的判断ip的网络部分,如255.255.255.0(11111111.11111111.11111111.00000000)

            - ip数据包:标头head+数据data,放进以太网数据包的data部分[head [head data]]

            - ip数据包的传递:

                + 非同一网络:无法获得mac地址,发送数据到网关,网关处理

                    - arp(address resolation protocol): 解析地址协议,通过ip解析mac地址

                + 同一网络:mac地址填写ff:ff:ff:ff:ff:ff:ff,广播数据,对比ip,不符合丢包

- 链接层:定义mac

    + 定义数据包(帧frame)

        * 标头(head):数据包的一些说明项, 如发送者、接收者、数据类型

        * 数据(data):数据包的具体内容

        * 数据包:[head data]

    + 定义网卡和网卡唯一的mac地址

        * 以太网规定接入网络的所有终端都应该具有网卡接口,数据包必须是从一个网卡的mac地址到另一网卡接口的mac地址

        * mac全球唯一,16位16位进制组成,前6厂商编号,后6网卡流水号

    + 广播发送数据

        * 向本网络内的所有设备发送数据包,对比接收者mac地址,不是丢包,是接受

- 实体层:物理层

    + 终端(pc,phone,pad...)的物理连接(光缆,电缆,路由...),负责传递0和1信号

非学,无以致疑;非问,无以广识