网络编程day01(IP地址、Socket、端口号)

news2024/9/25 13:22:58

目录

【1】IP地址

1》基本概念

IP地址

 NAT设备(网络地址转换)

DHCP服务器(动态主机配置协议)

2》网络号/主机号(二级划分)

 3》IP地址分类

 特殊地址

4》子网掩码

5》三级划分

【2】socket

1》socket发展

2》socket介绍

3》为什么需要socket?

4》socket类型

【3】端口号 


【1】IP地址

1》基本概念

IP地址

1> IP地址是Internet中主机的标识

2> Internet中的主机要与别的机器通信必须具有一个IP地址

3> IP地址为32位(IPv4)或者128位(IPv6)

      NAT:公网转私网、私网转公网

4> IPv4表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。

 NAT设备(网络地址转换)

功能:NAT设备的主要功能是将内部私有IP地址转换公共IP地址,或反向操作,以便在局域网和外部网络(如互联网)之间进行通信。

工作原理:当局域网内的设备访问互联网时,NAT设备记录设备的内部IP地址和源端口,并用公共IP地址转换。

响应的流量也会经过NAT设备,NAT通过记录的映射关系将数据包发送回正确的内部设备。

作用对象:NAT设备用于管理与外部网络(如互联网)的通信,通常作为路由器的一部分。

DHCP服务器(动态主机配置协议)

功能:DHCP服务器的主要任务是自动分配IP地址、子网掩码、默认网关和DNS服务器ip等网络配置给网络中的设备(客户端),简化网络管理。

工作原理:当一个设备(如电脑或手机)首次连接到网络时,它会发送一个DHCP请求。DHCP服务器接收到请求后,从预设的IP地址池中分配一个可用的IP地址,并返回给客户端。

作用对象:DHCP服务器专注于局域网内部的IP地址管理。

2》网络号/主机号(二级划分)

IP地址的组成

IP地址 = 网络号 + 主机号

网络号:代表某个完整的网段(范围)

主机号:代表某个独立的主机ID,同一局域网不能重复(精确地址)

 3》IP地址分类

A类:(0.0.0.0~127.255.255.255)(默认子网掩码:255.0.0.0)

第一个字节为网络号,后三个字节为主机号(一个字节占8位)。该类IP地址的第一个字节的第一位固定为 “0”所以地址的网络号取值在0~127之间(00000000~01111111)。

一般用于大型网络主机号取值在0~2^24之间。127.0.0.1:本机回环地址

B类:(128.0.0.0~191.255.255.255)(默认子网掩码:255.255.0.0)

前两个字节为网络号,后两个字节为主机号。该类IP地址的第一个字节的前两位固定位“10”,所以地址的网络号取值在128~191之间。

一般用于中等规模网络。

C类:(192.0.0.0~223.255.255.255)(默认子网掩码:255.255.255.0)

前三个字节位网络号,最后一个字节为主机号。该类IP地址的第一个字节的前三位固定为“110”,所以地址的网络好取值在192~223之间。

一般用于小型网络。

D类:(224.0.0.0- 239.255.255.255)是多播地址。

该类IP地址的最前面为“1110”,所以地址的范围取值于224~239之间。

一般用于组播用户,组播通信

E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的取值于240~247之间。

一般是一些保密单位用得到,平时基本不会用到

A类:1.0.0.1~126.255.255.254

B类:128.0.0.1~~191.255.255.254

C类:192.0.0.1~~223.255.255.254

D类(组播地址):224.0.0.1~~239.255.255.254

 特殊地址

0.0.0.0:在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1和10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能访问该服务。

127.0.0.1:回环地址/环路地址,所有发往该类地址的数据包都应该被loop back。

网络地址:每一个网段主机号为0的地址;如:192.168.50.126--->192.168.50.0

他是网络中的一个特殊地址,不能被分配给任何具体的主机。

广播地址:主机号最大的地址是该网段的广播地址 如:192.168.50.255 这是C类

如:B类:130.223.255.255

全网广播地址:255.255.255.255,该地址不能随便用,会影响到整个网络

4》子网掩码

