网络七层模型和tcp工作原理

本文涉及的产品
数据传输服务DTS,同步至DuckDB 3个月
简介: 网络七层模型和tcp工作原理

一、OSI七层模型与TCP/IP五层模型


(1)OSI七层模型:


OSI七层模型是由ISO国际标准化组织提出的,主要是为了统一世界各计算机厂商使用不同的私有模型而导致互相无法正常通信的问题,每一层都有每一层的功能



应用层 主要就是为用户服务的,提供了大量人们所普遍需要的协议,httpd、dns等
表示层 完成特定功能,确定传输信息的语法和语义,决定数据以什么形式发送,进行数据的压缩、加密等工作
会话层 允许不同机器上的用户建立会话关系
传输层 负责实现网络中不同主机上用户进程之间的数据通信,决定数据使用tcp协议还是udp协议,传输数据段
网络层 负责将数据从源端到目的端的传输,进行逻辑地址寻址(IP地址),使用路由器等传输工具传输数据包
数据链路层 负责将网络层的数据包装成固定格式的帧,进行硬件地址寻址(MAC地址),使用交换机等传输工具传输数据帧
物理层 负责真正的数据传输,传输数据流,即网卡


20210410122004292.png

(2)TCP/IP五层模型


应用层 主要就是为用户服务的,数据会翻译乘网络世界的语言,即二进制编码,提供了大量人们所普遍需要的协议,httpd、dns等
传输层 负责实现网络中不同主机上用户进程之间的数据通信,决定数据使用tcp协议还是udp协议,TCP为安全的协议,udp为快速的不安全的协议
网络层 负责将数据从源端到目的端的传输,进行逻辑地址寻址(IP地址),使用路由器等传输工具传输数据包
数据链路层 负责将网络层的数据包装成固定格式的帧,进行硬件地址寻址(MAC地址),使用交换机等传输工具传输数据帧
物理层 负责真正的数据传输,传输数据流,即网卡


-数据传输过程


  1. 应用层传输过程: 数据会被翻译成二进制编码数据 (即把字母、汉字、单词、图片、视频、声音等进行转换) ,组成 上层数据
  2. 传输层传输过程: 上层数据会被分割成小的 数据段 ,并在每个分段后封装TCP报文头部 , 这样做得到好处就是一旦数据传输错误,只需重传一小段数据即可 即 上层数据 + TCP头部 = 数据段


**TCP头部: **包含TCP协议或UDP协议,并包含端口号信息,一个程序会有相应的进程对应,因为两台哭客户端之间访问其实是访问端口号


  1. 网络层传输过程: 会在数据段基础上封装上IP 头部 变成 数据包 (IP 头部中关键信息是 IP地址,进行逻辑寻址所必须的) (封装源IP和目标IP)


  1. 数据链路层传输过程: 会在数据包的基础上封装上 MAC头部,变成 数据帧 (MAC 头部中最关键的信息就是MAC 地址;全球唯一,用来进行物理地址寻址)(封装目的mac地址)


  1. 物理层传输过程: 物理层会将所有的二进制信息组成的比特流转换成电信号在网络中传输 (这个二进制信息就是应用层要传输的数据和进过传输层、网络层、数据链路层所封装的头部也就是数据帧)


大致过程为:


上层+TCP=+IP=+MAC=号传输


20210410122025540.png


-数据接收的过程


  1. 物理层收: 将接收到的电信号转换成二进制数据也就是数据帧,传给数据链路层


  1. 数据链路层收: 查看数据帧中的MAC头部中的目标MAC地址是否与自己吻合,如果吻合就会将MAC 头部拆除变成数据包,传给网络层。如果不吻合,直接丢弃数据,


  1. 网络层收: 检查数据包IP头部中的IP 地址是否和自己吻合,如果相同就去除IP头部变成数据段,传给传输层。如果不相同就直接丢弃,


  1. 传输层收:会根据传输层TCP头部去判断该数据应该由哪个协议或程序接收,将分段数据进行重组,去除TCP头部变成上层数据,传给应用层


  1. 应用层收: 将二进制数据进行解码,来将发送方发的原始数据展示出来


大致过程为:


电信MAC=IP=TCP=始数据


20210410122038912.png

(3)OSI七层和TCP/IP五层模型所对应的协议


  • 应用层: httpd(访问网站的前提)、ftp(数据传输的前提)、dns(域名解析上网的前提)等
  • 传输层: tcp协议(可靠安全的进程通信协议)、udp协议(不可靠不安全但是快速的进程通信协议)
  • 网络层: 统称IP协议(网际协议),ARP地址解析协议、ICMP网际控制报文协议、RARP逆地址解析协议、IGMP网际组管理协议
  • 物理层和数据链路层没有任何特定的协议,支持所有标准的专用协议

20210410122056554.png


(4)OSI七层和TCP五层的区别


  • OSI七层其实只是理论上的模型,现实中真正广泛使用的是TCP五层模型
  • OSI七层的会话层、表示层在TCP五层中都划分成了应用层
  • OS模型没有考虑任何一组特定的协议,而TCP/IP模型与TCP/IP协议吻合,并以TCP/IP协议作为传输数据的基础,从而更加贴近真实工作应用环境


二、tcp的三次握手,四次断开


(1)tcp的三次握手


日常中使用主机访问另外一台主机或者服务器其实都是访问对方的端口


-过程

想要建立连接的客户端:PC1

被连接的客户端:PC2

在此之前PC1处于Closed关闭状态,PC2处于Listen监听状态


  1. PC1向PC2发送SYN的请求连接包并进入SYN-SEND发送状态
  2. PC2向PC1发送SYN的请求连接包和ACK肯定包,并进入SYN-RCVD接收状态
  3. PC1向PC2发送ACK的肯定包


之后PC1和PC2都进入了ESTABLISED已连接状态,此时PC1和PC2就可以相互发送数据(DATA)了

20210410121941151.png


-最后


  • PC1和PC2就可以互相发送DATA(数据)了


(2)tcp的四次断开


-过程


想要断开连接的客户端:PC1

被断开的客户端:PC2


PC1向PC2发送FIN的请求断开连接包,并且进入FIN-WAIT-1结束等待状态1


这个时候PC2还有没有发送的数据,所以PC2向PC1发送数据,然后发送ACK的肯定包,并进入CLOSE-WAIT关闭等待状态,PC1这时候会进入FIN-WAIT-2结束等待状态2


当PC2数据发送完之后,回向PC1发送FIN的请求断开连接包


PC1向PC2发送ACK的肯定包


之后PC1进入TIME-WAIT等待时间(30s),PC2进入CLOSE关闭状态


20210410121918363.png



-最后


  • PC1进入CLOSE关闭状态继续等待想要连接的客户端,然后继续循环三次握手和四次断开
  • PC2进入LISTEN状态继续等待下一个请求连接的客户端,然后继续循环三次握手和四次断开
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
6月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
3月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
3月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
4月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
274 2
|
4月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
461 11
|
4月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
101 8
|
4月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
669 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
4月前
|
安全 测试技术 虚拟化
VMware-三种网络模式原理
本文介绍了虚拟机三种常见网络模式(桥接模式、NAT模式、仅主机模式)的工作原理与适用场景。桥接模式让虚拟机如同独立设备接入局域网;NAT模式共享主机IP,适合大多数WiFi环境;仅主机模式则构建封闭的内部网络,适用于测试环境。内容简明易懂,便于理解不同模式的优缺点与应用场景。
538 0
|
5月前
|
算法 安全 网络安全
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
240 0

热门文章

最新文章