【计算机网络基本概念与实际应用】丨青训营笔记

147 阅读3分钟

第七节课【计算机网络基本概念与实际应用】

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记

客户端访问服务器的网络传输过程

客户端 -> 路由器 -> 路由器运营商网络 -> 服务器A运营商网络 -> 服务器A

-> 服务器B运营商网络 -> 服务器B

同网段如何发包/交互
  • 发送ARP请求,通过IP地址查找其Mac地址,再通过发送目的Mac为查找结果的包来实现交互
路由工作在哪一层协议
  • 大部分情况下工作在网络层
  • 但当用到动态路由相关的协议如OSPF、RIP时,由于这些协议的实现基于传输层,所以路由的工作也会涉及到传输层
路由发包改的是IP地址吗
  • 不是,包的目标IP地址应该是一直不变的,否则包就无法到达目的地
  • 通过最长前缀匹配找到路由的下一跳后,对其发送ARP请求,得到其Mac地址,再将包的目标Mac地址改为对应Mac地址,从而将包发往下一跳。

ARP协议

  • 逻辑同网段才能发送ARP请求(先找到下一跳,然后ARP请求求得Mac地址,再通过Mac地址传输,一级一级前往目的地)
  • ARP请求使用广播,ARP应答使用单播(广播询问该IP是否在网段内,单播根据广播内包含的Mac发送应答,不干扰其他设备)(同样的,广播只能在同网段内发送)
  • 本质:查找下一跳的Mac地址,而非目标Mac地址
免费ARP
  • 局域网新增设备时,无需其他设备发送ARP请求,新增设备直接向其他设备发送自己的Mac地址(效率提升)
  • 防止新增的IP与原有IP冲突
ARP代理
  • 在交换机上做劫持,捕获目的ARP请求包使其发往其他地方(软件定义网络)

IP协议

  • 具有唯一性
Mac地址不能代替IP地址吗
  • 不能,有些旧的设备不兼容Mac协议,为了兼容这些设备能用Mac和不能用Mac的设备,而使用IP协议
  • Mac地址不利于路由表的维护
IPv4地址不够用,怎么解决
  • 使用NAT(网络地址转换)即区分内网和外网(公网)

DNS请求

  • 网络传输先请求DNS,也就是请求域名对应的IP地址,得到IP地址再向服务端发送请求

UDP协议

  • 用于传输DNS请求
  • 本身相对简单,不具有超时重传,拥塞控制等等保障协议可靠的手段

TCP协议

拔了网线,连接会断吗
  • 如果TCP有”保活“机制,则可以通过心跳包来判断双方是否都在线上,没有则会断开连接
三次握手
握手阶段
  • 发送方第一次:Seq = 0, Ack = 0
  • 接收方第二次:Seq = 0, Ack = 1(Ack表示期望下一次收到的Seq序列号,为什么期望是1?因为每发送长度1的数据,下一次发送Seq就会+1)
  • 发送方第三次:Seq = 1(0 + 1),Ack = 1
数据传输阶段
  • 发送方:发送Len:725的数据,Seq = 1,Ack = 1
  • 接收方:Seq = 1, Ack = 726(表示期望下次收到的Seq值为726)

HTTP协议

  • 本质依然是TCP
非对称加密认证过程