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

网络原理初识

本来想从网络的发展史开始写,之后再写网络的定义啥的,但快写完了才发现,这不课本教材吗,没劲,遂弃之,重撰,删芜就简.写点我认为,对程序员来说真正有用的东西

目录

IP地址

概念

格式

特殊地址

端口号

概念

格式 

协议

概念

 知名协议的默认端口

五元组

协议分层 

OSI七层模型 

TCP/IP网络模型 

应用层:服务交互接口

传输层:端到端连接管理

网络层:全局寻址与路由

数据链路层:局域网络传输

物理层:信号传输基础

封装与分用 

封装过程(发送端)

分用过程(接收端)

技术价值


网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。 那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识。

IP地址

概念

IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机 的网络地址。就像快递员需要精确的收件地址才能派送包裹,网络世界中的数据传递也需要明确的定位标识。当北京的程序员向上海的服务器请求数据时,​​IP地址​​就如同包裹上的"城市+街道+门牌号",指引着数据包跨越数千公里精准抵达目标设备。

格式

IPv4地址 基本结构

  • ​32位二进制数​​(4字节),分4段十进制表示
    示例:11000000.10101000.00000001.00000001 → 192.168.1.1
  • ​点分十进制记法​​:每字节转为0-255整数,用点分隔
    有效范围:0.0.0.0 ~ 255.255.255.255

IPv6地址基本结构

  • ​128位二进制数​​(16字节),分8组十六进制表示
    示例:2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • ​压缩规则​​:
    • 前导零省略:0db8 → db8
    • 连续零块压缩:2001:0:0:0:0:0:0:1 → 2001::1

 

特殊地址

127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进程来接收这个数据呢?这就需要端口号来标识。

端口号

概念

在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。就像酒店的房间号​​,想象你要给某栋大楼里的朋友送快递:

  • ​IP地址​​ = 大楼地址(找到正确的建筑)
  • ​端口号​​ = 房间号(把包裹送到具体的收件人)

一台电脑就像一栋有很多房间(程序)的大楼,端口号告诉网络数据应该送到哪个"房间"(具体哪个软件收数据)。比如:

  • 浏览器访问网站 → 找服务器的 ​​80号房间​​(HTTP协议)
  • 微信视频通话 → 用 ​​随机空闲房间​​(如5000~60000之间的端口)

格式 

  • ​16位无符号整数​​(取值范围:0~65535)
  • 在TCP/UDP协议头部中占据 ​​2字节存储空间​

分类标准 

类型范围用途说明典型示例
知名端口0~1023系统级服务专用端口HTTP=80, HTTPS=443
注册端口1024~49151用户级应用注册端口MySQL=3306, Redis=6379
动态/私有端口49152~65535客户端临时使用端口微信视频通话随机端口

有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制 0/1数据来传输,如何告诉对方发送的数据是什么样的呢? 网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如 发送一个文本字符串“你好!”:如何标识发送的数据是文本类型,及文本的编码格式呢? 基于网络数据传输,需要使用协议来规定双方的数据格式。

协议

概念

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从 的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互 通信交流。通常由三要素组成,就像人类交流的语法规则,​​想象两个说不同语言的人要合作完成项目:

  • ​语法​​ = 单词排列顺序(英文用主谓宾,日文用主宾谓)
  • ​语义​​ = 词语真实含义("提交"代表完成动作)
  • ​时序​​ = 对话节奏(A说完B才能回应)

网络协议就是计算机界的"多国语言词典",规定数据如何打包、传输和解码。比如:

  • ​HTTP协议​​:浏览器和服务器约定好"问-答"格式
    浏览器问:GET /index.html  
    服务器答:200 OK + 网页内容  
  • ​TCP协议​​:像打电话要先说"喂?",挂断前说"再见"

 知名协议的默认端口

系统端口号范围为 0 ~ 65535,其中:0 ~ 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使 用的应用层协议,如:

端口号协议名称典型应用场景
​20​FTP (Data Channel)文件传输协议的数据通道
​21​FTP (Control Channel)FTP服务命令控制通道
​22​SSH安全加密的远程服务器管理
​23​Telnet明文远程终端协议(已逐步被SSH取代)
​25​SMTP邮件发送服务(如Postfix/Sendmail)
​53​DNS域名解析服务(UDP/TCP双协议支持)
​67​DHCP Server动态主机配置协议服务端
​68​DHCP Client客户端获取IP地址
​80​HTTP网页服务标准端口(Nginx/Apache)
​110​POP3邮件收取协议(明文传输)
​123​NTP网络时间协议同步
​143​IMAP邮件同步协议(支持多设备)
​443​HTTPS加密版HTTP(需部署SSL/TLS证书)
​465​SMTPS加密邮件提交端口
​587​Submission安全邮件提交端口(强制STARTTLS)
​993​IMAPS加密IMAP协议
​995​POP3S加密POP3协议

