简单的个人网站html,网站开发需要什么费用,动漫制作专业要多少分,网站文档怎么加图片不显示不出来TCP/IP网络模型 TCP/IP网络模型的作用就是给数据包进行层层封装#xff0c;帮助数据包能够正确的找到对应的设备接受数据。 一个URL所经历的全部过程
URL所经历的全部过程#xff1a;
HTTP - DNS -协议栈-TCP-IP-MAC-网卡-交换机-路由器-服…TCP/IP网络模型 TCP/IP网络模型的作用就是给数据包进行层层封装帮助数据包能够正确的找到对应的设备接受数据。 一个URL所经历的全部过程
URL所经历的全部过程
HTTP - DNS -协议栈-TCP-IP-MAC-网卡-交换机-路由器-服务器 HTTP数据包
HTTP就是包含请求行方法名如GET POST、URL、HTTP版本请求头请求体具体数据的数据包。请求发送到服务器后服务器要响应请求也是使用HTTP返回响应信息。响应HTTP包含响应行HTTP版本、响应状态码200 400、响应头、响应体。
DNS服务器域名解析为IP
DNS服务器分为每一个服务器都保存有根DNS服务器地址 客户端发送请求前需要IP地址而DNS服务器记录了域名与IP之间的关系所以请求发送时需要先通过域名将域名转为IP。
如何通过域名找寻IP
客户端先在本地DNS服务器查找对应IP。本地DNS服务器没有通过本地寻找根服务器根服务器告诉你那个顶级服务器保存有对应IP地址。顶级服务器也不记录DNS与IP之间的关系他告诉你那个权威服务器保存有对应关系这就通过域名找到IP地址。
协议栈规定请求需要经过的路径
协议栈定义了请求需要经过那些过程即Socket将请求按照下图的顺序执行对数据包进行层层包装。 TCP封装端口号控制数据包发送速度与安全 TCP建立连接的三次握手 TCP三次握手的原因是为了保证连接的稳定与可靠性。
三次握手的过程 TCP分割数据包的大小
因为、以太网最大传输单元MTUIPTCP数据包不能超过1500字节为了保证传输效率所以超过1500字节TCP会将数据包拆分为多份发送。
IP寻找数据包发送到的位置
IP:包含源IP地址目标IP地址协议号TCP/UDP06表示使用TCP协议
假设客户端有多个网卡就会有多个 IP 地址那 IP 头部的源地址应该选择哪个 IP 呢
计算机中的路由表记录了网卡目标IP子网掩码的关系。
我们通过 目标IP 子网掩码 得到目标子网IP在目标子网IP在路由表中匹配如果匹配到就知道在那个网卡发送消息
MAC在子网中确定是那个设备
MAC头包含目标MAC、源MAC、协议IP\ARP
源MAC直接将本设备的MAC地址写入源MAC中
目标MAC通过IP地址获取子网然后在子网中通过ARP广播的方式询问子网下所有设备该IP是谁接收的然后设备将自己的MAC返回。为了避免每次都要广播获取到MAC之后会在ARP缓存中记录IP与该设备MAC之间的关系 网卡将数字信号转为电信号
网卡的作用是将数字信号转为电信号将数据发送给交换机。
网卡被网卡驱动程序控制会在请求开头加上开头加上报头和起始帧分界符检测数据包的起始位置在末尾加上用于检测错误的帧校验序列。
交换机将电信号转为数字信号
交换机的作用将电信号转换为数字信号然后将数据包发送出源IP所在的子网数据在不同子网之间的转发。
交换机接收包
交换机接收包之后会首先校验错误帧保证包的完整性然后将获取数据包的MAC地址与目标MAC做对比如果有就根据目标MAC对应的端口转发。交换机没有MAC地址会将所有包保存到缓冲区对MAC进行校验
如果没有找到目标MAC
如果没有找到目标MAC会将包发送给所有端口但因为以太网中如果不是目标地址就不会接收该数据包。如果是广播MAC地址也会发给所有端口
路由器请求分发
路由器有MAC地址路由器可以作为数据包的请求方和接收方他更像是以太网上的节点一样数据可以在路由器中进行转发会在路由器这里改变MAC地址找寻接下来需要到达的设备。
服务器拆解请求获取数据包
将数据包层层拆解然后获取数据
Liunx如何接收发送数据包
liunx发送数据包 Liunx接收数据包
接收数据包跟发送数据包是相反的过程
1.网卡通过DMA将数据包写入ringbuffer
2.进行硬件中断让CPU首先处理数据包
3.进行硬件中断屏蔽防止CPU已经在做处理数据包的操作还要被硬件中断启动软中断处理数据包
4.处理MAC、IP、TCP协议
5.将数据包发送给Socket对应的缓冲区里面循环读取到ringbuffer中的数据一直读到ringbuffer没有数据开启硬件中断
6.应用层通过系统API获取Socket对应的缓冲数据