C/C++教程

网络基础之TCP/IP五层模型

本文主要是介绍网络基础之TCP/IP五层模型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 互联网基础
    • 应用和数据
      • 应用的起源
    • 应用的实现——数据
      • 数据的产生
      • 数据传输
    • 网络参考模型与标准协议
      • OSI模型
      • TCP/IP参考模型
        • TCP/IP之物理层
          • 常见传输介质
        • TCP/IP之数据链路层
          • 以太网与MAC地址
            • 以太网的定义:
            • MAC地址
          • 以太网报文格式
        • TCP/IP之网络层
          • IP协议
          • IPV4报文格式
            • 生存时间(TTL)
            • 协议号(Protocol)
          • IP地址:
            • 什么是IP地址
            • IP地址表示
            • IP地址构成:
            • IP地址寻址
            • IP地址分类(有类编址)
            • IP地址类型
            • IP地址计算:
            • 私有IP地址
            • 特殊IP地址
            • IPV4与IPV6
          • 子网划分
            • 为什么我们要划分子网?
            • 如何进行子网划分
          • ICMP协议
            • ICMP差错控制
        • TCP/IP之传输层
          • 报文格式
          • 端口号
          • TCP的建立-三次握手
          • TCP滑动窗口机制
          • TCP的关闭-四次挥手
        • TCP/IP之应用层
          • 常见应用层协议
    • 数据通信过程
      • 发送方数据封装
      • 中间网络数据传输
      • 接收方数据解封装
    • 总结:

互联网基础

应用和数据

应用的起源

  • 应用的存在,是为了满足人们的各种需求,比如访问网页,在线游戏,在线视频。
  • 伴随着应用会有信息的产生,比如文本,图片,视频等都是信息的不同呈现方式

应用的实现——数据

数据的产生

  • 在计算机领域,数据是各种信息的载体

数据传输

  • 大部分应用程序所产生的数据在不同的设备之间传递

网络参考模型与标准协议

OSI模型

OSI/RM协议是由ISO(国际标准化组织)制定的,它有三个基本的功能:提供给开发者一个必须的、通用的概念以便开发完善、可以用来解释连接不同系统的框架。 [1]
在这里插入图片描述

图1.OSI模型

OSI将计算机网络体系结构(architecture)划分为以下七层:

  • 物理层: 在媒介上传输比特流;提供机械的和电气的规约

  • 数据链路层:将分组数据封装为帧;在数据链路上实现数据的点到点、或点到多点方式的直接通信;差错检测

  • 网络层: 定义逻辑地址;实现数据从源到目的地的转发

  • 传输层: 建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等待

  • 会话层: 在通信双方之间建立、管理和中止会话

  • 表示层: 进行数据格式的转换,以确保一个系统生产的应用层数据能够被另外一个系统的应用层所识别和理解

  • 应用层: 对应用程序提供接口

TCP/IP参考模型

因为OSI协议栈比较复杂,且TCP/IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型
在这里插入图片描述

TCP/IP协议定义了一系列的标准协议

每一层的功能都是通过下面的协议实现的
在这里插入图片描述

TCP/IP之物理层

  • 数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换为光信号,电信号或者是电磁波信号
  • 物理层的PDU称为比特流
    在这里插入图片描述
常见传输介质

基本分为有线和无线
在这里插入图片描述

物理层主要会使用二进制比特流进行传输

进制:即表述数据的方法

  • 进制类型:二进制、10进制、16进制

    • 10进制:即组成数据的基本单元,包含0-9(主要是让人看)

    • 2进制:即组成数据的基本单元,包含0-1(主要是让设备看)

    • 16进制:即组成数据的基本单元,包含0-9,a,b,c,d,e,f(通常用在抓包软件中,用于分析协议的数据包内容)

TCP/IP之数据链路层

  • 数据链路层位于网络层和物理层之间,可以向网络层的IP、IPV6等协议提供服务。数据链路层的PDU称为Frame(帧)
  • 以太网是最常见的苏剧链路层协议

在这里插入图片描述

以太网与MAC地址
以太网的定义:
  • 以太网是一种广播式数据链路层协议,支持多点接入
  • 个人电脑的网络接口遵循的就是以太网标准
  • 一般情况下,一个广播域对应着一个IP网段
MAC地址
  • MAC地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址
  • MAC用于在一个IP网段内,寻址找到具体的物理设备
  • 工作在数据链路层的设备,例如以太网交换机,会维护一张MAC地址表,用于指导数据帧转发
以太网报文格式

