1. 网络模型概览
OSI(Open System Interconnection)先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的 OSI 模型。
OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。
2. HTTP 网络通讯过程
示例:简单的网络拓扑模型
详解:当键入网址到网页显示的通讯过程
客户端(发送方组包)
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 报文)如下图所示:
7)网卡(出口)
真正的数据发送过程:将数字信息(IP 网络包)转换为电信号,才能在网线上传输
控制网卡需要靠网卡驱动程序
网卡本身具有 MAC 地址,且会核对数据包的接收方 MAC 地址与自身 MAC 地址是否相同,不是则丢弃
8)交换机(送别)
交换机的设计:将网络包原样转发到目的地
交换机工作在 MAC 层,也称为二层(数据链路层)网络设备
交换机接收到达网线接口的电信号,并转换为数字信息
二层交换机本身具有一个 MAC 地址(标识自身硬件设备),但其各端口不具有 MAC 地址(三层交换机则每个端口都有 MAC 地址)
交换机根据交换机根据MAC 地址表查找 MAC 地址,然后将信号发送到相应的网线端口。交换机的 MAC 地址表包含两个信息:
设备的 MAC 地址
该设备连接在交换机的哪个端口上
9)路由器(出境)
路由器基本原理:
与交换机类似,通过查表判断包的(下一个路由器或目标设备)转发目标
路由器基于 IP 设计,俗称三层(网络层)网络设备,其各端口具有 MAC 地址和 IP 地址(和计算机网卡一样);而交换机基于以太网设计,俗称二层(数据链路层)网络设备,其端口不具有 MAC 地址(也有三层交换机,具有部分的路由器功能)
MAC 头部的作用就是将包送达路由器,其中的接收方 MAC 地址就是路由器端口的 MAC 地址
包接收操作:将网线接口的电信号转成数字信号,并核对 MAC 地址
完成包接收操作之后,路由器就会去掉包开头的 MAC 头部
接下来会根据 MAC 头部后方的 IP 头部中的内容进行包的转发操作
包发送操作:将网络包的数字信号转成电信号并通过端口发送出去,经过层层转发之后,到达最终目标设备
首先是查询路由表判断转发目标
通过 ARP 协议根据对方的 IP 地址查询 MAC 地址,并将查询结果作为接收方 MAC 地址
以太网(传输)
在网络包(跨网段)传输过程中,源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址,因为需要 MAC 地址在以太网内进行两个设备之间的包传输。
(对于同网段的二层转发,MAC 地址则不变。)
服务器端(接收方解包)
1)路由器(入境)
2)交换机(境内)
3)服务器(终点)
服务器层层扒开数据包头部,最后通过 TCP 头部的端口号确认是 HTTP 进程想要的这个包
HTTP 进程将资源封装在HTTP 响应报文中,也依次穿上 TCP、IP、MAC 头部,从网卡出去,交由交换机转发到路由器,经过层层转发,最后到达客户端
客户端扒剩 HTTP 响应报文后,交给浏览器去渲染页面并显示资源
最后客户端要离开时,向服务器发起TCP 四次挥手,至此双方连接断开
示例:服务器和客户端相互扒皮
链接:https://www.cnblogs.com/juno3550/p/14385367.html
-
HTTP
+关注
关注
0文章
513浏览量
31807 -
OSI
+关注
关注
0文章
84浏览量
15507 -
网络通讯
+关注
关注
0文章
76浏览量
11350
原文标题:2. HTTP 网络通讯过程
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
stm32cubeide生成的lwip网络通讯任务跑起来都很正常,为什么一旦加独立看门狗之后就会卡死呢?
屏蔽双绞线和屏蔽网络通讯线的区别有哪些
安科瑞APM830电能质量型网络电表 支持Profibus通讯 带CPA认证

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

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

【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
功能强大的网络通讯工具,支持各类TCP、UDP、HTTP的通讯协议

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

工业网络通讯协议有哪些
鸿蒙网络开发学习:【ylong_http】

评论