以上只是说明 0 ~ 1023 范围的知名端口号用于绑定知名协议,但某个服务器也可以使用其他 1024 ~ 65535 范围内的端口来绑定知名协议。

 

五元组

在TCP/IP协议中,用五元组来标识一个网络通信.五元组​​是网络通信的"分子级"标识符,由五个关键参数组合而成,能够​​唯一确定一条网络连接​​。其作用相当于快递系统中的完整物流信息,确保数据包精准送达目标应用。

 

组成要素 

参数项数据示例技术作用
源IP地址192.168.1.100标识数据发送设备的位置
源端口号54321定位发送主机的具体进程
目的IP地址203.0.113.5指定数据接收设备的网络坐标
目的端口号443确定接收主机的目标服务
传输层协议TCP定义通信规则(可靠/不可靠传输)

可以在cmd中,输入 netstat -ano 查看网络数据传输中的五元组信息:

协议分层 

协议分层​​是将复杂网络通信拆解为多个独立功能层,每层专注特定任务(如传输、寻址、数据格式化),通过标准接口向上提供服务、向下调用功能。协议分层如同建造摩天大楼的施工蓝图,将复杂的网络通信分解为多个功能模块。每个层级专注解决特定问题,通过标准接口与相邻层交互,这种设计使得:

  • ​技术演进独立​​:更新无线技术(Wi-Fi 6)无需修改上层HTTP协议
  • ​故障定位精准​​:网络不通时可逐层排查(先查物理连接再查IP配置)
  • ​开发效率提升​​:程序员可专注应用层开发,无需处理比特流转换

OSI七层模型 

只是个理论了解了解就行,OSI七层模型​​(开放式系统互联参考模型)是国际标准化组织(ISO)提出的​​网络通信理论框架​​,将通信过程划分为7个层级,每层定义明确功能,​​下层为上层提供服务​​,是全球网络协议设计的理论基础。

​层级​​名称​​核心功能​​关键协议/设备​​数据单元​
​7​​应用层​用户与网络的接口(文件传输、邮件收发)HTTP、FTP、SMTP​报文/消息​
​6​​表示层​数据格式转换(加密、压缩、编码)SSL/TLS、JPEG、ASCII​格式化数据​
​5​​会话层​建立/维护/断开会话(设备间对话逻辑)NetBIOS、RPC、SSH​会话数据​
​4​​传输层​端到端可靠传输(流量控制、错误校验)TCP、UDP​数据段​
​3​​网络层​逻辑寻址与路由(跨网络传输路径选择)IP、ICMP、路由器​数据包​
​2​​数据链路层​物理寻址与帧管理(局域网内设备通信)以太网、MAC地址、交换机​数据帧​
​1​​物理层​物理介质传输(电信号、光信号、无线电波)网线、光纤、集线器​比特流​

TCP/IP网络模型 

应用层:服务交互接口

应用层直接对接用户程序,定义应用程序间的通信规则。常见协议包括:

  • HTTP协议:支撑网页浏览
  • SMTP/POP3协议:实现邮件收发
  • DNS协议:完成域名到IP地址的转换
  • FTP协议:管理文件传输

数据在此层被封装为特定应用协议格式,例如网页请求会被包装为HTTP报文。程序员通过调用API接口,无需关心底层实现即可完成网络通信。

传输层:端到端连接管理

该层建立主机进程间的逻辑通信通道,核心协议包括:

​TCP协议​​:提供面向连接的可靠传输

  • 三次握手建立连接
  • 数据分段与序列编号
  • 流量控制与重传机制

​UDP协议​​:支持无连接的快速传输

  • 适用于实时音视频流
  • 不保证数据完整性

端口号(0-65535)在此层标识具体应用进程,如80端口对应HTTP服务。TCP/UDP头部包含源端口、目的端口及校验信息。

网络层:全局寻址与路由

IP协议是本层核心,实现两大核心功能:

​地址规划​

  • IPv4采用32位地址(如192.168.1.1)
  • IPv6扩展为128位地址(如2001:0db8::1)
  • 子网划分提升地址利用率

​路由选择​

  • 路由器根据路由表转发数据包
  • OSPF、BGP等路由协议维护网络拓扑
  • NAT技术实现公私地址转换

数据包在此层添加IP头部,包含源/目的IP地址、TTL生存时间等字段。分片机制确保大数据包适配不同网络的最大传输单元(MTU)。

数据链路层:局域网络传输

管理同一物理网络内的设备通信:

  • MAC地址(如00:1A:2B:3C:4D:5E)标识网卡设备
  • 以太网协议规定帧结构(前导码+MAC头+数据+FCS)
  • 交换机通过MAC地址表实现帧转发
  • ARP协议解析IP地址到MAC地址的映射

