`
bigfang
  • 浏览: 40238 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

TCP、UDP的初次了解

阅读更多

ACK:用于指示确认号中的值有效,即该报文首部包括一个对已被成功接收报文段的确认。
RST、SYN、FIN:连接建立和拆除。
PSH:指示接收方应立即将数据交给上层。
URG:指示报文段存在着被发送方的上层实体置为“紧急”的数据。


TCP 与 UDP的区别:
       简单地讲,TCP建立了端与端的管道,有连接的,连接建立之后,才能传应用数据。包括了差错检测、重传、累积确认、定时器以及用于序号和确认号的首部字段。所以,是可靠的,但也由于这些机制,会产生网络阻塞,所以,速度慢。

       UDP,无连接,不需要创建两者之间的管道。所以,无阻塞机制,无连接时延,速度快,但不可靠,会丢失数据,适合于要求速度快、丢失数据不影响的传输。


TCP的连接:三次握手(three-way-handshake)
简单地讲:
1.客户机向服务器发送连接请求。
2.服务器收到客户机的请求之后,向客户机发送“收到你的连接请求,同意建立连接”的消息。
3.客户机向服务器发送“收到了服务器的收到确认”的确认消息。
其中:
第一步:客户机发送的报文段,不包含应用层数据。首部中的SYN=1。客户端并选择一个起始序号(client_isn),放入到首部中的序号中。

第二步:服务器收到后,为该TCP连接分配TCP缓存和变量。发送允许连接的报文段,不包括应用层数据,SYN=1,确认号被置为(client_isn+1),服务器选择自己的初始序号(server_isn)。

第三步:客户机收到后,也给该连接分配缓存和变量。向服务器发送确认报文段,对服务器允许连接的报文段进行确认,首部的确认字段为server_isn+1。此时连接已经建立,所以首部中的SYN=0。
       上述3步完成以后,两者就可以互发含有数据的报文段了。


TCP连接的断开:四次挥手
第一步:客户端向服务器发送特殊的TCP报文段,FIN=1。
第二步:服务器收到后,向客户机发送一个确认报文段。
第三步:服务器发送自己的连接终止报文段,FIN=1.
第四步:客户端对这个服务器的终止报文段进行确认。
        上述4步完成后,两台主机用于该连接的所有资源都被释放了。
     由于TCP是在一个管道内,双向都可以发送数据,所以每个方向必须单独地进行关闭。一方断开,需要发送2次;双方断开,就需要四次。当一方完成自己的数据发送任务后,就发送FIN=1,来终止这个方向的连接。另一端收到FIN=1后,通知应用层:对方终止了那个方向的数据传送。


  • 大小: 52.8 KB
  • 大小: 17.7 KB
分享到:
评论

相关推荐

    NetAssist_串口助手_tcpudptesttool_TCP/UDP串口工具_串口UDP_NetAssist_

    《NetAssist:一款强大的串口与TCP/UDP测试工具》 在信息技术领域,设备间的通信是至关重要的,其中串口通信与网络通信(TCP/UDP)是两种常见且广泛使用的通讯方式。针对这些需求,出现了名为“NetAssist”的工具,...

    各种版本UDP和TCP小程序

    在IT行业中,网络通信是至关重要的一个领域,而TCP(传输控制协议)和UDP(用户数据报协议)是两种最常用的传输层协议。本项目"各种版本UDP和TCP小程序"聚焦于利用C#编程语言来实现这两种协议的客户端与服务器之间的...

    TCP和UDP一体的上位机

    《TCP与UDP一体化上位机:Qt5网络调试助手详解》 在计算机网络通信领域,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,各自具有独特的特性和应用场景。本文将围绕...

    TCP.UDP调试工具SocketTest

    SocketTest是一款强大的网络通信协议调试工具,主要用于TCP和UDP协议的测试与调试。它能够帮助开发者和网络管理员在开发和维护网络应用时,快速检查和验证Socket接口的正确性,确保数据的准确传输。 TCP...

    SocketTool (TCP/UDP Socket 调试工具 V2.2)

    SocketTool是一款功能强大的TCP/UDP Socket调试工具,版本为V2.2,它为开发者提供了便利的网络通信测试环境。Socket编程是计算机网络编程的基础,主要用于实现不同设备间的通信。这款工具能够帮助开发者模拟Socket...

    TCP/UDP性能测试小工具

    《TCP/UDP性能测试工具详解》 在信息技术领域,网络通信是至关重要的组成部分,而TCP(传输控制协议)和UDP(用户数据报协议)作为两种主要的传输协议,各自承担着不同的职责。为了确保网络应用的高效运行,对TCP和...

    用于TCP/IP &UDP 通讯协议SocketTest

    在IT领域,了解并掌握TCP/IP和UDP这两种基础的网络通信协议至关重要,因为它们构成了互联网通信的基础。 TCP(传输控制协议)是一种面向连接的、可靠的通信协议。它在数据传输前会建立连接,并且确保数据按照发送...

    tcp监控

    Tcpview是由Sysinternals(现为Microsoft子品牌)开发的一款强大的工具,它可以显示所有TCP和UDP连接的详细信息。用户可以查看每个连接的进程ID,从而知道哪个应用程序正在与网络交互。此外,Tcpview还提供了筛选、...

    linux2.6_TCP包发送流程.pdf

    - **`tcp_transmit_skb`**:这是TCP实际发送数据包的函数,无论初次发送还是可能的重传,都会经过此函数。在这一过程中,完全无头的skb(socket buffer)将被构建完整的TCP头部,并向下传递至IP层进行进一步处理。 ...

    基于UDP的java聊天工具

    UDP是一种传输层协议,与TCP(传输控制协议)相比,它不提供连接建立、顺序保证或错误校正,因此具有更高的速度和更低的延迟,适合于对实时性要求较高的应用。 在Java编程语言中,实现UDP通信主要依赖于`java.net....

    《TCP/IP路由技术卷一中文版(第二版)》助读笔记

    BGP使用TCP进行消息传输,而RIP使用UDP。OSPF则直接封装在IP包中。 - **多路复用**:不同层之间的通信通常采用多路复用的方式,允许多个应用程序共享底层资源。 #### 三、IP数据包结构详解 - **版本字段**:标识...

    基于TCP的简单一对一聊天程序设计.doc

    考虑到可靠性和稳定性,选择了TCP而非UDP。程序采用客户-服务器架构,一人作为服务器端,等待另一人的客户端连接。服务器端启动并监听,客户端则发起连接请求。TCP连接建立后,双方可以进行消息的发送和接收。 总的...

    TCP/IP详解之IP协议

    IP协议通过一种不可靠、无连接的方式进行数据报的传输,这种方式对于初次接触TCP/IP的人来说可能会感到有些陌生,尤其是对于那些熟悉X.25或SNA等传统网络协议的人来说更是如此。 #### 3.2 IP协议的特性 ##### 不...

    smsniff网络测试工具

    `readme.txt` 文件通常包含了软件的基本信息、安装说明和快速启动指南,对于初次使用者来说,这是一个了解`smsniff` 的重要参考。 总结来说,`smsniff` 是一个实用的网络测试工具,能够帮助专业人士深入理解TCP和...

    网络数据监视软件

    本文将详细介绍一种名为“网络数据监视软件”的工具,该软件以其超简单的操作界面和强大的功能,使得TCP和UDP传输数据的监控变得轻而易举。 网络数据监视软件,顾名思义,是一款专门用于监测网络数据流动的工具。它...

    互联网数据传输协议QUIC研究综述.pdf

    QUIC(Quick UDP Internet Connections)是Google提出的一种基于UDP的互联网数据传输协议,旨在替代现有的TCP(Transmission Control Protocol)。QUIC协议通过引入多项新特性,理论上在许多方面都可能优于TCP。例如...

    iperf常用提示符和一些常见的命令

    iperf是一款网络性能测试工具,主要用于测量网络的最大TCP或UDP带宽性能。它能够帮助用户了解网络的实际传输能力,通过各种参数的调整来优化网络配置。本文将详细介绍iperf在Linux及Windows平台上的使用方法,并解释...

    01Web了解和Servlet初次见面.pdf

    - **Socket类型**:分为流式Socket(面向连接,基于TCP协议)和数据报Socket(无连接,基于UDP协议)。 - **Socket通信**: - 客户端:创建Socket对象,通过`Socket`构造函数指定服务器地址和端口。 - 服务端:...

    非常好用的端口查看工具(网管必备)

    首先,Tcpview.exe 是由微软 Sysinternals 套件提供的一款免费软件,它允许用户实时监控系统中所有打开的TCP/UDP端口,以及与这些端口建立连接的远程IP地址。通过这个工具,你可以快速地识别出哪些进程正在占用特定...

Global site tag (gtag.js) - Google Analytics