网络模型
OSI七层网络模型
自上向下分别为:应用层、表示层、会话层、运输层、网络层、数据链路层、物理层
一次HTTP请求流程
第一阶段:客户端发送数据
- 浏览器中输入一个网址,根据DNS服务器解析出域名所在服务器所在的IP和端口
- 应用层将请求数据组装成HTTP报文
- 传输层接收应用层的报文,加上TCP首部,用来区分应用进程,实现可靠传输
- 网络层接收传输层的数据报,加上IP首部,组成IP数据报
- 数据链路层接收网络层的IP数据报,加上数据报头尾加上帧头帧尾,组成帧
- 物理层把帧看做是比特流,加上前导码,让目的主机做好接收帧的准备
- 网络设备将比特流变成电信号在网络中进行传输
第二阶段:中转数据
- 物理层将电信号转成比特流数据,去掉前导码,将帧交给数据链路层处理
- 数据链路层去掉帧头帧尾,将IP数据报交给网络层处理
- 网络层解析IP数据报首部,提取目的主机地址,查找路由表,确定转发端口
- 网络层将IP数据报交给数据链路层,加上头部和尾部,组成帧
- 数据链路层将帧交给物理层,物理层把帧看做是比特流,加上前导码
第三阶段:服务端接收数据
- 物理层将电信号转成比特流数据,去掉前导码,将帧交给数据链路层处理
- 数据链路层去掉帧头帧尾,将IP数据报交给网络层处理
- 网络层去掉IP首部,将数据包交给传输层处理
- 传输层去掉TCP首部,将HTTP报文交给应用层处理
- 应用层解析报文,处理请求,将响应数据组装成HTTP报文进行响应
- 响应数据在各网络的过程与发送数据一致,在Web层层封装,由路由器进行转发,最终响应给客户端
MAC与IP地址
- MAC地址是网络上各个接口的唯一标识,作用于数据链路层,数据包在转发的过程中源MAC地址和目的MAC地址逐个链路改变
- IP地址由网络编号和主机编号组成,是主机和路由器使用的地址,作用于网络层,数据包在转发的过程中源IP地址和目的IP地址保持不变
- 源主机通过ARP协议,解析IP地址找到MAC地址
TCP和UDP的区别
TCP | UDP |
---|---|
面向连接 | 无连接 |
可靠传输 | 不可靠传输 |
一对一,单播 | 单播、多播 |
首部最小20字节,最大60字节 | 首部开销小,仅8字节 |
面向字节流 | 面向应用报文 |
TCP首部报文段格式
TCP如何建立连接
三次握手
- 服务端程序启动ÿ