宁夏回族自治区西门子授权供应商---西门子变频器吴忠市总代理
- 供应商
- 广东湘恒智能科技有限公司
- 认证
- 西门子PLC
- 西门子伺服电机
- 西门子触摸屏
- 西门子电缆
- 西门子变频器
- 西门子模块
- 联系电话
- 13510737515
- 手机号
- 13185520415
- 联系人
- 董海波
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
- 更新时间
- 2024-06-05 07:00
众所周知,tcp/ip协议是一个在网络中使用广泛的协议,无论是局域网还是广域网,同时也是开放式的协议,几乎所有的网络设备都支持tcp/ip协议通信,甚至也可以使用gaoji语言通过socket进行编程进行通信。无论是办公室的场合,还是工业现场都能看到tcp/ip通信的身影。
tcp/ip协议从字面上看分成两个协议,即tcp协议和ip协议,分别位于iso/osi参考模型的第4层和第3层,结构简单,但协议却不简单。因为我们都知道tcp是面向连接的,可靠的通信协议,然而ip协议却恰恰相反,它是不可靠的通信协议。这里需要强调一下,ip是网际协议internetprotocol,而不能简单的理解成ip地址,因为对于大多数的工控工程师来说,ip地址是大家经常用到的,所以这样的想法是错误的。这里我就给大家解析以下,为什么两个看似矛盾的协议放在一起却出人意料的那么和谐!?
在iso/osi参考模型中,第三层ip的主要作用有两点,第一点是选路,也就是我们常说的路由,帮助ip数据从一个网段路由到另一个网段,这时ip地址就有用了。第二点就是分片,作为工控工程师,我们在做以太网通信时,应该知道以太网数据帧的长度是46-1500bytes,这是由以太网的物理特性决定的,通常1500bytes被称为数据链路层的大传输单元,即mtu。ip的数据报文从理论上大可以传输64kb数据,但是在以太网上的传输数据长度却不能,所以ip数据报大于1500b时,即大于mtu,发送方的ip报文即会被分解成若干片,这样每一片都小于或等于mtu的大小。而接收方则对这些报文的分片进行重组。然而,由于可能网络中各种状况的出现,例如其中一片丢失,整个ip报就不能完成重组,整个ip报就会丢弃,所以ip报是不可靠的传输协议。
而tcp则时可靠的传输协议,在iso/osi参考模型中,tcp采用了尽量分片的方法,避免ip在mtu分片所造成的不可靠的数据传输,这样也就避免了ip分片所造成数传时的数据丢失,增加重传数据包的机率。我们都知道,tcp通信需要建立通信连接,也就是我们常说的3次握手,在握手的时候,双方就协商了mss的大小,即maximumsegmentsize,也就是双方确定tcp大分节长度。这个值用来告诉对方,能够发送tcp分节的大小。而这个值是取其链路层mtu大小减去tcp头部大小和ip头部大小,即mss=mtu-tcp头部大小-ip头部大小。这样对于以太网的mss的大长度为1500-20-20=1460bytes。这样tcp的数据每次发送都不会超过1460b,到了数据链路层不会超过mtu的大小,那么ip报自然不会进行分片传输,这样就减少了tcp重传的机率。
tcp可靠的数据传输,除了mss的协商机制,那么还有一个重要的特性就是序列号确认机制,这两个特性基本上可以保证数据的可靠传输。在tcp分节报文中,包含顺序号和应答号的字段,数据重传和数据应答机制的基本前提就是对每个传输字节进行编号,即顺序号se。顺序号表示发送方已发送字节流的计数,接收方在成功接收到一个有效数据包后,发送一个确认应答数据包给发送方,应答数据包中包含的应答号acknumber即指已接收的数据长度+1,或者说已接收到的数据中的后一个字节的序列号+1,表示已期望接收的下一个字节的序列号。这个机制可以解决诸如数据在传输过程中破坏的问题,处理接收重复数据的问题,数据丢失的问题,以及处理接收端数据乱序的问题等等来保证可靠的数据传输。具体的大家可以查看tcp的协议手册。
这样tcp使用mss,不仅避免ip的不可靠的数据传输,而且使用序列号确认机制,可以的实现可靠的数据传输,而利用ip协议,可以完成数据在网络中的路由,实现数据在网络中自由穿梭,这样就实现了tcp和ip的完美结合!
展开全文