网络编程基础知识总结——IP,端口,协议

目录

1. 什么是网络编程?

2. 网络编程的三要素

3. IP

3.1 IP地址的概念

3.2 IP地址的分类

3.3 IPv4解析

3.4 Ipv6解析

4. IPv4 的使用细节

5. 特殊IP地址

4. 端口号

5. 协议

5.1 UDP协议

5.2 TCP协议


1. 什么是网络编程?

总的来说就是一句话,在网络通信协议下,不同计算机上运行的程序,进行数据传输。

之前我们编写代码,都是编写单体项目,在自己的电脑上运行,数据在本机前后端互相传输,不需要通过网络传输给别人。而在实际业务开发时,我们都是网络编程,微服务架构下会有多台服务器,服务器与服务器之间要进行数据通信,都是通过网络传输。

再者,我们网上与亲朋好友聊天,打游戏,向别人发送邮件,都是自己的计算机与别人的计算机之间的数据传输,都需要用到我们的网络编程。

2. 网络编程的三要素

大家思考一下,一台电脑像另一台电脑传输数据,需要知道那些参数呢?

OK,我直接来说吧。

(1)IP地址:一个设备向另一个设备发送信息,(因为数据传输不只有电脑,平板,手表,手机也可以进行数据传输,说以这里不说是电脑而说设备)。首先,肯定是要知道另一台设备的IP地址,每台设备的 IP 地址都是独一无二的,世界上有那么多的设备,我们就是通过设备的 IP 地址来确定你要向哪台设备发送数据的;

(2)端口号:既然知道了要发送的电脑是哪一台,我们还需要知道端口号,因为发送数据通常都是一个软件中的数据,每个软件APP在一台电脑上都绑定这一个端口,一个软件只能绑定一个端口,通过电脑的端口我们就可以确定要把数据传输给电脑上的哪个软件;

(3)协议(传输规则):再进行数据传输的时候,为了确保安全,通常会基于某种规则对数据进行加密,另一台电脑接收到数据之后,要对数据进行解密,这种传输规则称之为协议。常见的协议有UDP,TCP,HTTP,HTTPS,FTP等等;

3. IP

3.1 IP地址的概念

IP 全程 Internet Protocor,也可以说是互联网协议地址,会给每一个可以上网的设备分配一个唯一的地址;

3.2 IP地址的分类

现在常用的 IP 主要分为 IPv4 和 IPv6,Internet Protocor version 4(互联网通信协议第四版) 和 Internet Protocor version 6(互联网通信协议第四版);

3.3 IPv4解析

IPv4 采用了 32 位地址长度,计算机中每个字节有八个比特位,分为四组,正好四个字节,如下图就是一个随机的值,就可以表示一个 IP 地址。

但是,我们通常不会采用上面的那种方式来表示,因为可读性太差,所以我们采用点分十进制表示法,什么意思呢?

很简单,就是将上面的四组看作是四个二进制的数,然后转化成是十进制,另外有一点需要注意,在转化过程中,不存在负数这一说法,都是正数,转化之后的四个数之间采用 "." 来分开,就形成了我们常见的 "xxx.xxx.xxx.xxx"。如下图

这里我们可以算一下,每个八位二进制数转化为十进制,一共有 2^8 = 256 个十进制数,四组则一共有 256*256*256*256 = 42,9496,7296 就是42亿,也就是说 IPv4 一共最多有42亿多个 IP 地址,在2019年的时候,这42亿个 IP 地址就已经分配完了,不够使用了。

3.4 Ipv6解析

为了解决 IPv4 分配地址不够用的这一情况,后续又推出了 IPv6,它则是采用了 128 位地址长度,分为了8组,如下图

128 位2进制数,那么它可以分配的 IP 地址数量为 2^128,这个数量非常庞大,可以给地球上的每粒沙子都分配一个 IP 地址,完全够用,但是 IPv6 还没有大面积推广开,但在未来一定会被广泛使用。

IPv6 采用的是冒分十六进制表示法,每16个二进制数为一组,一共分为8组,将二进制转化为16进制,转化完毕后每组之间采用 ":" 分开,就形成了下面这个样子

16进制数如果计算出来的结果如果某一组都是0,可以省略三个只写一个0,如果只有两头有数值中间都是零,则可以省略中间的六组,用两个连续的 "::" 来代替,计算机在读取的时候会自动补零。

4. IPv4 的使用细节

上面我们了解到了,IPv4 的地址已经分配完毕了,而 IPv6 还没有大面积普及,那么如果新的设备需要 IP 地址,是如何解决的呢?

