网络通信基础

IP地址

概念IP地址用于定位主机的网络地址

格式:IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)

a.b.c.d(a,b,c,d都是0~255之间的十进制整数)

组成

  • 网络号:标识网段,保证相互连接的两个网段具有不同的标识
  • 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号

分类

网络通信基础_第1张图片

分类 范围 适用网络 网络数量 主机最大连接数
A类 0.0.0.0 ~127.255.255.255 大型网络 126 16777214(224-2)
B类 128.0.0.0 ~191.255.255.255 中等规模网络 约16000个 65534(216-2)
C类 192.0.0.0 ~223.255.255.255 小型网络 - 254(28-2)
D类 224.0.0.0 ~239.255.255.255
E类 240.0.0.0 ~247.255.255.255

备注:主机最大连接数减去2,是扣除主机号为全0和全1的特殊IP地址

特殊IP:

  • 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;
  • 将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
      • 的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
  • 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

在上述的分类中,存在IP地址浪费的问题:

  1. 单位一般会申请B类网络(C类连接主机数量有限),但实际网络架设时,连接的主机数量又常远小于65534(B类连接主机数),造成IP地址浪费;同理,A类网络的IP地址也会造成大量的浪费。
  2. 当一个单位申请了一个网络号。他想将该网络能表示的IP地址再分给它下属的几个小单位时,如果在申请新的网络就会造成浪费。

为了解决以上问题,引入子网掩码来进行子网划分

子网掩码

格式

子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度
子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24

作用

  1. 划分A,B,C三类 IP 地址子网:如一个B类IP地址:191.100.0.0,按A ~ E类分类来说,网络号二进制数为16位网络号+16位主机号。

假设使用子网掩码 255.255.128.0 (即17) 来划分子网,意味着划分子网后,高17位都是网络位/网络号,也就是将原来16位主机号,划分为1位子网号+15位主机号。

此时,IP地址组成为:网络号+子网号+主机号,网络号和子网号统一为网络标识 (划分子网后的网络号/网段)

网络通信基础_第2张图片

  1. 网络通信时,子网掩码结合IP地址,可以计算获得网络号 (划分子网后的网络号) 及主机号 (划分子网后的主机号) ,一般用于判断目的IP与本IP是否为同一个网段

    计算方式:

    • 将 IP 地址和子网掩码进行“按位与”操作,得到的结果就是网络号。
    • 将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号

MAC地址

MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地址
  • 网络通信,即网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡接收数据
  • 硬件层面,只能基于MAC地址识别网络设备的网络物理地址
  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位,及6个字节,一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改。虚拟机中的MAC地址不是真实的MAC地址,可能会冲突;也有些网卡支持用户配置MAC地址

特殊MAC地址

广播数据报:发送一个广播数据报,表示对同网段所有主机发送数据报。广播数据报的MAC地址为:FF:FF:FF:FF:FF:FF

端口号(port)

概念端口号用于定位主机中的进程

格式:端口号是0~65535范围的数字

知名端口号:0 ~ 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使用的应用层协议

注意

  1. 进程可以通过绑定一个端口号,来发送及接收网络数据
  2. 两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号

网络协议(protocol)

概念:网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。协议最终体现为在网络上传输的数据包的格式

三要素

  1. 语法:数据与控制信息的结构或格式
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应
  3. 时序,即事件实现顺序的详细说明

五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式

网络通信基础_第3张图片

协议分层

OSI七层模型

分层名称 含义
应用层 应用程序所在的分层
表示层 规定数据展示的形式
会话层 约定建立和断开连接的方式
传输层 负责数据的可靠传输
网络层 地址管理与路由选择
数据链路层 互连设备之间的传送和识别数据帧
物理层 0/1光电信号

TCP/IP五层模型

分层名称 作用 代表性硬件/软件 代表性协议
应用层 约定两个进程使用一样的协议(数据格式) 进程 DNS,NAT/NAPT,FTP/SFTP,HTTP/HTTPS
传输层 负责可靠传输 操作系统(下四层) TCP,UDP
网络层 地址管理与路由选择 路由器(Router,下三层) IP
数据链路层 互连设备的传送和识别数据帧 交换机(Switcher,下两层) 以太网帧,ARP
物理层 0/1光电信号 在网线/WIFI电磁波 集线器(Hub)

封装和分用

封装:发送数据的时候,需要将数据按网络分层,从高到低的顺序来进行封装

分用:接收数据时,需要按照网络分层,从低到高的顺序来进行分用(解析)

网络通信基础_第4张图片

你可能感兴趣的:(tcp/ip)