精华内容
参与话题
问答
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    文件为doc版,可自行转成txt,在手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! ...入门学习Linux常用必会60个命令实例详解 ...Linux提供了大量的命令,利用它...
  • Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生钥的密钥对(keyPair)、如何保存公钥的字节数组、...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • TCP UDP简介

    2015-08-22 16:39:04
    1、总图 udp是一个简单的、不可靠的数据报协议,而tcp是一个复杂...套接字层提供的TCP、UDP缓冲机制。   TCP 传输控制协议,TCP是一个面向连接的协议,为用户进程提供可靠的全工字节流。TCP套接字是一种流套接字
    1、总图

    udp是一个简单的、不可靠的数据报协议,而tcp是一个复杂、可靠的字节流协议

     
    TCP的某些特性一旦理解,就很容易编写健壮的客户和服务器程序。
     
    TCP三路握手、TCP连接终止序列、TCP的TIME_WAIT状态
    套接字层提供的TCP、UDP缓冲机制。
     
    TCP  传输控制协议,TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字是一种流套接字(stream socket)
            TCP关心确认、超时和重传之类的细节。TCP即可以是IPv4,也可以是IPv6
     
    传输控制协议
        a)tcp提供客户与服务器之间的连接
        b)tcp还提供了可靠性(reliability)
             当TCP向另一端发送数据时,它要求对端返回一个确认。如果没有收到确认,tcp就自动重传数据并等待更长时间。在数次重传失败后,
             tcp才放弃 ,如此在尝试发送数据上所花时间一般为4-10分钟
        c)tcp提供流量控制
        d)tcp连接是全双工的
     

    2、三路握手
        建立一个TCP连接时会发生下述情形
        1)服务器必须准备好接受外来的连接。这通常通过调用socket、bind、listen函数来完成,我们称为被动打开(passive open)
        2)客户通过调用connect发起主动打开(active open)。这导致客户TCP发送一个SYN分节,它告诉服务器客户将在连接中发送数据的初始序列号。
             通常SYN分节不携带数据,其所在IP数据报只含有一个IP首部、一个TCP首部及可能有的TCP选项。
        3)服务器必须确认(ACK)客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始序列号。
             服务器在单个分节中发送的SYN和对客户SYN的ACK
        4)客户必须确认服务器的SYN


     

    3、TCP选项

        MSS选项。发送SYN的tcp一端使用本选项通告对端它的最大分节大小(maximum segment size)即MSS,也就是它在本连接的每个tcp分节中愿意
        接受的最大数据量。TCP_MAXSEG套接字选项提取和设置这个tcp选项
        
        容器规模选项。 tcp连接任何一端能够通告对端的最大容器大小是65535,因为在tcp首部中相应的字段占16位。SO_RCVBUF套接字选项
     
        时间戳选项
     
     

    4、TCP连接终止
        TCP终止一个连接则需要4个分节
        1)某个应用进程首先调用close,我们称该端执行主动关闭(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
        2)接收到这个FIN的对端执行被动关闭(passive close)。这个FIN由TCP确认。
        3)一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字,这导致它的tcp也发送一个FIN    
        4)接收这个最终FIN的原发送端tcp确认这个FIN
       

     

     
    5、TCP状态转换图



    6、TCP正常建立连接和终止状态转换图


    转自:http://oracledba.iteye.com/blog/1983602
     
    展开全文
  • (1)以太网到串口数据的双缓冲机制+双DMA机制  解决收发数据速度不匹配问题  在以太网到串口双向透传数据的开发都会遇到如何处理收发速度不匹配的问题,处理不好,很容易造成丢包.开始时在串口转TCP/UDP这个方向上,...

    以太网串口双向透传网关设计要点记录

    2015-10-15下午 DanielLee_USTB

    (1)以太网到串口数据的双缓冲机制+DMA机制

         解决收发数据速度不匹配问题

         在以太网到串口双向透传数据的开发都会遇到如何处理收发速度不匹配的问题,处理不好,很容易造成丢包.开始时在串口转TCP/UDP这个方向上,串口使用DMA循环缓冲区来接收,TCP/UDP定时轮询发送,这样没什么问题.在收到TCP/UDP一包数据后,直接通过串口发出去,这样处理很简单,但串口发送数据耗时很长,很有可能数据发不完下一包TCP/UDP数据就来了,这样就会造成丢包.最根本的解决办法就是串口发送也使用DMA方式,把网络数据包收到的数据放到一个循环队列中,等到DMA发送完成后,再从队列中把数据取出发出去,经过测试,这种方法很好的提高了数据收发的实时性。

    (2)关于TCPUDP最大包长问题

           以太网帧长度为64-1518字节。

         TCP帧机构 以太网帧头18字节(6目的MAC+6MAC+2以太网类型+4CRC32+20IP+20TCP+(1~1460TCP数据字节).

         UDP帧结构 以太网帧头18字节(目的MAC+MAC+以太网类型+CRC32+20IP+8UDP+(1~1472TCP数据字节)

         最大UDP数据包长度 65535字节

    (3)关于ARP数据帧格式:

     

         ARP数据包包含 以太网目的地址+以太网原地址+帧类型+选项+发送者MAC+发送者IP+目的MAC+目的IP

    TCP/UDP发送数据请求时,先去自己的ARP表中查询是否有对方IPMAC地址,如果没有,则先发送ARP进行地址解析,收到MAC地址后放入ARP表中,并且进行数据传输。

     

    (4)DHCP实现过程

        在项目中实现了DHCP自动获取IP过程,以UDP 6768端口进行通信.

         DHCP租约过程分为4步:

         ①客户机请求IP(客户机发DHCPDISCOVER广播包);

         ②服务器响应(服务器发DHCPOFFER广播包);

         ③客户机选择IP(客户机发DHCPREQUEST广播包);

         ④服务器确定租约(服务器发DHCPACK/DHCPNAK广播包)。

     

    (5)DMA的“发送完成中断”出现在 刚发送倒数第二个字节的起始位的地方  这时候切换485 接收端会丢失两个自己数据。


         在DMA发送中断完成产生后,时间上还有2个字节还没有传出去,如何保证这个两个自己传完才更改485芯片的传输方向呢?

         1.DMA传输完成中断中加入两个字节的延时,这个延时必须十分准确,并且根据不同波特率进行调整;

         2.DMA传输完成中断中使能串口发送完成中断,在串口发送完成中断中对485芯片控制引脚进行控制,这样进行一次发送传输得产生两次中断;

            直接使能串口发送完成中断不就行了!完全好使!(不过这样在外边是232时候会有接收也能引发传输完成中断的问题!)

         3.可以在硬件设计时采用自收发电路,解决一切485方向控制问题!

    展开全文
  • 传输层:TCP UDP

    2018-05-21 14:02:35
    TCP : 传输控制协议TCP是一个面向连接的协议,为用户进程提供可靠的全工字节流。TCP套接字时一个流套接字(stream socket)。TCP关心确认,超时和重传之类的细节。TCP提供客户端与服务器之间的连接。TCP提供流量...

    TCP  : 传输控制协议

    TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字时一个流套接字(stream socket)。TCP关心确认,超时和重传之类的细节。

    TCP提供客户端与服务器之间的连接。

    TCP提供流量控制,TCP总是告知对端在任何时刻它一次能够从对端接收多少字节的数据,这称为通告窗口。通告窗口指出接收缓冲区中当前可用的空间量,从而确保发送端发送的数据不会使接收缓冲区溢出。

    TCP连接是全双工的,这意味着在一个给定的连接上应用可以在任何时刻在进出两个方向上既发送数据又接收数据。


     

     

    UDP:用户数据报协议

    UDP是一个无连接协议,UDP套接字是一种数据报套接字。

    应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报,该UDP数据报进而又被封装到一个IP数据报,然后发送到目的地。

    UDP不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数据报只到达一次。

    UDP提供无连接服务,因为UDP客户和服务器之间不必存在长期的关系。

     

    TCP连接建立

    三次握手

    建议一个TCP连接时会发生下述情形:

    1.服务器必须准备好接受外来的连接。通过调用socket,bind和listen函数完成。称之为被动打开

    2.客户通过调用connect发起主动打开。导致客户TCP发送一个SYN(同步)分节,告诉服务器将在连接中发送的数据的初始序列号。

    3.服务器必须确认(ACK)客户的SYN,同时自己也发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始序列号。服务器在单个分节中发送SYN和对客户SYN的ACK(确认)。

    4.客户必须确认服务器的SYN。

    这种交换至少需要3个分组,因此称之为TCP的三路握手。


                         

     

    TCP连接终止

    四次挥手

    终止一个连接需4个分节:

    1.某个应用进程首先调用close,称该端执行主动关闭。该端的TCP发送一个FIN分节,表示数据发送完毕。

    2.接收到这个FIN的对端执行被动关闭。这个FIN由TCP确认,作为一个文件结束符传递给接收端应用进程。 

    3.接收到这个文件结束符的应用程序将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。

    4.接收到这个最终FIN的原发送端TCP确认这个FIN。

    每个方向都需要一个FIN和一个ACK,所以需要4个分节。

                                            

     

     

    当一个UNIX进程无论自愿的(exit或return)还是非自愿的(收到一个终止本进程的信号)终止时,所有打开的描述符都被关闭。

     

    观察分组


    一个完整的TCP连接所发生的实际分组交换情况,包括连接建立,数据传送和连接终止3个阶段。

                                    

     

     

     

     

    TIME-WAIT状态

    重温四次握手过程:

                                

         

     

    假设A是服务器端,主机A向B发送FIN信息相当于在服务器端控制台输入CTRL+C。

    套接字经过四次握手过程后并非立即删除,而是要经过一段时间的Time-wait状态。套接字处在Time-wait状态时,相应端口是正在使用的状态。因此bind()调用过程中当然会发生错误。

     

    先端开连接的(先发送FIN消息)的主机才经过Time-wait状态。

     

    提示:

    不管是服务器端还是客户端都会有Time-wait状态。先端开连接的套接字必然会经过Time-wait过程。因为客户端套接字的端口号是任意指定的,与服务器端不同,客户端每次运行程序时都会动态分配端口号,因此无需过多关注Time-wait过程 (所以上例中从客户端结束,再运行服务器端分配同样端口号不会bind() error!)

     

     

    Time-wait状态的作用:

    四次握手过程中, 假设A向B发送完最后一条ACK消息后立即消除套接字:

    若主机A向主机B传输最后一条ACK消息(SEQ 7501,ACK 5001)在传递途中丢失,未能传给主机B。主机B没收到确认信号,会认为之前发送的FIN消息(SEQ 7501, ACK 5001)未能抵达主机A,继而重传。若此时A已是完全终止的状态,则主机B永远无法收到从主机A最后传来的ACK消息。相反,若主机A的套接字处于Time-wait状态,则会向主机B重传最后的ACK消息。

    基于这些考虑,先传输FIN消息的主机应经过Time-wait过程。

     

     

    端口号 

     TCP和UDP协议都使用16位整数的端口号来区分不同进程。

     

    端口号被分为以下3端:

    1.端口0~1023,这些端口由IANA分配和控制。是保留端口,这些端口只能赋予特权用户进程的套接字。

    2.已登记的端口为1024~49151,这些端口不受IANA控制,不过由IANA登记并提供它们的使用情况。可能的话,相同端口号也分配给TCP和UDP同一给定服务。

    3.49152~65535是动态或私用端口。这些就是临时端口,通常由传输层协议自动赋予客户。

     

     

    TCP输出

    TCP提取套接字缓冲区中的数据并把它们发送到对端TCP。本端TCP以MSS大小或更小的块把数据传递给IP,同时每个数据报岸上TCP首部以构成TCP分节,其中MSS或是由对端通告的值。

     

     

    UDP输出

    这一端的UDP简单给来自用户的数据报安上它的8字节的首部以构成UDP数据报,然后传递给IP。

    展开全文
  • 1、总图 udp是一个简单的、不可靠的数据报协议,而tcp是一个复杂...套接字层提供的TCP、UDP缓冲机制。   TCP 传输控制协议,TCP是一个面向连接的协议,为用户进程提供可靠的全工字节流。TCP套接字是一种流套...
    1、总图

    udp是一个简单的、不可靠的数据报协议,而tcp是一个复杂、可靠的字节流协议

     
    TCP的某些特性一旦理解,就很容易编写健壮的客户和服务器程序。
     
    TCP三路握手、TCP连接终止序列、TCP的TIME_WAIT状态
    套接字层提供的TCP、UDP缓冲机制。
     
    TCP  传输控制协议,TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字是一种流套接字(stream socket)
            TCP关心确认、超时和重传之类的细节。TCP即可以是IPv4,也可以是IPv6
     
    传输控制协议
        a)tcp提供客户与服务器之间的连接
        b)tcp还提供了可靠性(reliability)
             当TCP向另一端发送数据时,它要求对端返回一个确认。如果没有收到确认,tcp就自动重传数据并等待更长时间。在数次重传失败后,
             tcp才放弃 ,如此在尝试发送数据上所花时间一般为4-10分钟
        c)tcp提供流量控制
        d)tcp连接是全双工的
     

    2、三路握手
        建立一个TCP连接时会发生下述情形
        1)服务器必须准备好接受外来的连接。这通常通过调用socket、bind、listen函数来完成,我们称为被动打开(passive open)
        2)客户通过调用connect发起主动打开(active open)。这导致客户TCP发送一个SYN分节,它告诉服务器客户将在连接中发送数据的初始序列号。
             通常SYN分节不携带数据,其所在IP数据报只含有一个IP首部、一个TCP首部及可能有的TCP选项。
        3)服务器必须确认(ACK)客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始序列号。
             服务器在单个分节中发送的SYN和对客户SYN的ACK
        4)客户必须确认服务器的SYN


     

    3、TCP选项

        MSS选项。发送SYN的tcp一端使用本选项通告对端它的最大分节大小(maximum segment size)即MSS,也就是它在本连接的每个tcp分节中愿意
        接受的最大数据量。TCP_MAXSEG套接字选项提取和设置这个tcp选项
        
        容器规模选项。 tcp连接任何一端能够通告对端的最大容器大小是65535,因为在tcp首部中相应的字段占16位。SO_RCVBUF套接字选项
     
        时间戳选项
     
     

    4、TCP连接终止
        TCP终止一个连接则需要4个分节
        1)某个应用进程首先调用close,我们称该端执行主动关闭(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
        2)接收到这个FIN的对端执行被动关闭(passive close)。这个FIN由TCP确认。
        3)一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字,这导致它的tcp也发送一个FIN    
        4)接收这个最终FIN的原发送端tcp确认这个FIN
        

     

     
    5、TCP状态转换图


     
    展开全文
  • 后来直接采用分配缓冲,发送数据时标志offset,接收数据 按offset直接填充,非常简单。当然接收时判断一下,有没有重复的数据。 二是继承RTPSession,写一个响应类,在这里接收和发送。 然后,写一个
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • NetFuke.zip

    2020-03-24 12:04:20
    9、保存选中的数据包数据区:支持过滤并连携保存数据包数据区,只支持TCP,UDP数据区连携 10、数据包有效性设置:可以设置数据包的有效性,规避数据包扫描,保存 11、分析日志,解码日志:支持日志保存 12、网络...
  • Iperf(exe和apk)和使用说明

    热门讨论 2012-01-13 10:24:27
    -l 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16 -m 显示tcp最大mtu值 -o 将报告和错误信息输出到文件eg:iperf -c 222.35.11.23 -o ciperflog.txt -p 指定服务器端使用的端口或客户端所连接的端口eg...
  • java源码包

    2015-12-01 16:29:37
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • asp.net知识库

    2015-06-18 08:45:45
    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 ...
  • QT creator 教程

    热门讨论 2012-03-29 11:02:43
    十九、 Q t 2D 绘图(九)双缓冲绘图简介 二十、Qt 2D绘图(十)图形视图框架简介 二十一、Qt数据库(一)简介 二十二、Qt数据库(二)添加MySQL数据库驱动插件 二十三、Qt数据库(三)利用QSqlQuery类执行SQL语句...
  • QT经典教程_详细一步一步例子

    千次下载 热门讨论 2013-04-12 21:24:10
    十九、Qt 2D绘图(九)双缓冲绘图简介 二十、Qt 2D绘图(十)图形视图框架简介 二十一、Qt数据库(一)简介 二十二、Qt数据库(二)添加MySQL数据库驱动插件 二十三、Qt数据库(三)利用QSqlQuery类执行SQL语句(一...
  • Qt5开发及实例(完整版PDF)part1

    热门讨论 2015-03-06 13:35:41
    6.3 Qt 5双缓冲机制 228 6.3.1 原理与设计 228 6.3.2 绘图区的实现 230 6.3.3 主窗口的实现 235 6.4 显示Qt 5 SVG格式图片 239 L6.4 Qt 5 SVG格式图片显示方法:概念解析 246 XML 246 第7章 Qt 5图形视图框架 247 ...
  • Qt5开发及实例(完整版PDF).part2

    热门讨论 2015-03-06 13:37:18
    6.3 Qt 5双缓冲机制 228 6.3.1 原理与设计 228 6.3.2 绘图区的实现 230 6.3.3 主窗口的实现 235 6.4 显示Qt 5 SVG格式图片 239 L6.4 Qt 5 SVG格式图片显示方法:概念解析 246 XML 246 第7章 Qt 5图形视图框架 247 ...
  • 点对点测试宽带实际速度软件

    热门讨论 2009-05-17 14:31:12
    当然iperf程序还支持很多参数,具体设置我们可以参考其帮助信息,比较常用的有-l 缓冲区大小,-m 显示tcp最大mtu值,-p 指定服务器端使用的端口或客户端所连接的端口,-u 使用udp协议,-w 指定TCP窗口大小,默认是8...
  • java编程基础,应用与实例

    热门讨论 2009-04-11 16:48:47
    18.7 双缓冲 338 18.8 巩固练习 340 第19章 Applet 342 19.1 制作Applet 342 19.2 Applet的生命周期 344 19.3 Applet的多媒体处理 346 19.3.1 图像处理 346 19.3.2 声音处理 347 19.4 Applet参数...
  • Linux C 编程一站式学习.pdf

    千次下载 热门讨论 2010-11-24 01:27:27
    2.10. C标准库的I/O缓冲区 2.11. 本节综合练习 3. 数值字符串转换函数 4. 分配内存的函数 26. 链表、二叉树和哈希表 1. 链表 1.1. 单链表 1.2. 双向链表 1.3. 静态链表 1.4. 本节综合练习 2. 二叉树 2.1. 二叉树的...
  • 计算机网络(第四版+潘爱民)

    千次下载 热门讨论 2011-10-09 12:41:20
    2.2.2 绞线 2.2.3 同轴电缆 2.2.4 光 纤 2.3 无线传输 2.3.1 电磁波谱 2.3.2 无线电传输 2.3.3 微波传输 2.3.4 红外线和毫米波 2.3.5 光波传输 2.4 通信卫星 2.4.1 地球同步卫星 2.4.2 中间轨道卫星 2.4.3 低轨道...
  • Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生钥的密钥对(keyPair)、如何保存公钥的字节数组、...
  • Java2游戏编程.pdf

    热门讨论 2013-01-31 15:20:46
    本书将向读者展示用Java语言和它的类库创建2D游戏,所涉及的主题包括高速性能、双缓冲图像、动画、声音、媒体控制、I/O和网络支持等。将带领大家一步一步学习编写Java游戏,最终打造属于自己的Java游戏。 目录...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • 日志实现了前后端分离,前端负责格式化字符串然后发送给后端,后端启动一个线程,服务将数据写入磁盘中,使用了双缓冲技术 音视频数据采集与处理 音视频的采集与处理使用的生产者与消费者模式,数据采集为生产者,...
  • Java典型模块

    2012-02-25 18:27:40
    13.2.3 实现窗口类——通过双缓冲技术 13.3 知识点扩展——画图的基础知识 13.3.1 画图的基础知识 13.3.2 各种类型对象的绘制 13.4 小结 第14章 指针时钟项目(Swing组件+时间算法) 14.1 指针时钟原理 14.1.1 项目...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生钥的密钥对(keyPair)、如何保存公钥的字节数组、...
  • 飞鸽传书(IPMessenger) 源码

    热门讨论 2010-06-29 14:10:51
    Bug 修正 (文件传送引起缓冲溢出)  广播设置支持主机地址(FQDN)解析  ver 2.04 ... 增加绑定网卡(IP)功能  ver 2.05 ... Bug 修正 (2.04版当激活发送/接收消息窗口时,无法注销/关闭系统)  ver 2.06 ... 很小的...

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

udp 双缓冲