tokenpocket安卓官方版|ethernet tcp ip

作者: tokenpocket安卓官方版
2024-03-14 20:00:00

工业以太网三剑客之——EtherNet/IP - 知乎

工业以太网三剑客之——EtherNet/IP - 知乎首发于编程456切换模式写文章登录/注册工业以太网三剑客之——EtherNet/IPPou光明Linux 、嵌入式 C 、Qt1、什么是EtherNet/IP ?EtherNet/IP 是通用工业协议 (CIP) 的名称,通过标准实现以太网(IEEE 802.3 和 TCP/IP 协议套件)。EtherNet/IP 于 2001 年推出,如今已成为最成熟、最成熟、最完整的工业协议EtherNet/IP 是以下家族的成员在其上层实施 CIP 的网络(图1)。EtherNet/IP 和 CIP 由 ODVA 管理。 ODVA 发布 EtherNet/IP™ 规范并帮助通过一致性测试确保合规性。DeviceNet, CompoNet & ControlNet share the same CIP application layer with EtherNet/IP2、什么是CIP ?Common Industrial Protocol (CIP)是一个独立于媒体、基于连接、面向对象的协议,专为自动化应用而设计。CIP为用户提供了整个制造企业的统一通信架构。“EtherNet/IP”中的“IP”指的是Industrial Protocol(工业协议)。 EtherNet/IP 在标准 IEEE 802.3 和 TCP/IP 协议套件上利用 CIP(图2)。CIP完全兼容以太网和互联网协议支持多协议EtherNet/IP和OSI 对比3、什么是ODVA ?ODVA 是一个国际协会,成员来自世界领先的自动化公司。 总的来说,ODVA 和其成员支持基于通用协议的网络技术工业协议 (CIP™)。ODVA 本身成立于 1995 年,是一个由 Rockwell Automation(罗克韦尔.美国)、Cisco(思科.美国)、Schneider Electric(施耐德.法国)、Omron(欧姆龙.日本) 和 Bosch Rexroth(博世力士乐.德国) 等自动化公司组成的联合体,旨在推动工业自动化的开放和可互操作通信。根据 ODVA 的数据,EtherNet/IP 在工业以太网采用中处于领导地位,2017 年占 25% 的市场份额,2018 年占 28% 的市场份额。4、逐鹿世界2023年,PROFINET和EtherNet/IP各占18%并列第一,EtherCAT以12%紧随其后。在欧洲和中东地区,EtherNet/IP、PROFINET和EtherCAT处于领先地位,其次是PROFIBUS和Modbus-TCP。美国市场由EtherNet/IP主导,EtherCAT发展势头强劲,市场份额不断扩大。亚洲市场相对分化,PROFINET的市场份额最高,其次是EtherNet/IP,而CC-Link/CC-Link IE Field、EtherCAT、PROFIBUS和Modbus(RTU/TCP)也是强有力的竞争者。5、实际使用对于PLC而言,直接加载eds文件就行了。刚刚现场负责集成的兄弟打电话在沟通问题,中国制造业的工程师很辛苦,追赶之路道阻且长。最后,前3个问题均摘自于《PUB00213R0_EtherNetIP_Developers_Guide》。有需要的小伙伴可在公众号后台留言。发布于 2023-08-01 20:36・IP 属地江苏工业以太网​赞同​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录编程456分享我的编程

技术解读PROFINET、Ethernet/IP等7种主流工业以太网 - 知乎

技术解读PROFINET、Ethernet/IP等7种主流工业以太网 - 知乎首发于智能制造之家切换模式写文章登录/注册技术解读PROFINET、Ethernet/IP等7种主流工业以太网智能制造之家​​化学制品制造业 从业人员写在面前大家好,我是小智,智能制造之家号主~前面我们汇总了各种各样的接口、总线与工业以太网等:最全整理工业通讯上的领域各种总线+协议+规范+接口—数据采集与控制也整理了工业以太网的基础知识:必备的工业以太网的基础知识今天我们来聊一聊各种主流的工业以太网~PROFINET、POWERLINK、ETHERNET/IP、ETHERCAT、SERCOSIII、MODBUS TCP、CC-LINK IE.....今天算是总体汇总介绍,填上次在文章:工业通讯网络层级全解读,解析工业网络的自动化金字塔当中提到的会技术分析PROFINET、POWERLINK、ETHERNET/IP、ETHERCAT等各大工业以太网的坑,后续继续逐步推出细化的推出相关文章~今天的内容:01 通讯中的自动化金字塔02 技术分析主流工业以太网03 网络化与软件化的自动化04 未来的工业通信01 通讯中的自动化金字塔说到自动化金字塔,我想每一个智造领域的技术人员应该都很清楚,从传感器/执行器通讯,到现场总线,再到实时以太网,以及办公网络,不同的层级与环境可以采用不同的通讯方式,今天的主要内容就是图中红色部分,实时以太网~自动化部件之间的高效通讯一直是生产系统必不可少的的前提之一,典型的自动化部件有以下几类:PLC控制器,HMI面板、驱动、远程IO、传感器与执行器等,正是由于通讯系统连接了各种各样的自动化部件,使他们构成一个有机的整体~在通讯的自动化金字塔中,不论是从事PLM、还是MES/MOM、SCADA、PLC、驱动等,通讯都会伴随着你,在IT、OT融合的时代,CT(通讯技术)起到了至关重要的作用,被炒得火热的万物互联,通讯始终是基石~02 技术分析主流工业以太网下面我们还是回到今天的主要话题:工业以太网我想下面的各个组织与工业以太网大家应该都很熟悉,我就不再赘述我们所说的工业以太网是基于以太网,那到底二者之间有什么样的关系呢?如果看到了这里,你不知道7层协议,不知道以太网在哪些层,不知道TCP、UDP等等,那建议你可以先补一补基础知识:网络的OSI七层模型和TCP/IP五层模型 | 网络基础(三)或者不用接着往下看了~比如我现在问你, PROFINET的TCP/IP标准通信、PROFINET RT和PROFINET IRT有什么区别?你或许可以从今天的文章中获得答案。今天整体来看一下PROFINET、ETHERNET/IP、ETHERCAT等他们在7层协议中的一些不同。这也是为啥了解工业以太网,必须有一定的网络知识~1.将网络七层分为软件层和硬件层,则Ethernet/IP等是下面这样的;特点:完全基于TCP\UDP\IP,Process Data通过TCP/IP传输,硬件层未更改,采用传统以太网控制器2.而PROFINET RT、POWERLINK则是下面这样的:特点:部分基于TCP\UDP\IP,硬件层未更改,具有Process Data协议,直接由以太网帧进行传输,TCP/UDP依然存在,不过由Timing Layer控制3.而PROFINET IRT、ETHERCAT等则是下面这样的:特点:硬件层更改,使用实时以太网控制器从以上三张图,就可以很好的为你解密PROFINET、POWERLINK、ETHERNET/IP、ETHERCAT、SERCOSIII、MODBUS TCP、CC-LINK IE等七大工业以太网从硬件到软件的不同,解密PROFINET的RT和IRT模式,工业以太网和一般IT网络的差异~今天是本系列的第一讲,算是个开胃菜,后续会进行更详细的分析与解读各大工业以太网,比如所谓的实时工业以太网是如何解决传统以太网数据链路层CSMA/CD技术的非实时、非确定性的,感兴趣的可以持续关注~03 网络化与软件化的自动化前不久HMS关于工业网络的报告:2020工业网络市场份额报告:主流工业以太网、现场总线、工业无线份额对比中,我们已经看到工业以太网的市场份额已经高达64%顺势而为,跨界融合一直是本号所提倡的,正如前面的爆款文章:西门子、施耐德、罗克韦尔等巨头告诉你,为何你大爷始终是你大爷当中说的:所有面向未来的自动化供应商,都在加速拥抱软件的步伐而前面我们也提到,如今的自动化,已经变得越来越网络化,越来越软件化了,这是趋势,我们没有必要固步自封,守着自己的一某三分地,就像前面在文章:自动化早已不是原来的自动化,为何你却还是原来的你当中说的,技术始终是广度和深度,几乎所有技术都来自于此前已经存在的技术,就好比今天要说的PROFINET、POWERLINK、ETHERNET/IP、ETHERCAT、SERCOSIII、MODBUS TCP、CC-LINK IE等等工业以太网,都和以太网脱不了关系,举个例子,如果一个网络小白和一个CCNP甚至更高的水平的人,同时来看工业以太网,小白可能看到那么新名词,可能马上入门到放弃,而CCNP的朋友可能会觉得如鱼得水~那普通人如何扩展自己色深度和广度呢?我的看法是,让兴趣来引导自己,把本职工作做到公司无人替代的位置,而不止步于此,并在此基础上广度发展。下面具体来说说要如何权衡自己的广度和深度:1.广度为辅,深度为主。人生、时间有限,我们不可能精通所有的技术,但我们可以努力地精通工作相关的、有前景的、感兴趣的技术。2.基础扎实,深入底层。只是解决工作上的问题是远远不够的,应该在工作之余去学习更底层的技术,所谓知其然还得知其所以然。多多思考:为什么要这样用?怎么实现的?还有更好的办法去实现吗?3.触类旁通,适度学习。学任何的知识都要形成一个体系,才能学得深,记得牢。04 未来的工业通信前面转载过一篇文章:为什么一定要了解OPC UA TSN——未来的工业通信标准其实目前,各大工业以太网都已逐渐支持TSN技术:OPCUA、PROFINET、Ethercat等都支持的TSN是什么?—工业通信未来已来OPC UA TSNPROFINET TSN或许短时间内依然很难看到TSN的大量应用,但是未来可期~当然,除了目前工业网络中普遍存在的现场总线、工业以太网之外,工业5G等也逐步到来~参考:http://www.ethercat.org.cn/cn.htmhttps://www.ethernet-powerlink.org以上仅代表个人观点,不喜勿喷,欢迎开放交流,也欢迎大神降维打击~往期推荐当树莓派+S7-1500与阿里云跨界相遇-自动化工程师的数字化之路最全解读西门子MES/MOM平台Opcenter,100多亿美金的数字化之路斗地主、扫雷、贪吃蛇、潜水艇...盘点那些PLC“不务正业”骚操作[附代码]哈工大被禁Matlab,美国用工业软件卡死中国制造?这只是开始...[智能制造]未来,我们需要什么样的自动化工程师?TIA Portal配合PS虚拟调试-OPC UA数据通讯西家、罗家、施家等巨头PLC与WinMOD、PDPS联合虚拟调试是什么样子?施耐德Wonderware HMI/SCADA、MES/MOM入门以太网、Profinet、Profibus三种网络架构搭建及拓扑分析工业网络、工业无线、工业识别RFID的实例汇总与分析编辑于 2021-01-13 12:39以太网(Ethernet)Ethernet通信协议​赞同 62​​6 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录智能制造之家微信公众号:智能制造之家,10W+朋友共话智

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了 - 知乎

