网络交互 | 青训营

106 阅读2分钟

网络是怎么交互的

网络接入

last mile(最后一公里)问题:最后一段通常是网络容易出现丢包的地方,中间网络很少出现问题

路由

网络包含同网段和跨网段

同网段

同网段为几个服务器通过交换机连接在一起,但是不一定是全部接入了同一个物理意义上的交换机的

跨网段

需要通过路由连接
路由不一定是对称的,可以绕路。
路由可以大致认为是IP层的协议,但是可能也会用到TCP和UDP的交互,所以不是绝对的
路由不是改ip地址,是改mac地址,找到发包口
通过ARP协议找到下一个mac地址,逻辑同网段才能发送ARP
在新增服务器和新增IP时,可以使用免费ARP提高效率,防止IP冲突
ARP本质上是查找下一跳的MAC,不是请求目标地址

IP协议

考虑到向下兼容问题,MAC地址不能替代IP地址
IPv4不够用利用IPv6使用扩充,或者利用NAT

网络传输

DNS

把域名转换成IP
客户端发出递归请求,DNS发出迭代请求,先请求根,然后再请求.com,之后请求douyin.com

UDP

很简单,所以不容易用好。需要考虑发包每次发多少,怎么避免分片,怎么知道有没有丢包等等

TCP

TCP连接:本质上是一个状态;连接并不会因为拔了网线就断掉,但是如果有探活机制,连接在拔了网线之后会断掉
sequence number:发送方这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置
acknowledge number:期望的接收方的下一次sequence number是多少。
SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seq增加一,但是,ACK的传输,不会让下一次的传输packet加一

HTTP/HTTP1.1

HTTP本质上还是TCP,只是针对特定的场景进行了一些优化
HTTPS解密出来依然是HTTP,HTTPS用来防止窃听,依赖于SSL/TLS握手,靠CA 认证公钥和私钥

个人思考

这节课我们学习了网络交互有关的知识,让我更加清楚的意识到了信息的传输背后都有非常复杂的工序。今天学到的这些协议的存在让信息可以高效,快速的传输。