OSI七层模型
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
应用层(Application Layer):这是网络体系结构中的最顶层,提供用户接口和应用程序之间的通信服务。在这一层,用户可以访问各种网络应用程序,如电子邮件、文件传输和远程登录。
表示层(Presentation Layer):该层负责数据的格式化、加密和压缩,以确保数据在不同系统之间的交换是有效的和安全的。它还提供了数据格式转换和语法转换的功能。\
会话层(Session Layer):会话层管理应用程序之间的通信会话,负责建立、维护和终止会话。它还提供了数据的同步和检查点恢复功能,以确保通信的完整性和持续性。
传输层(Transport Layer):传输层为应用程序提供端到端的数据传输服务,负责数据的分段、传输控制、错误恢复和流量控制。它主要使用 TCP(传输控制协议)和 UDP(用户数据报协议)来实现这些功能。
网络层(Network Layer):网络层负责数据包的路由和转发,以及网络中的寻址和拥塞控制。它选择最佳的路径来传输数据包,以确保它们能够从源主机到目标主机进行传输。
数据链路层(Data Link Layer):数据链路层提供点对点的数据传输服务,负责将原始比特流转换为数据帧,并检测和纠正传输中出现的错误。它还控制访问物理媒介的方式,以及数据帧的传输和接收。
物理层(Physical Layer):物理层在物理媒介上传输原始比特流,定义了连接主机的硬件设备和传输媒介的规范。它确保比特流能够在网络中准确地传输,例如通过以太网、光纤和无线电波等媒介。
TCP/IP四层模型
应用层
电脑或手机使用的软件都在应用层,不同设备的应用之间需要通信时,应用将应用数据传给传输层,应用层只关注为用户提供的功能, HTTP、FTP、Telnet、DNS、SMTP等,不关注数据是如何传输的,类似于把快递给快递员,但是快递员会怎么传输快递客户不管
应用层工作在操作系统的用户态,传输层及以下工作在内核态
传输层
TCP/UDP协议,对报文进行分段
网络层,
网络层接口
HTTP(超文本传输协议)
用在应用层,在计算机世界里专门在两点之间传输超文本数据的约定和规定
http常见状态码
1**:中间:表示目前还是协议处理的中间状态,还有需要后续操作
2**:成功:表示服务器已成功处理客户端的请求
3**:重定向:客户端请求的资源已经发生了变动,需要采用新的URL
4**:客户端错误码:客户端发送的报文有误,服务器无法处理
5**:服务器端错误码:客户端报文正确但是服务器处理时内部发生了错误
http常见字段
Host
Content-Length
Connection:最常用于客户端要求服务器使用「HTTP 长连接」机制
Content-Type:服务器回应时告诉客户端返回的什么类型的数据
Accept:客户端告诉服务器自己能接受类型的数据
Conent-Encoding:说明数据的压缩方法。表示服务器返回的数据使用了什么压缩格式
TCP是面向字节流的协议,UDP是面向报文的协议
如何解决TCP报文的粘包问题
1.固定消息的长度
2.特殊字符作为边界(回车+换行)
3.自定义消息结构(包头+数据)