太厉害了,终于有人能把TCP/IP 协议讲的明明白白了 - 知乎首发于iOS开发——BAT面试题/技术文章合集切换模式写文章登录/注册太厉害了,终于有人能把TCP/IP 协议讲的明明白白了iOSer本文篇幅也比较长,先来一张思维导图,带大家过一遍。一、 计算机网络体系结构分层再者就是资源共享作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:413038000,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!推荐阅读iOS开发——最新 BAT面试题合集(持续更新中)不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。二、 TCP/IP 基础1. TCP/IP 的具体含义从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。2. 数据包包、帧、数据包、段、消息以上五个术语都用来表述数据的单位,大致区分如下:包可以说是全能性术语;帧用于表示数据链路层中包的单位;数据包是 IP 和 UDP 等网络层以上的分层中包的单位;段则表示 TCP 数据流中的信息;消息是指应用协议中数据的单位。每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。3. 数据处理流程下图以用户 a 向用户 b 发送邮件为例子:① 应用程序处理首先应用程序会进行编码处理,这些编码相当于 OSI 的表示层功能;编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能,相当于 OSI 的会话层功能。② TCP 模块的处理TCP 根据应用的指示,负责建立连接、发送数据以及断开连接。TCP 提供将应用层发来的数据顺利发送至对端的可靠传输。为了实现这一功能,需要在应用层数据的前端附加一个 TCP 首部。③ IP 模块的处理IP 将 TCP 传过来的 TCP 首部和 TCP 数据合起来当做自己的数据,并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,参考路由控制表决定接受此 IP 包的路由或主机。④ 网络接口(以太网驱动)的处理从 IP 传过来的 IP 包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。⑤ 网络接口(以太网驱动)的处理主机收到以太网包后,首先从以太网包首部找到 MAC 地址判断是否为发送给自己的包,若不是则丢弃数据。如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块,如 IP、ARP 等。这里的例子则是 IP 。⑥ IP 模块的处理IP 模块接收到 数据后也做类似的处理。从包首部中判断此 IP 地址是否与自己的 IP 地址匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块,如 TCP、UDP。这里的例子则是 TCP。另外吗,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送往的主机或路由器之后再进行转发数据。⑦ TCP 模块的处理在 TCP 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。⑧ 应用程序的处理接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。三、传输层中的 TCP 和 UDPTCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。TCP 为提供可靠性传输,实行“顺序控制”或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众多功能。UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。在 UDP 的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。TCP 和 UDP 的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实现可靠传输的情况;而在一方面,UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。TCP 和 UDP 应该根据应用的目的按需使用。1. 端口号数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。1.1 根据端口号识别应用一台计算机上同时可以运行多个程序。传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确地将数据传输。1.2 通过 IP 地址、端口号、协议号进行通信识别仅凭目标端口号识别某一个通信是远远不够的。① 和② 的通信是在两台计算机上进行的。它们的目标端口号相同,都是80。这里可以根据源端口号加以区分。③ 和 ① 的目标端口号和源端口号完全相同,但它们各自的源 IP 地址不同。此外,当 IP 地址和端口号全都一样时,我们还可以通过协议号来区分(TCP 和 UDP)。1.3 端口号的确定标准既定的端口号:这种方法也叫静态方法。它是指每个应用程序都有其指定的端口号。但并不是说可以随意使用任何一个端口号。例如 HTTP、FTP、TELNET 等广为使用的应用协议中所使用的端口号就是固定的。这些端口号被称为知名端口号,分布在 0~1023 之间;除知名端口号之外,还有一些端口号被正式注册,它们分布在 1024~49151 之间,不过这些端口号可用于任何通信用途。时序分配法:服务器有必要确定监听端口号,但是接受服务的客户端没必要确定端口号。在这种方法下,客户端应用程序完全可以不用自己设置端口号,而全权交给操作系统进行分配。动态分配的端口号范围在 49152~65535 之间。1.4 端口号与协议端口号由其使用的传输层协议决定。因此,不同的传输层协议可以使用相同的端口号。此外,那些知名端口号与传输层协议并无关系。只要端口一致都将分配同一种应用程序进行处理。2. UDPUDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。此外,传输途中出现丢包,UDP 也不负责重发。甚至当包的到达顺序出现乱序时也没有纠正的功能。如果需要以上的细节控制,不得不交由采用 UDP 的应用程序去处理。UDP 常用于一下几个方面:1.包总量较少的通信(DNS、SNMP等);2.视频、音频等多媒体通信(即时通信);3.限定于 LAN 等特定网络中的应用通信;4.广播通信(广播、多播)。3. TCPTCP 与 UDP 的区别相当大。它充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在 UDP 中都没有。此外,TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。根据 TCP 的这些机制,在 IP 这种无连接的网络上也能够实现高可靠性的通信( 主要通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现)。3.1 三次握手(重点)TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。下面来看看三次握手的流程图:第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。3.2 四次挥手(重点)四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发。由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。下面来看看四次挥手的流程图:中断连接端可以是客户端,也可以是服务器端。第一次挥手:客户端发送一个FIN=M,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。意思是说"我客户端没有数据要发给你了",但是如果你服务器端还有数据没有发送完成,则不必急着关闭连接,可以继续发送数据。第二次挥手:服务器端收到FIN后,先发送ack=M+1,告诉客户端,你的请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客户端就进入FIN_WAIT_2 状态,继续等待服务器端的FIN报文。第三次挥手:当服务器端确定数据已发送完成,则向客户端发送FIN=N报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服务器端进入LAST_ACK状态。第四次挥手:客户端收到FIN=N报文后,就知道可以关闭连接了,但是他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N+1后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。最终完成了四次握手。上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,具体流程如下图:3.3 通过序列号与确认应答提高可靠性在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个已收到消息的通知。这个消息叫做确认应答(ACK)。当发送端将数据发出之后会等待对端的确认应答。如果有确认应答,说明数据已经成功到达对端。反之,则数据丢失的可能性很大。在一定时间内没有等待到确认应答,发送端就可以认为数据已经丢失,并进行重发。由此,即使产生了丢包,仍然能够保证数据能够到达对端,实现可靠传输。未收到确认应答并不意味着数据一定丢失。也有可能是数据对方已经收到,只是返回的确认应答在途中丢失。这种情况也会导致发送端误以为数据没有到达目的地而重发数据。此外,也有可能因为一些其他原因导致确认应答延迟到达,在源主机重发数据以后才到达的情况也屡见不鲜。此时,源主机只要按照机制重发数据即可。对于目标主机来说,反复收到相同的数据是不可取的。为了对上层应用提供可靠的传输,目标主机必须放弃重复的数据包。为此我们引入了序列号。序列号是按照顺序给发送数据的每一个字节(8位字节)都标上号码的编号。接收端查询接收数据 TCP 首部中的序列号和数据的长度,将自己下一步应该接收的序列号作为确认应答返送回去。通过序列号和确认应答号,TCP 能够识别是否已经接收数据,又能够判断是否需要接收,从而实现可靠传输。3.4 重发超时的确定重发超时是指在重发数据之前,等待确认应答到来的那个特定时间间隔。如果超过这个时间仍未收到确认应答,发送端将进行数据重发。最理想的是,找到一个最小时间,它能保证“确认应答一定能在这个时间内返回”。TCP 要求不论处在何种网络环境下都要提供高性能通信,并且无论网络拥堵情况发生何种变化,都必须保持这一特性。为此,它在每次发包时都会计算往返时间及其偏差。将这个往返时间和偏差时间相加,重发超时的时间就是比这个总和要稍大一点的值。在 BSD 的 Unix 以及 Windows 系统中,超时都以0.5秒为单位进行控制,因此重发超时都是0.5秒的整数倍。不过,最初其重发超时的默认值一般设置为6秒左右。数据被重发之后若还是收不到确认应答,则进行再次发送。此时,等待确认应答的时间将会以2倍、4倍的指数函数延长。此外,数据也不会被无限、反复地重发。达到一定重发次数之后,如果仍没有任何确认应答返回,就会判断为网络或对端主机发生了异常,强制关闭连接。并且通知应用通信异常强行终止。3.5 以段为单位发送数据在建立 TCP 连接的同时,也可以确定发送数据包的单位,我们也可以称其为“最大消息长度”(MSS)。最理想的情况是,最大消息长度正好是 IP 中不会被分片处理的最大数据长度。TCP 在传送大量数据时,是以 MSS 的大小将数据进行分割发送。进行重发时也是以 MSS 为单位。MSS 在三次握手的时候,在两端主机之间被计算得出。两端的主机在发出建立连接的请求时,会在 TCP 首部中写入 MSS 选项,告诉对方自己的接口能够适应的 MSS 的大小。然后会在两者之间选择一个较小的值投入使用。3.6 利用窗口控制提高速度TCP 以1个段为单位,每发送一个段进行一次确认应答的处理。这样的传输方式有一个缺点,就是包的往返时间越长通信性能就越低。为解决这个问题,TCP 引入了窗口这个概念。确认应答不再是以每个分段,而是以更大的单位进行确认,转发时间将会被大幅地缩短。也就是说,发送端主机,在发送了一个段以后不必要一直等待确认应答,而是继续发送。如下图所示:窗口大小就是指无需等待确认应答而可以继续发送数据的最大值。上图中窗口大小为4个段。这个机制实现了使用大量的缓冲区,通过对多个段同时进行确认应答的功能。3.7 滑动窗口控制上图中的窗口内的数据即便没有收到确认应答也可以被发送出去。不过,在整个窗口的确认应答没有到达之前,如果其中部分数据出现丢包,那么发送端仍然要负责重传。为此,发送端主机需要设置缓存保留这些待被重传的数据,直到收到他们的确认应答。在滑动窗口以外的部分包括未发送的数据以及已经确认对端已收到的数据。当数据发出后若如期收到确认应答就可以不用再进行重发,此时数据就可以从缓存区清除。收到确认应答的情况下,将窗口滑动到确认应答中的序列号的位置。这样可以顺序地将多个段同时发送提高通信性能。这种机制也别称为滑动窗口控制。3.8 窗口控制中的重发控制在使用窗口控制中, 出现丢包一般分为两种情况:① 确认应答未能返回的情况。在这种情况下,数据已经到达对端,是不需要再进行重发的,如下图:② 某个报文段丢失的情况。接收主机如果收到一个自己应该接收的序列号以外的数据时,会针对当前为止收到数据返回确认应答。如下图所示,当某一报文段丢失后,发送端会一直收到序号为1001的确认应答,因此,在窗口比较大,又出现报文段丢失的情况下,同一个序列号的确认应答将会被重复不断地返回。而发送端主机如果连续3次收到同一个确认应答,就会将其对应的数据进行重发。这种机制比之前提到的超时管理更加高效,因此也被称为高速重发控制。四、网络层中的 IP 协议IP(IPv4、IPv6)相当于 OSI 参考模型中的第3层——网络层。网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫“点对点通信”。网络的下一层——数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递。而一旦跨越多种数据链路,就需要借助网络层。网络层可以跨越不同的数据链路,即使是在不同的数据链路上也能实现两端节点之间的数据包传输。IP 大致分为三大作用模块,它们是 IP 寻址、路由(最终节点为止的转发)以及 IP 分包与组包。1. IP 地址1.1 IP 地址概述在计算机通信中,为了识别通信对端,必须要有一个类似于地址的识别码进行标识。在数据链路中的 MAC 地址正是用来标识同一个链路中不同计算机的一种识别码。作为网络层的 IP ,也有这种地址信息,一般叫做 IP 地址。IP 地址用于在“连接到网络中的所有主机中识别出进行通信的目标地址”。因此,在 TCP/IP 通信中所有主机或路由器必须设定自己的 IP 地址。不论一台主机与哪种数据链路连接,其 IP 地址的形式都保持不变。IP 地址(IPv4 地址)由32位正整数来表示。IP 地址在计算机内部以二进制方式被处理。然而,由于我们并不习惯于采用二进制方式,我们将32位的 IP 地址以每8位为一组,分成4组,每组以 “.” 隔开,再将每组数转换成十进制数。如下:2828282810101100000101000000000100000001(2进制)10101100.00010100.00000001.00000001(2进制)172.20.1.1(10进制)1.2 IP 地址由网络和主机两部分标识组成如下图,网络标识在数据链路的每个段配置不同的值。网络标识必须保证相互连接的每个段的地址不相重复。而相同段内相连的主机必须有相同的网络地址。IP 地址的“主机标识”则不允许在同一个网段内重复出现。由此,可以通过设置网络地址和主机地址,在相互连接的整个网络中保证每台主机的 IP 地址都不会相互重叠。即 IP 地址具有了唯一性。如下图,IP 包被转发到途中某个路由器时,正是利用目标 IP 地址的网络标识进行路由。因为即使不看主机标识,只要一见到网络标识就能判断出是否为该网段内的主机。1.3 IP 地址的分类IP 地址分为四个级别,分别为A类、B类、C类、D类。它根据 IP 地址中从第 1 位到第 4 位的比特列对其网络标识和主机标识进行区分。A 类 IP 地址是首位以 “0” 开头的地址。从第 1 位到第 8 位是它的网络标识。用十进制表示的话,0.0.0.0~127.0.0.0 是 A 类的网络地址。A 类地址的后 24 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为16,777,214个。B 类 IP 地址是前两位 “10” 的地址。从第 1 位到第 16 位是它的网络标识。用十进制表示的话,128.0.0.0~191.255.0.0 是 B 类的网络地址。B 类地址的后 16 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为65,534个。C 类 IP 地址是前三位为 “110” 的地址。从第 1 位到第 24 位是它的网络标识。用十进制表示的话,192.0.0.0~223.255.255.0 是 C 类的网络地址。C 类地址的后 8 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为254个。D 类 IP 地址是前四位为 “1110” 的地址。从第 1 位到第 32 位是它的网络标识。用十进制表示的话,224.0.0.0~239.255.255.255 是 D 类的网络地址。D 类地址没有主机标识,常用于多播。在分配 IP 地址时关于主机标识有一点需要注意。即要用比特位表示主机地址时,不可以全部为 0 或全部为 1。因为全部为 0 只有在表示对应的网络地址或 IP 地址不可以获知的情况下才使用。而全部为 1 的主机通常作为广播地址。因此,在分配过程中,应该去掉这两种情况。这也是为什么 C 类地址每个网段最多只能有 254( 28 - 2 = 254)个主机地址的原因。1.4 广播地址广播地址用于在同一个链路中相互连接的主机之间发送数据包。将 IP 地址中的主机地址部分全部设置为 1,就成了广播地址。广播分为本地广播和直接广播两种。在本网络内的广播叫做本地广播;在不同网络之间的广播叫做直接广播。1.5 IP 多播多播用于将包发送给特定组内的所有主机。由于其直接使用 IP 地址,因此也不存在可靠传输。相比于广播,多播既可以穿透路由器,又可以实现只给那些必要的组发送数据包。请看下图:多播使用 D 类地址。因此,如果从首位开始到第 4 位是 “1110”,就可以认为是多播地址。而剩下的 28 位可以成为多播的组编号。此外, 对于多播,所有的主机(路由器以外的主机和终端主机)必须属于 224.0.0.1 的组,所有的路由器必须属于 224.0.0.2 的组。1.6 子网掩码现在一个 IP 地址的网络标识和主机标识已不再受限于该地址的类别,而是由一个叫做“子网掩码”的识别码通过子网网络地址细分出比 A 类、B 类、C 类更小粒度的网络。这种方式实际上就是将原来 A 类、B 类、C 类等分类中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。子网掩码用二进制方式表示的话,也是一个 32 位的数字。它对应 IP 地址网络标识部分的位全部为 “1”,对应 IP 地址主机标识的部分则全部为 “0”。由此,一个 IP 地址可以不再受限于自己的类别,而是可以用这样的子网掩码自由地定位自己的网络标识长度。当然,子网掩码必须是 IP 地址的首位开始连续的 “1”。对于子网掩码,目前有两种表示方式。第一种是,将 IP 地址与子网掩码的地址分别用两行来表示。以 172.20.100.52 的前 26 位是网络地址的情况为例,如下:IP 地址172.20.100.52子网掩码255.255.255.192网络地址172.20.100.0子网掩码255.255.255.192广播地址172.20.100.63子网掩码255.255.255.192第二种表示方式是,在每个 IP 地址后面追加网络地址的位数用 “/ ” 隔开,如下:IP 地址172.20.100.52/ 26网络地址172.20.100.0/ 26广播地址172.20.100.63/ 26另外,在第二种方式下记述网络地址时可以省略后面的 “0” 。例如:172.20.0.0/26 跟 172.20/26 其实是一个意思。2. 路由发送数据包时所使用的地址是网络层的地址,即 IP 地址。然而仅仅有 IP 地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表。该路由控制表的形成方式有两种:一种是管理员手动设置,另一种是路由器与其他路由器相互交换信息时自动刷新。前者也叫做静态路由控制,而后者叫做动态路由控制。IP 协议始终认为路由表是正确的。然后,IP 本身并没有定义制作路由控制表的协议。即 IP 没有制作路由控制表的机制。该表示由一个叫做“路由协议”的协议制作而成。2.1 IP 地址与路由控制IP 地址的网络地址部分用于进行路由控制。路由控制表中记录着网络地址与下一步应该发送至路由器的地址。在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。3. IP 分包与组包每种数据链路的最大传输单元(MTU)都不尽相同,因为每个不同类型的数据链路的使用目的不同。使用目的不同,可承载的 MTU 也就不同。任何一台主机都有必要对 IP 分片进行相应的处理。分片往往在网络上遇到比较大的报文无法一下子发送出去时才会进行处理。经过分片之后的 IP 数据报在被重组的时候,只能由目标主机进行。路由器虽然做分片但不会进行重组。3.1 路径 MTU 发现分片机制也有它的不足。如路由器的处理负荷加重之类。因此,只要允许,是不希望由路由器进行 IP 数据包的分片处理的。为了应对分片机制的不足,“路径 MTU 发现” 技术应运而生。路径 MTU 指的是,从发送端主机到接收端主机之间不需要分片是最大 MTU 的大小。即路径中存在的所有数据链路中最小的 MTU 。进行路径 MTU 发现,就可以避免在中途的路由器上进行分片处理,也可以在 TCP 中发送更大的包。4. IPv6IPv6(IP version 6)是为了根本解决 IPv4 地址耗尽的问题而被标准化的网际协议。IPv4 的地址长度为 4 个 8 位字节,即 32 比特。而 IPv6 的地址长度则是原来的 4 倍,即 128 比特,一般写成 8 个 16 位字节。4.1 IPv6 的特点IP 得知的扩大与路由控制表的聚合。性能提升。包首部长度采用固定的值(40字节),不再采用首部检验码。简化首部结构,减轻路由器负担。路由器不再做分片处理。支持即插即用功能。即使没有DHCP服务器也可以实现自动分配 IP 地址。采用认证与加密功能。应对伪造 IP 地址的网络安全功能以及防止线路窃听的功能。多播、Mobile IP 成为扩展功能。4.2 IPv6 中 IP 地址的标记方法一般人们将 128 比特 IP 地址以每 16 比特为一组,每组用冒号(“:”)隔开进行标记。而且如果出现连续的 0 时还可以将这些 0 省略,并用两个冒号(“::”)隔开。但是,一个 IP 地址中只允许出现一次两个连续的冒号。4.3 IPv6 地址的结构IPv6 类似 IPv4,也是通过 IP 地址的前几位标识 IP 地址的种类。在互联网通信中,使用一种全局的单播地址。它是互联网中唯一的一个地址,不需要正式分配 IP 地址。未定义0000 ... 0000(128比特)::/ 128环回地址0000 ... 0001(128比特)::1 / 128唯一本地地址1111 110FC00:/ 7链路本地单播地址1111 1110 10FE80::/ 10多播地址1111 1111FF00::/ 8全局单播地址(其他)4.4 全局单播地址全局单播地址是指世界上唯一的一个地址。它是互联网通信以及各个域内部通信中最为常用的一个 IPv6 地址。格式如下图所示,现在 IPv6 的网络中所使用的格式为,n = 48,m = 16 以及 128 - n - m = 64。即前 64 比特为网络标识,后 64 比特为主机标识。4.5 链路本地单播地址链路本地单播地址是指在同一个数据链路内唯一的地址。它用于不经过路由器,在同一个链路中的通信。通常接口 ID 保存 64 比特版的 MAC 地址。4.6 唯一本地地址唯一本地地址是不进行互联网通信时所用的地址。唯一本地地址虽然不会与互联网连接,但是也会尽可能地随机生成一个唯一的全局 ID。L 通常被置为 1全局 ID 的值随机决定子网 ID 是指该域子网地址接口 ID 即为接口的 ID4.7 IPv6 分段处理IPv6 的分片处理只在作为起点的发送端主机上进行,路由器不参与分片。IPv6 中最小 MTU 为 1280 字节,因此,在嵌入式系统中对于那些有一定系统资源限制的设备来说,不需要进行“路径 MTU 发现”,而是在发送 IP 包时直接以 1280 字节为单位分片送出。4.8 IP 首部(暂略)5. IP 协议相关技术IP 旨在让最终目标主机收到数据包,但是在这一过程中仅仅有 IP 是无法实现通信的。必须还有能够解析主机名称和 MAC 地址的功能,以及数据包在发送过程中异常情况处理的功能。5.1 DNS我们平常在访问某个网站时不适用 IP 地址,而是用一串由罗马字和点号组成的字符串。而一般用户在使用 TCP/IP 进行通信时也不使用 IP 地址。能够这样做是因为有了 DNS (Domain Name System)功能的支持。DNS 可以将那串字符串自动转换为具体的 IP 地址。这种 DNS 不仅适用于 IPv4,还适用于 IPv6。5.2 ARP只要确定了 IP 地址,就可以向这个目标地址发送 IP 数据报。然而,在底层数据链路层,进行实际通信时却有必要了解每个 IP 地址所对应的 MAC 地址。ARP 是一种解决地址问题的协议。以目标 IP 地址为线索,用来定位下一个应该接收数据分包的网络设备对应的 MAC 地址。不过 ARP 只适用于 IPv4,不能用于 IPv6。IPv6 中可以用 ICMPv6 替代 ARP 发送邻居探索消息。RARP 是将 ARP 反过来,从 MAC 地址定位 IP 地址的一种协议。5.3 ICMPICMP 的主要功能包括,确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包被废弃的具体原因,改善网络设置等。IPv4 中 ICMP 仅作为一个辅助作用支持 IPv4。也就是说,在 IPv4 时期,即使没有 ICMP,仍然可以实现 IP 通信。然而,在 IPv6 中,ICMP 的作用被扩大,如果没有 ICMPv6,IPv6 就无法进行正常通信。5.4 DHCP如果逐一为每一台主机设置 IP 地址会是非常繁琐的事情。特别是在移动使用笔记本电脑、只能终端以及平板电脑等设备时,每移动到一个新的地方,都要重新设置 IP 地址。于是,为了实现自动设置 IP 地址、统一管理 IP 地址分配,就产生了 DHCP(Dynamic Host Configuration Protocol)协议。有了 DHCP,计算机只要连接到网络,就可以进行 TCP/IP 通信。也就是说,DHCP 让即插即用变得可能。DHCP 不仅在 IPv4 中,在 IPv6 中也可以使用。5.5 NATNAT(Network Address Translator)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。除转换 IP 地址外,还出现了可以转换 TCP、UDP 端口号的 NAPT(Network Address Ports Translator)技术,由此可以实现用一个全局 IP 地址与多个主机的通信。NAT(NAPT)实际上是为正在面临地址枯竭的 IPv4 而开发的技术。不过,在 IPv6 中为了提高网络安全也在使用 NAT,在 IPv4 和 IPv6 之间的相互通信当中常常使用 NAT-PT。5.6 IP 隧道如上图的网络环境中,网络 A 与网络 B 之间无法直接进行通信,为了让它们之间正常通信,这时必须得采用 IP 隧道的功能。IP 隧道可以将那些从网络 A 发过来的 IPv6 的包统合为一个数据,再为之追加一个 IPv4 的首部以后转发给网络 C。一般情况下,紧接着 IP 首部的是 TCP 或 UDP 的首部。然而,现在的应用当中“ IP 首部的后面还是 IP 首部”或者“ IP 首部的后面是 IPv6 的首部”等情况与日俱增。这种在网络层的首部后面追加网络层首部的通信方法就叫做“ IP 隧道”。作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:413038000,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!作者:涤生_Woo链接:https://www.jianshu.com/p/9f3e879a4c9c编辑于 2020-09-08 13:30网络协议TCP/IP程序员​赞同 3654​​70 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录iOS开发——BAT面试题/技术文章合集iOS技术交流群:413038000 期待你的加入epol

