七层网络模型
# 每一层的作用
**物理层**:实现两台机器互联,机器和机器之间怎么通信,,肉眼可见物理介质比如网线,光纤。无线电波,存在形式就是二进制的比特流,可是现在还是0101的机器语言,没有什么意思的数据,那么就到达数据链路层
**数据链路层**:对二进制比特流进行分组,8个为一组,形成一个字节,依次按顺序去发送数据,,再数据链路层带着发件人地址和收件人地址,数据格式是帧,但是怎么样才能知道谁的mac地址是和链路层需要到达mac地址的一样,那就用到了网络层
**网络层**:确认对方的mac地址用到一个ARP协议,通过ip地址查找对应的mac地址,那么如何判断是否再一个子网内,就用到了ip协议,那如何去选择最优的路径,就有一组协议叫做路由协议,路由协议分为静态路由和动态路由(RIP OSPF BGP),那如何确保数据完整和正确
**传输层**:对发送数据进行封装,TCP协议和udp协议,一个一个按顺序依次发送,两个应用程序进行联系需要通过端口寻找到对应的端口
**会话层**:由于数据包很大容易出现中断和重传,那会话层就会通过断点续传功能,可以从校验点继续回复数据进行数据重传,自动收发,自动寻址的功能
**表示层**:因为可能两个沟通的机器系统可能不一样,所以表示层提供一种公共语言,让不同系统进行通信
**应用层**:数据到应用层的时候还是字节流也就是帧,所以应用层定义了各种应用协议来规范数据格式,比如http协议,FTP DNS TFTP SMTP
![1593168004914](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1593168004914.png)
# 四层和七层有什么区别
![1586396758658](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586396758658.png)
# 数据传输过程
![1586396820920](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586396820920.png)
# 传输层TCP协议和udp协议
## TCP协议
![1586397364391](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397364391.png)
实现原理:在进行http请求之前必须先经过TCP请求:三次握手,四次挥手
**序号**:编号,tcp数据包过大的时候会进行分段,重组,按顺序重组,所以就是对分段进行编号,以后按照这个编号重组
**确认号**:当客户端向服务器发送一个连接请求,希望服务端给一个回应,服务端回应时候会带一个确认号,也就是第二次握手时候。存在确认消息里,跟序号有什么关系呢?(假设客户端第一次握手时候请求包的序号seq=1,服务端收到消息进行第二次握手时候会返回一个ack确认号,这个确认号值等于seq+1=2,当客户端收到这个确认号等于2时表示服务器期望收到客户端的下一个包的序号
**标志位**:状态控制码,如果打上标记就是1,不打就是0,表示数据包的一个类型
- ACK:占一个比特位表示确认位,如果确认位为1,表示这个消息是一个确认消息,
- RST:重置,如果这个位置被标记了,表示消息要被释放连接,是因为出错才要释放,就是要断开tcp连接,如果还想继续发消息就要重新建立连接
- SYN:同步,如果被标记为1,表示这个消息时一个发起连接的消息,就是第一次握手时候,客户端发起要变成1,服务端接受也要变成1
- FIN:终止,表示发送报文结束了释放这个连接,此时要开始TCP的四次挥手
握手过程中标志位变化:
![1586397596069](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397596069.png)
挥手过程中标志位变化:
![1586397630807](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397630807.png)
## UDP协议
Udp协议:不会建立连接,是一个无连接传输协议,所以没有序号确认号标志位
是一个不可靠协议,会存在丢包出错,比如游戏等等
常用的基于udp协议:Dns协议,SNMP DHCP(动态获取ip)
常用的基于tcp协议:http https ftp
![1586397743339](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397743339.png)
## Tcp和udp的区别
![1586397769427](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397769427.png)
# HTTP协议
![1586397812444](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397812444.png)
## 请求头
请求报文分为四个部分:请求行,请求头部,空一行,请求体
![1586397838120](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397838120.png)
## 响应头
![1586397861378](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397861378.png)
## 为什么说http是无连接的
![1586397888919](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397888919.png)
![1586397909442](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397909442.png)
![1586397916920](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397916920.png)
## HTTPS协议
![1586397925097](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397925097.png)
![1586397961019](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397961019.png)
![1586397971354](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397971354.png)
## HTTP与HTTPS之间的区别
![1586397983011](C:\Users\MI\AppData\Roaming\Typora\typora-user-images\1586397983011.png)
简述-七层网络模型
最新推荐文章于 2023-04-11 14:47:09 发布