传输层协议之TCP/UDP

1、UDP

  UDP协议是面向无连接的,即不需要在正式传递数据前先链接双方,UDP协议只是数据报文的搬运工,不保证有序且不丢失的传递到对端,且UDP协议无任何控制流量的算法,UDP相对于TCP更加轻便。

  特征:

  • 面向无连接:在发送端,应用层将数据传递给传输层的UDP协议,UDP只会给数据增加一个UDP头标识下是UDP协议,然后就传递给网络层了;在接收端,网络层将数据传递给传输层,UDP只是去除IP报文头就传递给了应用层。
  • 不可靠性:UDP协议的不可靠性主要表现在以下几个方面:
    • 无连接,想发就发
    • 收什么数据就传什么数据且不会备份,也不会关新对端是否正确接收
    • 无拥塞控制,一直会以恒定的速度发送数据,即使网络不好也不会调整速率,所以当网络不好时可能导致丢包
  • 高效:UDP头部开销小,只有8个字节。由两个16位的端口号[源端口(可选)+目标端口]+整个报文的长度和整个数据报文的校验+IPv4(可选)组成
  • 传输方式:单播(一对一)、多播(一对多)、广播(多对多)
  • 适合使用场景:实时性要求高的地方,如直播、王者荣耀等

2、TCP

1)头部

  • Sequence Number:这个序号保证了TCP传输的报文都是有序的,对端可以通过序号顺序拼接报文
  • Acknowledgement number:次序号表示数据接收端期望接受的下一字节编号是多少,同时也表示上一个序号的数据已到达
  • window size:窗口大小,表示还能接收多少字节的数据,用于流量控制
  • 标识符:
    • URG=1:表示本数据报文的数据部分包含紧急信息,是一个高优先级数据报文段,此时紧急指针有效
    • ACK=1:表示确认号字段有效,TCP规定连接后传送的所有报文ACK=1
    • PSH=1:表示接收端应该立即将数据PUSH给应用层,而不是等缓存区满之后再提交
    • RST=1:表示当前TCP连接出现严重的问题,可能需要重新建立连接
    • SYN=1:当SYN=1,ACK=0时,表示当前报文段是一个连接请求报文;当SYN=1,ACK=1时,表示当前报文段是一个同意连接请求的报文
    • FIN=1:表示此报文段是一个释放连接请求的报文段

2)状态机

性能指标RTT:表示发送端发送数据到接收到对端数据所需要的往返时间

三次握手:

  TCP协议中,主动发起请求的为客户端,被动连接的是服务端,连接后双方都能发送和接收数据,因此TCP是一个双全工协议

  • 客户端发送连接请求到服务端,该报文段中包含自身的数据通讯初始序号,请求发送后,客户端便进入SYN-SENT状态
  • 服务端收到连接请求报文后,如果同意连接,则发送一个应答,该应答中也包含自身数据通讯初始序号,发送完后进入SYN-RECEIVED状态
  • 客户端收到连接同意应答后,还需要向服务端发送一个确认报文,发完后进入ESTABILISED状态,服务端接收到后也进入ESTABLISHED状态

  TCP需要三次握手的原因:防止失效的连接请求段被服务端接收从而影响错误

四次挥手

  • 若客户端A认为发送数据完成,则他需要向服务端B发送连接释放请求
  • B收到释放请求之后,会告诉应用层要释放TCP连接,然后会发送ACK包,并进入CLOSE-WAIT状态,表示A到B的连接已经释放,不再接收A发的数据了,但由于TCP连接是双向的,所以B仍然可以给A发送数据
  • 若B此时还没发送完数据会继续发送,完毕后会向A发送释放连接请求,然后B进入LAST-ACK状态
  • A收到释放请求后,向B发送确认应答,此时A进入TIME-WAIT状态,该状态会持续2MSL(最大段生存周期)时间,若该时间段内无B的重发请求就会进入CLOSED状态,当B收到确认应答后也进入CLOSED状态

  A会进入TIME-WAIT状态等待2SML时间的原因:为了保证B能收到A的应答,若A发完确认后直接进入CLOSED状态,如果确认应答因为网络问题一直没送达,就会造成B不能正常关闭。

原文地址:https://www.cnblogs.com/qiyangliu/p/11334522.html

时间: 2024-08-30 17:58:28

传输层协议之TCP/UDP的相关文章

传输层协议(TCP/UDP)介绍

一,TCP/IP协议族的传输层协议概况:1,TCP:传输控制协议2,UDP:用户数据报协议二,TCP/UDP协议详解:1,TCPa.TCP是面向连接的,可靠的进程到进程通信的协议 :TCP提供全双工服务,即数据可在同一时间双向传输.b.TCP报文段:TCP将若干个字节构成一个分组.叫报文段.TCP报文段封装在IP数据报中.数据段详解:.序号(32):发送端为每个字节进行编号,便于接收端正常重组.确认号(32):用于确认发送端的信息.窗口大小(16):用于说明本地可接收数据段的数目,窗口大小是可变

