lv7 嵌入式开发-网络编程开发 04 IP地址与端口号

目录

1 IP地址

1.1 IP 地址及其表示方法

1.2 分类的 IP 地址

1.3 无分类编址 CIDR

 1.3.1 网络前缀

1.3.2 地址块

1.3.3 地址掩码 (address mask) 

1.4 IPv6 的地址

1.4.1 表示方式

1.4.2 零压缩

2 端口号

2.1 进程之间的通信

2.2 运输层的作用 

2.3 屏蔽作用 

2.4 可靠信道与不可靠信道 

2.5 运输层的两个主要协议

2.6 运输协议数据单元 

2.7 UDP 与 TCP 的区别

2.8 运输层的端口 

2.9 端口号 (protocol port number)

2.10 TCP/IP 运输层端口的标志 

2.11 两大类、三种类型的端口

2.12 常用的熟知端口 

2.13 BSD端口 (也是一个标准)


1 IP地址

1.1 IP 地址及其表示方法

示例: 

 

IP 地址采用 2 级结构

IP地址在整个互联网范围内是唯一的。

IP 地址指明了连接到某个网络上的一个主机 

网络号的位数 n 是多少?

1.2 分类的 IP 地址

  • 任意一个IP地址我们都可以迅速的得出类别,并计算得出网络号
  • 当一个主机通过两个网卡同时连接到两网络时,也就是该主机同时拥有两个IP地址,该主机被称为多归属主机
  • 一个路由器至少连接到两个不同的网络,一个路由器至少拥有两个IP地址

各类 IP 地址的指派范围

注意:

  • A 类网络地址中, 网络号 0 和 127 是保留地址,不指派。0 表示“本网络”,127 保留作为本地环回测试地址。
  • B 类网络地址中,网络号 128.0  是被 IANA 保留的,不指派。采用无分类编址(CIDR)时可以指派。
  • C 类网络地址中,网络号 192.0.0 是被 IANA 保留的,不指派。采用无分类编址(CIDR)时可以指派。
  • 指派主机号时,要扣除全 0 和全 1 。全 0 和全 1 有特殊含义和用途。 

一般不使用的特殊的 IP 地址

分类的 IP 地址的优点和缺点 

  • 管理简单; 使用方便; 转发分组迅速; 划分子网,灵活地使用。
  • 设计上不合理: 大地址块,浪费地址资源; 即使采用划分子网的方法,也无法解决 IP 地址枯竭的问题。

例:一个拥有1000台主机的组织,需要申请哪类IP地址?

需要申请一个B类地址,这就会导致超过64000个地址不能被其他组织使用。随着加入互联网的组织数量的迅速增加,IP地址面临被分配完的危险

为了解决上述问题,IETF提出了划分子网的编址改进方案

三级IP地址:网络号、子网号和主机号

例:假设有一个IP地址为192.168.1.100,子网掩码为255.255.255.0的网络。

  1. 网络号:网络号是指用来标识网络的部分。在这个例子中,子网掩码为255.255.255.0意味着前3个字节(24个位)用于表示网络号。因此,192.168.1是网络号。

  2. 子网号:子网号是指在一个网络内再进行划分而得到的子网的部分。在这个例子中,子网掩码为255.255.255.0意味着最后一个字节(8个位)用于表示子网号。因此,1是子网号。

  3. 主机号:主机号是指在一个子网内具体的主机或设备的标识。在这个例子中,最后一个字节(8个位)除去子网号的部分就是主机号。因此,100是主机号。

综上所述,IP地址192.168.1.100在子网掩码为255.255.255.0的网络中,网络号为192.168.1,子网号为1,主机号为100。

需要注意的是,子网划分和IP地址的具体规模和网络需求有关,因此在实际应用中,可以根据需要选择不同的子网掩码来划分网络、子网和主机。

1.3 无分类编址 CIDR

CIDR (Classless Inter-Domain Routing) :无分类域间路由选择。

消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,可以更加有效地分配 IPv4 的地址空间,但无法解决 IP 地址枯竭的问题。

 1.3.1 网络前缀

最大的区别: 前缀的位数 n 不固定,可以在 0 ~ 32 之间选取任意值。 

CIDR 记法:

        斜线记法 (slash notation)

a.b.c.d / n:

        二进制 IP 地址的前 n 位是网络前缀。 例如:128.14.35.7/20:前 20 位是网络前缀。

