当前位置: 首页 > news >正文

Linux网络编程:从协议到实战

linux下的网络编程

1.目的 ;不同主机,进程间通信。

2.解决的问题

1.主机与主机之间物理层面必须互联互联。

2.进程与进程在软件层面必须互通。

3。网络协议

网络通信标准

osi:开放系统互联模型(open system interconnect)

理论模型:

不同体系结构设备间,网络通信的通信标准。

1.应用层(applicat layer):要传输的数据信息,如文件传输,电子邮件等

2.表示层():处理数据的格式转换、加密解密、压缩解压

3.会话层:建立数据传输通道----------------》会话

4.传输层:传输的方式  UDP TCP    端口号

5.网络层:实现数据路由,路径规划    路由器ip

6.数据链路层(Data Link Laye):封装成帧,点对点通信(局域网内通信),差错检测  交换机  ARP

7.物理层(Physical Laye):定义物理设备标准、电器特性,比如网线,光纤等传输介质    比特流  bit 01

TCP/IP模型:实际应用模型

五层:自上而下

        应用层:HTTP(超文本传输协议)   HTTPS(超文本传输协议(SSL加密算法))

                        FTP(文件传输协议(TCP))

                        TFTP(简单文件传输协议(UDP))

                        MQTT(消息队列遥测传输(物联网协议))

                        DNS:域名解析服务(www.baibu.com-----》IP地址)

        传输层:

                        TCP:传输控制协议

                        UDP:用户数据报协议

        网络层:

                        IP协议:IPv4         IPv6

        数据链路层:

                        ARP:地址解析协议

        物理层:

四层:

        应用层:

        传输层:

        网络层:

        网络接口层:

IP协议

        IP协议(Internet Protocol,互联网协议)是TCP/IP模型网络层的核心斜体,主要功能是实现不同网络间数据包的路由选择与转发,确保数据从源主机跨越多个网络送达目标主机。

IP地址的基本概念

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::d037:3226:7fb1:21bd%5
IPv4 地址 . . . . . . . . . . . . : 192.168.0.106
子网掩码  . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1

1

1

IP地址 = 网络位 + 主机位

网络位:该IP地址位于哪个网段(局域网)内

主机位:这个网段(局域网)的第几台主机

子网掩码:如255.255.255.0

                        11111111.11111111.11111111.00000000

用来区分IP地址中的网络位和主机位,搭配IP地址使用;

子网掩码是1的部分对应IP地址的网络位

子网掩码是0的部分对应IP地址的主机位

网段号

        网段号本质是IP地址与子网掩码通过二进制“与”运算得到的“网络地址”,用于唯一标识一个特定的网络区域,判断不同IP是否处于同一网络。

核心作用:

        同一网段内的主机可直接通信,不同网段的主机需要通过路由器转发数据。

        若两个IP地址的网段号相同,即可直接互通。

计算逻辑:

        IPv4 地址 . . . . . . . . . . . . : 192.168.0.106

                                                   11000000.10101000.00000000.01101010

        子网掩码  . . . . . . . . . . . . : 255.255.255.0

                                                    11111111.11111111.11111111.00000000

得到:192.148.0.

广播号

        广播号是一个网络内用于向所有主机发送消息的特殊IP地址,其核心特征是“主机位全为1”,无法分配给具体设备,仅用于网络内的广播通信。

        例如192.168.0.255

网关地址

IP地址的划分

        IP地址的划分主要针对IPv4地址(IPv6采用无类别设计,无需分类),核心分为传统分类划分和无类别域间路由划分(CIDR)两种,目的是高效管理地址资源,区分网络与主机。

传统分类划分

将IPv4地址按首段数值直接划分为5类(A、B、c、d、e),

A类地址:

        范围:1.0.0.0 - 126.255.255.255

        子网掩码:255.0.0.0      126 *2 *24

B类地址:

        范围:128.0.0.0 - 191.255.255.255

        子网掩码:255.255.0.0       2^16

C类地址:

        范围:192.0.0.0 - 223.255.255.255

        子网掩码:255.255.255.0    2^8

        管理中小规模网络

D类地址:

        范围:224.0.0.0 - 239.255.255.255

        组播和广播

E类地址:

        240.0.0.0 - 255.255.255.254

        用来进行试验

注意:A类中127.x.x.x为”回环地址“(用于本地测试,如127.0.0.1),不归属任何网络。

无类别域间路由划分(CIDR)

        为解决传统分类的地址浪费问题,CIDR采用可变长子网掩码(VLSM),允许灵活调整“网络为长度”,通过“IP地址/前缀长度”格式表示。例如,192.168.1.0/24

