Linux操作系统编程——网络

网络编程

目的:不同主机进程间通信

需要解决的问题:

1,主机与主机之间物理层面必须互联互通

2,进程与进程之间在软件层面必须互联互通

交换机:短距离网络通信,实现局域网内通信

局域网:短距离的数据传输

路由器:负责路由,即路径选择,将数据上传至广域网内的路由器

广域网:多个路由器组成的数据转发集合中心。可以实现远距离数据传输

IP地址:计算机的软件地址,用来标识计算机设备

同一局域网中不可能出现IP地址相同的设备

MAC地址:计算机的硬件地址(固定)

网络的端口号:标记同一主机上的不同网络进程

网络协议

是一种网络通信标准

OSI七层模型(理论模型)

开放系统互联模型,规定了不同设备间网络通信的通信标准

|-------|--------------------------------------------------------------------|
| 模型 | 功能 |
| 应用层 | 要传呼的数据信息,例如文件传输,电子邮件 |
| 表示层 | 数据加密、解密操作,压缩,解压缩 |
| 会话层 | 建立数据传输通道,即会话 |
| 传输层 | 决定数据的传输方式:UDP、TCP。例如端口号 |
| 网络层 | 实现数据路由,路径规划。例如路由器 |
| 数据链路层 | 封装成帧,点对点通信(局域网内通信),差错检测。例如交换机 |
| 物理层 | 定义物理设备标准、电器特征,比如网线、光纤等传输介质,将数据链路层中的数字信号转为物理信号,即高低电频的方式进行数据发送,称为比特流 |

注:从下到上,依次接近用户,应用层最接近用户,物理层位最底层

TCP/IP五(或者四)层模型(应用模型)

|-------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 模型 | 功能 |
| 应用层 | http:超文本传输协议 https:加密版超文本传输协议(SSL加密算法) FTP:文件传输协议(在传输层使用TCP的传输方式) TFTP:简单文件传输协议(使用UDP传输方式)(效率高但可能数据丢失) MQTT:消息队列遥测传输协议(物联网协议) DNS:域名解析服务(www.***.com)将域名转为IP地址 |
| 传输层 | TCP:传输控制协议,必须优先确认数据传输的通道,相对安全可靠 UDP:用户数据报协议,无需建立连接通道 |
| 网络层 | IPv4:32位整型数据表示IP地址 IPv6:128位 |
| 数据链路层 | ARP:地址解析协议,实现IP地址和MAC地址的转换 |
| 物理层 | 规定设备标准等 |

注:四层模型就是在五层模型的基础上,将数据链路层和物理层结合起来称网络接口层

IP协议

在Windows系统上,win+r,cmd,密令ipconfig查看

Linux系统上,密令为ifconfig

例:192.168.0.140,点分十进制,为用户看到的表示形式。在内存中的存储形式是,192、168、0、140分别占一个字节,总共32bit

IPv4地址的组成形式:IP地址 = 网络位 + 主机位

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

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

子网掩码为全为1的位为当前IP地址的网络位,全为0的位为主机位,例如255.255.255.0的子网掩码,对应到IP地址上,192.168.0是网络位,0为主机位,表示的是该主机位于192.168.0这个网段的第140台主机

如果是例如192.168.0.121/24这种带有"/"的IP地址,其中24表示该IP地址网络位的位数,即3个字节

特殊的IP地址

网段号

192.168.1.0:该主机的网段号,即IP地址网络位不变,主机位全是0.则为该IP地址的网段号,不表示某台主机

广播号

192.168.1.255:IP地址网络位不变,主机位全为1,则为该IP地址的广播号,向广播号发送信息,所有局域网内IP都能受到此消息

网关地址

192.168.1.1,192.168.1.2:主机位为1或2

IP地址的划分

公有IP:由电信公司直接分配,并需要付费的IP地址, 可以直接访问internet

私有IP:不能直接访问internet的ip地址

为了节省ip地址

网络端口号

端口号:16位的整型数据(unsigned short)

范围:0-65535

端口号功能:标记同一主机上的不同网络进程

分类

1,任何TPC/IP实现锁提供的服务都用1-1023之间的端口号

http:80

FTP:20/21

TFPT:69

HTTPS:443

2,端口号从1024-49151是被注册的端口号,被IANA指定的特殊服务使用

MQTT:1833和8883

3,49152-65535是动态或私有端口号

数据包的封装和解封过程

网络配置

ubuntu网络联通

相关推荐
昌原的儿子LEO14 分钟前
Linux IO多路复用与SQLite数据库核心知识点总结
linux·数据库·oracle
GeW16 分钟前
RHCE通关秘籍:从零基础到高分拿证的5个加速器
linux
数安旭说17 分钟前
终端防火墙深度拆解:网络隔离、进程级管控与流量治理的落地避坑指南
网络·数据安全·企业安全·防火墙·终端安全·终端防火墙·违规外联
前端世界25 分钟前
基于 Linux 的本地 AI 智能问答平台搭建实践 —— Ollama + FastAPI + Nginx 实现本地大模型 Web 服务
linux·运维·人工智能
数智工坊32 分钟前
NTIRE2024×4图像超分竞赛综述|Mamba崛起、数据缩放、频域增强成为新趋势
网络·人工智能·深度学习·cnn·机器人
倔强的石头10635 分钟前
【Linux指南】动静态库系列(七):符号表与重定位:链接器如何把函数调用接起来
linux·前端·javascript
山岚的运维笔记36 分钟前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
聚美智数1 小时前
网安查询-备案查询-网络安全查询API接口介绍
网络·数据库·web安全
代码方舟1 小时前
O2O二手车交易平台B端车商管理后台:基于天远车信盟出险构建自动化车况评估网关
java·运维·人工智能·自动化
数智启示录1 小时前
PostgreSQL 内存调优实战(第 12 篇):work_mem 只调大 64 倍,峰值为什么远不止 64 倍
运维·数据库·经验分享·postgresql·面试