# TCP/IP

### 一、 网络协议

- 计算机之间进行通信时必须共同遵循的一种通讯规定
- 最广泛使用的网络通信协议集

### 二、 主机通信的三个要素

1. IP地址:用来标识一个节点的网络地址

   > 区分网络中电脑身份地址

2. 子网掩码:配合IP地址确定网络号

3. IP路由:网关的地址,网络的出口

### 三、 IP地址

1. 作用:用来表示一个节点的网络地址

2. 版本:

   - IPV4:32个二进制位

   - IPV6:128个二进制位

   >**点分十进制**:将32个二进制位分成4组,每组8位。再将每组的8个二进制位换算为十进制,组和组之间用“.”隔开

3. IP地址的组成

   > 网络位 + 主机位

4. IPV4地址的分类

   | 分类 | 范围      | 性质     | 结构        | 子网掩码      |
   | ---- | --------- | -------- | ----------- | ------------- |
   | A    | 0 - 127   | 超大网络 | 网.主.主.主 | 255.0.0.0     |
   | B    | 128 - 191 | 大型网络 | 网.网.主.主 | 255.255.0.0   |
   | C    | 224 - 239 | 中小网络 | 网.网.网.主 | 255.255.255.0 |
   | D    | 224 - 239 | 组播地址 |             |               |
   | E    | 240 - 255 | 科研地址 |             |               |

   > A类地址的第一个字节的范围是1到126(二进制表示为0xxxxxxx),其中127保留用于环回地址(即127.0.0.1用于本地机器测试)。

5. 网络通信中的三种不同的数据传输方式

   + 单播 (Unicast):单播是一种点对点的通信方式,数据包从一个源地址发送到一个目的地址。

     - 特点:

       (1)数据包从一个发送者直接发送给一个接收者。
       (2)通常用于客户端和服务器之间的通信,如网页浏览、电子邮件传输等。
       (3)需要单独的连接来为每个接收者发送数据。

     - 优点:
       (1)数据包只发送给需要的接收者,网络资源利用率高。
       (2)可以保证数据传输的可靠性。

     - 缺点:
       (1)当需要向多个接收者发送相同的数据时,会占用较多的网络带宽和资源。

   + 组播 (Multicast):组播是一种一对多的通信方式,数据包从一个源地址发送到多个预定义的目的地址,只有加入该组播组的成员会接收数据。

     - 特点:
       (1)数据包从一个发送者发送到多个接收者,但只发送一次。
       (2)接收者需要明确加入组播组才能接收数据。
       (3)适用于视频会议、直播、股票信息分发等。
     - 优点:
       (1)节省网络带宽,因为数据只发送一次,无论有多少接收者。
       (2)接收者可以根据需要选择加入或离开组播组。
     - 缺点:
       (1)需要网络设备支持组播,如路由器和交换机。
       (2)在不支持组播的网络环境中难以实现。

   + 广播 (Broadcast):广播是一种一对所有的通信方式,数据包从一个源地址发送到网络中的所有设备。

     - 特点:
       (1)数据包发送给网络中的所有设备。
       (2)常用于网络发现、地址解析等。
       (3)广播域通常限于本地网络。
     - 优点:
       (1)简单易用,不需要知道接收者的具体地址。
       (2)适用于网络维护和发现。
     - 缺点:
       (1)会占用所有网络设备的带宽,可能导致网络拥塞。
       (2)安全性较差,因为所有设备都能接收到广播数据。

   > 总结来说,单播适合点对点通信,组播适合一对多通信且接收者数量较多的情况,而广播则适合需要通知所有网络设备的情况。在实际应用中,通常会根据具体的通信需求和环境选择最合适的传输方式。

6. 子网掩码:区分IP地址的网络位和主机位

   > 默认网络位用255,主机位用0表示
   >
   > 在二进制下,网络位全是1,主机位全是0

7. 公有与私有IP地址

   1. 公有地址:在国际互联网上使用,花钱申请,全球唯一

   2. 私有地址:保留给企业内部使用,免费使用,内网唯一

      - 私有地址范围:

      > A:10.0.0.0 - 10.255.255.255
      >
      > B:172.16.0.0 - 172.31.255.255
      >
      > C:192.168.0.0 - 192.168.255.255

8. win+r  →  cmd  →  ipconfig

9. 网关:从一个网络到另一个网络的关口