请问 ether/ip 与 tcp 有什么区别? - 知乎

请问 ether/ip 与 tcp 有什么区别? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册LinuxIP 地址TCPTCP协议请问 ether/ip 与 tcp 有什么区别?关注者1被浏览4,920关注问题​写回答​邀请回答​好问题​添加评论​分享​1 个回答默认排序Zign资深技术宅,擅长一本正经的胡说八道​ 关注ethernet是一种二层网络,ip则是一种三层协议。换句话说ip协议并不仅仅可以在以太网上运行,也可以在其他网络上运行,比如ppp,serial。tcp则是一种四层协议,在ip协议之上的。跟tcp同级的(也是跑在ip协议之上的)有udp,icmp等等。顺便多说一句,端口是tcp/udp专有的概念,ip协议是没有的。其他的四层协议也不见得有。发布于 2022-09-09 13:03​赞同 1​​添加评论​分享​收藏​喜欢收起​​

TCP/IP协议族 - 维基百科,自由的百科全书

TCP/IP协议族 - 维基百科,自由的百科全书

跳转到内容

主菜单

主菜单

移至侧栏

隐藏

导航

首页分类索引特色内容新闻动态最近更改随机条目资助维基百科

帮助

帮助维基社群方针与指引互助客栈知识问答字词转换IRC即时聊天联络我们关于维基百科

搜索

搜索

创建账号

登录

个人工具

创建账号 登录

未登录编辑者的页面 了解详情

贡献讨论

目录

移至侧栏

隐藏

序言

1歷史

开关歷史子章节

1.1研發初期

1.2標準化

2研制背景

3开发过程

4TCP/IP協議棧組成

5必须协议

6TCP/IP参考模型

开关TCP/IP参考模型子章节

6.1因特网协议栈中的层

6.1.1应用层

6.1.2传输层

6.1.3网络互连层

6.1.4网络存取(连结)层

6.2IP網路如何併吞競爭的網路

6.3实现

7参见

8参考文献

9外部链接

开关目录

TCP/IP协议族

78种语言

AfrikaansالعربيةAsturianuAzərbaycancaБеларускаяБеларуская (тарашкевіца)БългарскиभोजपुरीবাংলাBrezhonegBosanskiCatalàکوردیČeštinaDanskDeutschΕλληνικάEnglishEsperantoEspañolEestiEuskaraفارسیSuomiFrançaisGaeilgeGalegoAvañe'ẽગુજરાતીעבריתहिन्दीHrvatskiMagyarՀայերենInterlinguaBahasa IndonesiaIdoÍslenskaItaliano日本語ქართულიҚазақша한국어KurdîКыргызчаLëtzebuergeschLietuviųLatviešuОлык марийМакедонскиമലയാളംМонголBahasa MelayuNederlandsNorsk nynorskNorsk bokmålPolskiPortuguêsRomânăРусскийSrpskohrvatski / српскохрватскиSimple EnglishSlovenčinaSlovenščinaShqipСрпски / srpskiSvenskaไทยTürkçeУкраїнськаاردوOʻzbekcha / ўзбекчаTiếng Việt吴语ייִדישYorùbá粵語IsiZulu

编辑链接

条目讨论

不转换

不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體

阅读编辑查看历史

工具

工具

移至侧栏

隐藏

操作

阅读编辑查看历史

常规

链入页面相关更改上传文件特殊页面固定链接页面信息引用本页获取短URL下载二维码维基数据项目

打印/导出

下载为PDF打印页面

在其他项目中

维基共享资源

维基百科,自由的百科全书

此條目需要編修,以確保文法、用詞、语气、格式、標點等使用恰当。請按照校對指引,幫助编辑這個條目。(幫助、討論)

網際網路协议套組

應用層

BGP

DHCP

DNS

FTP

HTTP

HTTPS

IMAP

LDAP

MGCP(英语:Media Gateway Control Protocol)

MQTT

NNTP

NTP

POP

ONC/RPC

RTP

RTSP

SIP

SMTP

SNMP

Telnet

TLS/SSL

SSH

XMPP

更多...

傳輸層

TCP

UDP

DCCP

SCTP

RSVP

更多...

網路層

IP

IPv4

IPv6

ICMP

ICMPv6

ECN

IGMP

OSPF

IPsec

RIP

更多...

連結層

ARP

NDP

Tunnels

L2TP

PPP

MAC

Ethernet

DSL

ISDN

FDDI

