网络通信与TCP/IP五层模型

网络通信与TCP/IP五层模型

文章目录

一、网络通信

1.通信标识

1.1五元组

1.1.1IP地址

1.1.2端口号

1.1.3协议类型

1.2MAC地址

2.网络范围

2.1局广域网

2.2本地子网

网1主0

2.2.1子网掩码

2.2.2前缀长度

2.3默认网关

3.通信交接

3.1共地发接

3.2接力转发

4.网络设备

4.1网线、光纤、WiFi

4.2网卡

4.3交换机

4.4路由器

4.5防火墙

二、协议分层

1.各层作用

2.分层特点

3.行动轨迹

4.数据演化

5.TCP/IP五层模型

5.1物理层

5.1.1封装

5.1.1.1二进制帧转物理信号

5.1.2分用

5.1.2.1物理信号转二进制帧

5.2数据链路层

5.2.1协议

5.2.2数据包

5.2.3封装

5.2.3.1填装

5.2.4分用

5.2.4.1校验

5.3网络层

5.3.1协议

5.3.2数据包

5.3.3封装

5.3.3.1填装

5.3.3.2路由

5.3.3.3传参

5.3.3.4拆片

5.4传输层

5.4.1协议

5.4.2数据包

5.4.3封装

5.4.3.1建立传输

5.4.3.2填装

5.4.3.3TCP拆段

5.4.4分用

5.4.4.1校验

5.4.4.2照交

5.5应用层

5.5.1协议

5.5.2数据包

5.5.3封装

5.3.3.1填装

5.3.3.2传参


一、网络通信

1.通信标识

1.1五元组

源IP目的IP源端口目的端口协议类型 确定一次唯一的网络通信

唯一性
每个Socket对应连接一个唯一的五元组:
”new Socket(目的IP, 目的端口)、源IP-本机、源端口-操作系统空闲分配、创建TCP连接“ 是一次唯一通信

1.1.1IP地址

标识设备在网络中的唯一位置IPv4格式 由点分4个 8bit位的十进制数 组成


1.1.2端口号

区分应用,标识 应用单层占据的网络通信端点


1.1.3协议类型

标识载荷 由上层哪个协议遵守而成的数据包

一次单类:
在传输层 有无连接的传输方式 分隔单开在两类通信


1.2MAC地址

MAC地址是网络硬件的 唯一标识符


2.网络范围

2.1局广域网

局域网:单个路由器内部创建的网络

广域网:多个路由器连接组合的网络


2.2本地子网

IP能本地访问的本地子网的网络地址 = IPv4 & 网1主0

网1主0
2.2.1子网掩码

采用IPv4格式 整体的32位先网络前缀的连续1-对应划分IP的网络位后接口标识符的连续0-对应划分IP的主机位

2.2.2前缀长度

/网络位位数划分IP的网络位剩下的主机位


2.3默认网关

默认网关 访问的本地子网 重合叠在 IP设备的本地子网内,共地地发接设备IP,是用于帮转的接壤出口IP


3.通信交接

两个IP出机的本地子网重合互通 —> 直接通信

两个IP出机的本地子网没有重合 —> 网关转发

3.1共地发接

IP出机访问共地一发一接

3.2接力转发

IP设备 自访最广本地 地通信驻内网关访他的最广本地转发


4.网络设备

4.1网线、光纤、WiFi

物理层传输物理信号


4.2网卡

物理层+数据链路层转化信号

转化物理信号与二进制数据

10
高电平低电平
高频光低频光
高频电磁波低频电磁波

4.3交换机

物理层+数据链路层二层转发

物理层接收物理信号转化成帧 and 数据链路层 分用校验封装填装设置的目标MAC


4.4路由器

物理层+数据链路层+网络层三层转发

物理层 接收物理信号转化成帧 and 数据链路层 分用校验 and 网络层 分用不拆读取目的IP 路由下一跳IP 解析下一站MAC


4.5防火墙

传输层安全防护

按规则过滤上传的某源端口访问下传的某目的IP前往


二、协议分层

1.各层作用

应用层HTTP报文->贴说明书的货物
传输层端口号->单类货物间的进入门号;协议类型->顺丰/中通
网络层IP地址->发往的站点地址
数据链路层MAC地址->与快递员的交接地点
物理层物理信号->司机的运输传送

2.分层特点

任务多位单位轻捷
单位铺蚀,扔传交流单位互独

