IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络基础—数据传输 -> 正文阅读

[网络协议]网络基础—数据传输

网络基础—数据传输

OSI/ISO七层模型

概述

  • OSI是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,是一种法定标准

  • 为开放式互连信息系统提供了一种功能结构的框架和参考。这里所说的开放系统,实质上指的是遵循OSI参考模型和相关协议能够实现互连的具有各种应用目的的计算机系统

  • OSI采用了分层的结构化技术,共分七层:

    物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

    谐音:物联(链)网淑(输)慧(会)试(示)用

OSI七层介绍

应用层

  • 应用层是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。

  • 协议:文件传输服务(FTP)、远程登录服务(ssh)、web服务(http)等。

  • 功能

    • 用户接口
    • 实现各种服务

表示层

  • 表示层是对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。

  • 协议:远程登录(Telnet)等

  • 功能

    • 数据格式处理
    • 压缩和解压缩
    • 数据的加密和解密

会话层

  • 会话层是用户应用程序和网络之间的接口,主要任务是:组织和协调两个会话进程之间的通信,并对数据交换进行管理。当建立会话时,用户必须提供他们想要连接的远程地址
  • 协议:SMTP,DNS等
  • 功能
    • 会话管理:建议,维持,终止会话,支持数据交换
    • 流量控制:为避免数据发送过快以至接送方来不及接收,需控制发送方的发送速度
    • 差错控制:通信两节点约定检错规则,如奇偶校验码,根据规则判断数据是否1出粗
    • 寻址:使用远程地址建立连接

传输层

OSI上3层:应用层、表示层、会话层的主要任务是数据处理——资源子网

OSI下3层:网络层、数据链路层、物理层的主要任务是数据通讯——通讯子网

  • 传输层是OSI模型的第4层,它是通信子网和资源子网的接口和桥梁,起到承上启下的作用。将会话层传来的数据分割成报文段(报文段为组成报文的每个分组,报文是网络信息传输的基本单位)
  • 协议:TCP,UDP
  • 功能:
    • 多路复用和解复用
    • 可靠传输&不可靠传输
    • 流量控制
    • 拥塞控制

网络层

  • 数据链路层的数据在这一层被转换为数据包 (TCP/IP协议通信传输的数据单位),然后通过路由选择(路由器)、分段组合、顺序、进/出路由等控制,选择最适当的路径,将信息从一个网络设备传送到另一个网络设备

  • 一般情况下,数据链路层是解决同一网络(局域网)内节点之间的通信,而网络层主要解决不同子网间的通信

  • 协议:IP,路由选择协议

  • 功能:

    • 路由选择
    • 拥塞控制
    • 差错控制
    • 网络互联