更多...

查论编

互联网2005年Opte项目互联网一部分的路由路径可视化

概况

存取

审查

民主

主權

實名制

数字鸿沟

数字權利

信息自由

互联网历史

网络爆紅

网络中立性

先驱者(英语:List of Internet pioneers)

隐私

社会学

使用率

治理

区域互联网注册管理机构(NRO)

互联网号码分配局(IANA)

互联网名称与数字地址分配机构 (ICANN)

互联网工程任务组(IETF)

互联网治理论坛(英语:Internet Governance Forum) (IGF)

互联网协会(ISOC)

信息基础设施

域名系统(DNS)

超文本传输协议(HTTP)

互联网交换中心(IXP)

TCP/IP协议族(IPS)

网际协议(IP)

传输控制协议(TCP)

互联网服务供应商(ISP)

IP地址

因特网信息访问协议

简单邮件传输协议(SMTP)

服务

博客

微博

电子邮件

传真

文件共享

文件傳輸

游戏

即時通訊

播客(Podcast)

购物

电视

網際協議通話技術(VoIP)

万维网

搜索

指南

索引(英语:Index of Internet-related articles)

纲要(英语:Outline of the Internet)

互联网主题查论编

互联网协议套件(英語:Internet Protocol Suite,縮寫IPS)[1]是网络通訊模型,以及整個网络传输协议家族,為網際网络的基礎通訊架構。它常通稱為TCP/IP协议族(英語:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP[2]。因為该協定家族的兩個核心協定:TCP(传输控制协议)和IP(网际协议),為该家族中最早通過的標準[3]。由於在網絡通讯协议普遍采用分层的结构,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又称为TCP/IP协议栈(英語:TCP/IP Protocol Stack)[4][5]。这些协议最早发源于美国国防部(縮寫為DoD)的ARPA网项目,因此也稱作DoD模型(DoD Model)[6]。這個協定套組由互联网工程任务组負責維護。

TCP/IP提供了點對點連結的機制,將資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。它將軟體通信過程抽象化為四個抽象層,採取協定堆疊的方式,分別實作出不同通信協定。協定套組下的各種協定,依其功能不同,分別歸屬到這四個階層之中[7][8],常視為是簡化的七層OSI模型。

歷史[编辑]

研發初期[编辑]

1983年1月1日,在因特网的前身(ARPA网)中通訊方式換成新的定義,TCP/IP取代旧的网络控制协议(NCP,Network Control Protocol),从而成为今天的互联网的基石。最早的TCP/IP由文顿·瑟夫和罗伯特·卡恩两位开发,慢慢地通过竞争战胜其他一些网络协议的方案,比如国际标准化组织ISO的OSI模型。TCP/IP的蓬勃发展发生在1990年代中期。当时一些重要而可靠的工具的出世,例如页面描述语言HTML和浏览器Mosaic,促成了互联网应用的飞速发展。

随着互联网的发展,目前流行的IPv4协议(网际协议版本四)已经接近它的功能上限。IPv4最致命的两个缺陷在于:

地址只有32位,IP地址空间有限;

不支持服务质量(Quality of Service,QoS),无法管理带宽和优先级,故而不能很好的支持现今越来越多实时的语音和视频应用。因此IPv6(网际协议版本六)浮出水面,用以取代IPv4。

TCP/IP成功的另一个因素在於对为数众多的低层协议的支持。这些低层协议对应OSI模型中的第一层(物理层)和第二层(数据链路层)。每层的所有协议几乎都有一半数量支持TCP/IP,例如:以太网(Ethernet)、令牌环(Token Ring)、光纤数据分布接口(FDDI)、点对点协议(PPP)、X.25、帧中继(Frame Relay)、ATM、Sonet、SDH等通訊方法中都可以應用。

標準化[编辑]

研制背景[编辑]

最初想到让不同电脑之间实现连接的,是美国加州大学洛杉矶分校网络工作小组的斯蒂芬·克罗克(Stephen D. Crocker)。1970年,克罗克及其小组着手制定最初的主机对主机通信协议,它称为网络控制协议(Network Control Protocol,缩写NCP)。该协议用于阿帕网,并在局部网络条件下运行稳定,但随着阿帕网用户的增多,NCP逐渐暴露出两大缺陷:

NCP只是一台主机对另一台主机的通讯协议,并未给网络中的每台电脑设置唯一的地址,结果就造成电脑在越来越庞大的网络中难以准确定位需要传输数据的对象。

NCP缺乏纠错功能,这样一来,数据在传输过程中一旦出现错误,网络就可能停止运行。出错电脑增多,使得网络运行效率大打折扣。

开发过程[编辑]

在构建阿帕网先驱之后,DARPA开始其他数据传输技术的研究。NCP诞生后两年,1972年,罗伯特·卡恩(Robert E. Kahn)受僱於DARPA的信息技术处理办公室,在那里他研究卫星数据包网络和地面无线数据包网络,并且意识到能够在它们之间沟通的价值。在1973年春天,已有的ARPANET网络控制程序(NCP)协议的开发者文顿·瑟夫(Vinton Cerf)加入到卡恩为ARPANET设计下一代协议而开发开放互连模型的工作中。到了1973年夏天,卡恩和瑟夫很快开发出基本的改进形式,其中的网络协议之间的差异通过使用公用互联网协议而隐藏起来,且可靠性由主机保证而不是ARPANET那样由网络保证。瑟夫称赞了Hubert Zimmerman和Louis Pouzin(CYCLADES网络的设计者)在这个设计上发挥重要影响。

由于网络的作用减少到最小的程度,更有可能将任何网络连接到一起,而不用管它们不同的特点,这样能解决卡恩最初的问题。流行的说法提到瑟夫和卡恩工作的最终产品TCP/IP将在运行“两个罐子和一根弦”上,实际上它已经用在信鸽上。一个称为网关(后来改为路由器以免与网关混淆)的计算机为每个网络提供一个接口并且在它们之间来回传输数据包。这个设计思想更细的形式由瑟夫在斯坦福的网络研究组的1973年–1974年期间开发出来。处于同一时期诞生PARC通用包协议组的施乐PARC早期网络研究工作也有着重要的技术影响;人们在两者之间摇摆不定。DARPA于是与BBN、斯坦福和伦敦大学签署协议开发不同硬件平台上协议的运行版本。有四个版本开发出来——TCP v1、TCP v2、在1978年春天分成TCP v3和IP v3的版本,后来就是稳定的TCP/IP v4——目前因特网仍然使用的标准协议。

1975年,两个网络之间的TCP/IP通信在斯坦福和伦敦大学(UCL)之间进行测试。1977年11月,三个网络之间的TCP/IP测试在美国、英国和挪威之间进行。在1978年到1983年间,其他一些TCP/IP原型在多个研究中心之间开发出来。ARPANET完全转换到TCP/IP在1983年1月1日发生[9]。1984年,美国国防部将TCP/IP作为所有计算机网络的标准。1985年,因特网架构理事会举行爲期三天有250家厂商代表参加的关于计算产业使用TCP/IP的工作会议,帮助协议的推广并且引领它日渐增长的商业应用。

2005年9月9日卡恩和瑟夫由于对美国文化的卓越贡献獲总统自由勋章。[10]

TCP/IP協議棧組成[编辑]

整個通信網絡的任務,可以劃分成不同的功能區塊,即所謂的層級(layer)[11]。用於互聯網的協議可以比照TCP/IP參考模型進行分類。TCP/IP協議棧起始於第三層協議IP(網際協議)。所有這些協議都在相應的RFC文檔中討論及標準化。重要的協議在相應的RFC文檔中均標記狀態:“必須”(required),“推薦”(recommended),“可選”(selective)。其他的協議還可能有“試驗”(experimental)或“歷史”(historic)的狀態。”

必须协议[编辑]

所有的TCP/IP应用都必须实现IP和ICMP。对于一个路由器(router)而言,有这两个协议就可以运作,虽然从应用的角度来看,这样一个路由器意义不大。实际的路由器一般还需要运行许多「推荐」使用的协议,以及一些其他的协议。

几乎所有连接到互联网上的電腦上都存在的IPv4协议出生在1981年,今天的版本和最早的版本并没有多少改变。升级版IPv6的工作始于1995年,目的在于取代IPv4。ICMP协议主要用于收集有关网络的信息查找错误等工作。

TCP/IP参考模型[编辑]

两个因特网主机通过两个路由器和对应的层连接。各主机上的应用通过一些数据通道相互执行读取操作。

RFC 1122中描述的沿着不同的层应用数据的封装递减

網際網路协议套組

應用層

BGP

DHCP

DNS

FTP

HTTP

HTTPS

IMAP

LDAP

MGCP(英语:Media Gateway Control Protocol)

MQTT

NNTP

NTP

POP

ONC/RPC

RTP

RTSP

SIP

SMTP

SNMP

Telnet

TLS/SSL

SSH

XMPP

更多...

傳輸層

TCP

UDP

DCCP

SCTP

RSVP

更多...

網路層

IP

IPv4

IPv6

ICMP

ICMPv6

ECN

IGMP

OSPF

IPsec

RIP

更多...

連結層

ARP

NDP

Tunnels

L2TP

PPP

MAC

Ethernet

DSL

ISDN

FDDI

更多...

查论编

TCP/IP参考模型是一个抽象的分层模型,这个模型中,所有的TCP/IP系列网络协议都归类到4个抽象的「层」中。每一抽象层建立在低一层提供的服务上,并且为高一层提供服务。

完成一些特定的任务需要众多的协议协同工作,这些协议分布在参考模型的不同层中的,因此有时称它们为一个协议栈。

TCP/IP参考模型为TCP/IP协议栈订身制作。其中IP协议只关心如何使得数据能够跨越本地网络边界的问题,而不关心如何利用传输媒体,数据如何传输。整个TCP/IP协议栈则负责解决数据如何通过许许多多个点对点通路(一个点对点通路,也称为一「跳」,1 hop)顺利传输,由此不同的网络成员能够在许多「跳」的基础上建立相互的数据通路。

如想分析更普遍的网络通信问题,ISO的OSI模型也能起更好的帮助作用。

因特网协议族是一组实现支持因特网和大多数商业网络运行的协议栈的网络传输协议。它有时也称为TCP/IP协议组,这个名称来源于其中两个最重要的协议:传输控制协议(TCP)和因特网协议(IP),它们也是最先定义的两个协议。

同许多其他协议一样网络传输协议也可以看作一个多层组合,每层解决数据传输中的一组问题并且向使用这些低层服务的高层提供定义好的服务。高层逻辑上与用户更为接近,所处理数据更为抽象,它们依赖于低层将数据转换成最终能够进行實體控制的形式。

网络传输协议能够大致匹配到一些厂商喜欢使用的固定7层的OSI模型。然而这些层并非都能够很好地与基于IP的网络对应(根据应用的设计和支持网络的不同它们确实是涉及到不同的层)并且一些人认为试图将因特网协议组对应到OSI会带来混淆而不是有所帮助。

因特网协议栈中的层[编辑]

人们已经进行一些讨论关于如何将TCP/IP参考模型映射到OSI模型。由于TCP/IP和OSI模型组不能精确地匹配,还没有一个完全正确的答案。

另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有ARP和STP(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否认,将两个组(更不用说它们只是运行在如ICMP等不同的互连网络协议上的逻辑上的网络层的一部分)整个放在同一层会引起混淆,但是OSI模型还没有复杂到能够做更好的工作。

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:

7

应用层application layer

例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP(英语:Endpoint_Handlespace_Redundancy_Protocol)、TLS

6

表示层presentation layer

例如XDR、ASN.1、NCP、TLS、ASCII

5

会话层session layer

例如ASAP(英语:Aggregate_Server_Access_Protocol)、ISO 8327 / CCITT X.225、RPC、NetBIOS、Winsock、BSD sockets、SOCKS、PAP

4

传输层transport layer

例如TCP、UDP、RTP、SCTP、SPX、ATP、IL

3

网络层network layer

例如IP、ICMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25

2

数据链路层data link layer

例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP

1

物理层physical layer

例如數據機、无线电、光纤

通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。由于TCP/IP有一个相对较弱的会话层,由TCP和RTP下的打开和关闭连接组成,并且在TCP和UDP下的各种应用提供不同的端口号,这些功能能够由单个的应用程序(或者那些应用程序所使用的库)增加。与此相似的是,IP是按照将它下面的网络当作一个黑盒子的思想设计的,这样在讨论TCP/IP的时候就可以把它当作一个独立的层。

4

应用层application layer

例如HTTP、FTP、DNS (如BGP和RIP这样的路由协议,尽管由于各种各样的原因它们分别运行在TCP和UDP上,仍然可以将它们看作网络层的一部分)

3

传输层transport layer

例如TCP、UDP、RTP、SCTP (如OSPF这样的路由协议,尽管运行在IP上也可以看作是网络层的一部分)

2

网络互连层internet layer

对于TCP/IP来说这是因特网协议(IP)(如ICMP和IGMP这样的必须协议尽管运行在IP上,也仍然可以看作是网络互连层的一部分;ARP不运行在IP上)

1

网络存取(連結)层Network Access (link) layer

例如以太网、Wi-Fi、MPLS等。

应用层[编辑]

该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。

应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。这个层的处理过程是应用特有的;数据从网络相关的程序以这种应用内部使用的格式进行传送,然后编码成标准协议的格式。

一些特定的程序視爲在此層運行。它们提供服务直接支持用户应用。这些程序和它们对应的协议包括HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登录)、DNS(名称⇔IP地址寻找)以及许多其他协议。

一旦从应用程序来的数据编码成一个标准的应用层协议,它将传送到IP栈的下一层。

在传输层,应用程序最常用的是TCP或者UDP,并且服务器应用程序经常与一个公开的端口号相联系。服务器应用程序的端口由互联网号码分配局(IANA)正式地分配,但是现今一些新协议的开发者经常选择它们自己的端口号。由于在同一个系统上很少超过少数几个的服务器应用,端口冲突引起的问题很少。应用软件通常也允许用户强制性地指定端口号作为运行参数。

连结外部的客户端程序通常使用系统分配的一个随机端口号。监听一个端口并且通过服务器将那个端口发送到应用的另外一个副本以建立对等连结(如IRC上的dcc文件传输)的应用也可以使用一个随机端口,但是应用程序通常允许定义一个特定的端口范围的规范以允许端口能够通过实现网络地址转换(NAT)的路由器映射到内部。

每一个应用层(TCP/IP参考模型的最高层)协议一般都会使用到两个传输层协议之一:

面向连接的TCP传输控制协议和无连接的包传输的UDP用户数据报文协议。

常用的应用层协议有:

运行在TCP协议上的协议:

HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer,or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。

FTP(File Transfer Protocol,文件传输协议),由名知义,用于文件传输。

POP3(Post Office Protocol,version 3,邮局协议),收邮件用。

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。

TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。

SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。

运行在UDP协议上的协议:

BOOTP(Boot Protocol,启动协议),应用于无盘设备。

NTP(Network Time Protocol,网络时间协议),用于网络同步。

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。

其他:

DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。

ECHO(英语:Echo_Protocol)(Echo Protocol,回绕协议),用于查错及测量应答时间(运行在TCP和UDP协议上)。

SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。

ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。

传输层[编辑]

传输层(transport layer)的协议,能够解决诸如端到端可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题。在TCP/IP协议组中,传输协议也包括所给数据应该送给哪个应用程序。

在TCP/IP协议组中技术上位于这个层的动态路由协议通常认为是网络层的一部分;一个例子就是OSPF(IP协议89)。

TCP(IP协议6)是一个“可靠的”、面向连结的传输机制,它提供一种可靠的字节流保证数据完整、无损并且按顺序到达。TCP尽量连续不断地测试网络的负载并且控制发送数据的速度以避免网络过载。另外,TCP试图将数据按照规定的顺序发送。这是它与UDP不同之处,这在实时数据流或者路由高网络层丢失率应用的时候可能成为一个缺陷。

较新的SCTP也是一个“可靠的”、面向连结的传输机制。它是面向记录而不是面向字节的,它在一个单独的连结上提供通过多路复用提供的多个子流。它也提供多路自寻址支持,其中连结终端能够以多个IP地址表示(代表多个實體接口),这样的话即使其中一个连接失败了也不中断。它最初是为电话应用开发的(在IP上传输SS7),但是也可以用于其他的应用。

UDP(IP协议号17)是一个无连结的数据报协议。它是一个“尽力传递”(best effort)或者说“不可靠”协议——不是因为它特别不可靠,而是因为它不检查数据包是否已经到达目的地,并且不保证它们按顺序到达。如果一个应用程序需要这些特性,那它必须自行检测和判断,或者使用TCP协议。

UDP的典型性应用是如流媒体(音频和视频等)这样按时到达比可靠性更重要的应用,或者如DNS查找这样的简单查询/响应应用,如果建立可靠的连结所作的额外工作将是不成比例地大。

DCCP目前正由IETF开发。它提供TCP流动控制语义,但对于用户来说保留UDP的数据报服务模型。

TCP和UDP都用来支持一些高层的应用。任何给定网络地址的应用通过它们的TCP或者UDP端口号区分。根据惯例使一些大众所知的端口与特定的应用相联系。

RTP是为如音频和视频流这样的实时数据设计的数据报协议。RTP是使用UDP包格式作为基础的会话层,然而据说它位于因特网协议栈的传输层。

网络互连层[编辑]

TCP/IP协议族中的网络互连层(internet layer)在OSI模型中叫做网络层(network layer)。

正如最初所定义的,网络层解决在一个单一网络上传输数据包的问题。类似的协议有X.25和ARPANET的Host/IMP Protocol。

随着因特网思想的出现,在这个层上添加附加的功能,也就是将数据从源网络传输到目的网络。这就牵涉到在网络组成的网上选择路径将数据包传输,也就是因特网。

在因特网协议组中,IP完成数据从源发送到目的的基本任务。IP能够承载多种不同的高层协议的数据;这些协议使用一个唯一的IP协议号进行标识。ICMP和IGMP分别是1和2。

一些IP承载的协议,如ICMP(用来发送关于IP发送的诊断信息)和IGMP(用来管理多播数据),它们位于IP层之上但是完成网络层的功能,这表明因特网和OSI模型之间的不兼容性。所有的路由协议,如BGP、OSPF、和RIP实际上也是网络层的一部分,尽管它们似乎应该属于更高的协议栈。

网络存取(连结)层[编辑]

网络存取(连结)层实际上并不是因特网协议组中的一部分,但是它是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。这个过程能够在网卡的软件驱动程序中控制,也可以在韧体或者专用芯片中控制。这将完成如添加报头准备发送、通过實體媒介实际发送这样一些数据链路功能。另一端,链路层将完成数据帧接收、去除报头并且将接收到的包传到网络层。

然而,链路层并不经常这样简单。它也可能是一个虚拟专有网络(VPN)或者隧道,在这里从网络层来的包使用隧道协议和其他(或者同样的)协议组发送而不是发送到實體的接口上。VPN和通道通常预先建好,并且它们有一些直接发送到實體接口所没有的特殊特点(例如,它可以加密经过它的数据)。由于现在链路“层”是一个完整的网络,这种协议组的递归使用可能引起混淆。但是它是一个实现常见复杂功能的一个优秀方法。(尽管需要注意预防一个已经封装并且经隧道发送下去的数据包进行再次地封装和发送)。

IP網路如何併吞競爭的網路[编辑]

在長期的發展過程中,IP逐漸取代其他網路。這裏是簡單的解釋。IP传输通用数据。数据能够用于任何目的,并且能够很轻易地取代以前由专有数据网络传输的数据。下面是普通的过程:

一个用于特定目的所开发出来的网络。如果它順利工作,用户将能使用它。

为了提供便利的IP服务,经常用于访问电子邮件或者聊天,通常以某种方式通过专有网络隧道实现。隧道方式最初可能非常没有效率,因为电子邮件和聊天只需要很低的带宽。

通过一点点的投资IP基础设施逐渐在专有数据网络周边出现。

用IP取代专有服务的需求出现,经常是一个用户要求。

IP替代品过程遍布整个因特网,这使IP替代品比最初的专有网络更加有价值(由于网络效应)。

专有网络受到压制。许多用户开始维护使用IP替代品的复制品。

IP包的间接开销很小,少于1%,这样在成本上非常有竞争性。人们开发能够将IP带到专有网络上的大部分用户的不昂贵的传输媒介。

大多数用户为削减开销而取消专有网络。

实现[编辑]

KA9QPPJ

lwIP

如今,大多数商业操作系统包括TCP/IP栈并且缺省安装它们,对于大多数用户来说,没有必要去探求它们如何实现。TCP/IP包含在所有的商业Unix和Linux发布包中,同样也包含在Mac OS X、Windows系统和Windows Server中。

参见[编辑]

互联网主题

IPv4

IPv6

NCP

OSI模型

MPLS

DoD模型

TCP/UDP端口列表

参考文献[编辑]

^ RFC 1349,RFC 2502

^ RFC 1140,RFC 1160,RFC 1180

^ Craig Hunt著《TCP/IP网络管理》第一章〈TCP/IP概論〉:「TCP/IP這名稱代表一整套資料通訊協定的組合,這套組合得名於其中兩項最重要的協定:傳輸控制協定(TCP)與網際協定(IP)。之所以強調這一點,是為了強調TCP/IP其實還包含TCP和IP之外的其他成員,只不過這兩項是其中最具代表性的協定。因此,TCP/IP協定組也稱為網際网络協定套組(IPS),這兩個名稱是同義的。」

^ 谢希仁. 计算机网络. 北京: 电子工业出版社. 2008: 30. ISBN 9787121053863. 

^ Andrew G. Blank. TCP/IP Foundations. New Jersey: John Wiley & Sons. 2006: 2. ISBN 9780782143706. 

^ "The DoD Internet Architecture Model" (页面存档备份,存于互联网档案馆), Vinton G. Cerf and Edward Cain, Computer Networks, 7 (1983), North-Holland, pp. 307-318

^ RFC 1122, Requirements for Internet Hosts – Communication Layers, R. Braden (ed.), October 1989.

^ RFC 1123, Requirements for Internet Hosts – Application and Support, R. Braden (ed.), October 1989

^ 存档副本. [2007-08-21]. (原始内容存档于2000-03-03). 

^ 存档副本. [2007-08-21]. (原始内容存档于2008-02-10). 

^ Architectural Principles of the Internet, RFC 1958, B. Carpenter, June 1996

外部链接[编辑]

RFC 1180 TCP/IP指南,因特网工程任务组,1991年1月

TCP/IP常见问题解答(页面存档备份,存于互联网档案馆)

ARPANET TCP/IP摘要研究(页面存档备份,存于互联网档案馆)

TCP/IP流程图(页面存档备份,存于互联网档案馆)

实践中的因特网

TCP/IP Definition(页面存档备份,存于互联网档案馆)

TCP/IP协议集详细资料(页面存档备份,存于互联网档案馆)

uIP - 針對8/16位元微控制器之用的TCP/IP協定堆疊程式(繁體中文)

Internet History(页面存档备份,存于互联网档案馆)

RFC 1122 - 因特网主机要求,通讯层

Davies, Joseph; Lee, Thomas. Microsoft Windows server 2003 TCP/IP protocols and services : technical reference. Redmond: Microsoft Press. 2003. ISBN 978-0-7356-1291-4. 

Hunt, Craig. TCP/IP network administration: help for UNIX system administrators 2. ed., [Nachdr.] Beijing Köln: O'Reilly. 1999. ISBN 978-1-56592-322-5. 

Stevens, W. Richard. The protocols. TCP/IP Illustrated 31. print. Boston: Addison-Wesley. 2010. ISBN 978-0-201-63346-7. 

取自“https://zh.wikipedia.org/w/index.php?title=TCP/IP协议族&oldid=81747512”

分类:​TCP/IP隐藏分类:​使用RFC魔术链接的页面需要校對的頁面含有非中文內容的條目含有英語的條目

本页面最后修订于2024年3月2日 (星期六) 12:25。

本站的全部文字在知识共享 署名-相同方式共享 4.0协议之条款下提供,附加条款亦可能应用。(请参阅使用条款)

Wikipedia®和维基百科标志是维基媒体基金会的注册商标;维基™是维基媒体基金会的商标。

维基媒体基金会是按美国国內稅收法501(c)(3)登记的非营利慈善机构。

隐私政策

关于维基百科

免责声明

行为准则

开发者

统计

Cookie声明

手机版视图

开关有限宽度模式

EtherNet/IP - 维基百科,自由的百科全书

EtherNet/IP - 维基百科,自由的百科全书

跳转到内容

主菜单

主菜单

移至侧栏

隐藏

导航

首页分类索引特色内容新闻动态最近更改随机条目资助维基百科

帮助

帮助维基社群方针与指引互助客栈知识问答字词转换IRC即时聊天联络我们关于维基百科

搜索

搜索

创建账号

登录

个人工具

创建账号 登录

未登录编辑者的页面 了解详情

贡献讨论

目录

移至侧栏

隐藏

序言

1簡介

2歷史

3技術細節

4安全性

5相關條目

6參考資料

7外部連結

开关目录

EtherNet/IP

6种语言

ČeštinaDeutschEnglishFrançais日本語한국어

编辑链接

条目讨论

不转换

不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體

阅读编辑查看历史

工具

工具

移至侧栏

隐藏

操作

阅读编辑查看历史

常规

链入页面相关更改上传文件特殊页面固定链接页面信息引用本页获取短URL下载二维码维基数据项目

打印/导出

下载为PDF打印页面

维基百科,自由的百科全书

EtherNet/IP是由洛克威爾自動化公司開發的工業乙太網通訊協定,由ODVA(ODVA)管理,可應用在程序控制及其他自動化的應用中,是通用工業協定(CIP)中的一部份[1]。

EtherNet/IP名稱中的IP是「Industrial Protocol」(工業協議)的簡稱,和網際協議沒有關係。

簡介[编辑]

EtherNet/IP是應用層的協定,將網路上的設備視為許多的「物件」。EtherNet/IP為通用工業協定為基礎而架構,可以存取來自ControlNet及DeviceNet網路上的物件。

EtherNet/IP使用乙太網的物理層網路,也架構在TCP/IP的通訊協定上,用微處理器上的軟體即可實現,不需特別的ASIC或FPGA。EtherNet/IP可以用在一些可容許偶爾出現少量非決定性的自動化網路。

EtherNet/IP很容易誤解為Ethernet(以太網)及Internet Protocol(網際協議)的組合。不過EtherNet/IP是一個工業使用的應用層通訊協定,可以使控制系統及其元件之間建立通訊,例如可编程逻辑控制器、I/O模組等,EtherNet/IP中的IP是指工業協定。

歷史[编辑]

EtherNet/IP是在1990年後期由洛克威爾自動化公司開發.是洛克威爾工業以太網路方案的一部份。後來洛克威爾就和EtherNet/IP交給ODVA管理,ODVA管理EtherNet/IP通訊協定,並確認不同廠商開發的EtherNet/IP設備都符合EtherNet/IP通訊協定,確保多供應商的EtherNet/IP網路仍有互操作性。

技術細節[编辑]

EtherNet/IP將以太網的設備以預定義的設備種類加以分類,每種設備有其特別的行為,此外,EtherNet/IP設備可以:

用用户数据报协议(UDP)的隱式報文傳送基本I/O資料。

用传输控制协议(TCP)的顯式報文上傳或下載參數、設定值、程式或配方。

用主站輪詢、從站週期性更新或是狀態改變(COS)時更新的方式,方便主站監控從站的狀態,訊息會用UDP的報文送出。

用一對一、一對多或是廣播的方式,透過用TCP的報文送出資料。

EtherNet/IP使用TCP埠編號44818作為顯式報文的處理,UDP埠編號2222作為隱式報文的處理。

EtherNet/IP的應用層協定是以使用在DeviceNet、CompoNet及ControlNet的通用工業協定(CIP)為基礎。

安全性[编辑]

2012年2月14日,Basecamp計劃的安全研究者提出了一個針對洛克威爾的ControlLogix PLC,EtherNet/IP通訊缺陷的Metasploit攻擊。此安全性漏洞若沒處理,可以允許遠端攻擊者破壞設備或使設備在未預期的情形下重新開機[2],而這些設備往往也是工業系統上的關鍵設備或元件。

相關條目[编辑]

DeviceNet

ControlNet

工業以太網

通用工業協定

現場總線

參考資料[编辑]

^ ODVA EtherNet/IP. [2012-09-20]. (原始内容存档于2012-09-09). 

^ Metasploit Modules. [2012-09-19]. (原始内容存档于2012-10-17). 

外部連結[编辑]

ODVA*(页面存档备份,存于互联网档案馆)

HMS EtherNet/IP page

Phoenix Contact EtherNet/IP page(页面存档备份,存于互联网档案馆)

EtherNet/IP developers guide from ODVA

OpENer: Open Source EtherNet/IP Stack for I/O Adapter Devices

CELL--CIP/Ethernet Library for Linux (commercial)(页面存档备份,存于互联网档案馆)

Threat Post on Security Exploits

查论编自動化通訊協定程序自动化

AS-i

BSAP(英语:Bristol Standard Asynchronous Protocol)

CC-Link

CIP

CAN

CANopen

DeviceNet

ControlNet

DF-1(英语:DF-1 Protocol)

DirectNET(英语:DirectNET Protocol)

EtherCAT

Ethernet Global Data (EGD)(英语:Ethernet Global Data Protocol)

Ethernet Powerlink

EtherNet/IP

Factory Instrumentation Protocol(英语:Factory Instrumentation Protocol)

FINS(英语:Factory Interface Network Service)

Foundation現場總線

H1(英语:Foundation Fieldbus H1)

HSE

GE SRTP(英语:Service Request Transport Protocol)

HART

Honeywell SDS(英语:SDS Protocol)

HostLink

INTERBUS

MECHATROLINK

MelsecNet(英语:MelsecNet)

Modbus

IO-Link

Optomux(英语:Optomux)

PieP(英语:PieP)

Profibus

PROFINET IO

RAPIEnet(英语:RAPIEnet)

SERCOS interface(英语:SERCOS interface)

SERCOS III(英语:SERCOS III)

Sinec H1(英语:Sinec H1)

SynqNet(英语:SynqNet)

TTEthernet(英语:TTEthernet)

工业控制系统

MTConnect(英语:MTConnect)

OPC DA(英语:OPC Data Access)

OPC HDA(英语:OPC Historical Data Access)

OPC UA

智能建筑

1-Wire

BACnet

C-Bus(英语:C-Bus (protocol))

DALI(英语:Digital Addressable Lighting Interface)

DSI(英语:Digital Signal Interface)

DyNet(英语:DyNet)

Factory Instrumentation Protocol(英语:Factory Instrumentation Protocol)

KNX(英语:KNX (standard))

LonTalk

Modbus

oBIX(英语:oBIX)

VSCP(英语:Very Simple Control Protocol)

X10

xAP(英语:XAP Home Automation protocol)

xPL(英语:XPL Protocol)

ZigBee

电力系统(英语:Power-system automation)

IEC 60870-5-103

IEC 60870-5(英语:IEC 60870-5)

IEC 60870-6(英语:IEC 60870-6)

DNP3(英语:DNP3)

Factory Instrumentation Protocol(英语:Factory Instrumentation Protocol)

IEC 61850(英语:IEC 61850)

IEC 62351(英语:IEC 62351)

Modbus

Profibus

自動抄錶

ANSI C12.18

IEC 61107

DLMS/IEC 62056

M-Bus(英语:Meter-Bus)

Modbus

ZigBee

車用網路(英语:Vehicle bus)

AFDX

ARINC 429(英语:ARINC 429)

CAN

ARINC 825(英语:ARINC 825)

SAE J1939(英语:SAE J1939)

NMEA 2000(英语:NMEA 2000)

FMS

FlexRay(英语:FlexRay)

IEBus(英语:IEBus)

J1587

J1708

KWP2000

UDS

LIN

MOST

VAN(英语:Vehicle Area Network)

取自“https://zh.wikipedia.org/w/index.php?title=EtherNet/IP&oldid=63113504”

分类:​工業乙太網串行总线

本页面最后修订于2020年12月8日 (星期二) 03:48。

本站的全部文字在知识共享 署名-相同方式共享 4.0协议之条款下提供,附加条款亦可能应用。(请参阅使用条款)

Wikipedia®和维基百科标志是维基媒体基金会的注册商标;维基™是维基媒体基金会的商标。

维基媒体基金会是按美国国內稅收法501(c)(3)登记的非营利慈善机构。

隐私政策

关于维基百科

免责声明

行为准则

开发者

统计

Cookie声明

手机版视图

开关有限宽度模式

Ethernet、Tcp、Udp等协议的数据包格式_tcp/ip和upd格式都属于ethernet-CSDN博客

>

Ethernet、Tcp、Udp等协议的数据包格式_tcp/ip和upd格式都属于ethernet-CSDN博客

Ethernet、Tcp、Udp等协议的数据包格式

最新推荐文章于 2024-01-05 09:44:10 发布

ruixj

最新推荐文章于 2024-01-05 09:44:10 发布

阅读量1.4w

收藏

15

点赞数

分类专栏:

通信类

文章标签:

tcp

路由器

application

internet

网络

通讯

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/ruixj/article/details/5374325

版权

通信类

专栏收录该内容

35 篇文章

0 订阅

订阅专栏

TCP/IP

协议是一个比较复杂的协议集,有很多专业书籍介绍。在此,我仅介绍其与编程密切相关的部分:以太网上TCP/IP协议的分层结构及其报文格式。我们知道TCP/IP协议采用分层结构,其分层模型及协议如下表:

应 用 层(Application)HTTP、Telnet、FTP、SMTP、SNMP传 输 层(Transport)TCP、UDP网 间 网层(Internet)IP【ARP、RARP、ICMP】网络接口层(Network)Ethernet、X.25、SLIP、PPP

 协议采用分层结构,因此,数据报文也采用分层封装的方法。下面以应用最广泛的以太网为例说明其数据报文分层封装,如下图所示:

 

  任何通讯协议都有独特的报文格式,TCP/IP协议也不例外。对于通讯协议编程,我们首先要清楚其报文格式。由于TCP/IP协议采用分层模型,各层都有专用的报头,以下就简单介绍以太网下TCP/IP各层报文格式。

 

  8字节的前导用于帧同步,CRC域用于帧校验。这些用户不必关心其由网卡芯片自动添加。目的地址和源地址是指网卡的物理地址,即MAC地址,具有唯一性。帧类型或协议类型是指数据包的高级协议,如 0x0806表示ARP协议,0x0800表示IP协议等。

  ARP/RARP(地址解析/反向地址解析)报文格式如下图:

 “硬件类型”域指发送者本机网络接口类型(值“1”代表以太网)。“协议类型”域指发送者所提供/请求的高级协议地址类型(“0x0800”代表 IP协议)。“操作”域指出本报文的类型(“1”为ARP请求,“2”为ARP响应,“3”为RARP请求,“4”为RARP响应)。

  IP数据报头格式如下图:

  我们用单片机实现TCP/IP协议要作一些简化,不考虑数据分片和优先权。因此,在此我们不讨论服务类型和标志偏移域,只需填“0” 即可。协议“版本”为4,“头长度”单位为32Bit,“总长度”以字节为单位,表示整个IP数据报长度。“标识”是数据包的ID号,用于识别不同的IP 数据包。“生存时间” TTL是个数量及的概念,防止无用数据包一直存在网络中。一般每经过路由器时减一,因此通过TTL 可以算出数据包到达目的地所经过的路由器个数。“协议”域表示创建该数据包的高级协议类型。如 1表示ICMP协议,6表示TCP协议,17表示 UDP协议等。IP数据包为简化数据转发时间,仅采用头校验的方法,数据正确性由高层协议保证。

  ICMP(网间网控制报文协议)协议 应用广泛。在此仅给出最常见的回应请求与应答报文格式,用户命令ping便是利用此报文来测试信宿机的可到达性。报文格式如下图所示:

  类型0 为回应应答报文,8 为回应请求报文。整个数据包均参与检验。注意ICMP封装在IP数据包里传送。

  UDP报文格式如下图:

  TCP报文格式如下图:

  TCP 是面向连接的可靠数据传输协议,因此比较复杂,在此仅作简单介绍。“序号”指数据在发送端数据流中的位置。“确认号”指出本机希望下一个接收的字节的序号。与IP校验不同的是TCP,UDP校验采用伪头标加整个报文一同校验的方法。TCP协议工作原理另行介绍。

优惠劵

ruixj

关注

关注

0

点赞

15

收藏

觉得还不错?

一键收藏

知道了

1

评论

Ethernet、Tcp、Udp等协议的数据包格式

TCP/IP协议是一个比较复杂的协议集,有很多专业书籍介绍。在此,我仅介绍其与编程密切相关的部分:以太网上TCP/IP协议的分层结构及其报文格式。我们知道TCP/IP协议采用分层结构,其分层模型及协议如下表: 应 用 层(Application)HTTP、Telnet、FTP、SMTP、SNMP传 输 层(Transport)TCP、UDP网 间

复制链接

扫一扫

专栏目录

Ethernet-Tcp-Udp.rar_TCP 解析_TCP解析_c# tcp/udp_udp解析_解析UDP

09-21

TCP,UDP等协议的详细解析,很透彻!

以太网通信简介

呓语煮酒的博客

11-07

6499

简单介绍FPGA的以太网通讯的组包格式

1 条评论

您还未登录,请先

登录

后发表或查看评论

UDP报文格式详解

最新发布

m0_73920844的博客

01-05

2114

UDP报文格式

以太网报文详解

qq_43552564的博客

01-29

1164

以太网报文详解

以太网UDP协议讲解

XXN_F的博客

08-06

2915

一.TCP/IP参考模型

1.概述

TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。ARPANET是由美国国防部DoD(U.S.Department of Defense)赞助的研究网络。逐渐地它通过租用的电话线连结了数百所大学和政府部门。当无线网络和卫星出现以后,现有的协议在和它们相连的时候出现了问题,所以需要一种新的参考体系结构。这个体系结构在它的两个主要协议出现以后,被称为TCP/IP参考模型(TCP/IP reference model);

2.四层模型

TCP/

TCP、IP、ICMP、UDP、ARP协议的包头

肥嘟嘟的左卫门

09-29

2228

以太网首部

目地MAC地址(6字节)

源MAC地址(6字节)

类型(2字节)

1、IP头的结构

版本(4位)

头长度(4位)

服务类型(8位)

封包总长度(16位)

封包标识(16位)

标志(3位)

片断偏移地址(13位)

存活时间(8位)

协议(8位)

..

packetnet:官方存储库-高性能.Net程序集,用于解剖和构造网络数据包,例如以太网,ip,tcp,udp等

05-14

Packet.Net Packet.Net是一种高性能的.Net程序集,用于解剖和构造网络数据包,例如以太网,ip,tcp,udp等。 最初由Chris Morgan 创建 在PacketDotNet命名空间中找到代码。表现Packet.Net旨在实现最高性能。 因此,...

pypacker:Python最快最简单的数据包处理库

02-04

它使您可以通过定义所有标头数据的各个方面来手动创建数据包,通过解析原始数据包字节,在不同层上发送/接收数据包以及截取数据包来解剖数据包。Pypacker可以做什么创建提供特定值的数据包或采用默认值: from ...

vuw_nwen302_ethernet_packet_sniffer:[NWEN302] C中的以太网数据包嗅探器

05-14

(2)识别TCP,UDP,ICMP,ICMPv6和其他协议。 IPv4流量 TCP协议 UDP协议 ICMP 未知 IPv6流量 IPv6扩展头 TCP协议 UDP协议 ICMPv6 未知 其他类型的以太网流量 安装要求: 硬件 具有Internet连接和NIC(网络接口...

LucyRTL8125Ethernet:适用于Realtek RTL8125的macOS驱动程序

03-20

支持TCP / IPv4,UDP / IPv4,TCP / IPv6和UDP / IPv6校验和卸载。 支持最大9000字节的巨型帧(强烈建议用于2.5GBit操作)。 完全针对Catalina进行了优化。请注意,较早版本的macOS可能不支持2.5GB以太网。 支持...

sc_xtcp:用于 sc_ethernet 的微型 TCPIP 堆栈

07-03

主要特征TCP + UDP 连接ICMP DHCP 域名解析HTTP 服务器和 Telnet 示例TFTP服务器固件概览多个线程用于处理 IP 数据包并通过通道将它们转发到上层处理程序。 文档可以在找到已知的问题没有任何支持问题可以通过此 ...

以太网数据包详解,字节,数据帧学习分析

skate886的博客

08-08

4438

以太网数据包解释---详解

udp通信类封装

2201_75888743的博客

04-03

391

在实际项目应用中,我们经常会用到udp通信,最好的方法就是将其封装成特有的类,放在utils工具类中或者放在第三方基类base库中;udp通信主要的功能就是data的收与发,按照socket接口要求提供所需的ip\端口\组播地址等即可构建.

Linux网络编程-以太网、数据包、TCP/IP协议

好好学习,天天向上

08-06

1189

以太网(RFC 894)帧格式

以太网的帧格式如下所示

其中的源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F” 部分就是硬件地址。协议字段有三种值,分别对应IP、ARP、RARP。帧末尾是CRC校验码。

注意:MacOS上的 ifconfig --> en0 --> ether后面跟着的就是Mac地址 38:f9:d3:4d:31:0a

其中的源地址和目

从一个HTTP请求来看网络分层原理

Netgrow的博客

07-26

353

文章目录一、复杂的网络一个HTTP请求的分层解析过程二、 HTTP协议HTTP报文格式请求行报文格式响应行报文格式HTTP头字段常用头字段三、HTTP请求的完整过程当用户在浏览器输入网址回车之后,网络协议都做了哪些工作呢?总结

一、复杂的网络

丢失 -> 重传 -> 重复 -> 被人篡改 -> 完整性校验 -> 不同介质信号转换 -> 距离太远信号衰减。

一个HTTP请求的分层解析过程

域名解析成ip地址,构造一个DNS请求报文,应用层调用传输层的UDP相关

以太网UDP数据协议

xianglong7273的博客

05-05

1335

1.TCP

面向连接,只A发给B数据包是有顺序

传输可靠:发送前三次握手,发送数据后B会给A回复,否则A重复发送

传输效率低:因为握手、回复等

占用资源多:因为握手、回复等,逻辑、程序必然复杂

适合:数据量不是特别大,可靠性要求高

UDP

传输不可靠:相对于TCP来讲,其实网络畅通是UDP可靠性也不错

适合:数据量大,实时性要求高

TCP与UDP:

TCP更适合使用嵌入式C语言编程,Verilog硬件描述会很复杂

UDP:比较适合verilog来编写

其实TCP与UDP使用均非常广

......

TCP/IP数据报格式分析

Bob's Plife

12-27

5082

IP 数据包格式(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。(2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方

五分钟读懂TCP 协议——TCP协议简介

热门推荐

Bigstar的博客

06-11

11万+

TCP 是互联网核心协议之一,本文介绍它的基础知识。一、TCP 协议的作用互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。(图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。)最底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(packet),解决了子网内部的点对点通信。(图片说明:以太网协议解决了局域网的点对点通信。)但是,以太网协议

vivado ethernet tcp/ip

07-28

在代码中,可以设置IP地址、端口号和数据传输的方式(如TCP或UDP),还可以定义数据包的格式和处理方式。 通过配置好的TCP/IP以太网通信,可以在Vivado中发送和接收数据。可以根据具体需求,编写相应的应用程序,...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

ruixj

CSDN认证博客专家

CSDN认证企业博客

码龄21年

暂无认证

300

原创

12万+

周排名

124万+

总排名

224万+

访问

等级

2万+

积分

630

粉丝

104

获赞

177

评论

610

收藏

私信

关注

热门文章

c++使用getline和ifstream读取文件

60823

__attribute__ 详解

45389

流媒体服务器实现

36653

使用http 上传文件的原理

36622

VMware网络设置详解 打造超级虚拟网络 (说的最为复杂和全面的)

33529

分类专栏

IT文化

1篇

Make

P2P技术

10篇

各种数据库的使用

17篇

命令的使用方法

6篇

国家发展

5篇

基于.netFramework的开发

3篇

基于java的开发

31篇

基于windows的开发

33篇

基于类linux的开发

171篇

基础软件的研究

1篇

嵌入式系统的研究与开发

120篇

平台无关语言的编程

45篇

开发工具使用

8篇

微电子类

9篇

机械类

物理知识

生活知识

35篇

网络编程技术

6篇

英文与日文

83篇

软件通用理论

36篇

通信类

35篇

最新评论

JTAG 详解

DMS_shen:

题主更好专业啊,jtag口的加密、锁死等安防也能介绍下么?感谢!

dom4j资料(转帖)

Liekkas_BX:

意思2006年dom4j就提供了解析xml的方法了咯。接到个2012年的老项目,里面用了dom4j,但好多地方竟然是自己解析字符串的,头疼。

c++使用getline和ifstream读取文件

langyifan:

12年前的东西我看的津津有味

Daily word

nrxsh:

没有动态的吗?

如何修改动态库符号表

simulator_z:

代码运行出错

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

Increase swap size

如何检查文件正在被使用

Linux设备驱动程序学习(12) -Linux设备模型(底层原理简介)

2011年1篇

2010年104篇

2009年144篇

2008年155篇

2007年110篇

2006年156篇

2005年2篇

目录

目录

分类专栏

IT文化

1篇

Make

P2P技术

10篇

各种数据库的使用

17篇

命令的使用方法

6篇

国家发展

5篇

基于.netFramework的开发

3篇

基于java的开发

31篇

基于windows的开发

33篇

基于类linux的开发

171篇

基础软件的研究

1篇

嵌入式系统的研究与开发

120篇

平台无关语言的编程

45篇

开发工具使用

8篇

微电子类

9篇

机械类

物理知识

生活知识

35篇

网络编程技术

6篇

英文与日文

83篇

软件通用理论

36篇

通信类

35篇

目录

评论 1

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

以太网(Ethernet) - 知乎

以太网(Ethernet) - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册以太网(Ethernet)以太网的标准拓扑结构为总线型拓扑,但目前的快速以太网(100BASE-T、1000BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机(Switch hub)来进行网络连…查看全部内容关注话题​管理​分享​百科讨论精华视频等待回答详细内容以太网(英语:Ethernet)是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网标准如令牌环、FDDI和ARCNET。以太网的标准拓扑结构为总线型拓扑,但目前的快速以太网(100BASE-T、1000BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机(Switch hub)来进行网络连接和组织。如此一来,以太网的拓扑结构就成了星型;但在逻辑上,以太网仍然使用总线型拓扑和CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重访问/碰撞侦测)的总线技术。概述:1990年代的以太网网卡或叫NIC(Network Interface Card,以太网适配器)。这张卡可以支持基于同轴电缆的10BASE2 (BNC连接器,左)和基于双绞线的10BASE-T(RJ-45,右)。以太网实现了网络上无线电系统多个节点发送信息的想法,每个节点必须获取电缆或者信道才能传送信息,有时也叫作以太(Ether)。这个名字来源于19世纪的物理学家假设的电磁辐射媒体——光以太。 每一个节点有全球唯一的48位地址也就是制造商分配给网卡的MAC地址,以保证以太网上所有节点能互相鉴别。由于以太网十分普遍,许多制造商把以太网卡直接集成进计算机主板。以太网通讯具有自相关性的特点,这对于电信通讯工程十分重要。CSMA/CD共享介质以太网:带冲突检测的载波侦听多路访问(CSMA/CD)技术规定了多台电脑共享一个通道的方法。这项技术最早出现在1960年代由夏威夷大学开发的ALOHAnet,它使用无线电波为载体。这个方法要比令牌环网或者主控制网简单。当某台电脑要发送信息时,在以下行动与状态之间进行转换:开始 - 如果线路空闲,则启动传输,否则跳转到第4步。发送 - 如果检测到冲突,继续发送数据直到达到最小回报时间(min echo receive interval)以确保所有其他转发器和终端检测到冲突,而后跳转到第4步。成功传输 - 向更高层的网络协议报告发送成功,退出传输模式。线路繁忙 - 持续等待直到线路空闲。线路空闲 - 在尚未达到最大尝试次数之前,每隔一段随机时间转到第1步重新尝试。超过最大尝试传输次数 - 向更高层的网络协议报告发送失败,退出传输模式。就像在没有主持人的座谈会中,所有的参加者都通过一个共同的介质(空气)来相互交谈。每个参加者在讲话前,都礼貌地等待别人把话讲完。如果两个客人同时开始讲话,那么他们都停下来,分别随机等待一段时间再开始讲话。这时,如果两个参加者等待的时间不同,冲突就不会出现。如果传输失败超过一次,将延迟指数增长时间后再次尝试。延迟的时间通过截断二进制指数后移(英语:Exponential_backoff)(truncated binary exponential backoff)算法来实现。最初的以太网是采用同轴电缆来连接各个设备的。电脑通过一个叫做附加单元接口(Attachment Unit Interface,AUI)的收发器连接到电缆上。一条简单网路线对于一个小型网络来说很可靠,而对于大型网络来说,某处线路的故障或某个连接器的故障,都会造成以太网某个或多个网段的不稳定。因为所有的通信信号都在共享线路上传输,即使信息只是想发给其中的一个终端(destination),却会使用广播的形式,发送给线路上的所有电脑。在正常情况下,网络接口卡会滤掉不是发送给自己的信息,接收到目标地址是自己的信息时才会向CPU发出中断请求,除非网卡处于混杂模式(Promiscuous mode)。这种“一个说,大家听”的特质是共享介质以太网在安全上的弱点,因为以太网上的一个节点可以选择是否监听线路上传输的所有信息。共享电缆也意味着共享带宽,所以在某些情况下以太网的速度可能会非常慢,比如电源故障之后,当所有的网络终端都重新启动时。以太网中继器和集线器:在以太网技术的发展中,以太网集线器(Ethernet Hub)的出现使得网络更加可靠,接线更加方便。因为信号的衰减和延时,根据不同的介质以太网段有距离限制。例如,10BASE5同轴电缆最长距离500米 (1,640英尺)。最大距离可以通过以太网中继器实现,中继器可以把电缆中的信号放大再传送到下一段。中继器最多连接5个网段,但是只能有4个设备(即一个网段最多可以接4个中继器)。这可以减轻因为电缆断裂造成的问题:当一段同轴电缆断开,所有这个段上的设备就无法通讯,中继器可以保证其他网段正常工作。类似于其他的高速总线,以太网网段必须在两头以电阻器作为终端。对于同轴电缆,电缆两头的终端必须接上被称作“终端器”的50欧姆的电阻和散热器,如果不这么做,就会发生类似电缆断掉的情况:总线上的AC信号当到达终端时将被反射,而不能消散。被反射的信号将被认为是冲突,从而使通信无法继续。中继器可以将连在其上的两个网段进行电气隔离,增强和同步信号。大多数中继器都有被称作“自动隔离”的功能,可以把有太多冲突或是冲突持续时间太长的网段隔离开来,这样其他的网段不会受到损坏部分的影响。中继器在检测到冲突消失后可以恢复网段的连接。随着应用的拓展,人们逐渐发现星型的网络拓扑结构最为有效,于是设备厂商们开始研制有多个端口的中继器。多端口中继器就是众所周知的集线器(Hub)。集线器可以连接到其他的集线器或者同轴网络。第一个集线器被认为是“多端口收发器”或者叫做“fanouts”。最著名的例子是DEC的DELNI,它可以使许多台具有AUI连接器的主机共享一个收发器。集线器也导致了不使用同轴电缆的小型独立以太网网段的出现。像DEC和SynOptics这样的网络设备制造商曾经出售过用于连接许多10BASE-2细同轴线网段的集线器。非屏蔽双绞线(unshielded twisted-pair cables , UTP)最先应用在星型局域网中,之后也在10BASE-T中应用,最后取代了同轴电缆成为以太网的标准。这项改进之后,RJ45电话接口代替了AUI成为电脑和集线器的标准线路,非屏蔽3类双绞线/5类双绞线成为标准载体。集线器的应用使某条电缆或某个设备的故障不会影响到整个网络,提高了以太网的可靠性。双绞线以太网把每一个网段点对点地连起来,这样终端就可以做成一个标准的硬件,解决了以太网的终端问题。采用集线器组网的以太网尽管在物理上是星型结构,但在逻辑上仍然是总线型的,半双工的通信方式采用CSMA/CD的冲突检测方法,集线器对于减少数据包冲突的作用很小。每一个数据包都被发送到集线器的每一个端口,所以带宽和安全问题仍没有解决。集线器的总传输量受到单个连接速度的限制(10或100 Mbit/s),这还是考虑在前同步码、传输间隔、标头、档尾和封装上都是最小花费的情况。当网络负载过重时,冲突也常常会降低传输量。最坏的情况是,当许多用长电缆组成的主机传送很多非常短的帧(frame)时,可能因冲突过多导致网络的负载在仅50%左右程度就满载。为了在冲突严重降低传输量之前尽量提高网络的负载,通常会先做一些设定以避免类似情况发生。桥接和交换:尽管中继器在某些方面分隔了以太网网段,使得电缆断线的故障不会影响到整个网络,但它向所有的以太网设备转发所有的数据。这严重限制了同一个以太网网络上可以相互通信的机器数量。为了减轻这个问题,桥接方法被采用,在工作在物理层的中继器之基础上,桥接工作在数据链路层。通过网桥时,只有格式完整的数据包才能从一个网段进入另一个网段;冲突和数据包错误则都被隔离。通过记录分析网络上设备的MAC地址,网桥可以判断它们都在什么位置,这样它就不会向非目标设备所在的网段传递数据包。像生成树协议这样的控制机制可以协调多个交换机共同工作。早期的网桥要检测每一个数据包,因此当同时处理多个端口的时候,数据转发比Hub(中继器)来得慢。1989年网络公司Kalpana发明了EtherSwitch,第一台以太网交换机。以太网交换机把桥接功能用硬件实现,这样就能保证转发数据速率达到线速。大多数现代以太网用以太网交换机代替Hub。尽管布线方式和Hub以太网相同,但交换式以太网比共享介质以太网有很多明显的优势,例如更大的带宽和更好的异常结果隔离设备。交换网络典型的使用星型拓扑,虽然设备在半双工模式下运作时仍是共享介质的多节点网,但10BASE-T和以后的标准皆为全双工以太网,不再是共享介质系统。交换机启动后,一开始也和Hub一样,转发所有数据到所有端口。接下来,当它记录了每个端口的地址以后,他就只把非广播数据发送给特定的目的端口。因此线速以太网交换可以在任何端口对之间实现,所有端口对之间的通讯互不干扰。因为数据包一般只是发送到他的目的端口,所以交换式以太网上的流量要略微小于共享介质式以太网。然而,交换式以太网仍然是不安全的网络技术,因为它很容易因为ARP欺骗或者MAC满溢而瘫痪,同时网络管理员也可以利用监控功能抓取网络数据包。当只有简单设备(除Hub之外的设备)连接交换机端口时,整个网络可能处于全双工模式。如果一个网段只有2个设备,那么冲突探测也不需要了,两个设备可以随时收发数据。这时总带宽是链路的2倍,虽然双方的带宽相同,但没有发生冲突就意味着几乎能利用到100%的带宽。交换机端口和所连接的设备必须使用相同的双工设置。多数100BASE-TX和1000BASE-T设备支持自动协商特性,即这些设备通过信号来协调要使用的速率和双工设置。然而,如果自动协商功能被关闭或者设备不支持,则双工设置必须通过自动检测进行设置或在交换机端口和设备上都进行手工设置以避免双工错配——这是以太网问题的一种常见原因(设备被设置为半双工会报告迟发冲突,而设备被设为全双工则会报告runt)。许多较低层级的交换机没有手工进行速率和双工设置的能力,因此端口总是会尝试进行自动协商。当启用了自动协商但不成功时(例如其他设备不支持),自动协商会将端口设置为半双工。速率是可以自动感测的,因此将一个10BASE-T设备连接到一个启用了自动协商的10/100交换端口上时将可以成功地创建一个半双工的10BASE-T连接。但是将一个配置为全双工100Mb工作的设备连接到一个配置为自动协商的交换端口时(反之亦然)则会导致双工错配。即使电缆两端都设置成自动速率和双工模式协商,错误猜测还是经常发生而退到10Mbps模式。因此,如果性能差于预期,应该查看一下是否有计算机设置成10Mbps模式了,如果已知另一端配置为100Mbit,则可以手动强制设置成正确模式。.当两个节点试图用超过电缆最高支持数据速率(例如在3类线上使用100Mbps或者3类/5类线使用1000Mbps)通信时就会发生问题。不像ADSL或者传统的拨号Modem通过详细的方法检测链路的最高支持数据速率,以太网节点只是简单的选择两端支持的最高速率而不管中间线路,因此如果速率过高就会导致链路失效。解决方案为强制通讯端降低到电缆支持的速率。以太网类型:除了以上提到的不同帧类型以外,各类以太网的差别仅在速率和配线。因此,同样的网络协议栈软件可以在大多数以太网上执行。以下的章节简要综述了不同的正式以太网类型。除了这些正式的标准以外,许多厂商因为一些特殊的原因,例如为了支持更长距离的光纤传输,而制定了一些专用的标准。很多以太网卡和交换设备都支持多速率,设备之间通过自动协商设置最佳的连接速度和双工方式。如果协商失败,多速率设备就会探测另一方使用的速率但是默认为半双工方式。10/100以太网端口支持10BASE-T和100BASE-TX。10/100/1000支持10BASE-T、100BASE-TX和1000BASE-T。部分以太网类型局域网(英语:Local Area Network,简称LAN)是连接住宅、学校、实验室、大学校园或办公大楼等有限区域内计算机的计算机网络 。相比之下,广域网(WAN)不仅覆盖较大的地理距离,而且还通常涉及固接专线和对于互联网的链接。 相比来说互联网则更为广阔,是连接全球商业和个人电脑的系统。在历经使用了链式局域网(英语:ARCNET)、令牌环与AppleTalk技术后,以太网和Wi-Fi(无线网络连接)是现今局域网最常用的两项技术。机理:局域网(Local Area Network, LAN),又称内网。指覆盖局部区域(如办公室或楼层)的计算机网络。按照网络覆盖的区域(距离)不同,其他的网络类型还包括个人网、城域网、广域网等。早期的局域网网络技术都是各不同厂家所专有,互不兼容。后来,电机电子工程师学会推动了局域网技术的标准化,由此产生了IEEE 802系列标准。这使得在建设局域网时可以选用不同厂家的设备,并能保证其兼容性。这一系列标准覆盖了双绞线、同轴电缆、光纤和无线等多种传输介质和组网方式,并包括网络测试和管理的内容。随着新技术的不断出现,这一系列标准仍在不断的更新变化之中。以太网(IEEE 802.3标准)是最常用的局域网组网方式。以太网使用双绞线作为传输介质。在没有中继的情况下,最远可以覆盖200米的范围。最普及的以太网类型数据传输速率为100Mb/s,更新的标准则支持1000Mb/s和10Gb/s的速率。其他主要的局域网类型有令牌环和FDDI(光纤分布数字接口,IEEE 802.8)。令牌环网络采用同轴电缆作为传输介质,具有更好的抗干扰性;但是网络结构不能很容易的改变。FDDI采用光纤传输,网络带宽大,适于用作连接多个局域网的骨干网。近两年来,随着802.11标准的制定,无线局域网的应用大为普及。这一标准采用2.4GHz 和5.8GHz 的频段,数据传输速度最高可以达到300Mbps和866Mbps。局域网标准定义了传输介质、编码和介质访问等底层(一二层)功能。要使数据通过复杂的网络结构传输到达目的地,还需要具有寻址、路由和流量控制等功能的网络协议的支持。TCP/IP(传输控制协议/互联网络协议)是最普遍使用的局域网网络协议。它也是互联网所使用的网络协议。其他常用的局域网协议包括,IPX、AppleTalk等。在无线 LAN 中,用户可以在覆盖区域内不受限制地移动。无线网络因其易于安装而在住宅和小型企业中流行起来。大多数无线局域网都使用 Wi-Fi,因为它内置于智能手机、平板电脑和笔记本电脑中。客人通常可以通过热点服务上网。网络拨接互联网(英语:Internet)是指20世纪末期兴起电脑网络与电脑网络之间所串连成的庞大网络系统。这些网络以一些标准的网络协议相连。它是由从地方到全球范围内几百万个私人、学术界、企业和政府的网络所构成,通过电子、无线和光纤网络技术等等一系列广泛的技术联系在一起。互联网承载范围广泛的信息资源和服务,比方说相互关系的超文本文件,还有万维网(WWW)的应用、电子邮件、通话,以及文件共享服务。互联网的起源可以追溯到1960年代美国联邦政府委托进行的一项研究,目的是创建容错与电脑网络的通信。互联网的前身ARPANET最初在1980年代作为区域学术和军事网络连接的骨干。1980年代,NSFNET(英语:NSFNET)成为新的骨干而得到资助,以及其他商业化扩展得到了私人资助,这导致了全世界网络技术的快速发展,以及许多不同网络的合并结成更大的网络。到1990年代初,商业网络和企业之间的连接标志着向现代互联网的过渡。尽管互联网在1980年代只被学术界广泛使用,但商业化的服务和技术,令其极快的融入了现代每个人的生活。互联网并不等同万维网,互联网是指凡是能彼此通信的设备组成的网络就叫互联网,指利用TCP/IP通讯协定所创建的各种网络,是国际上最大的互联网,也称“国际互联网”。万维网是一个由许多互相链接的超文本组成的系统,通过互联网访问。在此定义下,万维网是互联网的一项服务。不过多数民众并不区分两者,常常混用。连接技术:任何需要使用互联网的计算机必须通过某种方式与互联网进行连接。互联网接入技术的发展非常迅速,带宽由最初的14.4Kbps发展到目前的100Mbps甚至1Gbps带宽,接入方式也由过去单一的电话拨号方式,发展成现在多样的有线和无线接入方式,接入终端也开始朝向移动设备发展。并且更新更快的接入方式仍在继续地被研究和开发。架构:最顶层的是一些应用层协议,这些协议定义了一些用于通用应用的数据报结构,包括FTP及HTTP等。中间层是UDP协议和TCP协议,它们用于控制数据流的传输。UDP是一种不可靠的数据流传输协议,仅为网络层和应用层之间提供简单的接口。而TCP协议则具有高的可靠性,通过为数据报加入额外信息,并提供重发机制,它能够保证数据不丢包、没有冗余包以及保证数据包的顺序。对于一些需要高可靠性的应用,可以选择TCP协议;而相反,对于性能优先考虑的应用如流媒体等,则可以选择UDP协议。最底层的是互联网协议,是用于报文交换网络的一种面向数据的协议,这一协议定义了数据包在网际传送时的格式。目前使用最多的是IPv4版本,这一版本中用32位定义IP地址,尽管地址总数达到43亿,但是仍然不能满足现今全球网络飞速发展的需求,因此IPv6版本应运而生。在IPv6版本中,IP地址共有128位,“几乎可以为地球上每一粒沙子分配一个IPv6地址”。IPv6目前并没有普及,许多互联网服务提供商并不支持IPv6协议的连接。但是,可以预见,将来在IPv6的帮助下,任何家用电器都有可能连入互联网。互联网承载着众多应用程序和服务,包括万维网、社交媒体、电子邮件、移动应用程序、多人电子游戏、互联网通话、文件分享和流媒体服务等。提供这些服务的大多数服务器托管于数据中心,并且通过高性能的内容分发网络访问。万维网(英语:World Wide Web)亦作WWW、Web、全球广域网,是一个透过互联网访问的,由许多互相链接的超文本组成的信息系统。英国科学家蒂姆·伯纳斯-李于1989年发明了万维网。1990年他在瑞士CERN的工作期间编写了第一个网页浏览器。网页浏览器于1991年1月向其他研究机构发行,并于同年8月向公众开放。罗伯特·卡里奥设计的Web图标万维网是信息时代发展的核心,也是数十亿人在互联网上进行交互的主要工具。网页主要是文本文件格式化和超文本置标语言(HTML)。除了格式化文字之外,网页还可能包含图片、视频、声音和软件组件,这些组件会在用户的网页浏览器中呈现为多媒体内容的连贯页面。万维网并不等同互联网,万维网只是互联网所能提供的服务其中之一,是靠着互联网运行的一项服务。参考文献: Wendell Odom. CCENT/CCNA ICND1 100-105 Official Cert Guide. Cisco Press. 2016: 43页. ISBN 978-1-58720-580-4.Internet协议观念与实现ISBN 9577177069Internet协议观念与实现ISBN 9577177069IEEE 802.3-2008 Section 3 Table 38-2 p.109IEEE 802.3-2008 Section 3 Table 38-6 p.111网络化生存,乔岗,中国城市出版社,1997年,ISBN 978-7-5074-0930-7Richard J. Smith, Mark Gibbs, Paul McFedries 著,毛伟、张文涛 译,Internet漫游指南,人民邮电出版社,1998年. ISBN 978-7-115-06663-3世界是平的,汤马斯·佛里曼 著,2005年出版. ISBN 978-986-80180-9-9内容采用CC BY-SA 3.0授权。浏览量2690 万讨论量9728  帮助中心知乎隐私保护指引申请开通机构号联系我们 举报中心涉未成年举报网络谣言举报涉企侵权举报更多 关于知乎下载知乎知乎招聘知乎指南知乎协议更多京 ICP 证 110745 号 · 京 ICP 备 13052560 号 - 1 · 京公网安备 11010802020088 号 · 京网文[2022]2674-081 号 · 药品医疗器械网络信息服务备案(京)网药械信息备字(2022)第00334号 · 广播电视节目制作经营许可证:(京)字第06591号 · 服务热线:400-919-0001 · Investor Relations · © 2024 知乎 北京智者天下科技有限公司版权所有 · 违法和不良信息举报:010-82716601 · 举报邮箱:jubao@zhihu.