网络中的基本概念

⭐ 作者:小胡_不糊涂
作者主页:小胡_不糊涂的个人主页
收录专栏:JavaEE
持续更文,关注博主少走弯路,谢谢大家支持

基本概念

  • 1. IP地址
  • 2. 端口号
  • 3. 协议
  • 4. 协议分层
  • 5. OSI七层模型
  • 6. TCP/IP五层模型
  • 7. 封装和分用

前言
  早起的计算机之间是相互独立的,随着时代的发展,计算机实现了互相通信,共享软件和数据,即以多个计算机协同⼯作来完成业务,就有了⽹络互连(多台计算机连接在⼀起,完成数据共享)。
  数据共享本质是⽹络数据传输,即计算机之间通过⽹络来传输数据,也称为⽹络通信
根据⽹络互连的规模不同,可以划分为局域网(Local Area Network,简称LAN)和广域网( Wide Area Network,简称WAN)

1. IP地址

概念:
IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主机的⽹络地址。
格式:
IP地址是⼀个32位的⼆进制数,通常被分割为4个“8位⼆进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110。
通常⽤“点分⼗进制”的⽅式来表⽰,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的⼗进制整数)。如:100.4.5.6。

在CMD中输入ipconfig就可以查看计算机IP地址

2. 端口号

概念:
在⽹络通信中,IP地址⽤于标识主机⽹络地址,端⼝号可以标识主机中发送数据、接收数据的进程。
简单说:端⼝号⽤于定位主机中的进程,区分一个主机上不同的应用程序。不同的程序绑定到不同的端口号,一个端口号只能被一个程序绑定,但是一个程序可以绑定多个端口。
格式:
端⼝号是0~65535范围的数字,在⽹络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收⽹络数据。

3. 协议

有了IP地址和端⼝号,可以定位到⽹络中唯⼀的⼀个进程,但还存在⼀个问题,⽹络通信是基于⼆进制0/1数据来传输,如何告诉对⽅发送的数据是什么样的呢?
基于⽹络数据传输,需要使⽤协议来规定双⽅的数据格式。

概念:
协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
协议(protocol)最终体现为在⽹络上传输的数据包的格式

五元组:
在TCP/IP协议中,⽤五元组来标识⼀个⽹络通信:

  1. 源IP:标识源主机
  2. 源端⼝号:标识源主机中该次通信发送数据的进程
  3. ⽬的IP:标识⽬的主机
  4. ⽬的端⼝号:标识⽬的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双⽅约定的数据格式
    网络中的基本概念_第1张图片

在CMD中,可以输⼊netstat -ano查看⽹络数据传输中的五元组信息。

4. 协议分层

实际中的⽹络通信是很复杂的,所以需要分更多的层次来完成交互。
分层最⼤的好处,类似于⾯向接⼝编程:定义好两层间的接⼝规范,让双⽅遵循这个规范来对接。在代码中,类似于定义好⼀个接⼝,⼀⽅为接⼝的实现类(提供⽅,提供服务),⼀⽅为接⼝的使⽤类(使⽤⽅,使⽤服务):

  • 对于使⽤⽅来说,并不关⼼提供⽅是如何实现的,只需要使⽤接⼝即可
  • 对于提供⽅来说,利⽤封装的特性,隐藏了实现的细节,只需要开放接⼝即可
  • 网络中的基本概念_第2张图片

5. OSI七层模型

OSI:即Open System Interconnection,开放系统互连

  • OSI 七层⽹络模型是⼀个逻辑上的定义和规范:把⽹络从逻辑上分为了7层。
  • OSI 七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传输.
分层名称 功能
7 应用层 针对特定应用的协议。
6 表示层 设备固有数据格式和网络标准数据格式的转换。
5 会话层 通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。
4 传输层 管理两个节点"之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址)。
3 网络层 地址管理与路由选择。
2 数据链路层 互联设备之间传送和识别数据帧。
1 物理层 以“0”“1” 代表电压的高低、灯光的闪灭。界定连接器和网线的规格。

在实际组建⽹络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来实现。

6. TCP/IP五层模型

TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。

  • 应⽤层:负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远程访问协议(Telnet)等。我们的⽹络编程主要就是针对应⽤层。
  • 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到⽬标主机。
  • ⽹络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表的⽅式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)⼯作在⽹路层。
  • 数据链路层:负责设备之间的数据帧的传送和识别。例如⽹卡设备的驱动、帧同步(就是说从⽹线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就⾃动重发)、数据差错校验等⼯作。
    有以太⽹、令牌环⽹,⽆线LAN等标准。交换机(Switch)⼯作在数据链路层。
  • 物理层:负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。物理层的能⼒决定了最⼤传输速率、传输距离、抗⼲扰性等。集线器(Hub)⼯作在物理层。

网络中的基本概念_第3张图片

⽹络设备所在分层:

  1. 对于⼀台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层;
  2. 对于⼀台路由器,它实现了从⽹络层到物理层,也即是TCP/IP五层模型的下三层;
  3. 对于⼀台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
  4. 对于集线器,它只实现了物理层;
    传统意义上的交换机和路由器,也称为⼆层交换机(⼯作在TCP/IP五层模型的下两层)、三层路由器(⼯作在TCP/IP五层模型的下三层)。
    随着现在⽹络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。

7. 封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报
    (datagram),在链路层叫做帧(frame)。
  • 应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装
    (Encapsulation)。
  • ⾸部信息中包含了⼀些类似于⾸部有多⻓,载荷(payload)有多⻓,上层协议是什么等信息。
  • 数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,根据⾸部中的 “上层协议字段” 将数据交给对应的上层协议处理。

下图为数据封装的过程:

网络中的基本概念_第4张图片

下图为数据分用的过程:
网络中的基本概念_第5张图片

你可能感兴趣的:(JavaEE,网络)