wochat如何发消息的?
声明:是wochat(我信)不是wechat(微信),仅仅是帮助理解知识点,不要钻牛角尖哈。
背景
情人节赵兴下班比往常早了3个小时,因为在中午想起今天是情人节的时候,他就用wochat给晓薇发了留言“宝贝,今晚稍等我下,我去公司接你”。启动车子的时候,赵兴还在构想浪漫之夜的餐单....
wochat如何让赵兴给晓薇发了留言呢?
连接wifi,获得IP
接入Wi-Fi:NAT
获得IP:DHCP
发消息
获得IP
关键词:DHCP
客户机第一次还没有IP地址的时候和服务器使用广播地址进行通信。服务器端使用UDP67端口,客户端使用UDP68端口。
(1) 发现阶段:即DHCP客户端寻找DHCP服务器的阶段。
(2) 提供阶段:即DHCP服务器提供IP地址的阶段。
(3) 选择阶段:即DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。
(4) 确认阶段:即DHCP服务器确认所提供的IP地址的阶段

登陆
域名解析
关键词:DNS,UDP,ARP DNS域名解析时用的是UDP协议。整个域名解析的过程如下:
1. 浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文;
2. DNS模块将生成的DNS报文传递给传输层的UDP协议单元;
3. UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元;
4. IP协议单元将该数据封装成IP数据包,其目的IP地址为DNS服务器的IP地址;
5. 封装好的IP数据包将传递给数据链路层的协议单元进行发送;
6. 发送时在ARP缓存中查询相关数据,如果没有,就发送ARP广播(包含待查询的IP地址,收到广播的主机检查 自己的IP,符合条件的主机将含有自己MAC地址的ARP包发送给ARP广播的主机)请求,等待ARP回应;
7. 得到ARP回应后,将IP地址与路由的下一跳MAC地址对应的信息写入ARP缓存表;
8. 写入缓存后,以路由下一跳的地址填充目的MAC地址,以数据帧形式转发;
9. 转发可能进行多次;
10. DNS请求到达DNS服务器的数据链路层协议单元;
11. DNS服务器的数据链路层协议单元解析数据帧,将内部的IP数据包传递给网络层IP协议单元;
12. DNS服务器的IP协议单元解析IP数据包,将内部的UDP数据报传递给传输层UDP协议单元;
13. DNS服务器的UDP协议单元解析收到的UDP数据报,将内部的DNS报文传递给DNS服务单元;
14. DNS服务单元将域名解析成对应IP地址,产生DNS回应报文;
15. DNS回应报文->UDP->IP->MAC->我的主机;
16. 我的主机收到数据帧,将数据帧->IP->UDP->浏览器;
17. 将域名解析结果以域名和IP地址对应的形式写入DNS缓存表。

TLS握手
关键词:ssl,tls
TCP握手
关键词:tcp
HTTP请求
关键词:http_code,option,post
发送短信验证码
关键词:运营商API
登陆,获得session
关键词:session,cookie
建立长连接
关键词:websocket
发消息
负载均衡
关键词:nginx,load balance
安全
关键词:SQL injection、XSS、REC
消息推送
关键词:voip
最后更新于
这有帮助吗?