网络基础:TCP协议、UDP协议、均属于传输层协议;TCP和UDP协议有何不同?

传输层 传输层的主要工作是定义端口,标识应用程序身份,并将数据包交给对应的应用程序实现端口到端口的通信,并且传输层引入了TCP/UDP协议. 1. 如果有大量数据包.数据包大?时间很长,网络中断,怎么控制重新传输?怎么确保数据包正确完整---传输层 传输层封装数据包,通过定义的 TCP.UDP 协议实现按序一个一个发送,保证数据完整正确性: 2. QQ发消息,你必须使用QQ接受消息,才可以正常通信:但是电脑中不是只运行了QQ,还有其他程序,怎么确定由谁来处理消息 传输层定义端口的概念-- HTT

TCP/IP中的传输层协议TCP、UDP

TCP提供可靠的通信传输,而UDP则常用于让广播和细节控制交给应用的通信传输. 传输层协议根据IP数据报判断最终的接收端应用程序. TCP/IP的众多应用协议大多以客户端/服务端的形式运行.客户端是请求的发起端,而服务端表示提供服务的意思,是请求的处理端.因此,作为服务端的程序有必要提前启动,准备接收客户端的请求.传输协议根据接收数据中的目标端口号识别目标处理程序. TCP.UDP比较 TCP提供可靠性传输.实行顺序控制或重发控制机制,还有流量控制和拥塞控制,提高网络利用率. UDP是不具备可靠

TCP/IP 协议图--传输层中的 TCP 和 UDP

TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP. TCP 是面向连接的.可靠的流协议.流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端.TCP 为提供可靠性传输,实行"顺序控制"或"重发控制"机制.此外还具备"流控制(流量控制)"."拥塞控制".提高网络利用率等众多功能. UDP 是不具有可靠性的数据报协议.细微的处理它会

浅谈传输层协议TCP和UDP

在当今因特网的层次结构中,传输层的协议主要有两种,其一为Transmission Control Protocol,即TCP:其二为User Datagram Protocol,即UDP. 1.TCP service model TCP是使用最广泛的传输层通讯协议,它在两个端系统之间建立连接,并通过两端的状态机来维护连接,为应用层提供可靠的字节流传输服务. (1)TCP是面向连接的 在传输实际数据的字节流之前,两个端系统的TCP会通过三次握手来确定建立连接,即所谓的3-way handshake

可靠的传输层协议——TCP协议

TCP协议 TCP协议工作在传输层,虽然它与UDP的下一层都是IP但是它却和UDP的效果完全不同,它是一种可靠的传输层协议 一.TCP协议封装 TCP数据段头部共有20个字节,包括16位的源端口号,16位的目的端口号,端口号与前面各层中的协议类型相似,都指的是上层将要交给谁,这个端口号就是主机上一个进程所绑定的一个入口,所以通过端口号和IP就能找到唯一主机的唯一进程. 32位序号:用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节.如果将字节流看作在两个应用

传输层上的TCP和UDP

TCP和UDP是OSI模型中的传输层中的协议. TCP定义 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义. UDP定义 UDP (User Datagram Protocol 用户数据报协议)是OSI(Open System Interconnection开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务. 区别: TCP提供的是面向连接

前端工程师如何理解 TCP/IP 传输层协议?

网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别. TCP/IP网络模型 计算机与网络设备要相互通信,双方就必须基于相同的方法.比如,如何探测到通信目标.由哪一边先发起通信.使用哪种语言进行通信.怎样结束通信等规则都需要事先确定.不同的硬件.操作系统之间的通信,所有的这一切都需要一种规则.而我们就把这种规则称为协议(protocol). TCP/IP 是互联网相关的各类协议族的总称,比如:T

传输层协议介绍、重要的TCP三次/四次握手(理论部分,敲黑板!)

本次我和小伙伴分享的是网络七层中的传输层,我将会分成以下几步为大家进行分解说明:1.TCP协议介绍2.TCP报文格式3.TCP三次握手4.TCP四次握手5.UDP协议介绍6.常见协议及其端口 一.TCP和UDP协议1.TCP是面向连接的.可靠的进程到进程通信的协议2.TCP提供全双工服务,即数据可在同一时间双向传输3.TCP报文段(不超过1500字节,1.5kb) TCP将若干个字节构成一个分组,叫报文段(Segment) TCP报文封装在IP数据报中TCP报文段:1.源端口号(16)2.目标端