子网掩码:是一个32位的整数,作用是将某一个IP划分成网络地址和主机地址

子网掩码长度是和IP地址长度完全一样;

网络号全为1,主机号全为0

公式:网络地址=IP & MASK(子网掩码)

           主机地址= IP& ~MASK

例:

192.168.50.168 255.255.255.0

192.168.50.168 & 255.255.255.0 = 192.168.50.0

192.168.50.168 & ~255.255.255.0 = 192.168.50.168 & 0.0.0.255 = 0.0.0.168

练习:

练习一:B类地址的子网掩码怎么写?255.255.0.0

练习二:B类地址,同一网段最多可以连接多少个主机?2^16-2=65536-2

练习三:已知一个子网掩码号为255.255.255.192,问:最多可以连接多少台主机?

子网掩码特点:网络号全为1,主机号全为0

192==》1100 0000 26-2

练习四:一个IP地址为192.168.3.183 ,计算其网络号与主机号

C类:255.255.255.0

网络号:192.168.3.0

主机号:0.0.0.183

练习五: 如果有800台电脑, 在不浪费ip情况下, 选用哪个网段?B

5》三级划分

作用: 重新划分网络号和主机号 , 也就是重新组网 , 从而提高资源利用率

二级划分 IP :IP地址= 网络号 + 主机号

三级划分 IP :IP地址= 网络号 + 子网号 + 主机号

笔试1:某公司有四个部门:行政、研发1、研发2、营销,每个部门各50台计算机接入公司局域网,如果要在192.168.1.0网段为每个部门划分子网,子网掩码应该怎么设置,每个子网的地址范围分别是什么?(4个部门之间不能通信)

C254

192.168.1.0000 0000

行政:192.168.1.00 00 0000-192.168.1.00 11 1111--192.168.1.0-192.168.1.63

研发一:192.168.1.01 00 0000-192.168.1.01 11 1111--192.168.1.64-192.168.1.127

研发二:192.168.1.10 00 0000-192.168.1.10 11 1111--192.168.1.128-192.168.1.191

营销:192.168.1.11 00 0000-192.168.1.11 11 1111-192.168.1.192-192.168.1.255

子网掩码255.255.255.11 00 0000===》255.255.255.192

有两台电脑主机,在最少浪费IP地址的情况下.将172.16.14.4与172.16.13.2划归为同一网段,则子网掩码应该设置为225.255.252.0

B

172.16.0000 1110.4

172.16.0000 1101.2

三级划分网络号172.16)+子网号二进制0000 11)+主机号自己的)

255.255.1111 11 00.0==255.255.252.0

【2】socket

1》socket发展

1)1982 - Berkeley Software Distributions 操作系统引入了socket作为本地进程之间通信的接口

2)1986 - Berkeley 扩展了socket 接口,使之支持UNIX 下的TCP/IP 通信

3)现在很多应用 (FTP, Telnet) 都依赖这一接口

2》socket介绍

(1)socket 是一个编程接口

(2)是一种特殊的文件描述符 (everything in Unix is a file)

(3)socket是一种通信机制,并不仅限于TCP/IP协议

(4)面向连接 (Transmission Control Protocol - TCP/IP)

(5)无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange - IPX)

3》为什么需要socket?

1.普通的I/O操作过程 :打开文件->读/写操作->关闭文件

2.TCP/IP协议被集成到操作系统的内核中,引入了新型的“I/O”操作 ----->进行网络通信的两个进程在不同的机器上,如何连接? 网络协议具有多样性,如何进行统一的操作 ?

需要一种通用的网络编程接口:Socket

4》socket类型

流式套接字(SOCK_STREAM) TCP

提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。

数据报套接字(SOCK_DGRAM) UDP

提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。

原始套接字(SOCK_RAW)

可以对较低层次协议如IP、ICMP直接访问,还有一些ping命令

【3】端口号 

为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区分

TCP端口号与UDP端口号独立(UDP port为8888,TCP port也可为8888 )

端口号一般由IANA (Internet Assigned Numbers Authority) 管理

端口用两个字节来表示

众所周知端口(被占用):1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用)

已登记端口:1024~49151(----可用来建立与其它主机的会话----)

