网络与部署 | 青训营

192 阅读9分钟

网络交互之网络接入

刷抖音网络是怎么交互的?

  • 网络接入
  • 网络传输

互联网

809e1b2e25ca607beada75897f09536.png

网络接入——路由

路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程   。

路由工作在OSI参考模型第三层——网络层的数据包转发设备。

路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。


往同网段如何发包/交互?

若与发送机属于同一网段,系统直接将数据包封装成帧,通过二层设备发送到本网段内的目标地址;

若不在同一网段,系统将数据包转发到网关,重新封装;网关查看数据包送达的目标ip地址;系统根据目标ip地址查找路由表,决定转发端口;重新封装转发到下一个路由器;

IP数据包到路由器之后,它读去IP包头的目标IP地址,然后查看路由表,根据路由协议算法,确定一条最佳的路径。


路由一定是对称的吗?

不一定

路由是工作在哪一层协议?

工作在OSI参考模型第三层——网络层

路由是改IP地址的吗?

不是。路由是改Mac的,找到发包口

void send_one_pkt()
{
rt = find_rt(dst) //包含主机出口网口&Nexthop
...
l2->dst_mac = rt->next_hop->mac
p = append(p, 12)
...
send(p, rt->port) 
}
怎么获取路由的mac

1、第一步:在浏览器上登录:19161;第二步,登录路由器账号。

2、在路由器管理界面中查看。路由器一般在底部会贴有标签,主要的信息就是路由器的管理地址和MAC地址。或者在浏览器中输入路由器管理地址,出现管理员密码登录管理页面,可以看到下方的MAC地址和刚才的一样。

3、操作步骤如下:按键盘上的windows键和R键。在输入框里输入cmd,点击确定;提示符后输入arp -a,回车;回显信息中路由器ip地址后就是对应的mac地址,如下图1916253是演示的路由器ip。

4、在“通用”界面,找到“关于本机”选项,进入“关于本机”界面面。在“关于本机”界面,找到“无线局域网地址”。五,然后就可以在“无线局域网地址”界面里看到“无线局域网地址”这就是苹果手机的Mac地址。

5、首先在电脑中,鼠标右键点击桌面上的网络。然后在打开的右键选项中,点击属性。接着在打开的属性窗口中, 点击以太网。然后在打开的窗口中,点击详细信息。最后在打开的窗口上,物理地址就是mac地址了。



网络接入——ARP协议

APR协议,即地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等

  • 逻辑同网段才能发送ARP
  • ARP请求广播,ARP应答单播

网络接入——IP协议

IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

  • 唯一标识,互联网通用。抖音客户端一个,抖音服务端一个

  • Mac地址不能代替IP地址吗?

    不能

  • IPv4不够用,一般怎么解决的?

    1、DHCP:动态主机配置协议。动态分配 IP 地址,只给接入网络的设备分配IP地址,因此同一个 MAC 地址的设备,每次接入互联网时,得到的IP地址不一定是相同的,该协议使得空闲的 IP 地址可以得到充分利用。

    2、CIDR:无类别域间路由。CIDR 消除了传统的 A 类、B 类、C 类地址以及划分子网的概念,因而更加有效的分配 IPv4 的地址空间,但无法从根本上解决地址耗尽问题。

    3、NAT:NAT即网络地址转换,是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址。它使得整个专用网只需要一个全球IP地址就可以与因特网连通,由于专用网本地IP地址可以重用,因此NAT大大节省了IP地址的消耗。

    4、IPv6 :作为接替 IPv4 的下一代互联网协议,其可以实现 2 的 128 次方个地址,而这个数量级,即使是给地球上每一颗沙子都分配一个IP地址,该协议能够从根本上解决 IPv4 地址不够用的问题。


网络接入——NAT

NAT(Network Address Translation),是指网络地址转换,1994年提出的。

当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。 这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。

733aed5ad8ef492e5efae3394f7784e.png


网络交互之网络传输

数据包

包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。

OSI七层网络模型TCP/IP四层概念模型对应网络协议
应用层HTTP、TTFTP、FTP、NFS、WAIS、SMTP
表示层Telnet、Rlogin、SNMP、Gopher
会话层SMTP、DNS
传输层传输层TCP、UDP
网络层网络层IP、ICMP、ARP、RARP、AKP、UUCP
数据链路层数 链 层FDDI、Ethernet、PDN、SLIP、PPP
物理层据 路IEEE 802.1A,IEEE 802.2到IEEE 802.11


数据包发送

e48e3ad599f07d5d31f4c6807ac9aaa.png

网络传输——先请求DNS

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

ae7364c753f710f8f60f5b539e23d95.png

DNS的传输协议UDP

UDP本身相对简单

UDP协议的全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议


TCP三次握手

TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层通信协议;

建立TCP连接的三次握手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

TCP传输

ffd5a2deff828982dc068100f918eac.png

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

  • acknowledge number:表示的是期望的对方(接收方)的下一次sequence number是多少。

    注意:SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seq增加一,但是,ACK的传输,不会让下一次的传输packet加一

6113d0d631bfbfb09f4f8155f20662c.png


丢包怎么办?
  • 调整TCP缓冲区大小
  • 使用TCP/IP协议栈优化工具
  • 使用TCP Keepalive机制
  • 使用数据包重传机制

HTTP/HTTP1.1

其实HTTP只是多了一层规矩,HTTP依然是TCP,只是这个规矩让用户更清晰/更简洁

HTTP1.1那些优化?
  • 长连接
  • 部分传输
  • HOST
  • 缓存

HTTPS

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。


HTTPS解密出来依然是HTTP


SSL/TLS

SSL/TLS协议实际上最初叫做SSL协议(Secure Sockets Layer,安全套接字层),是由网景(Netscape)公司在1990年推出的一种标准安全协议,用于在网络通信中建立Web浏览器和Web服务器之间的加密链接。

TLS(Transport Layer Security,传输层安全)是 IETF组织 (工程任务组)在1999年将SSL3.0协议规范进行了标准化。由于SSL和TLS之间存在加密算法上的差异,因此不能互相操作,所以是两个不同的协议。