1.3.2 地址块

  • CIDR 把网络前缀都相同的所有连续的 IP 地址组成一个 CIDR 地址块。
  • 一个 CIDR 地址块包含的 IP 地址数目取决于网络前缀的位数。

注意: 

1.3.3 地址掩码 (address mask) 

又称为子网掩码 (subnet mask)。

位数:32 位。

目的:让机器从 IP 地址迅速算出网络地址。

由一连串 1 和接着的一连串 0 组成,而 1 的个数就是网络前缀的长度。

/20 地址块的地址掩码: 11111111 11111111 11110000 00000000

点分十进制记法:255.255.240.0        

CIDR 记法:255.255.240.0/20。

默认地址掩码

网络地址 = (二进制的 IP 地址) AND (地址掩码) 

 【例】已知 IP 地址是 128.14.35.7/20。求网络地址。

(a) 点分十进制 IP 地址

        128.14.35.7

(b) 二进制 IP 地址

        1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1

(c) 地址掩码是 255.255.224.0

        1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

(d) IP 地址与地址掩码按位 AND

        1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

(e) 网络地址(点分十进制)

        128.14.32.0

1.4 IPv6 的地址

  • 在 IPv6 中,每个地址占 128 位,地址空间大于 3.4 *10^38 。
  • 使用冒号十六进制记法(colon hexadecimal notation, 简写为 colon hex):16 位的值用十六进制值表示,各值之间用冒号分隔。

1.4.1 表示方式

点分十进制数记法:

        104.230.140.100.255.255.255.255.0.0.17.128.150.10.255.255

冒号十六进制记法:

        68E6:8C64:FFFF:FFFF:0000:1180:960A:FFFF

冒号十六进制记法:

        68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF

两个技术:零压缩,点分十进制记法的后缀。

1.4.2 零压缩

零压缩 (zero compression):一串连续的零可以用一对冒号取代。

FF05:0:0:0:0:0:0:B3 可压缩为:FF05::B3

注意:在任一地址中,只能使用一次零压缩。 

2 端口号

2.1 进程之间的通信

2.2 运输层的作用 

2.3 屏蔽作用 

运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道

2.4 可靠信道与不可靠信道 

2.5 运输层的两个主要协议

互联网的正式标准:

用户数据报协议 UDP (User Datagram Protocol)

传输控制协议 TCP (Transmission Control Protocol)

2.6 运输协议数据单元 

两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。

TCP 传送的数据单位协议是 TCP 报文段 (segment)。

UDP 传送的数据单位协议是 UDP 报文或用户数据报。

2.7 UDP 与 TCP 的区别

UDP

  • 传送数据之前不需要先建立连接。
  • 收到 UDP 报后,不需要给出任何确认。
  • 不提供可靠交付,但是一种最有效的工作方式。

TCP

  • 提供可靠的、面向连接的运输服务。
  • 不提供广播或多播服务。
  • 开销较多。

使用 UDP 和 TCP 的典型应用和应用层协议

2.8 运输层的端口 

复用:应用进程都可以通过运输层再传送到 IP 层(网络层)。 

分用:运输层从 IP 层收到发送给应用进程的数据后,必须分别交付给指明的各应用进程。

如何指明各应用进程?

需要考虑的问题

  • 进程的创建和撤销都是动态的,因此发送方几乎无法识别其他机器上的进程。
  • 我们往往需要利用目的主机提供的功能来识别终点,而不需要知道具体实现这个功能的进程是哪一个。
  • 有时我们会改换接收报文的进程,但并不需要通知所有的发送方。

2.9 端口号 (protocol port number)

解决方法:在运输层使用协议端口号 (protocol port number),或通常简称为端口 (port)。把端口设为通信的抽象终点。

2.10 TCP/IP 运输层端口的标志 

端口用一个 16 位端口号进行标志,允许有 65,535 个不同的端口号。

端口号只具有本地意义,只是为了标志本计算机应用层中的各进程。

在互联网中,不同计算机的相同端口号没有联系

由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的端口号,而且还要知道对方的 IP 地址。 

2.11 两大类、三种类型的端口

 

2.12 常用的熟知端口 

2.13 BSD端口 (也是一个标准)

  • 0不使用,1-1023为系统端口,也叫BSD保留端口。
  • 0-1023: BSD保留端口,也叫系统端口,这些端口只有系统特许的进程才能使用
  • 1024~65535为用户端口,其中:      
  • 1024-5000: BSD临时端口,一般的应用程序使用1024到4999来进行通讯;      
  • 5001-65535:BSD服务器(非特权)端口,用来给用户自定义端口。

