当前位置:谷粒网 > 干货分享 > 正文

协议栈是什么意思? (蓝牙协议栈是什么意思)

作者:卞馨荣 干货分享 2023-05-31 04:32:30 阅读:23

协议栈(Protocol Stack)是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。使用最广泛的是英特网协议栈,由上到下的协议分别是:应用层(HTTP,FTP,TFTP,TELNET,DNS,EMAIL等),运输层(TCP,UDP),网络层(IP),链路层(WI-FI,以太网,令牌环,FDDI,MAC等),物理层。

协议栈是什么意思? (蓝牙协议栈是什么意思)

TCP/IP协议栈简介

TCP/IP协议叫做传输控制/网际协议,它是Internet国际互联网络的基础。TCP/IP是网络中使用的基本的通信协议。

虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。

TCP/IP协议的基本传输单位是数据包(datagram),TCP协议负责把数据分成若干个数据包,并给每个数据包加上包头(就像给一封信加上信封),包头上有相应的编号,以保证在数据接收端能将数据还原为原来的格式,IP协议在每个包头上再加上接收端主机地址,这样数据找到自己要去的地方,如果传输过程中出现数据丢失、数据失真等情况,TCP协议会自动要求数据重新传输,并重新组包。总之,IP协议保证数据的传输,TCP协议保证数据传输的质量。TCP/IP协议数据的传输基于TCP/IP协议的四层结构:应用层、传输层、网络层、接口层,数据在传输时每通过一层就要在数据上加个包头,其中的数据供接收端同一层协议使用,而在接收端,每经过一层要把用过的包头去掉,这样来保证传输数据的格式完全一致。

TCP/IP协议介绍

TCP/IP的通讯协议

这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。

TCP/IP整体构架概述

TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

TCP/IP中的协议

以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:

1. IP

网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。

2. TCP

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。

3.UDP

UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。

欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

4.ICMP

ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。

5. TCP和UDP的端口结构

TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。

两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:

源IP地址 发送包的IP地址。

目的IP地址 接收包的IP地址。

源端口 源系统上的连接的端口。

目的端口 目的系统上的连接的端口。

端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。

计算机网络协议栈:IP协议

互联网由一整套协议构成,自上而下而下可以分为如下4层:

IP协议定义了一套自己的地址规则,称为IP地址。它实现了路由功能,允许某个局域网的A主机向另一个局域网的B主机发送信息。

IP地址包含网络号和主机号,IPv4协议规定的IP地址由32位二进制数组成,每8位一段,用十进制表示每段地址,可以表示的范围为0.0.0.0~255.255.255.255。IPv6协议规定的IP地址由128位二进制数组成,可以表示更多的网络与主机,目前IPv4能够表示的IP地址即将使用殆尽,不久的将来会被IPv6取代。

路由是把数据从源地址经过网络传输到目标地址的过程,它包括2个主要动作:选择路径、数据传输。

路由器(Router)是一种负责寻径的网络设备,它通过路由表为数据传输选择最佳路径。路由表包含网络地址以及各地址之间距离的清单,路由器使用最少时间算法或最优路径算法来调整信息传递的路径。

路由表可以静态指定,也可以动态学习(基于rip2, ospf等协议)。路由表中的路由条目描述了目标地址、下一跳(nexthop)。目标地址可以分为主机路由、网络路由、默认路由(0.0.0.0/0.0.0.0),主机路由表示局域网中的主机,网络路由表示不同的局域网。

网关(Gateway)就是一个网络连接到另一个网络的“关口”,它负责不同网络之间的通信。TCP/IP协议里的网关是其中的一种,实质上是一个网络通向其他网络的IP地址,此IP地址上的设备必须具有路由功能,这些设备有:路由器、启用路由协议的服务器、代理服务器。

比如如果网络A(192.168.1.0)中的主机向网络B(192.168.2.0)中的主机发送数据,因为两个主机不在同一网络,所以数据包会被转发给A的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B中的主机。

IP协议就是网际协议,工作在第三层,即网际层。

IP不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。如果出错可以通过ICMP报告,ICMP在IP模块中实现。

IP的责任就是把数据 从源传送到目的地 。它不负责保证传送可靠性,流控制,包顺序和其它对于主机到主机协议来说很普通的服务。

IP地址

IP地址是 IP协议 提供的一种统一的 地址格式 ,它为互联网上的每一个网络和每一个 网卡 分配一个 逻辑地址 ,以此来屏蔽 物理地址 的差异。

公有地址与私有地址

