ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-04-10 12:32:43  阅读:263  来源: 互联网

标签:PC2 七层 模型 PC1 TCP tcp 头部 IP 数据


目录

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

(1)OSI七层模型:

OSI七层模型是由ISO国际标准化组织提出的,主要是为了统一世界各计算机厂商使用不同的私有模型而导致互相无法正常通信的问题,每一层都有每一层的功能
应用层主要就是为用户服务的,提供了大量人们所普遍需要的协议,httpd、dns等
表示层完成特定功能,确定传输信息的语法和语义,决定数据以什么形式发送,进行数据的压缩、加密等工作
会话层允许不同机器上的用户建立会话关系
传输层负责实现网络中不同主机上用户进程之间的数据通信,决定数据使用tcp协议还是udp协议,传输数据段
网络层负责将数据从源端到目的端的传输,进行逻辑地址寻址(IP地址),使用路由器等传输工具传输数据包
数据链路层负责将网络层的数据包装成固定格式的帧,进行硬件地址寻址(MAC地址),使用交换机等传输工具传输数据帧
物理层负责真正的数据传输,传输数据流,即网卡

在这里插入图片描述

(2)TCP/IP五层模型

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

-数据传输过程

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

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

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

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

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

    大致过程为:
    上 层 数 据 — 上 层 数 据 + T C P 头 部 = 数 据 段 — 数 据 段 + I P 头 部 = 数 据 包 — 数 据 包 + M A C 头 部 = 数 据 帧 — 数 据 帧 变 为 比 特 流 转 换 为 电 信 号 传 输 上层数据—上层数据+TCP头部=数据段—数据段+IP头部=数据包—数据包+MAC头部=数据帧—数据帧变为比特流转换为电信号传输 上层数据—上层数据+TCP头部=数据段—数据段+IP头部=数据包—数据包+MAC头部=数据帧—数据帧变为比特流转换为电信号传输

在这里插入图片描述

-数据接收的过程

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

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

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

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

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

    大致过程为:
    电 信 号 — 据 帧 数 据 帧 − M A C 头 部 = 数 据 包 — 数 据 包 − I P 头 部 = 数 据 段 — 数 据 段 − T C P 头 部 = 上 层 数 据 — 将 二 进 制 的 上 层 数 据 解 码 显 示 原 始 数 据 电信号—据帧数据帧-MAC头部=数据包—数据包-IP头部=数据段—数据段-TCP头部=上层数据—将二进制的上层数据解码显示原始数据 电信号—据帧数据帧−MAC头部=数据包—数据包−IP头部=数据段—数据段−TCP头部=上层数据—将二进制的上层数据解码显示原始数据

在这里插入图片描述

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

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

在这里插入图片描述

(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)了

在这里插入图片描述

-最后

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

(2)tcp的四次断开

-过程

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

被断开的客户端:PC2

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

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

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

  4. PC1向PC2发送ACK的肯定包

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

在这里插入图片描述

-最后

  • PC1进入CLOSE关闭状态继续等待想要连接的客户端,然后继续循环三次握手和四次断开

  • PC2进入LISTEN状态继续等待下一个请求连接的客户端,然后继续循环三次握手和四次断开

标签:PC2,七层,模型,PC1,TCP,tcp,头部,IP,数据
来源: https://blog.csdn.net/rzy1248873545/article/details/115570326

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有