IANA建议49152至65535作为“动态或私有端口”

许多Linux内核使用32768至61000范围。配置文件/proc/sys/net/ipv4/ip_local_port_range有当前系统设定。

3 练习

1.以下不是合法的IPV4的地址是:

A). 192.168.0.14 B). 10.87.384.31 C).255.255.255.255 D). 127.0.0.1

2.以下关于IP地址说法,错误的是:

A). IP可以采用数字表示,比如0xe80e0832就可以表示一个IP地址

B). IPV6的提出主要目的是解决IPV4的IP地址枯竭的问题

C). 234.76.10.1是一个合法的广播地址

D). ::1是一个合法的IP地址

3.以下关于端口号的说法,错误的是:

A). 端口是一个16位的数字,主要用于系统区分不同的网络数据该由那个任务来处理

B).为避免冲突,TCP和UDP端口不能同时使用同一端口

C).网络数据是由IP地址和端口以及套接字类型决定的

D).用户编程不可使用1024以下的端口

  1. 选项B). 10.87.384.31 不是合法的IPv4地址,因为每个IP段的取值范围是0到255,而384超出了有效范围。
  2. 选项A). IP可以采用数字表示,比如0xe80e0832就可以表示一个IP地址 是错误的。IP地址通常用点分十进制表示,而不是十六进制。
  3. 选项B). 为避免冲突,TCP和UDP端口不能同时使用同一端口 是错误的。实际上,TCP和UDP协议使用独立的端口空间,所以同一端口号可以同时被TCP和UDP使用。

 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C#中的for和foreach的探究与学习

一:语句及表示方法 for语句: for(初始表达式;条件表达式;增量表达式) {循环体 }foreach语句: foreach(数据类型 变量 in 数组或集合) {循环体 }理解 1.从程序逻辑上理解,foreach是通过指针偏移实现的(最初在-1位置,每循环一次,指针就便宜一个单位),而for循环是通

十二、【漏洞复现】Rails任意文件读取(CVE-2019-5418)

十二、【漏洞复现】Rails任意文件读取(CVE-2019-5418) 12.1、漏洞原理 Ruby on Rails是一个使用 Ruby 语言写的开源 Web 应用框架,它是严格按照 MVC 结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少…

下载盗版网站视频并将.ts视频文件合并

. 1.分析视频请求123 2.数据获取和拼接 1.分析视频请求 1 通过抓包观察我们发现视频是由.ts文件拼接成的每一个.ts文件代表一小段2 通过观察0.ts和1.ts的url我们发现他们只有最后一段不同我们网上找到url获取的包3 我们发现index.m3u8中储存着所有的.ts文件名在拼接上前面固定…

数据结构 1.1 初学数据结构

数据结构的基本概念 数据结构在学什么? 如何用程序代码把现实世界的问题信息化 如何用计算机高效处理信息从而创造价值 数据: 数据元素、数据项: 数据元素——描述一个个体 数据对象——数据元素之间具有同样的性质 同一个数据对象里的数…

kubernetes集群kubeadm方式安装

测试网络和DNS解析 kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox -- sh ping www.baidu,com nslookup kubernetes.default.svc.cluster.localbusybox要用指定的1.28版本,不能用最新版本,最新版本,nslookup会解析不到dns和ip 延长kubernetes…

linux命令行配置音频设备

linux命令行配置音频设备 TLTR在linux命令行播放音乐cmus需要开始声音条件功能才能调节播放的音量,看这个链接,继续折腾,have fun! TLTR 以archLinux为例,把下面软件都装一遍。 sudo pacman -S alsa-utils sudo pacman -S alsa-…

数据结构—栈、队列、链表