这就要说到 IPv4 的地址分类形式了,实际上 IPv4 还可以分为公网IP和局域网IP,192.168.开头的IP都是局域网IP,范围是 192.168.0.0--192.168.255.255,是专门为组织机构内部使用,节省IP地址数量。

我们大家举个例子就很好理解了。假如你现在有手机,平板,手表,电脑四个上网设备,原本来说你这四个设备需要分别占用那42亿个IP地址中的四个,但是现在你的这四个设备共同占用 42 亿个公网IP地址中的一个,然后你的这四个设备再分别占用局域网IP 192.168.0.0--192.168.255.255 中的四个,这样说应该好理解一些。就是不管你有几个设备,你只占用世界上的一个公网IP,然后你的个人设备再去分配局域网的 IP,节省了42亿个公网IP的利用率。

实际生活中可能一栋大楼,一家小型公司,一个商场,或者一家茶馆餐馆只占用一个 公网IP,然后顾客在这个范围内的IP实际上是这个公网IP下的局域网IP。这样做极大地提高了公网IP的使用率,所以至今IPv6只是小面积普及,还没有大面积应用开来。

5. 特殊IP地址

在上面说到的众多IP地址中,我们需要记一个特殊的,就是 127.0.0.1,这个地址永远都是代表你的本机地址,只会寻找你的本机。

4. 端口号

(1)端口号是应用程序在设备中的唯一标识,它是由两个字节表示的整数,范围是 0~65535 之间的任意一个数;

(2)并不是这个范围之内的端口都可以使用,其中 0~1023 之间的端口都是被一些固定的网络应用或者网络服务占用的,我们是用不了,只能使用 1024之后的端口。

(3)一个端口号只能被一个程序绑定使用;

5. 协议

计算机网络中,连接和通信的规则被称为网络通信协议。而现在最为广泛使用的就是TCP协议以及UDP协议,

5.1 UDP协议

UPD 全称 User Datagram Protocol(用户数据报协议),UDP是面向无连接的通信协议,他的速度快,但有大小限制,每次只能发送64K大小的数据,数据不安全,有可能产生数据丢失。

5.2 TCP协议

TCP 协议全称 Transmission Control Protocol(传输控制协议),TCP协议是面向无连接的通信协议,速度慢但没有大小限制,数据安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/105502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[计算机提升] Windows系统权限

1.2 Windows系统权限 在Windows操作系统中,权限是指授予用户或用户组对系统资源进行操作的权利。权限控制是操作系统中重要的安全机制,通过权限控制可以限制用户对系统资源的访问和操作,从而保护系统安全。 Windows操作系统中包含以下几种权…

Leetcode算法解析——查找总价格为目标值的两个商品

1. 题目链接:LCR 179. 查找总价格为目标值的两个商品 2. 题目描述: 商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况,返回任一结果即可。 示例 1: 输入:price …

大语言模型迎来重大突破!找到解释神经网络行为方法

前不久,获得亚马逊40亿美元投资的ChatGPT主要竞争对手Anthropic在官网公布了一篇名为《朝向单义性:通过词典学习分解语言模型》的论文,公布了解释经网络行为的方法。 由于神经网络是基于海量数据训练而成,其开发的AI模型可以生成…

以单颗CMOS摄像头重构三维场景,维悟光子发布单目红外3D成像模组

维悟光子近期发布全新单目红外3D成像模组,现可提供下游用户进行测试导入。通过结合微纳光学元件编码和人工智能算法解码,维悟光子单目红外3D成像模组采用单颗摄像头,通过单帧拍摄,可同时获取像素级配准的3D点云和红外图像信息,可被应用于机器人、生物识别等广阔领域。 市场…

Qt 5.12.12 静态编译(MinGW)

前置准备 系统环境 版本 Windows 11 专业版 版本 22H2 安装日期 ‎2023/‎6/‎18 操作系统版本 22621.2428 体验 Windows Feature Experience Pack 1000.22674.1000.0依赖工具 gcc Qt 5.12.12 安装 MinGW 后自动安装 https://download.qt.io/archive/qt/5.12/5.12.12/qt-ope…

三防PDA手持终端开发板-联发科MTK6765平台安卓主板方案

三防手持终端安卓主板方案采用了联发科12nm八核MT6765处理器,配备4G64GB内存(可选配6GB256GB),并搭载最新的Android 10.0操作系统。该方案支持许多功能,包括高亮显示屏、高清摄像头、NFC、3A快速充电、1D/2D扫描(可选配)、高精度定位(可选配)…