3.行动轨迹

数据包 = 头部 + 载荷,头部置理载荷,载荷装载现作数据



主数据流程并行辅助控制流程

4.数据演化

   网卡               反序列化
物理信号 <—> 二进制数据数据包参数
  转化                 序列化

数据包参数 序列化成 头部的二进制数据封装进 二进制数组

头部的二进制数据 反序列化成 数据包参数分用出 二进制数组

参数配,二进制数组还
参数装↓裹数据包               拆数据包参数卸
参数剩,二进制数组已


5.TCP/IP五层模型

5.1物理层

转化物理信号与二进制数据

5.1.1封装
5.1.1.1二进制帧转物理信号
  1. 网卡接收指针指向的数据链路层数据包的字节数组
  2. 拆成每字节8位的二进制比特流
  3. 01转化成能在介质中运送的电子/光/电磁波的物理信号
  4. 网线/光纤/WiFI的硬件后传输

5.1.2分用
5.1.2.1物理信号转二进制帧
  1. 网卡接收物理信号
  2. 解码还原成二进制帧

5.2数据链路层

局域网内前访设备、损坏检测

5.2.1协议

以太网有线传输、802.11无线传输


5.2.2数据包
帧 = 帧头 + 网络层数据包 + 帧尾
以太网帧头源+目的MAC地址、网络层IP/ARP协议类型
802.11帧头帧控制字段、持续时间、4个MAC地址、序号控制
网络层数据包IP包/ARP报文
帧尾校验和

5.2.3封装
5.2.3.1填装

按照以太网协议:

  1. 对以太网帧头填装传下来源MAC,目的MAC协议类型
  2. 对以太网帧尾填装校验和

5.2.4分用
5.2.4.1校验
  1. 校验帧尾的校验和确认数据有无传输损坏,校验和出错则上传网络层 查看载荷协议类型 如果是TCP就发起ARP重传请求
  2. 对比帧头的MAC地址 确认数据有无发对

5.3网络层

局域网内瞄选设备、网络诊断

5.3.1协议

IP标识主机、ARP解得MAC、ICMP网络诊断


5.3.2数据包
IP包 = IP包头 + 传输层数据包
IP包头版本、首部长度、源+目的IP、TTL生存时间、传输层TCP/UDP协议类型、校验和
传输层数据包TCP段/UDP报文
ARP报文 = ARP报头 + ARP数据体
ARP报头硬件类型、协议类型、硬件地址长度、协议地址长度、请求/响应操作类型
ARP数据体源+目的IP源+目的MAC地址

5.3.3封装
5.3.3.1填装

按照IP协议 对IP报头填装传下来源IP,目的IP、TTL、协议类型


5.3.3.2路由
  1. 按照IP协议 不拆地读取IP报头的目的IP
  2. 路由本地路由表匹配出下一跳IP
  3. 按照ARP协议 解析下一跳IP出目的MAC

5.3.3.3传参

解析出的目的MAC本机网卡的MAC为源MAC下传直到数据链路层


5.3.3.4拆片

MTU 限制传输层数据包作载荷的长度拆分IP分片


5.4传输层

设备里照选应用建立传输

5.4.1协议

TCP面向连接的可靠传输、UDP无连接的不可靠传输


5.4.2数据包
TCP段/UDP报 = 包头 + 应用层报文
TCP包头源+目的端口号、序列号、确认号、控制位、窗口大小、校验和
UDP包头源+目的端口号、报文总长度、校验和
应用层报文HTTP/HTTPS/FTP/MySQL协议报文

5.4.3封装
5.4.3.1建立传输
  • 调用SocketAPI接收应用层数据包 建立TCP有确认机制、有序、有连接、数据完整、速度慢可靠传输(文件传输、聊天、HTTP请求、数据库连接)
  • 调用DatagramSocketAPI接收应用层数据包 建立UDP无确认机制、无序、无连接、数据残缺、速度快不可靠传输(视频、语言、直播)

5.4.3.2填装

按照TCP协议 对TCP报头填装系统分配空闲端口的源端口下传的目的端口、序列号、确认号


5.4.3.3TCP拆段

TCP 限制应用层报文作载荷在MSS最大段长度内拆分TCP分段避免IP分片

UDP 一次接收完整应用层报文 付交给IP分片