一、栈 Stack(存取O(1)) 先进后出,进去123,出来321。 基于数组:最后一位为栈尾,用于取操作。 基于链表:第一位为栈尾,用于取操作。 1.1、数组栈 /*** 基于数组实现的顺序栈&#…

(枚举 + 树上倍增)Codeforces Round 900 (Div. 3) G

Problem - G - Codeforces 题意: 思路: 首先,目标值和结点权值是直接联系的,最值不可能直接贪心,一定是考虑去枚举一些东西,依靠这种枚举可以遍历所有的有效情况,思考的方向一定是枚举 如果去…

协议-SSL协议-基础概念01-SSL位置-协议套件-握手和加密过程-对比ipsec

SSL的位置-思维导图 参考来源: 华为培训ppt:HCSCE122_SSL VPN技术 ##SSL的位置 SSL协议套件 ​​​​握手阶段,完成验证,协商出密码套件,进而生成对称密钥,用于后续的加密通信。 加密通信阶段,数据由对…

93、Redis 之 使用连接池管理Redis6.0以上的连接 及 消息的订阅与发布

★ 使用连接池管理Redis连接 从Redis 6.0开始,Redis可支持使用多线程来接收、处理客户端命令,因此应用程序可使用连接池来管理Redis连接。 上一章讲的是创建单个连接来操作redis数据库,这次使用连接池来操作redis数据库 Lettuce连接池 支持…

【maven】idea中基于maven-webapp骨架创建的web.xml问题

IDEA中基于maven-webapp骨架创建的web工程&#xff0c;默认的web.xml是这样的。 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name…

ADB的概念、使用场景、工作原理

文章目录 一、adb概念&#xff1a;Android Debug Bridge&#xff0c;一个可以控制安卓设备的通用命令行工具二、adb的使用场景&#xff1a;操作手机设备、app 自动化测试1.传输文件2.兼容性测试&#xff08;手机墙&#xff09;3.云测平台4.测试框架底层封装&#xff1a;APP自动…

Qt扩展-QCustomPlot绘图基础概述

QCustomPlot绘图基础概述 一、概述二、改变外观1. Graph 类型2. Axis 坐标轴3. 网格 三、案例1. 简单布局两个图2. 绘图与多个轴和更先进的样式3. 绘制日期和时间数据 四、其他Graph&#xff1a;曲线&#xff0c;条形图&#xff0c;统计框图&#xff0c;… 一、概述 本教程使用…

[C++ 网络协议] 重叠I/O模型

目录 1. 什么是重叠I/O模型 2. 重叠I/O模型的实现 2.1 创建重叠非阻塞I/O模式的套接字 2.2 执行重叠I/O的Send函数 2.3 执行重叠I/O的Recv函数 2.4 获取执行I/O重叠的函数的执行结果 2.5 重叠I/O的I/O完成确认 2.5.1 使用事件对象&#xff08;使用重叠I/O函数的第六个参…

距离矢量路由协议RIP(含Cisco模拟器实验命令配置)

距离矢量路由协议RIP(含Cisco模拟器实验命令配置) 简介 距离矢量路由协议&#xff08;Routing Information Protocol, RIP&#xff09;是一种内部网关协议&#xff0c;它位于应用层&#xff0c;使用520 UDP端口。RIP基于距离矢量算法&#xff08;Bellham-Ford&#xff09;根据…

专业图像处理软件DxO PhotoLab 7 mac中文特点和功能

DxO PhotoLab 7 mac是一款专业的图像处理软件&#xff0c;它为摄影师和摄影爱好者提供了强大而全面的照片处理和编辑功能。 DxO PhotoLab 7 mac软件特点和功能 强大的RAW和JPEG格式处理能力&#xff1a;DxO PhotoLab 7可以处理来自各种相机的RAW格式图像&#xff0c;包括佳能、…

Python3数据科学包系列(三):数据分析实战

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 Python3数据科学包系列(三):数据分析实战 一: 数据分析与挖掘认知…

【大模型和智能问答系统】

大模型和智能问答系统 大模型前的智能问答系统传统管道式架构存在的问题 大模型在任务型问答系统中应用NLU应用DM如何使用大模型NLG应用 大模型前的智能问答系统 大模型统一代指以ChatGPT为代表的&#xff0c;参数量相比以前模型有明显量级变化的生成模型。 智能问答系统&…

初识Java 12-2 流

目录 中间操作 跟踪与调试 对流元素进行排序 移除元素 将函数应用于每个流元素 在应用map()期间组合流 Optional类型 便捷函数 创建Optional Optional对象上的操作 由Optional组成的流 本笔记参考自&#xff1a; 《On Java 中文版》 中间操作 ||| 中间操作&#xf…

Linux使用之xshell、xftp保姆教学(含安装包,详细使用方法,连接失败解决方法)

前言 链接: FTP&#xff0c;SSH服务器介绍 这是我之前写的一篇博客&#xff0c;其中介绍了Ubuntu操作系统的一些常用命令以及服务器介绍&#xff0c;这篇文章就向大家详细介绍如何安装及应用这些服务器&#xff0c;我以xshell、xftp为例。 安装包&#xff0c;使用方法&#xf…