基础篇
TCP/IP网络模型的层次
应用层 寄快递把快递交给快递员,只专注于为用户提供相应的服务,不管如何传输 协议http
传输层 为应用层提供服务、应用间数据传输的媒介 TCP可靠 分段 对接某个应用的端口 UDP 不可靠
网络层 ip协议 将数据从第一个设备传输到另一个设备,如何找到另一个设备?ip地址寻址 IP地址给路由器导航 IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走,路由则是根据「下一个目的地」选择路径。寻址更像在导航,路由更像在操作方向盘。网络层的的核心功能——转发与路由
- 转发:将分组从路由器的输入端口转移到合适的输出端口。
- 路由:确定分组从源到目的经过的路径
网络接口层 MAC地址 以太网中寻址 网络络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。
键入网络地址到页面显示会发生什么
- 解析url Uniform Resource Locators 统一资源定位器
- 得到真实ip地址 web服务器域名查询到ip地址 DNS解析器 只指路不带路 根服务器 顶级服务器 权威服务器 本地服务器
- 给http+数据部分添加tcp包头 涉及知识:tcp包头的格式 三次握手 (SYN ACK 保证双方都有发送和接收的能力) 建立http请求 tcp传输
- TCP 模块在执行连接、收发、断开等各阶段操作时,都需要委托 IP 模块将数据封装成网络包发送给通信对象。ip地址包头 源地址(客户端输出的ip地址 网卡) 目标地址(web服务器ip)
- mac包头 两点之间的传输 发送方的MAC地址 +接收方的mac地址,然后就是ARP帮我们找到路由器的MAC地址,然后通过广播找到接收方的MAC地址
- 出口网卡 数字信息转换成电信号,才能在网线上传输
- 送别者 交换机端口没有mac地址,将数据包全部缓存,交换机根据 MAC 地址表查找 MAC 地址,然后将信号发送到相应的端口 如果没有就广播全部发送 是自己的话就进行回应 之后交换机mac地址表就拥有了对方的mac地址 数据包通过交换机转发抵达了路由器
- 路由器 因为路由器是基于 IP 设计的,俗称三层网络设备,路由器的各个端口都具有 MAC 地址和 IP 地址; 而交换机是基于以太网设计的,俗称二层网络设备,交换机的端口不具有 MAC 地址。包接收是通过查询mac地址看是否是自己的 不会都存
完成包接收操作之后,路由器就会去掉包开头的 MAC 头部。MAC 头部的作用就是将包送达路由器,其中的接收方 MAC 地址就是路由器端口的 MAC 地址。 在网络包传输的过程中,源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址,因为需要 MAC 地址在以太网内进行两个设备之间的包传输。远程定位功能的 IP、有指明下一站位置的 MAC
-
解析 服务器收到 HTTP 请求报文后,处理请求,并返回 HTTP 响应报文给浏览器。浏览器收到 HTTP 响应报文后,解析响应体中的 HTML 代码,渲染网页的结构和样式,同时根据 HTML 中的其他资源的 URL(如图片、CSS、JS 等),再次发起 HTTP 请求,获取这些资源的内容,直到网页完全加载显示。
- 浏览器在不需要和服务器通信时,可以主动关闭 TCP 连接,或者等待服务器的关闭请求