5.4.4分用
5.4.4.1校验
  1. TCP保证可靠:
    下传参数指令 原路径反发源IP填本机目的IP填对方ACK确认报文 保证数据的可靠传输
  2. 序列号:
    检查序列号正确无数据丢失

5.4.4.2照交

根据目的端口 把载荷交给对应应用


5.5应用层

应用里处置数据

5.5.1协议
HTTP/HTTPS网页访问+接口调用
DNS解析域名
FTP文件传输
SMTP/POP3邮件发送+接收
MySQL协议数据库连接
应用内部协议构造结构化数据

5.5.2数据包

应用层报文 = 处置报头 + 结构化数据(载荷)

HTTP请求报文 = HTTP请求头(请求行+请求头部字段) + 空行分隔符 + HTTP请求体
HTTP请求行请求方法、请求URL、HTTP版本
HTTP请求体可选的表单、JSON、文件等业务数据
HTTP响应报文 = HTTP响应头(状态行+响应头部字段)+空行分隔符+HTTP响应体
HTTP状态行状态码、状态描述、HTTP版本
HTTP响应体必选的HTML页面、JSON、图片、视频等返回的业务数据

5.5.3封装
5.3.3.1填装
  1. 按照应用内部协议构造结构化数据 填装载荷
  2. 按照HTTP协议构造网页访问参数 填装报头

5.3.3.2传参
  1. 按照DNS协议解析域名目的IP操作系统配置的本机内网IP为源IP下传直到网络层
  2. 应用里输入目的端口下传直到传输层

Read more

在Docker中运行OpenClaw

在Docker中运行OpenClaw

我不够勇敢直接在我的Mac上运行OpenClaw(也叫Clawdbot aka Moltbot),所以我决定尝试在Docker容器中运行它。 OpenClaw开箱即支持Docker,在他们的文档此页面中描述。这对我有效。 1、使用他们的Docker Compose配置 首先,克隆他们的GitHub仓库: git clone https://github.com/openclaw/openclaw 它包含一个在Docker中运行OpenClaw的脚本,称为docker-setup.sh,后者使用Docker Compose和他们的docker-compose.yml文件。 该脚本将直接在你的Mac上创建两个文件夹,这些文件夹将作为卷挂载在Docker容器中: ~/.openclaw是配置目录。这将最终包含OpenClaw记忆、配置、第三方API密钥等。 ~/openclaw/workspace是工作区目录,充满了文件,这些文件在代理在容器内运行时直接可用。代理创建的文件也将保存在这里。 2、回答所有这些问题 在首次运行时,OpenClaw会问你很多问题。其中大多

By Ne0inhk
【MySQL数据库基础】(一)保姆级 MySQL 环境配置教程!CentOS 7+Ubuntu 双系统全覆盖

【MySQL数据库基础】(一)保姆级 MySQL 环境配置教程!CentOS 7+Ubuntu 双系统全覆盖

前言         作为后端开发、数据库学习的入门必备,MySQL 的环境配置是很多小伙伴的第一道 “小关卡”。尤其是不同 Linux 发行版(CentOS 7、Ubuntu)的安装步骤差异,再加上系统自带 MariaDB 的干扰、密码策略限制、中文编码等坑,很容易让人踩雷卡壳。         这篇博客就带来保姆级 MySQL 环境配置指南,不仅详细拆解 CentOS 7 下的完整安装步骤(从卸载冲突环境到配置优化),还补充了 Ubuntu 系统的安装流程,全程命令可直接复制,新手也能一步到位搞定 MySQL 环境,告别配置报错的烦恼!下面就让我们正式开始吧! 一、前置知识:为什么要先处理 MariaDB?         MySQL 被 Oracle 收购后,很多 Linux 发行版(比如 CentOS 7、

By Ne0inhk
Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)

Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🎯 本文将围绕Java部署这个话题展开,希望能为你带来一些启发或实用的参考。 🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获! 文章目录 * Java 部署:Jenkins Pipeline 构建 Java 项目(自动化) 🚀 * 为什么选择 Jenkins Pipeline?🔧 * 环境准备:搭建 Jenkins 服务器 ⚙️ * 使用 Docker 快速启动 Jenkins * 安装必要插件 * 示例 Java 项目:一个简单的 Spring Boot 应用 🌱 * 项目结构 * `pom.xml` * `DemoApplication.java` * `HelloController.java` * 单元测试(可选但推荐) * 编写 Jenkins

By Ne0inhk