网络交互知识点 | 青训营

134 阅读6分钟

网络接入

(1) 物理层次

img

(2) 路由

路由协议(英语:Routing protocol)是一种指定数据包转送方式的网上协议。工作在网络层。

  • 往同网段如何发包/交互:将目标IP的Mac更改为目标IP查询到的Mac
  • 路由不一定对称
  • 路由工作在OSI参考模型第三层——网络层的数据包转发设备。
  • 路由是更改Mac地址,找到发包口
  • 动态路由BGP/OSPF:动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。

(3) ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议

  • ARP本质是查找下一跳MAC,不是请求目标地址
  • 逻辑同网段才能发送APR
  • APR请求广播,APR请求单播
  • 免费ARP:主动广播告知MAC地址;代理ARP:虚拟网络/伪造MAC地址。

免费ARP一般指无故(Gratuitous ARP,GARP)ARP。主机有时会使用自己的IP地址作为目标地址发送ARP请求。因为它不是经过其他主机的ARP请求广播后发出的ARP广播,所以叫无故ARP,也有人叫免费ARP。

免费ARP主要有两个用途:

(1)检查重复地址(如果收到ARP响应表明存在重复地址)。

(2)用于通告一个新的数据链路标识。当一个设备收到一个ARP请求时,发现ARP缓冲区中已有发送者的IP地址,则更新此IP地址的MAC地址条目。

(3)某个子网内运行热备份路由协议(HSRP)的路由器如果从其他路由器变成了主路由器,它就会发送一个无故ARP来更新该子网上的ARP缓存

代理ARP:代理ARP就是将一个主机“作为”另一个主机对收到的ARP请求进行应答。它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。同时也会带来巨大的风险,除了ARP欺骗,和某个网段内的ARP增加,最重要的就是无法对网络拓扑进行网络概括。代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的。

(4)IP协议

IP协议:IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。

  • 唯一标识,互联网通用。抖音客户端一个,抖音服务端一个。
  • Mac地址不能代替IP地址
  • IPv4:互联网终端节点的唯一标识,但是网络地址资源不足。
  • IPv6:不仅仅是IP地址长度的增加,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍

Mac地址不能代替IP地址:

1、IP地址和MAC地址的位数不同,IP地址是32位二进制,而MAC地址是48位二进制;

2、IP地址是指网络设备的唯一标识,而MAC地址是物理网络接口的唯一标识;

3、IP地址用于区分网络中的计算机,而MAC地址用于区分网络中的网络接口;

4、IP地址是网络设备和互联网的基础,而MAC地址是网络设备和网络之间的基础。

(5) NAT

NAT(Network Address Translation),是指网络地址转换,改IP和端口

NAT图解:

img

网络传输

(1) 数据包

  • 数据包:本质上是一段内存,里面存储的内存是有序的,一般是按照TCP/IP的多层协议去封装。拆包/封包都是按照协议去写内存/读内存。
  • 包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。包(Packet):在包交换网络里,单个消息被划分为多个数据块,这些数据块称为包,它包含发送者和接收者的地址信息。这些包然后沿着不同的路径在一个或多个网络中传输,并且在目的地重新组合。

(2) 数据包发送

img

(3) 请求DNS

DNS:域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

请求流程:

  • 客户端发送www.douyin.com的解析请求
  • 递归解析器去问 “ . ”,com.去哪里解析
  • 递归解析器去问“ com. ”,douyin.com去哪里解析
  • douyin.com告诉递归解析到xxx

image.png

(4) DNS的传输协议UDP

UDP:UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。特点:(1) UDP无连接。(2) 连接多样化。(3) 不可靠。(4) 面向报文流。缺点:UDP不提供数据包分组、组装和不能对数据包进行排序,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。

UDP本身相对简单:

image.png

UDP使用困难,需自己解决以下问题:

  • 发包每次发多少?怎么避免分片?
  • 怎么知道没丢包?
  • 怎么权衡传输效率和质量?

(5) TCP协议

TCP: 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF定义 。特点:(1) 面向连接。(2) 点到点连接。(3) 可靠。(4) 面向字节流。缺点:(1) 队头阻塞问题难以解决。(2) TCP 建立连接的延迟。(3) 网络迁移需要重新建立 TCP 连接。(4) 安全问题,TCP 的序列号都是明文传输,容易被攻击。

sequence number:表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置

acknowledge number:表示的是期望的对象(接收方)的下一次sequence number是多少。注意:SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seq增加一;但是,ACK的传输,不会让下一次的传输packet加一。

image.png

(6) HTTP与HTTPS

  • HTTP:(1) HTTP比TCP方便 (2) HTTP1.1的优化:长连接是重点
  • HTTPS:HTTPS (Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
  • HTTP依然是TCP,只是多加一层规则,不需操作TCP的细节。
  • HTTPS解密后是HTTP

(7) SSL/TLS握手

  • SSL(Secure Socket Layer)安全套接层是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。
  • 安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。
  • 非对称加密非常消耗资源