0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HTTP网络通讯过程

马哥Linux运维 来源:马哥Linux运维 2025-01-20 09:07 次阅读

1. 网络模型概览

OSI(Open System Interconnection)先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的 OSI 模型。

OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

29697206-d4b6-11ef-9310-92fbcf53809c.png

2. HTTP 网络通讯过程

示例:简单的网络拓扑模型

299f77ac-d4b6-11ef-9310-92fbcf53809c.png

29c05378-d4b6-11ef-9310-92fbcf53809c.png

详解:当键入网址到网页显示的通讯过程

客户端(发送方组包)

1)HTTP

浏览器解析 URL(协议、域名、资源路径)

生成HTTP 请求报文

2)DNS(真实地址查询)

向 DNS 服务器查询服务器域名对应的IP 地址

域名中越靠右的位置表示其层级越高

3)协议栈(指南帮手)

获取 IP 后,将之后的 HTTP 传输工作交给操作系统内核中的协议栈处理

TCP/UDP:负责收发数据

IP:负责将网络包送达给对方

4)TCP(可靠传输)

报文头部包含端口号、目标端口号、序号、确认号等

TCP传输数据之前,要先三次握手建立连接(三次握手的目的是保证双方都有发送和接收的能力

TCP 报文生成:TCP 头部 + HTTP 报文

5)IP(远程定位)

将数据封装称网络包发送给通信对象

IP 报文生成:IP 头部 + TCP 头部 + HTTP 报文

6)MAC(两点传输)

还需要加上 MAC 头部(发送方和接收方的 MAC 地址等信息),MAC 头部是以太网的头部

MAC 作用:MAC 地址用来唯一标识设备,再通过 ARP 协议找到下一站路由器的 MAC 地址,实现两点之间的传输

至此,网络包报文(MAC 头部 + IP 头部 + TCP 头部 + HTTP 报文)如下图所示

29ea0c18-d4b6-11ef-9310-92fbcf53809c.png

7)网卡(出口)

真正的数据发送过程:将数字信息(IP 网络包)转换为电信号,才能在网线上传输

控制网卡需要靠网卡驱动程序

网卡本身具有 MAC 地址,且会核对数据包的接收方 MAC 地址与自身 MAC 地址是否相同,不是则丢弃

8)交换机(送别)

交换机的设计:将网络包原样转发到目的地

交换机工作在 MAC 层,也称为二层(数据链路层)网络设备

交换机接收到达网线接口的电信号,并转换为数字信息

二层交换机本身具有一个 MAC 地址(标识自身硬件设备),但其各端口不具有 MAC 地址(三层交换机则每个端口都有 MAC 地址)

交换机根据交换机根据MAC 地址表查找 MAC 地址,然后将信号发送到相应的网线端口。交换机的 MAC 地址表包含两个信息:

设备的 MAC 地址

该设备连接在交换机的哪个端口上

2a39ebd4-d4b6-11ef-9310-92fbcf53809c.png

9)路由器(出境)

路由器基本原理:

与交换机类似,通过查表判断包的(下一个路由器或目标设备)转发目标

路由器基于 IP 设计,俗称三层(网络层)网络设备,其各端口具有 MAC 地址和 IP 地址(和计算机网卡一样);而交换机基于以太网设计,俗称二层(数据链路层)网络设备,其端口不具有 MAC 地址(也有三层交换机,具有部分的路由器功能)

MAC 头部的作用就是将包送达路由器,其中的接收方 MAC 地址就是路由器端口的 MAC 地址

包接收操作:将网线接口的电信号转成数字信号,并核对 MAC 地址

完成包接收操作之后,路由器就会去掉包开头的 MAC 头部

接下来会根据 MAC 头部后方的 IP 头部中的内容进行包的转发操作

包发送操作:将网络包的数字信号转成电信号并通过端口发送出去,经过层层转发之后,到达最终目标设备

首先是查询路由表判断转发目标

过 ARP 协议根据对方的 IP 地址查询 MAC 地址,并将查询结果作为接收方 MAC 地址

2a69d254-d4b6-11ef-9310-92fbcf53809c.png

以太网(传输)

在网络包(跨网段)传输过程中,源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址,因为需要 MAC 地址在以太网内进行两个设备之间的包传输。

(对于同网段的二层转发,MAC 地址则不变。)

服务器端(接收方解包)

1)路由器(入境)

2)交换机(境内)

3)服务器(终点)

服务器层层扒开数据包头部,最后通过 TCP 头部的端口号确认是 HTTP 进程想要的这个包

HTTP 进程将资源封装在HTTP 响应报文中,也依次穿上 TCP、IP、MAC 头部,从网卡出去,交由交换机转发到路由器,经过层层转发,最后到达客户端

客户端扒剩 HTTP 响应报文后,交给浏览器去渲染页面并显示资源

最后客户端要离开时,向服务器发起TCP 四次挥手,至此双方连接断开

示例:服务器和客户端相互扒皮

2ab36e64-d4b6-11ef-9310-92fbcf53809c.png

链接:https://www.cnblogs.com/juno3550/p/14385367.html


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    513

    浏览量

    31807
  • OSI
    OSI
    +关注

    关注

    0

    文章

    84

    浏览量

    15507
  • 网络通讯
    +关注

    关注

    0

    文章

    76

    浏览量

    11350

