0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

网络通信协议概念及TCP/IP的分层结构

jf_78858299 来源:京东科技技术说 作者: 宋国伟 2023-03-23 14:36 次阅读

网 络 通 信 协 议 概 述

网络通信协议本质上是由一组协议组成的,而协议的本质则是一组规则和规范的组合体。举个例子:两个物流业务点在地域角度看是两个独立的整体,那么要何如对接才能把货物从一点输出到另一点呢?首先他们需要商定一个暗号,这个暗号的作用是可以证明货物是输出地发出来的,当前的站点可以进行接收,这个暗号可以任何形式:工牌、工服等,接下来还需要考虑用什么交通工具,可以是电车,也可以无人机等。

其中工服、工牌、电动车属于一个一个规则和规范,而他们结合起来就形成了配送的协议,而站点按照这个协议最终就可以完成货物的运输和配送。

OSI七层模型、TCP/IP四层模型

随着技术的发展,计算机的应用越来越广泛,计算机之间的通信开始了百花齐放的状态,每个具有独立计算服务体系的信息技术公司都会建立自己的计算机通信规则,而这种情况会导致异构计算机之间无法通信,极大的阻碍了网络通信的发展,至此为了解决这个问题,国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,OSI模型把网络通信的工作分为7层,分别是 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

这七层模型是设计层面的概念,每一层都有固定要完成的职责和功能,分层的好处在于清晰和功能独立性,但分层过多会使层次变的更加复杂,虽然不需要实现本层的功能,但是也需要构造本层的上下文,空耗系统资源,所以在落地实施网络通信模型的时候将这七层模型简化合并为四层模型分别是 应用层、传输层、网络层、网络接口 (各层之间的模型、协议统称为:TCP/IP协议簇)。

图片

TCP/IP 分 层 解 析

一、网络接口层:

TCP/IP的网络接口层承接OSI七层模型中物理层和数据链路层的功能,对标物理层的部分完成的是将高低电压转换成传输信号(电信号、无线信号等)传递给目标方;对标数据链路层的部分则是规定了输出信号组的规则及格式,统一标准后则为我们所知的以太网协议(ethernet),协议规定网络接口层每一个信号数据包称为一个数据帧,数据分为head和data两部分,其中head部分包括:

  • 发送者地址---6字节(mac地址)
  • 目标地址---6字节(mac地址)
  • 数据类型---6字节

mac地址释义:以太网协议规定接入的网络设备必须具备网卡,而网卡的标识就是mac地址,地址为6个字节,前三个字节为标准化组织给厂商分配的编码,后三个字节为厂商生产的序列号,由此保证地址唯一。

数据部分为上层需要向外发送的数据,如下:

图片

具有了上述规则,两台计算机就可以进行通讯了,而通讯的方式则为广播,类比为通信的时候先问所有人”故宫”是谁家的地址,局域网内地址是”故宫”的主机则会回复自己的mac地址,这个模式在小型的局域网主机数相对较少的情况下可以玩转,但整个世界数以亿计的主机,如果一台主机需要知道目标的地址就需要给世界上所有的主机都发一个广播消息,那就成为灾难了,故需要下一层设计解决这个问题。

二、网络层:

由上层的遗留问题可知,必须找到一种方法,区分相同局域网内的直播域,不是同域内的请求需要进行转发广播,而网络层就是解决这种问题而存在,它定义了一套地址称之为ip地址,有读者可能会有疑问:为什么不使用mac地址在上一层完成这个需求呢?这是因为mac地址只跟厂商有关,不能标识局域网内网规则,就类比笔者虽然身份证是黑龙江人但是人却在北京飘,身份证类比mac地址,身份证是无法证明本人到底在哪也就无法做下一步骤了,这个网络层的协议目前通常使用的是IPV4,协议规定地址为32位表示,通常大家看到ip地址都是以十进制展示,每8位以 . 号分割,例如:192.168.1.1,IP数据包同样分为head和data两部分:

图片

接下来我们通过抓包的形式来看一下ip头的主要字段:

图片

至此网络层帮我们定位目标网路,网络接口层帮助我们锁定目标主机,我们之间距离天涯海角的两台主机已经可以完成通讯,但是每一台机器上有好多服务,比如邮件服务、微信、咚咚,如何定位是哪个应用的数据包呢,这需要下层设计给予解决。

三、传输层:

由上层协议遗留问题可知,我们需要定位是哪个服务程序的数据包,不然会造成数据错乱,而传输层正是解决此类问题,传输层依靠端口来唯一定位一个服务,而发送端端口+接收端端口组成一组链接,传输层的作用总结为提供端口到端口的通信,传输层通常是指tcp(udp)协议,TCP协议提供可靠性传输能力、分包传输能力。tcp层数据包也分为head和data部分:

