黑河西门子工业自动化授权总经销商---西门子授权一级代理商SIEMENS
- 供应商
- 广东湘恒智能科技有限公司
- 认证
- 西门子PLC
- 西门子伺服电机
- 西门子触摸屏
- 西门子电缆
- 西门子变频器
- 西门子模块
- 联系电话
- 13510737515
- 手机号
- 13185520415
- 联系人
- 董海波
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
- 更新时间
- 2024-12-27 08:00
那这时大家会有疑问了,不是说tcp/ip是可靠的传输协议吗?这到底是怎么回事儿?那需要我们说说tcp到底是怎么工作的,tcp采用了尽量分片的方法,避免ip在mtu分片所造成的不可靠的数据传输,这样也就避免了ip分片所造成数传时的数据丢失,增加重传数据包的机率。前面提到tcp通信需要建立通信连接,3次握手,在握手的时候,双方就协商了mss的大小,即maximum segmentsize,也就是双方确定tcpzui大分节长度。这个值用来告诉对方,能够发送tcp分节的大小。而这个值是取其链路层mtu大小减去tcp头部大小和ip头部大小,即mss=mtu-tcp头部大小-ip头部大小。这样对于以太网的mss的zui大长度为1500-20-20=1460bytes。这样tcp的数据每次发送都不会超过1460b,到了数据链路层不会超过mtu的大小,那么ip报自然不会进行分片传输,这样就减少了tcp/ip重传的机率。tcp可靠的数据传输,除了mss的协商机制,那么还有一个重要的特性就是序列号确认机制,这两个特性基本上可以保证数据的可靠传输。在tcp分节报文中,包含顺序号和应答号的字段,数据重传和数据应答机制的基本前提就是对每个传输字节进行编号,即顺序号se。顺序号表示发送方已发送字节流的计数,接收方在成功接收到一个有效数据包后,发送一个确认应答数据包给发送方,应答数据包中包含的应答号acknumber即指已接收的数据长度+1,或者说已接收到的数据中的zui后一个字节的序列号+1,表示已期望接收的下一个字节的序列号。这个机制可以解决诸如数据在传输过程中破坏的问题,处理接收重复数据的问题,数据丢失的问题,以及处理接收端数据乱序的问题等等来保证可靠的数据传输。
对于“滑动窗口”,这也是tcp/ip通信的一个特点,在tcp通要建立通信连接,3次握手的时候,不仅仅双方协商了mss的大小,也协商了windowsize的大小。接收端的容器,水总会有注满的时候,所以通过不断向发送端告知容器还有多少的剩余,也就是自己窗口的大小,通知发送端,根据我的接收能力,你还能发送多少数据给我,这就是流量的控制。这个流量控制对于tcp/ip通信的通信速度影响很大,如果你需要你的tcp/ip通信快速,那你就需要保证你的接收侧的滑动窗口始终有富余,唯一的办法就是接收一定要比发送快!
对于端口号的多路复用,这里给大家举一个例子,1500plc是集成webserver的,你可以通过一台pc1的浏览器浏览这个网页服务,默认的端口是80。当然你也可以同时使用另外一台pc2浏览这个网页服务,默认端口仍然是80。这个端口就是在被复用。
当然除此之外,还有许多定时器用于tcp/ip可靠的数据传输,例如keepalive等等,这里就不一一赘述了。然而当看了五花八门的各种概念和协议机制,给了我乱花渐欲迷人眼的感觉,对于理解pn似乎没有什么帮助啊,但是zui起码我知道了协议这个概念和工作机制。那么pn也可以套用这些理念的,至少可以做个对比。