以太网是当今现有局域网采用的最通用的通信协议标准,组建于七十年代早期。Ethernet(以太网)是一种传输速率为10Mbps的常用局域网(LAN)标准。在以太网中,所有计算机被连接一条同轴电缆上,采用具有冲突检测的载波感应多处访问(CSMA/CD)方法,采用竞争机制和总线拓朴结构。基本上,以太网由共享传输媒体,如双绞线电缆或同轴电缆和多端口集线器、网桥或交换机构成。在星型或总线型配置结构中,集线器/交换机/网桥通过电缆使得计算机、打印机和工作站彼此之间相互连接。
以太网具有的一般特征概述如下:
共享媒体:所有网络设备依次使用同一通信媒体。
广播域:需要传输的帧被发送到所有节点,但只有寻址到的节点才会接收到帧。
CSMA/CD:以太网中利用载波监听多路访问/冲突检测方法(CarrierSenseMultipleAccess/CollisionDetection)以防止twp或更多节点同时发送。
MAC地址:媒体访问控制层的所有Ethernet网络接口卡(NIC)都采用48位网络地址。这种地址全球唯一。
Ethernet基本网络组成:
共享媒体和电缆:10BaseT(双绞线),10Base-2(同轴细缆),10Base-5(同轴粗缆)。
转发器或集线器:集线器或转发器是用来接收网络设备上的大量以太网连接的一类设备。通过某个连接的接收双方获得的数据被重新使用并发送到传输双方中所有连接设备上,以获得传输型设备。
网桥:网桥属于第二层设备,负责将网络划分为独立的冲突域获分段,达到能在同一个域/分段中维持广播及共享的目标。网桥中包括一份涵盖所有分段和转发帧的表格,以确保分段内及其周围的通信行为正常进行。
交换机:交换机,与网桥相同,也属于第二层设备,且是一种多端口设备。交换机所支持的功能类似于网桥,但它比网桥更具有的优势是,它可以临时将任意两个端口连接在一起。交换机包括一个交换矩阵,通过它可以迅速连接端口或解除端口连接。与集线器不同,交换机只转发从一个端口到其它连接目标节点且不包含广播的端口的帧。
以太网协议:IEEE802.3标准中提供了以太帧结构。当前以太网支持光纤和双绞线媒体支持下的四种传输速率:
10Mbps_10Base-TEthernet(802.3)
100Mbps_FastEthernet(802.3u)
1000Mbps_GigabitEthernet(802.3z))
10GigabitEthernet_IEEE802.3ae
以太网简史:
1972年,罗伯特??梅特卡夫(RobertMetcalfe)和施乐公司帕洛阿尔托研究中心(XeroxPARC)的同事们研制出了世界上第一套实验型的以太网系统,用来实现XeroxAlto(一种具有图形用户界面的个人工作站)之间的互连,这种实验型的以太网用于Alto工作站、服务器以及激光打印机之间的互连,其数据传输率达到了2.94Mbps。
梅特卡夫发明的这套实验型的网络当时被称为AltoAloha网。1973年,梅特卡夫将其命名为以太网,并指出这一系统除了支持Alto工作站外,还可以支持任何类型的计算机,而且整个网络结构已经超越了Aloha系统。他选择“以太”(ether)这一名词作为描述这一网络的特征:物理介质(比如电缆)将比特流传输到各个站点,就像古老的“以太理论”(luminiferousether)所阐述的那样,古代的“以太理论”认为“以太”通过电磁波充满了整个空间。就这样,以太网诞生了。
最初的以太网事一种实验型的同轴电缆网,冲突检测采用CSMA/CD。该网络的成功,引起了大家的关注。1980年,三家公司(数字设备公司、Intel公司、施乐公司)联合研发了10M以太网1.0规范。最初的IEEE802.3即基于该规范,并且与该规范非常相似。802.3工作组于1983年通过了草案,并于1985年出版了官方标准ANSI/IEEEStd802.3-1985。从此以后,随着技术的发展,该标准进行了大量的补充与更新,以支持更多的传输介质和更高的传输速率等。
1979年,梅特卡夫成立了3Com公司,并生产出第一个可用的网络设备:以太网卡(NIC),它是允许从主机到IBM终端和PC机等不同设备相互之间实现无缝通信的第一款产品,使企业能够以无缝方式共享和打印文件,从而增强工作效率,提高企业范围的通信能力。
以太网和IEEE802.3:
以太网是Xerox公司发明的基带LAN标准。它采用带冲突检测的载波监听多路访问协议(CSMA/CD),速率为10Mbps,传输介质为同轴电缆。以太网是在20世纪70年代为解决网络中零散的和偶然的堵塞而开发的,而IEEE802.3标准是在最初的以太网技术基础上于1980年开发成功的。现在,以太网一词泛指所有采用CSMA/CD协议的局域网。以太网2.0版由数字设备公司、Intel公司和Xerox公司联合开发,它与IEEE802.3兼容。
以太网和IEEE802.3通常由接口卡(网卡)或主电路板上的电路实现。以太网电缆协议规定用收发器将电缆连到网络物理设备上。收发器执行物理层的大部分功能,其中包括冲突检测及收发器电缆将收发器连接到工作站上。
IEEE802.3提供了多种电缆规范,10Base5就是其中的一种,它与以太网最为接近。在这一规范中,连接电缆称作连接单元接口(AUI),网络连接设备称为介质访问单元(MAU)而不再是收发器。
1.以太网和IEEE802.3的工作原理
在基于广播的以太网中,所有的工作站都可以收到发送到网上的信息帧。每个工作站都要确认该信息帧是不是发送给自己的,一旦确认是发给自己的,就将它发送到高一层的协议层。
在采用CSMA/CD传输介质访问的以太网中,任何一个CSMA/CDLAN工作站在任何一时刻都可以访问网络。发送数据前,工作站要侦听网络是否堵塞,只有检测到网络空闲时,工作站才能发送数据。
在基于竞争的以太网中,只要网络空闲,任一工作站均可发送数据。当两个工作站发现网络空闲而同时发出数据时,就发生冲突。这时,两个传送操作都遭到破坏,工作站必须在一定时间后重发,何时重发由延时算法决定。
2.以太网和IEEE802.3服务的差别
尽管以太网与IEEE802.3标准有很多相似之处,但也存在一定的差别。以太网提供的服务对应于OSI参考模型的第一层和第二层,而IEEE802.3提供的服务对应于OSI参考模型的第一层和第二层的信道访问部分(即第二层的一部分)。IEEE802.3没有定义逻辑链路控制协议,但定义了几个不同物理层,而以太网只定义了一个。
osi七层参考模型
1)物理层
物理层所处理的数据单位是比特(bit),物理层向上为数据链路层提供物理链路,实现透明的比特流(bitstream)传输服务,物理层向下与物理媒体相连,要确定连接物理媒体的网络接口的机械、电气、功能和过程方面的特性。
(2)数据链路层
数据链路层负责在单个链路上的结点间传送以帧(frame)为PDU的数据,在不太可靠的物理链路上实现可靠的数据传输。数据链路层的主要功能包括:建立、维持和释放数据链路的连接,链路的访问控制,流量控制和差错控制。
(3)网络层
网络层传送的PDU称为分组或包(packet),在物理网络间传送分组,负责将源端主机的报文通过中间转发结点传送到目的端。网络层是通信子网的最高层,为主机提供虚电路和数据报两种方式的服务。网络层主要负责分组转发和路由选择,根据路由表把分组逐跳地由源站传送到目的站,并能适应网络的负载及拓扑结构的变化,动态地更新路由表。
(4)传输层
传输层传输的PDU称为报文(message),传输层为源结点和目的结点的用户进程之间提供端到端的可靠的传输服务。端到端的传输指的是源结点和目的结点的两个传输层实体之间,不涉及路由器等中间结点。为了保证可靠的传输服务,传输层具备以下一些功能:面向连接、流量控制与拥塞控制、差错控制相网络服务质量的选择等。
(5)会话层
会话层在传输层服务的基础上增加控制会话的机制,建立、组织和协调应用进程之间的交互过程。会话层提供的会话服务种类包括双工、半双工和单工方式。会话管理的一种方式是令牌管理,只有令牌持有者才能执行某种操作。会话层提供会话的同步控制,当出现故障时,会话活动在故障点之前的同步点进行重复,而不必从头开始。
(6)表示层
表示层定义用户或应用程序之间交换数据的格式,提供数据表示之间的转换服务,保证传输的信息到达目的端后意义不变。
(7)应用层
应用层直接面向用户应用,为用户提供对各种网络资源的方便的访问服务。
这一篇讲HTTP、Websocket、邮件传输协议、远程登录协议、文件传输协议、文件共享协议以及网络管理协议。下一篇再讲物联网常用的Modbus协议、MQTT、协议、CoAP协议、OPC框架。
第四层:应用层协议之一
应用层是TCP/IP模型中的最上层,直接与应用程序交互,为应用程序提供网络通信服务。
提供各种应用服务、对数据进行特定的处理和格式化、与用户交互、定义应用程序之间通信的规则和协议、适应不同的应用场景和需求、为上层应用提供统一的接口。
TCP通过不同的端口号,来把信息转达给应用程序。端口号类似于房间的门,TCP快递上门了,送到哪个房间,就是用端口号来充当门牌号的。
应用层协议主要包括基于TCP的MQTT、DDS、Modbus-TCP、XMPP、AMQP、POP3、HTTP、HTTPS、FTP、Telnet、SMTP、Samba、CIFS、NFS。
应用层协议还包括基于UDP的DNS、SNMP、TFTP、DHCP、CoAP、Modbus-UDP、RIP、NTP。
还有即不基于TCP,也不基于UDP的应用层协议。
1.HTTP协议超文本传输协议,HyperTextTransferProtocol,HTTP是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(useragent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(originserver)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
通俗讲,HTTP是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。「引用小林coding」
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(UniformResourceIdentifiers,URI)来标识,也叫URL。
组成部分HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。
请求部分:
请求行:包含请求方法(如GET、POST等)、请求的资源路径和HTTP版本。请求头:包含各种描述请求属性的字段,如Accept(接受的内容类型)、content-type(发送的数据类型)、user-agent(用户代理信息)等。请求体(可选):当有具体数据要发送时,如POST请求提交表单数据等。
响应部分:
响应行:包含HTTP版本、状态码(如200表示成功、404表示未找到等)和状态描述。响应头:类似请求头,包含关于响应的各种属性信息,如content-length(响应体长度)、content-type(响应的数据类型)等。响应体:实际返回给客户端的数据内容。
工作原理由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,以及返回的内容,如请求的文件、错误消息、或者其它信息。
基于HTTP通信的流程:
HTTP9种请求方法:
啥是幂等?幂等意味着对一个资源进行多次相同的操作,其产生的效果与一次操作是相同的。
特点简单快速:请求方法和首部字段定义简洁,传输效率较高。灵活:可以传输各种类型的数据。无状态:服务器不保存客户端的状态信息。
应用网页浏览:浏览器与服务器之间的数据交互。WebAPI开发:移动端或其他客户端与服务器端的通信。内容分发:如静态资源的传输。
各种基于Web的应用。
2.HTTPS协议超文本传输安全协议,HyperTextTransferProtocolSecure,HTTPS是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。
HTTP的URL是由“http://”起始与默认使用端口80,而HTTPS的URL则是由“https://”起始与默认使用端口443。
3.WebSocket协议WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。
他的出现,是因为HTTP是半双工,采用的是客户端请求服务端才应答,不请求就无法主动给用户推送数据(采用轮休可以实现伪主动推送)。WebSocket允许服务端主动向客户端推送数据,比如浏览网页的时候,主动给你推一个弹窗广告。
对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用WebSocket协议。
4.邮件协议:STMP、POP、IMAP邮件协议是用于规范电子邮件在不同系统和设备之间传输、接收、存储和管理等操作的一组规则和标准。
SMTP协议SMTP:SimpleMailTransferProtocol,即简单邮件传输协议。将邮件从发送方的邮件服务器传输到接收方的邮件服务器。
POP协议POP:PostOfficeProtocol,即邮局协议,允许用户从邮件服务器上把邮件下载到本地计算机进行离线阅读和管理。
IMAP协议IMAP:InternetMessageAccessProtocol,即互联网消息访问协议,与POP不同,它可以让用户在多个设备上同步邮件状态,比如已读、未读等。(SMTP专注于邮件发送,POP适合简单的邮件下载与离线管理,而IMAP则为用户提供了更强大和灵活的邮件在线管理体验。)
某些邮件客户端,需要整合qq邮箱、网易邮箱、Gmail等等,就需要配置SMTP、POP、IMAP。
5.远程登录协议Telnet电传打字机网络Telnet:TeletypeNetwork。当用户在本地终端上发起TELNET连接请求时,本地的TELNET客户端与远程主机的TELNET服务器建立TCP连接。连接建立后,客户端与服务器之间开始进行交互。
SSH安全外壳协议SSH:SecureShell,安全外壳协议。身份验证、通信加密、建立安全通道。
这两个大家都熟悉,远程登录服务器的时候用到其中一种或者两种。
6.文件传输协议FTP协议FTP:FileTransferProtocol,即文件传输协议。户在本地计算机和远程服务器之间进行文件的上传和下载操作,方便文件的共享和交换。
TFTP协议TFTP,TrivialFileTransferProtocol,简单文件传输协议位于应用层,基于UPD无连接、简单的文件传输协议。
TFTP的应用场景包括:
网络设备的配置文件传输。某些嵌入式系统中软件的更新和部署。
特点:简单、开销小。
7.应用层文件共享协议文件服务器文件服务器包含Windows文件服务器、UNIX文件服务器以及Linux文件服务器,具体是哪种类型取决于所采用的操作系统。
其中,Windows文件服务器利用常见的Internet文件系统(CIFS)来向客户端共享存储。通常情况下,这可通过在计算机资源管理器中的属性/共享操作以及在其他计算机上连接网络驱动器来实现对文件夹的共享。文件服务器因操作系统的不同而显得极为重要。
Windows–Windows:CIFS(Windows自助共享)
Linux–Windows:SMB(使用Samba)
Linux–Linux:NFS
Samba服务器消息块Samba:ServerMessageBlock。它主要用于实现Linux和Windows系统之间的文件和打印共享等交互操作。可以让Linux系统模拟Windows文件共享服务器的功能,方便不同操作系统之间的资源共享,基于TCP。
CIFS通用互联网文件系统CIFS:CommonInternetFileSystem。是微软主导开发的一种网络文件共享协议。它基于SMB(ServerMessageBlock)协议,广泛应用于Windows网络环境中。基于TCP。
NFS网络文件系统NFS:NetworkFileSystem。主要用于在Unix/Linux系统之间进行文件共享。具有高效、灵活的特点,能够方便地实现跨网络的文件访问和共享。主要基于TCP。
8.网络管理协议SNMP简单网络管理协议SNMP:SimpleNetworkManagementProtocol,简单网络管理协议。网络监控、故障管理、配置管理、性能管理。大家熟悉的网吧的网管,就是操作SNMP服务器程序来管理网吧网络的。
DNS域名系统DNS:DomainNameSystem,域名系统。维护主机名和IP之间关系,根据域名寻找IP。
DNS的根服务器不给出具体答案,而是给下一级服务器的地址,只指路不带路。
域名和IP的对应关系,保存在电脑中的hosts文件中,查看本地的域名表hosts文件:cat/etc/hosts
NAT网络地址转换NAT:NetworkAddressTranslator是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。是因为IPv4不够分。
除转换IP地址外,还出现了可以转换TCP、UDP端口号的NAPT(NetworkAddressPortsTranslator)技术,由此可以实现用一个全局IP地址与多个主机的通信。
NAT把同个公司、家庭、学校内的主机对外部通信时,把私有IP地址转换成公有IP地址。
DHCP动态主机配置协议DHCP:DynamicHostConfigurationProtocol,DHCP可以自动分配IP、子网掩码、网关、DNS。使用DHCP之前,首先要架设一台DHCP服务器”。然后将DHCP所要分配的IP地址设置到服务器上。此外,还需要将相应的子网掩码、路由控制信息以及DNS服务器的地址等设置到服务器上。
DHCP客户端使用的端口68,服务端使用端口67,使用的UDP应用层的协议。为什么一开始没有IP的设备能请求到DHCP服务器数据,因为没有IP的设备,默认IP是0.0.0.0。
DHCP一般不为服务器分配IP,因为他们要使用固定IP,所以DHCP一般只为办公环境的主机分配IP。
DHCP服务器和客户端一般需要在一个局域网内,在为客户端分配IP的时候需要进行多次广播。不在一个局域网内,需要用到DHCP中继代理。
有三种分配方式自动分配:MAC地址与IP绑定,适用于服务器、打印机或网络设备。动态分配:IP使用时有时间限制的,到期需要续租,否则就会释放,适用于大量移动设备连接到网络的场景,如公司办公室或公共无线网络。手动分配:手动分配是由DHCP服务器管理员专门为客户端指定IP地址。有利于网络监控和管理。
RIP路由信息协议RIP,RoutingInformationProtocol,路由信息协议是一种内部网关协议(IGP),不常用。
RIP协议规定网络里的每一个路由器均需维护由其自身至其他每一个目的网络的距离记录,即距离向量。RIP协议对于距离的界定如下:其一,从一个路由器到直接相连的网络的距离被定义为1;其二,从一个路由器到非直接连接的网络的距离被定义为所历经的路由器数量加1。RIP协议中的距离又被称作跳数,并且RIP协议准许一条路径最多仅能包含15个路由器。故而,当距离等于16时就等同于不可达。
NTP网络事件协议NTP(NetworkTimeProtocol,网络时间协议),基于UDP的一种用于计算机时间同步的应用层协议,用于在网络中实现时钟同步。
后记前三篇文章讲述的是TCP/IP模型中的网络接口层、网络层、传输层,这里到了第四层应用层。由于协议比较多,就分两篇来介绍。
理解TCP/IP四层框架是学习物联网相关协议的基础。学习协议是做好物联网设备数据接入、监控、报警、下控、运维、数据分析、智控的基础。
我阅读了大量的书籍和文章,汇总出了TCP/IP四层框架的主要协议、物联网设备的主要协议。工作量之大,超出预期。我看了B站《希赛关于软考网络工程师的全套视频教程》,看了《图解TCP/IP》,看了大量的文章。又结合之前的物联网行业的从业经验,整理出来这篇文章。期望大家的鼓励与支持,欢迎大家交流。
参考文献本文由@跃曰原创发布于人人都是产品经理。未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。