错误检测通过帧校验序列(FCS)实现,使用CRC算法验证数据完整性。VLAN技术可在物理网络中创建逻辑子网。

物理层:信号传输基础

实现比特流的物理传输:

  • 定义电气特性(电压标准)
  • 规定接口规范(RJ45、光纤接口)
  • 调制技术(QAM、OFDM)
  • 传输介质(双绞线、同轴电缆、光纤、无线电波)

该层设备包括集线器、中继器等,负责将数字信号转换为电磁波、光信号或无线电波。传输速率、误码率、信噪比是主要技术指标。

封装与分用 

在TCP/IP网络模型中,​​封装(Encapsulation)​​和​​分用(Demultiplexing)​​是实现跨层通信的关键流程,二者共同构成数据收发的基础逻辑。

封装过程(发送端)

数据从应用层向物理层逐层加工:

​应用层​
原始数据(如HTTP请求)添加应用协议头(HTTP头),包含请求方法、URL路径等信息。

​传输层​
接收应用数据单元(ADU),添加TCP/UDP头部:

  • 源端口 & 目的端口(标识应用程序)
  • 序列号 & 确认号(TCP可靠性保障)
  • 校验和(数据完整性验证)
    形成​​报文段(Segment)​​或​​数据报(Datagram)​

​网络层​
附加IP头部生成​​数据包(Packet)​​,包含:

  • 源IP & 目的IP(全球寻址)
  • 协议类型(TCP=6/UDP=17)
  • TTL(生存周期计数器)

​数据链路层​
封装为​​帧(Frame)​​,添加:

  • 源MAC & 目的MAC(局域网寻址)
  • VLAN标签(虚拟网络划分)
  • FCS校验码(CRC循环冗余校验)

​物理层​
将二进制比特流转换为物理信号(电脉冲/光信号/电磁波),添加前导码实现时钟同步。

分用过程(接收端)

数据从物理层向应用层逆向解析:

​物理层​
将模拟信号还原为数字比特流,移除前导码。

​数据链路层​

  • 校验FCS确认帧完整性
  • 比对MAC地址决定是否接收
  • 剥离帧头得到IP数据包

​网络层​

  • 检查IP头部校验和
  • 根据目的IP判断是否本机接收
  • 分片数据包重组(若存在)

​传输层​

  • 通过端口号定位目标应用程序
  • TCP协议执行顺序重组和丢包重传
  • 移除TCP/UDP头部传递应用数据

​应用层​
特定协议解析(如HTTP响应解析),将有效载荷交付用户程序。

技术价值

  • ​协议隔离性​​:各层仅需理解相邻层接口,无需感知其他层实现细节
  • ​模块化扩展​​:新协议可在特定层级独立部署(如HTTP/3在应用层升级)
  • ​错误隔离​​:物理层误码不会影响传输层连接管理
  • ​多路复用​​:单个IP地址可通过不同端口并发处理多种服务

 

 

相关文章:

  • VR制作软件用途(VR制作软件概述)
  • 【Python开源】深度解析:一款高效音频封面批量删除工具的设计与实现
  • Spring MVC 中Model, ModelMap, ModelAndView 之间有什么关系和区别?
  • Android Studio 模拟器配置方案
  • 【Python】Python项目中的依赖与配置:requirements.txt、setup.py、pyproject.toml 详解
  • 安防多协议接入/视频汇聚平台EasyCVR助力工地/工程/建筑施工领域搭建视频远程监控系统
  • 从零开始了解数据采集(二十四)——工业4.0讲解
  • Git查看某个commit的改动
  • 压入从0到Nvector(C++)
  • window 显示驱动开发-处理内存段(一)
  • 视频编解码学习9之照相机历史
  • AWS之存储服务
  • G口大带宽服务器线路怎么选
  • BUUCTF————朴实无华
  • python基础:序列和索引-->Python的特殊属性
  • 如何使用极狐GitLab 软件包仓库功能托管 python?
  • 真相与幻象的博弈:AI“幻觉”的生成密码与治理革命
  • Wireshark基本使用
  • 基于Qt开发的http/https客户端
  • AWS VPC架构师指南:从零设计企业级云网络隔离方案
  • 读图|展现城市品格,上海城市影像走进南美
  • 顾家家居:拟定增募资近20亿元,用于家居产品生产线的改造和扩建等
  • 外交部答澎湃:美方攻击抹黑中加关系与合作的卑劣图谋不会得逞
  • 国防部:奉劝有关国家不要引狼入室,甘当棋子
  • 美联储主席:美联储工作方式不会受特朗普影响,从未寻求与总统会面
  • 视频丨习近平主席出席俄方在机场举行的迎宾仪式