在这里插入图片描述

  • 以太网头部14个字节
  • 任何一个可以上网的节点,都拥有一个MAC地址,该地址全世界范围内唯一的
  • MAC地址,表示的是一个物理设备,也称之为“物理地址”,不可以随意修改
  • 任何一个上网的节点,也必须拥有一个IP地址,该地址在一个网段内是唯一的
  • IP地址,也称之为一个上网设备的“逻辑地址”,是可以随意修改的
  • IP地址相当于人的名字,MAC地址相当于人的家庭住址
  • 如果想要设备之间实现互通,则必须同时知道目标设备的IP地址和MAC地址

TCP/IP之网络层

  • 网络层经常被称为IP层,但网络层协议并不只是IP协议,还包括ICMP协议、IPX协议等
  • 目前IPX已经被淘汰
    在这里插入图片描述
IP协议
  • IP是Internet Protocol的缩写。Internet Protocol 本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述了IP报文的格式。
  • 经常被提及的IP,一般不是特指Internet Protocol这个协议文件本身,而是泛指直接或间接与IP协议相关的任何内容。
    在这里插入图片描述
IPV4报文格式

在这里插入图片描述

  • version:版本号
  • Header Length:头部长度
  • TYpe of Servive:服务类型(数据包优先级,优先级0-7,数字越大,优先级越高,优先级越高,数据会被优先处理)
  • Total Length:数据长度(IP头部之后的总长)
  • Identification/Flags/Fragment Offset:主要用来进行数据段的重组和分段
  • TTL:防止数据包环路
  • Protocol:协议字段,表示你使用的协议
  • Header Checksum:防止数据包被篡改,对数据做校验
  • Source IP address:源IP地址
  • Destination IP: 目标IP地址
  • Options:可选项
  • PAdding:填充位
生存时间(TTL)
  • TTL字段设置了数据包可以经过的路由器数目
  • 一旦经过一个路由器,TTL值就会减1,当该字段为0时,数据包就会被丢弃。
    在这里插入图片描述
协议号(Protocol)
  • IP报文头中的协议号字段标识了将会继续处理该报文的协议
  • 即指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上报给那个进程处理
    在这里插入图片描述
IP地址:
什么是IP地址
  • IP地址在网络中用于标识一个节点(或者网络设备的接口)。
  • IP地址用于IP报文在网络中的寻址

在这里插入图片描述

IP地址表示
  • 一个IP地址有32bit

  • IPV4地址通常采用点分十进制表示

    • 在这里插入图片描述
  • IPV4地址范围:0.0.0.0~255.255.255.255

IP地址构成:
  • 网络部分:用来标识一个网络
  • 主机部分:用来区分一个网络内的不同主机
  • 网络掩码:区分一个IP地址中的网络部分及主机部分
  • 在掩码中用全是1代表网络位,剩余为主机位
    在这里插入图片描述
IP地址寻址
  • 网络部分:用来标识一个网络,代表IP第hi在所属网络
  • 主机部分:用来区分一个网络内的不同主机,能唯一标识网段上的某台设备。
  • 网关:连接不同网段
    在这里插入图片描述
IP地址分类(有类编址)
  • 为了方便IP地址的管理及组网,IP地址分为5类

    • 在这里插入图片描述
  • A/B/C类默认网络掩码

    • 在这里插入图片描述
IP地址类型
  • 我们通常把一个网络号所定义的网络范围称为一个网段

  • 网络地址:用来标识一个网络

    • 在这里插入图片描述
  • 广播地址:用来向该网络中所有主机发送数据的特殊地址

    • 在这里插入图片描述
  • 可用地址:可分配给网络中的节点或网络设备接口的地址

    • 在这里插入图片描述

注意:

  • 网络地址和广播地址不能直接被节点或网络设备所使用。
  • 一个网段可用地址数量为:2^n-2(n:主机部分的比特位数)
IP地址计算:

例:172.16.10.1/16这个B类地址的网络地址,广播地址以及可用地址数分别是
在这里插入图片描述

私有IP地址
  • 公网IP地址:IP地址是由IANA统一分配的,以保证任何一个IP地址在Internet上的唯一性。这里的IP地址是指公网IP地址

  • 私网IP地址:实际上一些网络不需要连接到Internet,比如一个大学的封闭实验室的网络,只要同一网络中的网络设备的IP地址不冲突即可。在IP地址空间里,A、B、C三类地址中个各预留了一些地址专门用于上述情况,称为私网IP地址

    • A类:10.0.0.0~10.255.255.255

    • B类:172.16.0.0~172.31.255.255

    • C类:192.168.0.0~192.168.255.255
      在这里插入图片描述

特殊IP地址

IP地址空间中,有些特殊的IP地址,这些IP地址有特殊的含义和作用

特殊IP地址地址范围作用
有限广播地址255.255.255.255可作为目的地址,发往该网段所有主机(受限于网关)
任意地址0.0.0.0“任何网络”的网络地址 “这个网络上这个主机接口” 的IP地址
环回地址127.0.0.0/8测试设备自身的软件系统
本地链路地址169.254.0.0/24当主机自动获取地址失败后,可使用该网段中的某个地址进行临时通信
IPV4与IPV6

