抖音网络交互
- 图片下载http
- 评论API/http
- 视频下载http
- 域名解析DNS
网络接入
1.路由
在网络通信中,路由(router)是一个网络层的术语,作为名词时,其指从某一个网络设备出发去往某个目的地的路径;作为动词时,其指跨越源主机和目的主机之间的网络来转发数据包。
直连路由
路由器接口直接连接子网的方式称为直连路由,路由器可以直接找到连接的这个网段。
静态路由
静态路由是通过手动方式为路由器配置路由信息,可以简单地使路由器获知到达目的网络的路由。
动态路由
动态路由就是路由器之间交换信息的以语言 OSPD、ISIS各种各样的协议就是不同语言相互交换信息,如果使用不同的协议是不能交换信息的。
默认路由
在路由器中添加到0.0.0.0 0.0.0.0网段的路由,就是默认路由。默认路由是在路由器没有为数据包找到更为精确匹配的路由时最后匹配的一负路由。
注意
- 路由不一定是对称的
- 路由工作在IP协议
- 路由不是改IP地址
- 路由是改MAC地址,找到发包口 如何找到下一跳?
2.arp协议
ARP全称是“Address Resolution Protocol”(地址解析协议),ARP作用于以太网的环境之中,以太网环境之中数据的传输依赖的是MAC地址并不是我们所熟悉的IP地址,每个电脑都有一个IP地址记以及一个MAC地址(全球唯一),二者缺一不可,将我们所知道熟悉的IP地址转换为MAC地址就是ARP协议的工作。
注意
- arp的本质是查找下一跳的MAC,不是请求目标地址。
- 逻辑同网段才能发送ARP
- ARP请求广播,ARP应答单播
免费ARP
设备主动使用自己的IP地址作为目的IP地址发送ARP请求,这种方式称为免费ARP(gratuitous)
特点
- 可以进行IP冲突检测,看看有没有其他人使用自身这个IP
- 设备更换了Mac地址,会触发免费ARP,用来刷新对端mac表的映射
- VRRP主备切换
- 服务器的集群环境下,服务器间互相冗余,之间存在心跳报文,使用的是免费arp来做心跳
ARP代理
两个主机相同网段,但不在同一物理网络(不在同一广播域) ,此时两主机互访需要中间网络设备代替主机发送arp响应,该过程称为arp代理(arp-reply)
使用场景
- 路由式ARP代理:中间路由器
- vlan间arp代理:super-vlan
- vlan内arp代理:端口隔离
IP地址
唯一标识,互联网通用,抖音客户端一个,抖音服务端一个
ipv4和ipv6
Internet协议(IP)是为连接到Internet网络的每个设备分配的数字地址。它类似于电话号码,是一种独特的数字组合,允许用户与他人通信。IP地址主要有两个主要功能。首先,有了IP,用户才能够在网络上进行定位,在Internet上被识别,从而进行网络通信。
1、协议地址的区别
1)地址长度
IPv4协议:32位(4字节)地址长度;
IPv6协议:128位(16字节)地址长度。
2)地址的表示方法
IPv4地址:以十进制表示,共四组,用点连接;
IPv6地址:以十六进制表示,共八组,用冒号连接。
3)地址配置
IPv4协议:地址可以通过手动或DHCP配置的。
IPv6协议:需要使用ICMPv6或DHCPv6的无状态地址自动配置(SLAAC)。
2数据包的区别
1)包的大小
IPv4协议:数据包需要576个字节,碎片可选
IPv6协议:数据包需要1280个字节,不会碎片
2)包头
IPv4协议:包头的长度为20个字节,不识别用于QoS处理的数据包流,包含checksum,包含最多40个字节的选项字段。
IPv6协议:包头的长度为40个字节,包含指定QoS处理的数据包流的Flow Label字段,不包含checksum; IPv6协议没有字段,但IPv6扩展标头可用。
3)数据包碎片
IPv4协议:数据包碎片会由转发路由器和发送主机完成。
IPv6协议:数据包碎片仅由发送主机完成。
3、DNS记录
IPv4协议:地址(A)记录,映射主机名;指针(PTR)记录,IN-ADDR.ARPA DNS域。
IPv6协议:地址(AAAA)记录,映射主机名;指针(PTR)记录,IP6.ARPA DNS域
4、IPSec支持
IPv4协议:IPSec支持可选的
IPv6协议:有内置的IPSec支持。
5、地址解析协议
IPv4协议:地址解析协议(ARP)可用于将IPv4地址映射到MAC地址。
IPv6协议:地址解析协议(ARP)被邻居发现协议(NDP)的功能所取代。
6、身份验证和加密
IPv4:不提供
Pv6:提供身份验证和加密
NAT
NAT(Network Address Translation),网络地址转换
- 主要应用在企业网络的边缘设备上
- 对数据包的私有IP地址和公有IP地址进行转换,实现内网到外网的访问
- 实现企业内网的保护,增强企业内网的安全性。因为外网无法直接访问内部设备的私有IP地址
NAT工作原理
路由器对数据包进行地址转换,路由器在接收到内部数据包时将内部源IP地址转化为公有IP地址后在进行路由转发。
NAT类型
静态NAT
- NAT表条目是通过手动配置的方式添加进去的
- 私有IP地址和公有IP地址是 1对1 的关系,不节省公网IP地址
动态NAT
- NAT表中的条目是 路由器出炉数据包 时自动形成的
- 基于NAT地址池 实现私有地址和公有地址之间的转换,比静态NAT更加节省公网IP
网络传输
数据包
OSI七层网络模型:应用层,,表示层,会话层传输层,网络层,数据链路层,物理层
数据包的发送
先请求DNS
DNS的传输协议UDP
实现相对简单,但是用好比较难
TCP协议
什么是TCP连接?
三次握手 三次握手是 TCP 连接的建立过程。在握手之前,主动打开连接的客户端结束 CLOSE 阶段,被动打开的服务器也结束 CLOSE 阶段,并进入 LISTEN 阶段。随后进入三次握手阶段:
① 首先客户端向服务器发送一个 SYN 包,并等待服务器确认,其中:
- 标志位为 SYN,表示请求建立连接;
- 序号为 Seq = x(x 一般取随机数);
- 随后客户端进入 SYN-SENT 阶段。 ② 服务器接收到客户端发来的 SYN 包后,对该包进行确认后结束 LISTEN 阶段,并返回一段 TCP 报文,其中:
标志位为 SYN 和 ACK,表示确认客户端的报文 Seq 序号有效,服务器能正常接收客户端发送的数据,并同意创建新连接;
-
序号为 Seq = y;
-
确认号为 Ack = x + 1,表示收到客户端的序号 Seq 并将其值加 1 作为自己确认号 Ack 的值,随后服务器端进入 SYN-RECV 阶段。 ③ 客户端接收到发送的 SYN + ACK 包后,明确了从客户端到服务器的数据传输是正常的,从而结束 SYN-SENT 阶段。并返回最后一段报文。其中:
-
标志位为 ACK,表示确认收到服务器端同意连接的信号;
-
序号为 Seq = x + 1,表示收到服务器端的确认号 Ack,并将其值作为自己的序号值;
-
确认号为 Ack= y + 1,表示收到服务器端序号 seq,并将其值加 1 作为自己的确认号 Ack 的值。
-
随后客户端进入 ESTABLISHED。 当服务器端收到来自客户端确认收到服务器数据的报文后,得知从服务器到客户端的数据传输是正常的,从而结束 SYN-RECV 阶段,进入 ESTABLISHED 阶段,从而完成三次握手。
TCP传输
- sequence number 表示的是我方(发送方) 这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置
- acknowledge number 表示的是期望的对方(接收方) 的下一次sequence number是多少注意,SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seq增加一,但是ACK的传输,不会让下一次的传输packet加一 http/http1.1 http依然是TCP,只是多加了一层规矩,只是这个规矩让用户更清晰/更简洁 https http解析后依旧是http
SSL/TLS握手
传输层安全性协议 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在 1994 年推出首版网页浏览器,网景导航者时,推出 HTTPS 协议,以 SSL 进行加密,这是 SSL 的起源。IETF 将 SSL 进行标准化,1999 年公布第一版 TLS 标准文件。随后又公布RFC 5246(2008年8月)与RFC 6176(2011年3月)。在浏览器、邮箱、即时通信、VoIP、网络传真等应用程序中,广泛支持这个协议。主要的网站,如 Google、Facebook 等也以这个协议来创建安全连线,发送数据。目前已成为互联网上保密通信的工业标准。
TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。