网络基础原理

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。

端口号

概念

在⽹络通信中,IP地址⽤于标识主机⽹络地址,端⼝号可以标识主机中发送数据、接收数据的进程。 简单说:端⼝号⽤于定位主机中的进程。

类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货⼈(端⼝号)。

格式

端⼝号是0~65535范围的数字,在⽹络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收⽹络数据。

协议

概念

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

协议(protocol)最终体现为在⽹络上传输的数据包的格式。

作⽤

为什么需要协议?

就好⽐⻅⽹友,彼此协商胸⼝插⽀玫瑰花⻅⾯,这就是⼀种提前的约定,也可以称之为协议。

计算机之间的传输媒介是光信号和电信号。通过"频率"和"强弱"来表⽰0和1这样的信息。要想传递 各种不同的信息,就需要约定好双⽅的数据格式。

• 计算机⽣产⼚商有很多;

• 计算机操作系统,也有很多;

• 计算机⽹络硬件设备,还是有很多; 如何让这些不同⼚商之间⽣产的计算机能够相互顺畅的通信?

就需要有⼈站出来,约定⼀个共同的标准,⼤家都来遵守,这就是⽹络协议;

五元组

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

1. 源IP:标识源主机

2. 源端⼝号:标识源主机中该次通信发送数据的进程

3. ⽬的IP:标识⽬的主机

4. ⽬的端⼝号:标识⽬的主机中该次通信接收数据的进程

5. 协议号:标识发送进程和接收进程双⽅约定的数据格式

五元组在⽹络通信中的作⽤,类似于发送快递:

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

如果需要过滤(⼀般是通过端⼝号或进程PID过滤),可以使⽤netstat -ano | findstr 过滤 字符串

协议分层

对于⽹络协议来说,往往分成⼏个层次进⾏定义。

什么是协议分层

协议分层类似于打电话时,定义不同的层次的协议:

在这个例⼦中,我们的协议只有两层;但是实际的⽹络通信会更加复杂,需要分更多的层次。

分层的作用

为什么需要⽹络协议的分层?

分层最⼤的好处,类似于⾯向接⼝编程:定义好两层间的接⼝规范,让双⽅遵循这个规范来对接。

在代码中,类似于定义好⼀个接⼝,⼀⽅为接⼝的实现类(提供⽅,提供服务),⼀⽅为接⼝的使⽤ 类(使⽤⽅,使⽤服务):

• 对于使⽤⽅来说,并不关⼼提供⽅是如何实现的,只需要使⽤接⼝即可

• 对于提供⽅来说,利⽤封装的特性,隐藏了实现的细节,只需要开放接⼝即可。 这样能更好的扩展和维护,如下图:

OSI七层模型 OSI:即Open System Interconnection,开放系统互连

• OSI七层⽹络模型是⼀个逻辑上的定义和规范:把⽹络从逻辑上分为了7层。

• OSI七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传 输;OSI七层模型划分为以下七层:

OSI七层模型既复杂⼜不实⽤:所以 OSI 七层模型没有落地、实现。

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

TCP/IP五层(或四层)模型

TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。

• 应⽤层:负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远 程访问协议(Telnet)等。我们的⽹络编程主要就是针对应⽤层。

• 传输层:负责两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发 送到⽬标主机。

• ⽹络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表 的⽅式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)⼯作在⽹路层。

• 数据链路层:负责设备之间的数据帧的传送和识别。例如⽹卡设备的驱动、帧同步(就是说从⽹线上 检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就⾃动重发)、数据差错校验等⼯作。 有以太⽹、令牌环⽹,⽆线LAN等标准。交换机(Switch)⼯作在数据链路层。

• 物理层:负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同 轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。物理 层的能⼒决定了最⼤传输速率、传输距离、抗⼲扰性等。集线器(Hub)⼯作在物理层。

⽹络设备所在分层

• 对于⼀台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四 层;

• 对于⼀台路由器,它实现了从⽹络层到物理层,也即是TCP/IP五层模型的下三层;

• 对于⼀台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;

• 对于集线器,它只实现了物理层;

注意我们这⾥说的是传统意义上的交换机和路由器,也称为⼆层交换机(⼯作在TCP/IP五层模型的下 两层)、三层路由器(⼯作在TCP/IP五层模型的下三层)。

随着现在⽹络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。我们以下说的⽹络设 备都是传统意义上的交换机和路由器。

网络分层对应

⽹络数据传输时,经过不同的⽹络节点(主机、路由器)时,⽹络分层需要对应。 以下为同⼀个⽹段内的两台主机进⾏⽂件传输:

以下为跨⽹段的主机的⽂件传输:数据从⼀台计算机到另⼀台计算机传输过程中要经过⼀个或多个路由器

封装和分用

• 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报 (datagram),在链路层叫做帧(frame)。

• 应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装 (Encapsulation)。

• ⾸部信息中包含了⼀些类似于⾸部有多⻓,载荷(payload)有多⻓,上层协议是什么等信息。

• 数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,根据⾸部中的"上 层协议字段"将数据交给对应的上层协议处理。

下图为数据封装的过程

下图为数据分⽤的过程

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值