由全球IP地址分配机构,IANA管理的IPV4地址,于2011年完全用尽,随着最后一个IPV4公网地址分配完毕,加上接入公网的用户及设备越来越多,IPv4地址枯竭的问题日益严重,这时当前IPv6替代IPv4的最大源动力
在这里插入图片描述

子网划分
为什么我们要划分子网?

(1)减少网络流量。子网定义了一个网络最大的广播空间(受限广播),可以减少网络流量
(2)提高网络性能。如果不划分子网,那么我们的网络将是一个巨大的、扁平的网络空间,这将导致网络性能下降。(寻址变慢了)
(3)便于网络管理。分层次的网络可以更加方便网络管理员对于网络的管理,就类似于学校要分年级,年级要分班。
在这里插入图片描述

如何进行子网划分

原网段分析
在这里插入图片描述

可变长子网掩码:VLSM,向主机借位,形成子网
在这里插入图片描述

计算子网网络地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4fF6ctMB-1642515641434)(E:/Typort/image-20220118210719333.png)]

练习:
在这里插入图片描述
在这里插入图片描述

ICMP协议
  • Internet控制消息协议ICMP是IP协议的辅助协议
  • ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用
    在这里插入图片描述
ICMP差错控制
  • iCMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还能提供其他信息,如报文往返是按等
    • 功能:ping
    • ping是网络设备、Windows、Linux和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议,ping常用于探测到达目的节点的网络可达性
  • ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。如:当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备
    • 功能:Tracert
    • tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。tracert是检测网络丢包和时延的有效手段,同时可以帮助管理员发现网络中的路由环路

TCP/IP之传输层

  • 传输层协议接收来自应用层协议的数据,封装上对应的传输层头部,帮助其建立“端到端”的连接
  • 传输层的PDU被称为Segment(段)
    在这里插入图片描述
报文格式

在这里插入图片描述

端口号

在这里插入图片描述

TCP的建立-三次握手

任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接
在这里插入图片描述

Seq:序列号

ACK:确认号

TCP的序列号于确认号

在这里插入图片描述

为什么PC1每次的ACK都不变,是因为PC2的载荷为0.在传输数据时,PC1发送数据,所以PC2的序列号每次都加上PC1的载荷。

序列号:每次自增1加上载荷,ACK也是这样

TCP滑动窗口机制

TCP通过滑动窗口机制来控制数据的传输速率
在这里插入图片描述

win:窗口大小(接收方的缓存大小)。发送方的发送能力,是由接收方的缓存能力来决定的

TCP的关闭-四次挥手

在这里插入图片描述

TCP/IP之应用层

  • 应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等
  • 应用层的PDU被称为Data(数据)
    在这里插入图片描述
常见应用层协议

FTP

FTP是一个用于从一台主机传送文件到另一台主机的协议,用于文件的下载和上传,它采用C/S结构
在这里插入图片描述

Telnet

Telnet是数据网络中提供远程登录服务的标准协议。Telnet为用户提供了在本地计算机完成远程设备工作的能力
在这里插入图片描述

HTTP

HTTP是互联网上应用最广泛的一种网络协议,设计HTTP最初的目的是为了提供一种发布和接受HTML页面的方法
在这里插入图片描述

数据通信过程

发送方数据封装

在这里插入图片描述

我们在浏览器输入网址,会产生一个请求数据,经过第四层,访问网页的数据会打上一个TCP的标签,然后到了网络层,就会打上一个IP的标签,在到二层的时候,就会打上一个二层的标签,为了保证数据的完整性,然后在尾部添加一个FCS(帧校验)然后通过物理层传输

中间网络数据传输

在这里插入图片描述

通过各种中间设备把数据传输到目标设备上面

接收方数据解封装

在这里插入图片描述

接受方设备,在物理层接受到高低电压,把这些高低电压还原为带封装的数据包,到二层时,解除二层的报头和FCS,传输到三层,然后分析的IP头部(源IP地址、目标IP地址、协议号等),传输到四层,解除四层的封装,传输给对应的应用程序。

以上过程,不论那个过程出现问题都会导致通信失败

总结:

  • 不论是OSI参考模型还是TCP/IP参考模型,都采用了分层的设计理念。

    • 各个层次之间分工,界限明确,有助于各个部件的开发,设计和故障排除

    • 通过定义在模型的每一层实现什么功能,鼓励产业的标准化

    • 通过提供接口的方式,是的各种类型的网络硬件和软件能够互相通信,提高兼容性

  • 数据的产生与传递,需要各个模块之间相互协作,同时各个模块又需要各司其职

这篇关于网络基础之TCP/IP五层模型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!