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

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

3天内不再提示

到底什么是TCP/IP协议栈,看完这篇你就明白!

才茂通信 2022-12-09 15:21 次阅读

一谈到TCP/IP协议栈,相信不少小白都处于暴躁的边缘,只懂其一不知其二。没关系,看完这篇你就知道啦!

我们先简单了解下TCP/IP协议,该协议最早得名于上世纪80年代,由于其优异性,很快便成为主流网络通信协议。后面出现的各类协议(http、ip、dns、tcp、arp等)都被整体纳入这一协议体系中去,被统称为“TCP/IP协议栈”,“TCP/IP协议栈”名称就是这么由此而来的。

对应这一协议栈,同时发展出了TCP/IP 参考模型,该模型是一个抽象的分层模型,TCP/IP 协议栈中的所有协议被归类到这一模型的4个层次中(四个层分别是:链路层、网络层、传输层、应用层),每一层都呼叫它的下一层所提供的协议来完成其需求,各个层次间互相协作,由此完成了互联网通信的主要工作。

pYYBAGOSioeAbHs9AADh1-UaQoc621.png

*由于OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型*

为了让你对通信过程有一个更好的理解,我将以http请求通信的过程为例子,从TCP/IP四个层次出发,对应各个层次的通信实体,看各个协议是如何在这些通信实体中发生作用。

在这之前我们先了解下网络通信中的三个地址:IP地址、Mac地址以及端口号,三者分别代表:

IP地址:网络中互联的主机和路由器的标识

Mac地址:每个网卡硬件的物理地址

端口号:识别同一个主机上不同的应用程序,也可以理解为程序地址

当你输入一个网址并按下回车键的时候:应用层协议会先对该请求包做格式定义;紧接着传输层协议加上双方的端口号,确认双方通信的应用程序;然后网络层协议加上双方的IP地址,确认双方的网络位置;最后链路层协议加上双方的MAC地址,确认双方的物理位置,以太网协议会通过对电信号数据进行分组,形成数据帧,再采用广播方式,通过传输介质发送给对方主机。而对于不同网段,该数据包先会转发给网关路由器,经过多次转发后,最终被发送到目标主机。目标机接收到数据包后,采用对应的协议,对帧数据进行组装,然后再通过一层一层的协议进行解析,最终被应用层的协议解析并交给服务器处理。在这个过程中,各项协议确保了传输过程的实现以及数据的安全。

IP地址相当于是人所在的区域,MAC地址相当于是人的身份证号码,对于网络传输最终都是以MAC地址来实现的。

我们来梳理一下每层模型的职责:

  1. 应用层:定义数据格式,并按照对应的格式解读数据
  2. 传输层:定义端口,确认主机上应用程序的身份,并将数据包交给对应的应用程序
  3. 网络层:定义IP地址,确认主机所在的网络位置,并通过IP进行MAC寻址,对外网数据包进行路由转发
  4. 链路层:以字节为单位对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据

以上内容是对TCP/IP四层模型做了简单的介绍,而实际上每一层模型都有很多协议,每个协议要做的事情也很多,但我们首先得有一个清晰的脉络结构,把基本的作用都掌握了,然后再去丰富细节,就比较好理解了。

关注我,用最通俗的文字带你了解物联网~

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

    关注

    2

    文章

    141

    浏览量

    33622
收藏 人收藏

    评论

    相关推荐

    什么是socket编程 socket与tcp/ip协议的关系

    基于TCP/IP协议族,这是一组用于网络通信的协议,包括传输控制协议TCP)和互联网
    的头像 发表于 11-01 16:01 238次阅读

    芯驿电子 ALINX 推出全新 IP 核产品线,覆盖 TCP/UDP/NVMe AXI IP

    10GBe/40GBe UDP 协议 IP 核、10GbE TCP/IP 协议
    的头像 发表于 10-30 17:39 279次阅读
     芯驿电子 ALINX 推出全新 <b class='flag-5'>IP</b> 核产品线,覆盖 <b class='flag-5'>TCP</b>/UDP/NVMe AXI <b class='flag-5'>IP</b> 核

    Linux网络协议的实现

    网络协议是操作系统核心的一个重要组成部分,负责管理网络通信中的数据包处理。在 Linux 操作系统中,网络协议(Network Stack)负责实现
    的头像 发表于 09-10 09:51 286次阅读
    Linux网络<b class='flag-5'>协议</b><b class='flag-5'>栈</b>的实现

    串口服务器和TCP/IP协议是什么关系

    串口服务器与TCP/IP协议之间存在着紧密而复杂的关系。这种关系主要体现在串口服务器如何利用TCP/I
    的头像 发表于 08-25 17:35 1505次阅读

    一文了解TCP/IP协议

    TCP/IP协议是现代计算机网络通信的基础,是互联网及局域网广泛使用的一套协议TCP/IP
    的头像 发表于 08-07 15:38 1662次阅读
    一文了解<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>

    华纳云:TCP IP协议的发展和优势

    TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是互联网和现代计算机网络的基础
    的头像 发表于 07-25 16:49 483次阅读

    TCP IP协议属性设置中的IP配置

    在现代网络中,TCP/IP协议是基础架构的重要组成部分。掌握TCP/IP协议属性设置中的
    的头像 发表于 07-23 10:10 481次阅读

    TCP/IP协议的设计与实现_中文

    电子发烧友网站提供《TCP/IP协议的设计与实现_中文.pdf》资料免费下载
    发表于 07-03 11:28 4次下载

    LwIP协议源码详解—TCP/IP协议的实现

    电子发烧友网站提供《LwIP协议源码详解—TCP/IP协议的实现.pdf》资料免费下载
    发表于 07-03 11:22 3次下载

    基于MM32F5270的Ethernet实现LwIP协议移植

    LwIP是轻量化的TCP/IP协议,由瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP
    的头像 发表于 06-21 10:28 1152次阅读
    基于MM32F5270的Ethernet实现LwIP<b class='flag-5'>协议</b><b class='flag-5'>栈</b>移植

    Microchip TCP/IP 协议应用笔记

    电子发烧友网站提供《Microchip TCP/IP 协议应用笔记.pdf》资料免费下载
    发表于 04-17 14:16 1次下载

    ethernetif_input和tcpip协议线程的作用

    tcpip协议线程是lwIP协议的核心线程,负责处理TCP/IP
    的头像 发表于 03-20 10:01 1293次阅读

    使用LwIP协议浅析实战分析(i.MX RT)

    LWIP协议与网络分层 LwIP(Light weight IP),是一种轻量化且开源的TCP/IP协议
    的头像 发表于 02-02 17:05 1693次阅读
    使用LwIP<b class='flag-5'>协议</b><b class='flag-5'>栈</b>浅析实战分析(i.MX RT)

    通信网络协议之UDP协议威廉希尔官方网站 解析

    在通常的网络协议中,TCP/IP协议是一个常见的示例,其中UDP和
    发表于 02-01 11:00 947次阅读
    通信网络<b class='flag-5'>协议</b><b class='flag-5'>栈</b>之UDP<b class='flag-5'>协议</b>威廉希尔官方网站
解析

    利用 MPLAB® Harmony v3 TCP/IP协议在SAM E54 MCU 上实现文件传输协议

    电子发烧友网站提供《利用 MPLAB® Harmony v3 TCP/IP协议在SAM E54 MCU 上实现文件传输协议.pdf》资料免
    发表于 12-18 11:03 0次下载
    利用 MPLAB® Harmony v3 <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b><b class='flag-5'>栈</b>在SAM E54 MCU 上实现文件传输<b class='flag-5'>协议</b>