尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
GO_网络编程---网络协议
一、网络协议基础1. 协议定义网络协议是通信双方约定好的沟通规则用于保障设备之间能够正常交互数据。原始协议双方最初约定、未经过迭代完善的基础通信规则标准协议在原始协议基础上持续迭代、补充、优化后形成行业通用规范的协议二、网络分层架构分层核心优势职责拆分、分工明确解耦各层功能单独修改某一层协议不影响其他层。1. OSI 七层参考模型标准理论模型从上至下应用层 → 表示层 → 会话层 → 传输层 → 网络层 → 数据链路层 → 物理层2. TCP/IP 四层实际架构开发常用Go 网络编程基于这套从上至下应用层 → 传输层 → 网络层 → 链路层补充说明OSI 的物理层、数据链路层在 TCP/IP 中统一合并为链路层三、各分层对应核心协议每一层都配套专属协议各司其职快速区分技巧链路层MAC 地址相关ARP、RARPARPIP 地址解析为 MAC 地址RARPMAC 反向解析 IP网络层IP 地址相关IP、ICMP、IGMP传输层端口号相关TCP、UDP日常统称 TCP/IP 协议簇应用层业务数据格式FTP、Telnet、TFTP、NFS四、三层地址核心概念通信三要素1. 链路层MAC 地址物理地址标识硬件网卡全球唯一固化在网卡硬件中通信范围设备到设备MAC 到 MAC 直连通信MAC 获取方式局域网广播查询ARP 广播仅靠链路层通信缺陷无网段隔离全网广播会产生广播风暴网络拥堵2. 网络层IP 地址逻辑地址为解决广播风暴问题引入 IP对网络做网段划分广播仅限制在当前局域网不会跨网段扩散规避广播风暴作用定位互联网中哪一台主机数据包携带源 IP、目的 IP3. 传输层端口号一台主机可能同时运行多个网络程序端口用来区分主机内不同进程作用定位目标主机上哪一个应用程序 / 进程数据包携带源端口、目的端口端口约束同一台操作系统内一个端口同一时间只能被一个程序绑定不同主机可使用相同端口通信三要素总结建立网络通信必备条件网卡 MAC 地址硬件标识底层自动处理无需开发者手动操作IP 地址逻辑地址定位目标主机代码中需要手动指定端口号定位主机内目标程序代码中需要手动指定五、四层数据封装组包与解包流程以发送数据Hello World为例发送端自上而下逐层封装加头部接收端自下而上逐层解封装拆头部类似快递层层打包、拆快递。1. 发送端组包过程从上到下封装头部传输层添加传输层头部源端口、目的端口数据包[源端口 | 目的端口 | Hello World]网络层添加网络层头部源 IP、目的 IP数据包[源IP | 目的IP | 源端口 | 目的端口 | Hello World]链路层添加链路层头部源 MAC、目的 MAC完整数据包[源MAC | 目的MAC | 源IP | 目的IP | 源端口 | 目的端口 | Hello World]数据包通过网线 / 无线网络传输至目标主机网卡。2. 接收端解包过程从下到上拆解头部链路层解析 MAC 头部匹配本机 MAC拆除链路层头向上交付网络层网络层解析 IP 头部匹配本机 IP拆除 IP 头向上交付传输层传输层解析端口头部匹配程序监听端口拆除端口头将原始数据Hello World交付对应应用程序六、分层快速判断口诀复习速记涉及 MAC、ARP/RARP → 链路层涉及 IP、ICMP、IGMP → 网络层涉及端口、TCP/UDP → 传输层剩余业务数据、FTP/Telnet 等 → 应用层七、分层通信范围总结链路层设备 ↔ 设备硬件通信网络层主机 ↔ 主机跨局域网主机通信传输层进程 ↔ 进程同一主机内程序通信应用层应用程序 ↔ 应用程序业务数据交互
RELATED

相关推荐

GO_并发编程---select

GO_并发编程---select

一、select 基础介绍1. select 与 switch 区别switch:匹配相等条件,可写任意表达式;select:每个 case 只能是 channel IO 操作(读通道 / 写通道),专门用于同时监听多个通道读写状态。2. select …

📅 2026/8/21 5:51:44
Ruflo实战指南:构建下一代智能体协同系统的核心技术解析

Ruflo实战指南:构建下一代智能体协同系统的核心技术解析

Ruflo实战指南:构建下一代智能体协同系统的核心技术解析 【免费下载链接】ruflo 🌊 The leading agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adapt…

📅 2026/9/13 16:47:47
5个实战场景深度解析:如何突破复杂Ruby应用打包的技术瓶颈

5个实战场景深度解析:如何突破复杂Ruby应用打包的技术瓶颈

5个实战场景深度解析:如何突破复杂Ruby应用打包的技术瓶颈 【免费下载链接】traveling-ruby Self-contained Ruby binaries that can run on any Linux distribution and any macOS machine. 项目地址: https://gitcode.com/gh_mirrors/tr/traveling-ruby Tr…

📅 2026/7/23 11:15:26
MORE NEWS

更多资讯

📰

Instructor Patching 机制深度解析:如何为 LLM 客户端注入结构化输出能力

Instructor Patching 机制深度解析:如何为 LLM 客户端注入结构化输出能力 【免费下载链接】instructor structured outputs for llms 项目地址: https://gitcode.com/GitHub_Trending/in/instructor Patching 是 Instructor 的核心机制之一:它不…

📰

2026年Docker镜像加速器可用清单与配置排查全攻略

每隔两三个月,就会有人拿着网上流传的 Docker 国内镜像源列表来问我:“怎么按着配了还是拉不动?”说实话不怪他们,这类列表的更新速度永远追不上失效速度。9 月 13 日我把平时收集的加速地址重新过了一遍,逐个做了连通…

📰

PHP点餐系统部署实战:校园与小微门店落地指南

简介:这是一套基于PHP开发的通用点餐系统源码,适用于校园食堂、中小型餐饮门店等多场景线上点餐需求,面向Web全栈初学者与PHP中级开发者,助力快速搭建可运行的点餐平台并深入理解前后端协同逻辑。资源包共5415个文件,主…

📰

Java全栈工程师的CSS实战指南:稳定、可维护、不冲突

1. 这不是“CSS入门课”,而是一线Java全栈工程师的CSS生存手册你点开这个标题,大概率正被三件事困扰:第一,刚写完Spring Boot后端接口,前端页面却像被扔进搅拌机——按钮错位、文字堆叠、响应式布局在手机上直接“消失…

📰

用Python爬虫抓取高考志愿数据:招生计划与分数线采集实战

简介:这是一套面向高考志愿填报场景的大学数据爬取脚本,适合有 Python 基础、想批量获取招生计划、专业分数线、历年录取数据及学校基本信息的考生、家长或数据分析爱好者。脚本基于 requests 与 fake_useragent 实现,抓取内容包括专业名称、…

📰

openEuler 20.03 TigerVNC 远程桌面安装与排障全记录

平时在信创环境里折腾系统,最烦的就是机房没显示器、服务器却装了图形界面,或者某个研发非要在远程看一眼Oracle安装器的图形输出。我这次在openEuler 20.03上装TigerVNC,本来以为就是个普通的yum install,结果前后折腾了小半天&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