点我

TCP协议

概述

TCP(Transmission Control Protocol 传输控制协议) 是一种面向连接的、可靠的、基于字节流的传输层通信协议

由 IETF 的RFC 793定义,TCP 是面向连接的、可靠的流协议

报文结构

img

源端口:标识发送方的应用进程

目的端口:标识接收方的应用进程

序号(Seq):保证数据传输的有序性

确认号(Ack):对收到的数据进行确认

Flag字段(8位)

  • ACK:确认号标志,置1表示确认号有效,表示收到对端的特定数据
  • RST:复位标志,置1表示拒绝错误和非法的数据包,复位错误的连接
  • SYN:同步序号标志,置1表示同步序号,用来建立连接
  • FIN:结束标志,置1表示连接将被断开,用于拆除连接

Option字段(可选项):MSS最大报文段长度,通过置位,协商能承载的TCP数据大小

传输机制-三次握手

img

img

传输机制-四次挥手

img

img

面向字节流

img

RST标志位

关闭TCP连接的正常方法是四次挥手,但不是只有四次挥手才能关闭TCP连接

RST 标志位作用

用于复位因某种原因导致的错误连接,也用来拒绝非法数据和请求

如果接收到RST标志位的时候,通常发生了某些错误

RST也可能被接收方或者中间设备置位

RST置位的原因

服务器端口没有打开(listen)

服务器响应太慢,用户终止连接

网络攻击

其他

流量控制-滑动窗口机制

img

窗口大小决定了在收到确认前可以发送的字节数

img

可靠传输-停止等待协议

无差错情况

img

超时重传

img

确认丢失

img

确认迟到

img

拥塞控制

网络拥塞

指的是在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏

出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降

TCP的四种拥塞控制算法

慢开始

拥塞控制

快重传

快恢复

图例

img

img

UDP协议

概述

UDP(User Datagram Protocol,用户数据报协议)一种面向无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETE RFC 768是UDP的正式规范

UDP在IP报文协议的协议号是17

报文结构

img

协议特点

1、在传输数据之前,不需要进行复杂的三次握手来建立连接

2、在传输数据时,没有协议间通信流量(确认号),也不需要浪费不必要的处理时间(接收确认信号再发一次)

3、传输结束后,不再用四次挥手来结束连接

因为UDP协议是面向无连接的

TCP和UDP对比总结

TCPUDP
可靠性可靠不可靠
建立连接面向连接无连接
报文面向字节流面向报文
传输方式点对点一对一、一对多、多对多
传输效率
流量控制有(滑动窗口)
拥塞控制
应用场景对传输效率要求低,对传输准确性要求高,要求有连接的场景对传输效率要求高,对传输准确性要求低

TCP适用场景

当网络硬件失效或者负担太重时,数据包可能就会产生丢失、重复、延时、乱序的现象,这些都会导致我们的通信不正常

如果让应用程序来负担差错控制的工作,无疑将给程序员带来许多复杂的工作,于是,我们使用的通信协议来保证通信的可靠性是非常有必要的

TCP一般用于文件传输(FTP、HTTP对数据准确性要求高,速度可以相对慢)、发送或接收邮件(POP、SMTP对数据准确性要求高,非紧急应用)、远程登陆(Telnet、SSH对数据准确性有一定要求,有连接的概念)等等

UDP适用场景

1、在高效可靠的网络环境中(不需要考虑网络通信不好导致的丢包、乱序、延时、重复等问题),因为UDP是无连接的服务,不用消耗不必要的网络资源(TCP中的协议间通信)和处理时间(预期确认需要的时间),从而效率要高得多

2、在轻权通信中,当需要传输的数据量很小(可以装在一个IP数据包内)时

​ UDP很适合这种客户机向服务器传送简单服务请求的环境,如这类协议包括TFTP、SNMP、DNS、DHCP等

3、对实时性要求很强的通信中(允许一定量的丢包率时,如赛事直播、视频等)

分类: 计算机网络

评论

-- 评论已关闭 --

目录