图片

接下来让我们通过抓包的方式来看一下tcp头信息的主要字段:

图片

至此两台主机已经有可以完成指定服务信息传输的能力,但是不同应用程序所要应用的场景不同,需要数据的数据结构也不尽相同,截止目前的能力无法为丰富多彩的应用程序提供规范的数据信息,此问题需要由下层设计给予解决。

四、应用层:

由上层协议遗留的问题可知,我们需要为丰富多彩的应用程序对应不同场景设计不同的数据结构。而应用层正是为了解决此问题而存在,所以需要应用层定义丰富多彩的协议来对应适配复杂场景所需的数据结构,故应用层定义为规范了应用层的数据结构,目前大家常用的应用层协议有http、https、ssl、ftp等。

图片

接下来让我们通过抓包的形式,来看看应用层(http)协议数据信息:

图片

至此两台主机对等应用程序信息传输的条件都已具备,可以愉快的开始通信了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79067
  • OSI
    OSI
    +关注

    关注

    0

    文章

    82

    浏览量

    15420
  • 网络通信协议

    关注

    0

    文章

    10

    浏览量

    6157
收藏 人收藏

    评论

    相关推荐

    分享一款不错的基于TCP/IP网络协议设计并实现了浮标网络通信系统

    本文基于TCP/IP网络协议设计并实现了浮标网络通信系统。
    发表于 05-28 06:44

    嵌入式TCP/IP协议单片机在网络通信中有什么应用?

    什么是TCP/IP协议?CS8900的工作原理是什么?嵌入式TCP/IP协议单片机在
    发表于 06-04 06:49

    什么是TCP/IP通信协议

    什么是TCP/IP通信协议呢?IP地址有何作用?分为哪几类?
    发表于 11-01 06:08

    基于TCP/IP网络通信应用程序的相关资料分享

    基于TCP/IP网络通信应用程序(TCP-Client) 不管是嵌入式Linux应用程序,还是物联网IoT应用开发,网络通信一定是一个不可
    发表于 11-05 09:06

    基于UDP协议网络通信应用程序

    基于UDP协议网络通信应用程序(UDP-Socket)前两篇文章介绍了基于TCP/IP协议网络通信
    发表于 11-05 08:29

    TCP/IP网络协议简介

    的本质是数字通信,任何数字通信都离不开通信协议的制定,通信设备只有按照约定的、统一的方式去封装和解析信息,才能实现通信。互联网
    发表于 11-26 07:08

    基于TCP/IP网络通信应用程序分享

    基于TCP/IP网络通信应用程序(TCP-Server)上一篇文章讲述了在i.MX6UL开发板中,以客户端的角色,使用TCP/
    发表于 12-23 08:12

    掌握通信协议的研究方法

    、coap,你就能理解整个网络通信协议是怎么回事了。这种理解是不但会用,而且知道为什么是这个样子,而不是似懂非懂。
    发表于 01-13 06:09

    FPGA上实现网络通信用的协议

    TCP/IP协议TCP/IP协议是Internet上使用的主要
    发表于 03-27 09:01

    最新网络通信协议手册

    最新网络通信协议手册
    发表于 03-24 22:08 73次下载

    在LabVIEW中利用TCP_IP协议实现网络通信_labview程序案例

    程序案例 在LabVIEW 中利用TCP_IP协议实现网络通信
    发表于 01-12 15:45 679次下载

    工业网络通信概念及FLEX产品介绍

    工业网络通信概念及FLEX产品介绍
    的头像 发表于 03-08 10:57 1924次阅读
    工业<b class='flag-5'>网络通信</b>新<b class='flag-5'>概念及</b>FLEX产品介绍

    网络通信协议有哪些

    网络通信协议有很多种,目前应用最广泛的有 TCP/IP协议 (Transmission Control Protocol/Internet Protocol,传输控制
    的头像 发表于 03-23 14:21 3355次阅读
    <b class='flag-5'>网络通信协议</b>有哪些

    网络通信OSI协议TCP/IP协议

    TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同
    发表于 05-06 17:06 2213次阅读

    IP地址、端口号、通信协议的相关知识 TCP和UDP通信协议简述

    网络编程有三个要素,分别是IP地址、端口号和通信协议。本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。首先,我们需要了解一下
    的头像 发表于 07-18 11:20 1998次阅读
    <b class='flag-5'>IP</b>地址、端口号、<b class='flag-5'>通信协议</b>的相关知识 <b class='flag-5'>TCP</b>和UDP<b class='flag-5'>通信协议</b>简述