IP地址有两种类型,一种是公有地址由Inter NIC(Internet Network Information Center 因特网 信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问 因特网 ;另一种是私有地址留给组织机构内部使用。其中以下IP段用于给私有地址使用:

其中以下三个范围是组织内部使用的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。(拓展:CIDR、DNS相关概念)

IP地址的分配方式

静态分配、动态分配(DHCP)、零配置保留地址

LAN、WAN、IP路由

路由器有两个作用,一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。路由器可以在无网络或有网络时可以让几台电脑同时互联,并且进行局域网连接。

一般的家用路由器有两种端口,一个是LAN,另一个是WAN;其中WAN一般连接互联网,而LAN连接局域网;(拓展:VLAN、VXLAN)

LAN网络工作在第二层,主要通过MAC地址寻找目标网卡,二层网络通过网桥和二层交换机构建网络。

WAN网络工作在第三层,跨LAN通过路由器进行路由,基于IP地址寻找目标局域网,然后基于ARP协议获取目标IP地址对应的MAC地址。

子网的划分

子网用来判断两个网卡是否属于同一个网络(公有地址是否属于同一个二层网络、私有地址在一个局域网内是否属于同一个网络),同一个网络的网卡可以ping通,具体根据子网掩码来确认。(172.16.0.1,255.255.255.255)便标志着局域网内部唯一的主机172.16.0.1,如地址(10.0.0.0,255.255.255.0)则表示从10.0.0.0到10.0.0.254的子网,其中10.0.0.255是广播地址。

DNS

@TODO

局域网内是如何通过IP协议工作的?

局域网是如何通过IP协议访问互联网的?

VPN是如何访问私网的?

虚拟机的网络模型

Docker单机网络模型

Docker多机网络模型

四、局域网与互联网

ifconfig:查看mac电脑网络信息

可以看到本机的网络IP是192.168.199.108,对应的是C类私有Ip,说明我的电脑运行在一个局域网;这也是为什么需要连VPN才能访问公司网络的原因(因为你当前主机所在的局域网和公司所在的局域网是不同的网络,虽然可能拥有一样的局域网IP),那么为啥本机可以连互联网呢,这就需要明白一件事,可能整个局域网都使用同一个互联网IP进行访问互联网,只是在局域网和互联网之间会存在NAT设备做转换,在访问互联网时将你的IP协议请求地址改为互联网IP,同时维护一个本次消息和你自身局域网IP的映射(根据转换的地址分为SNAT和DNAT两种)

五、路由

路由器和主机一样拥有IP地址,只是从设备上更专业,本质上大部分电脑也拥有路由转发的功能,对于mac电脑而言开启ip4路由转发功能的命令如下:sysctl -w net.inet.ip.forwarding=1,开启这个配置mac和路由器一样拥有路由的功能了。

netstat -nr:查看mac电脑路由表信息

路由表主要是为了确认要访问的地址要去哪个网关Gateway找,如果Gateway就是本身说明本机就知道目标地址在哪里,可以直连,比如第二、第三排(127开头的都是本机),169.254开头的本机不知道IP对应的机器在哪里需要走link#9这个网关(直接发给link#9这个网关),如果Gateway里显示的直接说mac地址猜测三本机知道那些IP对应的主机的物理地址(Max显示比较怪,Linux的route -n显示的更好理解)

如果路由表里记录的目标IP没有相应的路由记录那么会走default路由,也就是交给192.168.199.1

traceroute:查看mac电脑跟踪路由信息(应该类似ping)

本质上是先通过DNS服务获取百度对应的IP地址,结果发现百度有多个互联网地址,选择了180.101.49.12可以看到我的mac所连的子网的网关就是192.168.199.1,因为本机路由表没有百度的路由,所以交给了默认路由192.168.199.1(hiwifi,***网)这个hiwifi连的是一个局域网,之后便连到了互联网的IP了,116.233.176.1不属于任何私有地址,之后不断路由最终到了百度在互联网暴露的IP地址,之后通过百度的网关最终访问了百度某个集群的服务。

六、虚拟机如何联通网络

七、Linux计算机网络支持

1.Linux的Netflix与Iptables

2.Linux计算机网络虚拟化-网络命名空间

3.Linux计算机网络虚拟化-虚拟的计算机网络协议栈

八、Docker Single-host Network

1.none

2.host

3.container

4.bridge

九、Docker Multi-host Network

以上就是关于协议栈是什么意思?全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

版权声明:本文内容由用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。转载请注明出处:https://www.gulizw.com/guli/163189.html

网友评论

  • 随机文章

  • 热门文章

  • 最新文章