? 作者:小胡_不糊涂
🌱 作者主页:小胡_不糊涂的个人主页
📀 收录专栏:JavaEE
💖 持续更文,关注博主少走弯路,谢谢大家支持 💖
前言
早起的计算机之间是相互独立的,随着时代的发展,计算机实现了互相通信,共享软件和数据,即以多个计算机协同?作来完成业务,就有了?络互连(多台计算机连接在?起,完成数据共享)。
数据共享本质是?络数据传输,即计算机之间通过?络来传输数据,也称为?络通信。
根据?络互连的规模不同,可以划分为局域网(Local Area Network,简称LAN)和广域网( Wide Area Network,简称WAN)。
概念:
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地址 。
概念:
在?络通信中,IP地址?于标识主机?络地址,端?号可以标识主机中发送数据、接收数据的进程。
简单说:端?号?于定位主机中的进程,区分一个主机上不同的应用程序。不同的程序绑定到不同的端口号,一个端口号只能被一个程序绑定,但是一个程序可以绑定多个端口。
格式:
端?号是0~65535范围的数字,在?络通信中,进程可以通过绑定?个端?号,来发送及接收?络数据。
有了IP地址和端?号,可以定位到?络中唯?的?个进程,但还存在?个问题,?络通信是基于?进制0/1数据来传输,如何告诉对?发送的数据是什么样的呢?
基于?络数据传输,需要使?协议来规定双?的数据格式。
概念:
协议,?络协议的简称,?络协议是?络通信(即?络数据传输)经过的所有?络设备都必须共同遵从的?组约定、规则。如怎么样建?连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
协议(protocol)最终体现为在?络上传输的数据包的格式。
五元组:
在TCP/IP协议中,?五元组来标识?个?络通信:
在CMD中,可以输?netstat -ano
查看?络数据传输中的五元组信息。
实际中的?络通信是很复杂的,所以需要分更多的层次来完成交互。
分层最?的好处,类似于?向接?编程:定义好两层间的接?规范,让双?遵循这个规范来对接。在代码中,类似于定义好?个接?,??为接?的实现类(提供?,提供服务),??为接?的使?类(使??,使?服务):
OSI:即Open System Interconnection,开放系统互连
- OSI 七层?络模型是?个逻辑上的定义和规范:把?络从逻辑上分为了7层。
- OSI 七层模型是?种框架性的设计?法,其最主要的功能使就是帮助不同类型的主机实现数据传输.
分层名称 | 功能 | |
---|---|---|
7 | 应用层 | 针对特定应用的协议。 |
6 | 表示层 | 设备固有数据格式和网络标准数据格式的转换。 |
5 | 会话层 | 通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。 |
4 | 传输层 | 管理两个节点"之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址)。 |
3 | 网络层 | 地址管理与路由选择。 |
2 | 数据链路层 | 互联设备之间传送和识别数据帧。 |
1 | 物理层 | 以“0”“1” 代表电压的高低、灯光的闪灭。界定连接器和网线的规格。 |
在实际组建?络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来实现。
TCP/IP是?组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采?了5层的层级结构,每?层都呼叫它的下?层所提供的?络来完成??的需求。
?络设备所在分层:
- 对于?台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层;
- 对于?台路由器,它实现了从?络层到物理层,也即是TCP/IP五层模型的下三层;
- 对于?台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
- 对于集线器,它只实现了物理层;
传统意义上的交换机和路由器,也称为?层交换机(?作在TCP/IP五层模型的下两层)、三层路由器(?作在TCP/IP五层模型的下三层)。
随着现在?络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在?络层叫做数据报
(datagram),在链路层叫做帧(frame)。- 应?层数据通过协议栈发到?络上时,每层协议都要加上?个数据?部(header),称为封装
(Encapsulation)。- ?部信息中包含了?些类似于?部有多?,载荷(payload)有多?,上层协议是什么等信息。
- 数据封装成帧后发到传输介质上,到达?的主机后每层协议再剥掉相应的?部,根据?部中的 “上层协议字段” 将数据交给对应的上层协议处理。
下图为数据封装的过程:
下图为数据分用的过程: