网络通信基础

2022年圣诞节到来啦,很高兴这次我们又能一起度过~

祝大家圣诞快乐

网络互连的目的是进行网络通信, 也即是网络数据传输, 再具体一点, 是网络主机中的不同进程间, 基于网络传输数据.

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

那么, 在组建的网络中, 如何判断到底是从哪台主机, 将数据传输到那台主机呢? 这就需要使用IP地址来标识了.

IP地址

概念

IP地址 (Internet Protocol Address) 是指互联网协议地址, 又译为网际协议地址. 

IP地址是IP协议提供的一种统一的地址格式, 它为互联网上的每一个网络和每一台主机分配一个逻辑地址, 以此来屏蔽物理地址的差异.

简单来说, IP地址用于定位主机的网络地址.

就像我们发收快递一样, 需要知道对方的地址才能发收快递, 才能把你的包裹送到你手里, 不会送错.

格式

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

通常用 "点分十进制" 的方式来表示, 即 a.b.c.d 的形式 (a,b,c,d都是0~255之间的十进制整数) . 如:127.0.0.1

特殊IP

像上面写的127.0.0.1就是特殊IP,  127.*的IP地址用于本机环回测试, 通常都是127.0.0.1

端口号

IP地址解决了网络通信时, 定位主机的问题, 那么问题又来了, 数据传输到目的主机后, 由哪个进程来接收数据呢, 这个时候就需要端口号来标识了.

概念

在网络通信中, 端口号用来标识主机中发送数据, 接收数据的进程. 总的来说就是: 端口号用于定位主机中的进程.

类似于发送快递, 不仅仅需要收货地址(IP地址), 还需要写收货人(端口号).

格式

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

注意

两个不同的进程, 不能绑定同一个端口号, 但一个进程可以绑定多个端口号.

一个进程启动后, 系统会随机分配一个端口(这个端口一般被称之为启动端口), 在代码里面, 进入网络编程时, 需要绑定端口号(用于收发数据的端口).

认识协议

我们都知道, 网络通信是基于二进制 0/1 数据来传输的, 然而我们平时需要传输的数据可能会有: 图片 视频 文字等等, 不同类型的数据, 格式大概率是不同的, 要是大家想发什么发什么我们是看不懂数据的, 所以我们就需要协议来规范双方的数据格式.

概念

网络协议, 是网络通信 (即网络数据传输), 经过的所有网络设备 都必须遵守的一组约定 or 规则. 他通常由三要素组成:

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

网络协议最终体现为网络上传输的数据包的格式.

协议的作用

为什么需要协议呢?

因为计算机厂商很多, 操作系统也很多, 各种计算机网络设备也很多, 为了让大家都能顺利的进行通信, 就需要约定一个通用的规则大家一起遵守, 这就是网络协议.

端口

系统的端口号是 0-65535, 其中 0-1023被称为知名端口号

例如:

  1. 22端口, 预留给SSH服务器绑定SSH协议
  2. 80端口, 预留给Http服务器绑定Http协议

你可能感兴趣的:(计算机网络,网络,服务器,运维,网络协议)