抖音,是由字节跳动孵化的一款音乐创意短视频社交软件。如今,抖音已成为各年龄段人们手中消磨时间的applet,我们可以用它看推送的短视频、点赞评论收藏喜欢的视频、也可以发送自己的日常。这是一个非常好的社交平台,彰显了当今社会快节奏的生活状态,也显现出新一代年轻人的娱乐方向和生活态度。随着抖音applet的上线及更新,它推送出更多的贴纸以及功能供大家使用,更加便利且满足了大家的需求。
那么,对于我们开发者而言,抖音是如何被开发出来的、它的框架结构又是怎样的?今天我们就来探讨探讨,剖析其中的奥秘所在。
我们从以下两个大方面进行剖析。
交互的实现分为网络接入和网络传输两个部分。
我们从互联网、路由、ARP协议、IP协议、NAT导入。
互联网
图片里面的是互联网的大框架图。
左边的是各个终端,包括PC、pad等,当下通常通过wifi、4G、5G网络进行接入;再通过有线网络接入各个运营商的网络,包括移动、电信等。接着再接入抖音。
中间的网络等基本不会出现错误,除非是丢包等,这个就属于故障了。
路由
同网段接入:
SDN网络虚拟化,跨了两个交换机,看起来像是跨网段的,但其实是同网段的。
- 同网段并不一定是接入一个同物理逻辑交换机的,有可能是软件定义网一个虚拟的同网段。
跨网段接入:
两个不同的服务器通过中间的路由进行连接。
- 路由不是对称的!!!
- 路由是工作在IP层协议的!!!
- 路由不是改IP地址的,是改Mac地址的!!!
ARP协议
逻辑同网段才可以发送ARP,之所以这样,是因为同网段情况下才可以找到请求的目标MAC。
- ARP本质上是查找下一跳的MAC,不是请求目标地址!
IP协议
- IP协议是唯一标识,在互联网中通用。抖音客户端一个且服务端一个。
- IP地址不能用MAC地址来代替。(对于这个点比较懵圈)
- IPv4不够用时,用IPv6进行扩充。
NAT
我们从数据包、请求DNS、DNS的传输协议UDP、TCP三次握手、TCP传输、SSL/TLS握手导入。
数据包
首先我们来了解一下数据包的导入代码,并且学习一下代码的格式。
客户端发到服务器的完整路径