动态或私有端口:49152~65535 --固定某些服务使用--


 今天的分享就到这里结束啦,如果有哪里写的不好的地方,请指正。
如果觉得不错并且对你有帮助的话点个关注支持一下吧!

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

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

相关文章

浅谈人工智能之基于AutoGen Studio+litellm+ollama构建model

浅谈人工智能之基于AutoGen Studiolitellmollama构建model 摘要 随着自然语言处理技术的飞速发展,基于大型语言模型(Large Language Models, LLMs)的应用越来越广泛。本指南旨在介绍如何利用AutoGen Studio、litellm和ollama这三大工具&…

【数据结果-二维前缀和】力扣221. 最大正方形

在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。 示例 1: 输入:matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”…

8月刷题笔记

刷题笔记—8月 LCP40.心算挑战(贪心、排序) class Solution { public:int maxmiumScore(vector<int>& cards, int cnt) {//24.8.1ranges::sort(cards, greater()); //从大到小排序int s reduce(cards.begin(), cards.begin()cnt, 0);if(s%2 0) return s;auto rep…

Java毕业设计 基于SpringBoot vue社区养老服务管理系统

Java毕业设计 基于SpringBoot vue社区养老服务管理系统 SpringBoot 社区养老服务管理系统 功能介绍 护工: 登录 主页 老人管理 健康记录管理 管理员: 登录 主页 用户管理 床位类型管理 床位管理 护工管理 老人管理 预约记录管理 来访记录管理 健康记录管理 费用管理…

网络编程套接字(Socket)详解 V✪ω✪V

目录 &#x1f348;一.什么是网络编程 1.1什么是网络编程&#xff1f; 1.2网络通信中的基本概念&#xff1a; &#x1f347;二.Soket&#xff08;套接字&#xff09;→网络编程的基础 2.1概念&#xff1a; 2.2Socket套接字分类: 数据包套接字&#xff1a;使用传输层UDP协…

Leetcode JAVA刷刷站(111)二叉树的最小深度

一、题目概述 二、思路方向 在Java中&#xff0c;要找出二叉树的最小深度&#xff0c;我们可以使用递归的方法。基本思路是&#xff0c;对于给定的根节点&#xff0c;如果它是空的&#xff0c;那么最小深度为0&#xff08;但实际上&#xff0c;空树没有深度&#xff0c;但在…

ARM 工业计算机搭载 FUXA 组态软件:开启智能制造新时代

工业自动化已经成为提高生产效率、保证产品质量以及提升企业竞争力的关键因素。而在工业自动化的舞台上&#xff0c;FUXA 组态软件与 ARM 工业计算机的组合正发挥着越来越重要的作用&#xff0c;以其高效稳定、数据可视化、实时监控等优势&#xff0c;在复杂场景应用中展现出卓…

MySQL——基础操作(1)

一、数据库的创建 1.1 库的创建 在使用数据库时&#xff0c;最先操作的是创建一个数据库。使用语法如下&#xff1a; CREATE DATABASE [IF NOT EXISTS] database_name [[DEFAULT] CHARSETcharset_name] [[DEFAULT] COLLATEcollation_name]; 对上述语句进行简单说明&#xf…

最佳视频编辑软件,适合专业人士和初学者

如果你想利用视频编辑软件&#xff0c;即使你没有很多专业知识。一段精彩的视频可能有助于你公司的成功。然而&#xff0c;出色的视频镜头只能在编辑工具的帮助下创建。有许多免费程序可供选择&#xff0c;有许多不同的需求和理由需要编辑。在编辑方面&#xff0c;无论你是专业…

【接入指南】快手API

快手小店自2018年上线以来&#xff0c;业务发展迅速&#xff0c;2年时间GMV增长1000倍&#xff0c;活跃商家达到100万&#xff0c;已经成为主流的电商平台&#xff0c;为支撑广大商家的业务处理需求&#xff0c;快手API成为快手平台业务处理软件高效、便捷的开发工具&#xff0…

C++学习笔记----6、内存管理(一)---- 使用动态内存(4)

3.6、多维自由内存空间上的数组 如果需要在运行时决定多维数组的维度&#xff0c;可以使用在自由内存空间上的数组。与一维动态分配的数组通过指针访问一样&#xff0c;多维动态分配的数组也可以通过指针访问。不同的地方在于在二维数组中&#xff0c;需要用一个指向指针的指针…

『功能项目』项目优化【21】

我们打开上一篇20主角身旁召唤/隐藏坐骑的项目&#xff0c; 本章要做的事情如以下几点&#xff1a; 1.优化资源包Resources下的层级分类 2.优化脚本包Scripts下的脚本分类 3.地形Terrain的优化&#xff08;只让主角点击地面移动跳过其他石头山树等其他物体&#xff09; 首…

笔记整理—uboot番外(3)环境变量的作用

环境变量的最大一个作用就是&#xff0c;能够在不修改代码的情况下去影响应用的运行情况。 环境变量的优先级问题&#xff1a;有环境变量的情况下优先使用环境变量&#xff0c;没有环境变量则使用代码中的值&#xff08;全局变量一类的变量&#xff09;。 例如&#xff0c;mach…

随身WiFi实测,真相让你大跌眼镜!随身携带的随身wifi哪个比较好?什么品牌的随身wifi好用?

都说随身wifi坑多&#xff0c;谁买谁是冤大头&#xff01;我还真不信这个邪&#xff01;本次我们对格行、京东云、迅优三款热门随身WiFi进行了开箱测试&#xff0c;实测周期为2个月。今天从外观、网速、续航、售后、适合人群及整体评价等方面进行全面剖析。 一、京东云随身WiFi…

Qt 杨帆起航

这里写自定义目录标题 引入1、Qt安装1.1 OSX1.1.1 HomeBrew 方式安装1.1.2 自己编译 1.2 Windows x、IDEx.1 Clionx.1.1 ui 文件到Qt设计师x.1.2 ui文件更新&#xff0c;为及时调用uiCompile生成或更新cpp文件x.1.3 qt资源文件创建x.1.4 帮助文档的配置 引入 机缘巧合&#xf…

图像缩放操作

图像缩放操作 微信公众号&#xff1a;幼儿园的学霸 在图像处理过程中&#xff0c;有时需要把图像调整到同样大小&#xff0c;便于处理&#xff0c;这时需要用到图像resize()&#xff0c;该函数比较简单&#xff0c;此处对函数中涉及的各种插值方法进行分析。 目录 文章目录 图…

利用Python解析json生成PPT、xmind思维导图教程

文章目录 背景部分json样例PPT生成思维导图生成 背景 通过调用阿里通义听悟接口&#xff0c;对视频进行了语音转写、智能总结等&#xff0c;现在需要解析返回的PPT和思维导图json文件&#xff0c;以可视化的形式进行呈现。关键点在于&#xff1a; PPT生成时&#xff0c;注意用…

【电池专题】软包电池封装工序

铝塑膜成型工序冲坑 铝塑膜成型工序,软包电芯可以根据客户的需求设计成不同的尺寸,当外形尺寸设计好后,就需要开具相应的模具,使铝塑膜成型。 成型工序也叫作冲坑,顾名思义,就是用成型模具在加热的情况下,在铝塑膜上冲出一个能够装卷芯的坑,具体的见下图。 …

推荐4个一键生成 PPT的AI工具,让你畅享智能办公!

对于职场人士来说&#xff0c;ai PPT 工具已经成为了高效办公的一大得力助手 。它可以让你从繁琐的 PPT 制作中解脱出来&#xff0c;把更多的时间放在其他的工作准备上面。并且它们有极大的设计能力&#xff0c;会让我们的PPT变的设计感十足&#xff0c;如果大家正在为PPT制作烦…

【Linux】进程周边:进程概念

&#x1f337;相关专栏&#xff1a;《c学习》《Linux进阶之路》&#x1f337; 全片内容总览&#xff1a; 目录 1.进程基本概念 2.进程的本质&#xff1f;为什么要有进程控制块PCB&#xff1f; 1&#xff09;为什么要有进程控制块PCB&#xff1f; 2&#xff09;进程的本质 …