标签:封装 情况下 时序 字段 好的 拥塞控制 三次 字节 三次握手
一、TCP/IP网络模型
TCP/IP是互联网各类协议族的总称,比如:TCP、UDP、IP、FTP、HTTP等都属于TCP/IP族内的协议。
常用的网络分层模型:
链路层:负责封装和解封装IP报文,发送和接收ARP/RARP报文等;
网络层:负责路由以及把分组报文发送给目标网络或主机;
传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文;
应用层:负责向用户提供应用程序,比如:HTTP、FTP、SMTP等;
二、UDP
UDP全称是用户数据报协议,在网络中它与TCP协议一样处理数据包,是一种无连接的协议。它有以下几个特点:
1.面向无连接的。
UDP不需要和TCP一样在发送数据前进行三次握手建立连接,想发送数据就发送数据,不关心对方是否能收到;并且它也不会对数据报文进行任何拆分和拼接操作。
具体步骤:
2.有单播、多播、广播的功能
UDP不止支持一对一的传输方式,也支持一对多,多对多,多对一的方式;
3.UDP是面向报文的
UDP对应用层传输过来的报文,只是加一个头部标识,就向下交付IP层了。UDP对这些报文不做任何处理。因此,应用程序需要选择合适的报文大小;
4.不可靠性
5.头部开销小,传输数据报文时效性很高
UDP 头部包含了以下几个数据:
因此 UDP 的头部开销小,只有八字节,相比 TCP 的至少二十字节要少得多,在传输数据报文时是很高效的。
三、TCP
TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的RFC 793定义。TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,你可以把它想象成排水管中的水流。
1. TCP连接过程(三次握手)
上面的过程ACK,SYN都是标识位,真正的确认或者发送数据都是seq、ack等。
2.TCP断开连接(四次挥手)
3.TCP协议的特点
面向连接
面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。
仅支持单播传输
每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。
TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。
可靠传输
对于可靠传输,判断丢包,误码靠的是TCP的段编号以及确认号。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。
提供拥塞控制
当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞
TCP允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。当然,TCP可以立即发送一个数据段,也可以缓存一段时间以便一次发送更多的数据段(最大的数据段大小取决于MSS)
四、TCP和UDP的比较
UDP | TCP | |
是否连接 | 无连接 | 面向连接 |
是否可靠 | 不可靠传输,不使用流量控制和拥塞控制 | 可靠传输,使用流量控制和拥塞控制 |
连接对象个数 | 支持一对一,一对多,多对一,多对多 | 只能是一对一 |
传输方式 | 面向报文 | 面向字节流 |
首部开销 | 开销小,仅8字节 | 首部最小20字节,最大60字节 |
适用场景 | 适用于实时应用(IP电话、视频会议、直播等) | 适用于要求可靠传输的应用,例如文件传输 |
总结:
标签:封装 情况下 时序 字段 好的 拥塞控制 三次 字节 三次握手
原文地址:https://www.cnblogs.com/anduodefeng/p/13098585.html