TCP与UDP差异

  TCP UDP
连接 面向连接,通过三次握手建立连接,四次挥手断开连接 无连接
可靠性 差错校验和失败重传,提供可靠传输服务 尽最大努力交付,不保证可靠性
消息顺序 保证消息收到的顺序与发出顺序一致 UDP报文可能以任何顺序到达
数据边界 TCP的数据流以字节流形式传输,没有边界 而UCP数据以报文的形式传输,每个报文都是一个独立数据包
速度 TCP需要创建理解,可靠性保证,传输速度较慢 UDP速度相对较快
流控制 提供流量控制 无流量控制
应用 适合对可靠性要求较高、传输时间要求不高的应用 适合对传输速度、效率要求高,例如实时应用

TCP连接的建立与断开

TCP报头如下图所示,其中在建立和断开连接时涉及到的标志有以下几个。

TCP报头

标志名称 大小 含义
序列号seq 四字节 为数据流的每一个字节分配的序列号,用于标记数据段的顺序,第一个序列号随机生成。
确认号ack 四字节 期待收到的下一数据段的第一字节的序列号,表示上一数据段已收到,期待收到一下数据段。
确认ACK 一位标志位 表示确认号是否有效。
同步SYN 一位标志位 用于在建立连接时同步序号。当SYN=1,ACK=0时表示这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。
终止FIN 一位标志位 用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接。

三次握手建立连接

TCP三次握手

ref

四次挥手断开连接

TCP四次挥手

ref



blog comments powered by Disqus

Published

01 January 2017

Tags