VMware _ Ubuntu _ root 密码是什么,怎么进入 root 账户

文章目录 进入 root 账户设置 root 密码小结 在 VMware 安装 ubuntu 虚拟机之后,root 用户的密码是什么?安装的过程也没有提示输入 root 用户的密码,只有创建第一个非 root 用户的密码。但是 root 用户是存在的,又怎么切换到 root…

红帽Linux的安装和部署

目录 一、红帽Linux的安装阶段 1、下载redhat7.9的iso镜像 2、安装阶段 二、红帽Linux的配置阶段 1、第一次进入装机配置 2、进入机器后的一些配置 三、远程连接阶段 1、关闭防火墙 2、使用Xshell远程连接(其他连接工具也行) 1.开启SSH服务 2.连…

利达卓越:关注环保事业,持续赋能科技

随着全球环境问题的日益突出,绿色金融作为一种新兴的金融模式逐渐受到各国的重视。绿色金融是指在金融活动中,通过资金、信贷和风险管理等手段,支持环境友好和可持续发展的项目和产业。绿色金融的出现是为了应对气候变化、资源短缺、污染问题等现实挑战,促进经济的绿色转型和可…

基于海洋捕食者优化的BP神经网络(分类应用) - 附代码

基于海洋捕食者优化的BP神经网络(分类应用) - 附代码 文章目录 基于海洋捕食者优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.海洋捕食者优化BP神经网络3.1 BP神经网络参数设置3.2 海洋捕食者算法应用 4…

Delay-Based 拥塞控制算法

上班七天了,有点崩溃,看一篇论文提神:A Delay-Based Approach for Congestion Avoidance in Interconnected Heterogeneous Computer networks,来自 Raj Jain,1989 年。这篇论文基于下图展开: 是不是很熟…

SiC外延片测试方案

外延材料是实现器件制造的关键,主要技术指标有外延层厚度、晶格布局,材料结构,形貌以及物理性质,表面粗糙度和掺杂浓度等。下面阐述SiC外延表面常见的测试手段: 1. 外延层厚度(傅里叶变换红外FT-IR&#xf…

SpringBoot通过配置切换注册中心(多注册中心nacos和eureka)

场景: 因项目需要,一个springcloud微服务工程需要同时部署到A,B两个项目使用,但A项目使用Eureka注册中心,B项目使用Nacos注册中心,现在需要通过部署时修改配置来实现多注册中心的切换。 解决思路: 如果同时…

Eslint配置 Must use import to load ES Module(已解决)

最近在配置前端项目时,eslint经常会碰到各种报错(灰常头疼~) Syntax Error Error No ESLint configuration found.Syntax Error: Error: D:\dmq\dmq-ui.eslintrc.js: Environment key “es2021” is unknown at Array.forEach ()error in ./…

UE4 快速入门 1

安装 https://www.unrealengine.com/zh-CN/download Launcher ue4.23 editor visual studio 2019 社区版 文档学习

IO流:java中解码和编码出现乱码说明及代码实现

IO流:java中解码和编码的代码实现 一、UTF-8和GBK编码方式二、idea和eclipse的默认编码方式三、解码和编码方法四、代码实现编码解码 五、额外知识扩展 一、UTF-8和GBK编码方式 如果采用的是UTF-8的编码方式,那么1个英文字母 占 1个字节,1个…

Qt QMultiMap

QMultiMap 文章目录 QMultiMap摘要QMultiMapQMultiMap 特点代码示例 关键字: Qt、 QMultiMap、 容器、 键值、 键值重复 摘要 今天在观摩小伙伴撸代码的时候,突然听到了QMultiMap自己使用Qt开发这么就,竟然都不知道,所以趁没…

git cherry-pick命令

问题场景: 需要把dev分支的代码,合并到master分支中,但是又不能根据整个分支合并,所有使用cherry-pick命令,根据提交的commit号来合并 问题描述: 原因分析: 解决方案: 1.在dev分支…

【Python】Python语言基础(上)

第一章 前言 1. Python简介 Python语言并不是新的语言,它早于HTTP 1.0协议5年,早于Java语言 4年。 ​ Python是由荷兰人Guido van Rossum(吉多范罗苏姆)于1989年圣诞节期间在阿姆斯特丹休假时为了打发无聊的假期而编写的一个脚本…

车载电子电器架构 —— 国产基础软件现在与未来

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不…