一次完整的域名请求过程

一次完整的HTTP请求会经历哪些步骤? 这是最原始的问题

从网络的7层协议来划分 ( OSI参考模型 ),分别有

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

还有一个精简的5层模型 TCP/IP模型

应用层

传输层

网络层

数据链路层

物理层

下面由下到上分别阐述每一层存在的意义

物理层

不同的主机之间通过光缆/线路连接,传输0和1的数字信号,由这些物理手段连接起来叫做物理层

数据链路层

物理层传输的0和1没有意义,必须要进行分组,后面慢慢形成了以以太网协议为主导的协议,

以太网 规定一组电信号为一帧,一帧分成两个部分,标头和数据,标头长度为18字节,数据为 46字节到1500字节之间,如果数据过长,需要分割成不同的帧进行传输

标头包含了 发送者,接收者信息,这两者通过MAC地址进行标识

以太网规定,接入网络的设备,必须有网卡,数据包必须是从一个网卡传输到另外一个网卡,网卡的地址就是数据的发送和接收地址,也就是MAC地址

知道地址了,那一块网卡怎么知道另外一个网卡的地址呢?(ARP协议可以找到) 有了MAC地址,怎么进行传输呢? — 采用广播的方式

网络层

两个网卡之间进行数据传输通过广播的形式,但是广播的形式效率很低,上海和洛杉矶怎么进行传播呢? 不可能所有人的电脑都会收到广播数据,那会是一个灾难,

所以有了IP来规定是否同一个网段,ip地址是0,0,0,0 到 255,255,255,255 之间,

IP协议是由32个二进制数组成,判断是否为同一个网段,用子网掩码进行and计算,如果相同,那么为同一个网段

IP数据包

传输层

有了MAC地址和IP地址,两台电脑可以任意进行通信,但是同一主机有很多不同的任务,如同时运行了QQ和微信,那么两台电脑如何知道通信呢,用的端口进行区分,不同的端口代表不同的

通信连接,端口是0到65535之间的数字,0到1023都被系统占用,网络层是主机到主机之间的连接,传输层则是端口和端口的连接,Unix把主机+端口的连接成为套接字

要加入端口信息,那么有两个协议,UDP和TCP,在这两个协议的请求头中加入了端口

应用层

规定应用程序的格式,如HTTP,EMail 等

猜你喜欢

转载自blog.csdn.net/hugenshen/article/details/123190358