数据链路层

  • 接收来自物理层的位流(比特流)形式的数据,通过差错控制等方法传到网络层;同样,也将来自上层的数据,封装成 (帧(frame)是数据链路层的传输单元。将上层传入的数据添加一个头部和尾部,组成了帧)转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
  • 功能:
    • 数据组帧
    • 数据链路的建立,维护,拆除,指定拓扑结构并提供硬件寻址(MAC地址
    • 差错控制
    • 流量控制

物理层

  • 利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。尽可能屏蔽掉具体传输介质和物理设备的差异。
  • 功能
    • 定义物理设备标准
    • 传输比特流

数据封装过程

分层基本单位封装过程备注
应用层数据侬好方言
表示层数据你好普通话
会话层数据你好
传输层报文段TCP头部+你好TCP头部:源&目标的端口号
网络层数据包IP头部+TCP头部+你好IP头部:源&目标的IP地址
数据链路层帧头+IP头部+TCP头部+你好+帧尾帧头:源和目标的MAC地址;
帧尾:校验字
物理层比特流比特流

TCP/IP协议模型

概述

  • TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成一种事实标准

  • TCP/IP协议簇是一组不同层次上的多个协议的组合,该协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求

协议OSI七层模型
应用层FTP+HTTP+DNS+SSH等会话层+表示层+应用层
运输层TCP+UDP运输层
网络层ICMP+IP+IGMP网络层
链路层ARP+RARP物理层+数据链路层

TCP/IP协议介绍

链路层

  • ARP:地址解析协议IP-MAC,以广播的形式通过IP地址获取MAC地址
  • RARP:逆地址解析协议MAC-IP,以广播的形式通过MAC地址获取IP地址

网络层

  • IP:一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。同时被TCP和UDP使用
  • ICMP:IP协议的附属协议。主要是用来提供有关通向目的地址的路径信息。ping和traceroute工具,它们都使用了ICMP协议。
  • IGMP:是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。该协议运行在主机和组播路由器之间。

传输层

  • TCP:传输控制协议。为两台主机提供高可靠性的数据通信。TCP通过三次握手建立连接,通讯完成时要断开连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是一种可靠的数据流服务,采用带重传的肯定确认技术来实现传输的可靠性。也就是TCP数据包中包括序号(seq)和确认(ack),所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

  • UDP:用户数据报协议。则为应用层提供一种非常简单的服务。它是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。 UDP通讯时不需要接收方确认,不保证该数据报能到达另一端,属于不可靠的传输,可能会出现丢包现象。

应用层

  • 应用层上的各种协议负责其相应的服务,不详细介绍。

TCP/IP三次握手&四次挥手(断开 )

相关概念

  • 序列号:Seq序列号,占32位,发送方发送数据时用该序列号标记发送数据

  • 确认号:Ack确认序列号,占32位,有ACK标志位为1时,确认序列号才有效,Ack=Seq+1

  • 标志位:

    • ACK=1:确认序列号有效
    • SYN=1:请求连接
    • FIN=1:断开连接
  • 网络连接状态:可使用netstat命名查看

    字段状态
    CLOSED初始(无连接)状态
    LISTEN监听状态,等待远程机器的连接请求
    SYN_SEND在TCP三次握手中,主动连接端发送了SYN包后,进入该状态,等待对方的ACK包
    SYN_RECV在TCP三次握手中,主动连接端收到ACK包后,进入该状态
    ESTABLISHED完成TCP三次握手,主动连接端进入该状态。此时,TCP三次握手已经建立,可以进行通信
    FIN_WAIT_1在TCP四次断开时,主动关闭端发送FIN包后,进入该状态
    FIN_WAIT_2在TCP四次断开时,主动关闭端收到ACK包后,进入该状态
    TIME_WAIT在TCP四次断开时,主动关闭端发送了ACK包之后,进入该状态
    CLOSE_WAIT在TCP四次断开时,被动关闭端收到FIN包后,进入该状态
    LAST_ACK在TCP四次断开时,被动关闭端发送FIN包后,进入该状态,等待对方的ACK包

三次握手

在这里插入图片描述

TCP三次握手的过程如下:

  1. 客户机A端发送SYN(请求连接)包和自己的序列号x给服务器B端;

  2. 服务器B端收到SYN包后,发送一个ack=x+1(确认序列号)ACK=1(确认序列号x有效)和SYN(请求连接)包和自己的序列号y给客户机A端;

  3. 客户机A端发送**ack=y+1(确认序列号)ACK=1(确认序列号有效)**给服务器B端,握手动作完成。

A&B是两个幼儿园小朋友,这天午休,除A&B外,其他小朋友都在休息

A小声说:B,你能听见我说话吗?我们来聊天吧

B听到A的话,小声回:我能听见你说话,A,你能听见我说话吗?

A听到B的话,回:我也能听见你说话

A&B开始吧啦吧啦。。。

四次挥手

在这里插入图片描述

TCP四次断开的过程如下:

  1. 客户机A端发送一个FIN包(断开连接)和自己的序列号u给服务器B端请求断开连接;

  2. 服务器B端收到FIN包后,发送一个ack=u+1(确认序列号)ACK=1(确认序列号x有效)和自己的序列号v客户机A端;

  3. 服务器B端发送了ACK包后,再发送一个**FIN包(断开请求)**给客户机A端确认断开;

  4. 客户机A端收到FIN包后,发送一个ACK包,当服务器B端收到ACK包后,四次断开动作完成,连接断开。

A&B打电话,A想说的话已经说完了。

A告诉B,我无话可说了

B听到A的话,B回复:知道了,我还有话要说,你等一下

B吧啦吧啦。。。

B想说的话也说完了,告诉A:我也无话可说了

A听到B的话,回复:知道了,那挂断吧

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:54:17  更:2021-08-24 15:54:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:54:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计