原文标题:2. HTTP 网络通讯过程

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    stm32cubeide生成的lwip网络通讯任务跑起来都很正常,为什么一旦加独立看门狗之后就会卡死呢?

    stm32cubeide生成的lwip网络通讯任务跑起来都很正常,为什么一旦加独立看门狗之后就会卡死?
    发表于 03-10 07:29

    屏蔽双绞线和屏蔽网络通讯线的区别有哪些

    屏蔽双绞线和屏蔽网络通讯线在多个方面存在区别,以下是对这两者的详细比较: 一、定义与结构 屏蔽双绞线: 定义:屏蔽双绞线是在普通双绞线的基础上增加了一层或多层屏蔽层,以减少电磁干扰(EMI)和射频
    的头像 发表于 02-22 11:04 194次阅读

    运动控制卡网络通讯的心跳检测之C#上位机编程

    使用C#上位机编程实现运动控制卡网络通讯的心跳检测功能
    的头像 发表于 12-24 10:54 371次阅读
    运动控制卡<b class='flag-5'>网络通讯</b>的心跳检测之C#上位机编程

    安科瑞APM830电能质量型网络电表 支持Profibus通讯 带CPA认证

    安科瑞Profibus通讯电能质量型网络电表具有全电量测量、电能统计、电能质量分析、录波功能、事件记录功能(包括电压暂升暂降中断、冲击电流等记录)及网络通讯等功能,主要用于电网供电质量的综合监控。
    的头像 发表于 12-19 10:02 220次阅读
    安科瑞APM830电能质量型<b class='flag-5'>网络</b>电表 支持Profibus<b class='flag-5'>通讯</b> 带CPA认证

    PN通讯电表-可与西门子PLC通讯

    APM系列网络电力电测仪表      安科瑞电气APM系列网络电力仪表是按IEC标准设计,与技术同步的网络电力仪表。具有全电量测量,电能统计,电能质量分析及网络通讯等功能,主要用于对电
    的头像 发表于 10-28 17:06 312次阅读
    PN<b class='flag-5'>通讯</b>电表-可与西门子PLC<b class='flag-5'>通讯</b>

    百兆以太网通讯的电表有哪些?

    APM系列网络电力电测仪表 技术支持18701998775 安科瑞电气APM系列网络电力仪表是按IEC标准设计,与技术同步的网络电力仪表。具有全电量测量,电能统计,电能质量分析及网络通讯
    的头像 发表于 10-28 16:51 320次阅读
    百兆以太网<b class='flag-5'>通讯</b>的电表有哪些?

    HTTP海外访问优化:提升跨国网络性能的秘诀

    HTTP海外访问优化是提升跨国网络性能的关键,涉及多个方面的技术和策略。
    的头像 发表于 10-15 08:04 438次阅读

    HTTP海外趋势洞察:未来网络发展的风向标

    HTTP海外趋势洞察为我们揭示了未来网络发展的风向标。
    的头像 发表于 10-15 07:50 331次阅读

    【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯

    一、串口登录 根据手册描述串口登录微1500000波特率和125000波特率,因为有两个镜像系统分别对应不同的波特率。 当前使用的系统,Debug通讯 波特率1500000 二、网络通讯配置 镜像
    发表于 10-10 09:25

    功能强大的网络通讯工具,支持各类TCP、UDP、HTTP通讯协议

    功能强大的网络通讯工具,支持各类TCP、UDP、HTTP通讯协议,简单方便,包含历史记忆功能,体积小,服务器调试最合适
    发表于 09-05 11:51 0次下载

    讲解HTTP代理类别,使用设置,测试HTTP代理方法

    HTTP
    jf_62215197
    发布于 :2024年07月19日 07:03:46

    电信网络通讯接口浪涌保护器综合方案

    在现代社会,电信网络通讯系统已成为信息传递和日常生活的重要组成部分。然而,由于雷击、开关操作、电源故障等因素,电信设备时常面临浪涌电压的威胁。浪涌电压可能对设备造成损坏,导致系统故障甚至瘫痪。因此
    的头像 发表于 06-13 10:55 534次阅读
    电信<b class='flag-5'>网络通讯</b>接口浪涌保护器综合方案

    工业网络通讯协议有哪些

    随着工业自动化的不断发展,设备之间的互联互通和数据交换变得越来越重要。工业网络通讯协议作为实现这一功能的关键技术,其在工业自动化系统中扮演着至关重要的角色。本文将对工业网络通讯协议进行综述,重点介绍几种常见的工业网络通讯协议及其
    的头像 发表于 06-06 18:02 1960次阅读

    鸿蒙网络开发学习:【ylong_http

    ylong_http 构建了完整的 HTTP 能力,支持用户使用 HTTP 能力完成通信场景的需求。 ylong_http 使用 Rust 编写,为 OpenHarmony 的
    的头像 发表于 03-25 16:36 814次阅读
    鸿蒙<b class='flag-5'>网络</b>开发学习:【ylong_<b class='flag-5'>http</b>】

    使用STM32F103R8T6+ENC28J60+LWIP作网络通讯,CAN发送失败了怎么解决?

    你好:使用STM32F103R8T6+ENC28J60+LWIP作网络通讯,现在遇到一个问题:使用CUDE建立的MDK工程,在调试网络部分之前,CAN收发正常。在移植完LWIP 2.1.3之后,网络
    发表于 03-13 06:52