疫情堵在家里,打了十几天游戏突然想看看书了。于是就解决了之前的一些疑惑,这里记录一下,欢迎大佬补充。
想三言两句说明白这些东西好像不太现实,未能免俗,只能从计算机网络体系分层开始。
计算机网络体系结构
OSI的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP体系结构则不同,但它现在却得到了非常广泛的应用。TCP/IP是一个四层的体系结构,不过从实质上讲,TCP/IP只有最上面的三层,因为最下面的网络接口层并没有什么具体内容。因此在学习计算机网络的原理时往往采取折中的办法,即综合OSI和TCP/P 的优点,采用一种只有五层协议的体系结构这样既简洁又能将概念阐述清楚。有时为了方便,也可把最底下两层称为网络接口层。
注:五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是TCP/IP四层体系结构。 (1)应用层 应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的 HTTP协议,支持电子邮件的SMTP 协议等等。我们把应用层交互的数据单元称为报文。 (2)运输层 有时也叫传输层。 运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。运输层主要使用以下两种协议: 传输控制协议TCP (Transmission Control Protocol)——提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段。 用户数据报协议 UDP (User Datagram Protocol——提供无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。 (3)网络层 网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在 TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。 (4)数据链路层 数据链路层常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段 一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。 (5)物理层 在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1 (或0)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。
- 看完就会明白,UDP TCP是运输层的两种运输协议。
UDP很快
- UDP是面向报文的,在传送数据之前不需要先建立连接。远地主机的运输层在收到UDP报文后,不需要给出任何确认,因此减少了开销和发送数据之前的时延,虽然UDP不提供可靠交付,但在某些情况下UDP却是一种最有效的工作方式。
TCP很稳
- TCP则提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销,如确认、流量控制、计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
socket是个啥?
- 嵌套字(socket):TCP连接的两个端口。端口号拼接到IP地址即构成了套接字。例如,若IP地址是192.3.4.5而端口号是80,那么得到的套接字就是(192.3.4.5:80)。总之,我们有套接字socket = (IP地址:端口号)。每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。
EtherCAT是个啥?
为了满足工业实时以太网的需求,根据不同的实时性要求和成本要求,一般有三种实现类型。 (a)基于TCP/IP协议栈的实现,不能实现很好的实时性,适用于对实时性要求不高的场景。 (b)基于以太网的实现,使用标准的以太网通信硬件,但不使用TCP/IP传输数据,引入一种专门的过程数据传输协议,使用特定的以太网类型帧进行传输,TCP/IP可以通过一个时间控制层分配一定的时间来使用以太网资源,可实现较高的实时性。 (c)修改以太网实现,为了获得响应时间小于1 ms 的硬实时,通过这种方式对以太网协议进行了修改。其从站由专门的硬件实现。非实时数据仍然可以在开放通道内按照原来的协议传输。这种方式下的典型协议有EtherCAT、 SERCOS和和PROFINet IRT等。 EtherCAT:帧类型固定为0x88A4 的以太网帧。
严格说来,“以太网”应当是指符合 DIX Ethernet V2(Ethernet II) 标准的局域网。而其帧结构如下: 上层协议类型也就是帧类型,若该字段的值小于1518,那么这个字段就是长度字段,并定义后面的数据字段的长度。若该字段的值大于1518,它就定义使用因特网服务的上层协议(小于0600H的值是用于IEEE802的,表示数据包的长度)。数据段中又包括EtherCAT头和EtherCAT数据。 EtherCAT速度非常快,2×100Mbit/s,全双工模式。带宽冗余量大,可为TCP/IP通讯使用。
- EtherCAT是我遇到的最复杂的通讯协议,现在也就明白它是个啥…
|