核心规则

        前缀长度:用/n表示(n为0 - 32的整数),代表前n位是“网络位”,剩余的32-n是“主机位”。

        子网划分:通过增加前缀长度,把一个大网络拆分为多个小子网,提示地址利用率。

特殊地址段(保留/私有地址)

        除公网地址外,IPv4预留了3段“私有地址”,仅用于局域网(不可在互联网路由),解决公网地址不足问题:

A类私有段:

B类私有段:

c类私有段:

网络端口号

        端口号是TCP/IP协议中,用于标记同一主机上的不同网络进程。

端口号的属性

        取值范围:16位的无符号整型数据(unsigned short),范围0~65535,共65536个端口。

        IP地址定位“目标设备”,端口号定位“设备上的目标应用”。

        属于TCP/IP的传输层。

端口号的分类:

1)任何TCP/IP实现所提供的服务都用1-1023之间的端口号。
http : 80
FTP: 20/21
TFPT: 69
HTTPS: 443

2)端口号从1024-49151是被注册的端口号,被IANA指定为特殊服务使用。
MQTT:1883/8883

        3)从49152-65535是动态或私有端口号。

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

        传输层协议

        UDP是TCP/IP协议族中一种无连接、不可靠的传输层协议,核心特点是“快”,优先保证传输速度而非数据完整性。


文章转载自:

http://0KvIV2sz.bkxnp.cn
http://nt2Nsd7K.bkxnp.cn
http://CXlPAUNJ.bkxnp.cn
http://UesEG1gW.bkxnp.cn
http://WYG5p3xS.bkxnp.cn
http://ImNVSuiL.bkxnp.cn
http://WFR0AK2a.bkxnp.cn
http://pm9E6n0m.bkxnp.cn
http://Qp9KCFq8.bkxnp.cn
http://HJuYFXut.bkxnp.cn
http://IFGzJ61k.bkxnp.cn
http://PWTqn3W2.bkxnp.cn
http://MVtHE0hK.bkxnp.cn
http://PVzuI3pP.bkxnp.cn
http://JC6nNRkZ.bkxnp.cn
http://goHswHJT.bkxnp.cn
http://oH3AnGD7.bkxnp.cn
http://YiXWXwiC.bkxnp.cn
http://9lzTZzrZ.bkxnp.cn
http://p9bYRxZ1.bkxnp.cn
http://7vA2Wf9i.bkxnp.cn
http://zcD3SD2M.bkxnp.cn
http://E7YZK5IK.bkxnp.cn
http://AZKqQLr4.bkxnp.cn
http://rgK1xah3.bkxnp.cn
http://4XhSgj92.bkxnp.cn
http://CWldBLkk.bkxnp.cn
http://mrdX4hnI.bkxnp.cn
http://dVWJ6r8t.bkxnp.cn
http://GLugPCnf.bkxnp.cn
http://www.dtcms.com/a/388632.html

相关文章:

  • Vector 底层实现详解
  • OpenShift Virtualization - 虚机存储的相关概念 DataVolume、CDI 和 StorageProfile
  • 2025年Web自动化测试与Selenium面试题收集:从基础到进阶的全方位解析
  • pytorch中的FSDP
  • 贪心算法与材料切割问题详解
  • 2. 结构体
  • MySQL 核心操作:多表联合查询与数据库备份恢复
  • vue3学习日记(十四):两大API选型指南
  • 微信支付回调成功通知到本地
  • 量化交易 - Simple Regression 简单线性回归(机器学习)
  • Kubernetes控制器详解:从Deployment到CronJob
  • python 架构技术50
  • 第九周文件上传
  • MCP大白话理解
  • 【Qt】QJsonValue存储 int64 类型的大整数时,数值出现莫名其妙的变化
  • 【C语言】冒泡排序算法解析与实现
  • [GESP202309 三级] 进制判断
  • 【C++】const和static的用法
  • 箭头函数{}规则,以及隐式返回
  • brain.js构建训练神经网络
  • 开学季高效学习与知识管理技术
  • C++STL与字符串探秘
  • 【面试题】- 使用CompletableFuture实现多线程统计策略工厂模式
  • 打工人日报#20250917
  • LeetCode:12.最小覆盖字串
  • 【C++】 深入理解C++虚函数表与对象析构机制
  • C++ 中 ->和 . 操作符的区别
  • SQL CTE (Common Table Expression) 详解
  • 解决windows更新之后亮度条消失无法调节的问题
  • FPGA学习篇——Verilog学习译码器的实现