ad1

您当前位置:首页 > 综合资讯

灵魂拷问:TCPUDP彻底搞懂了吗

来源:IT之家
时间: 2023-06-20 14:17
阅读量:5872       

01、TCP 与 UDP 的区别

这两种协议有什么区别呢?他们又是如何工作的?跟着文档君往下看~

  • TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。可靠性,是 TCP 的最大特点,主要体现在:数据无丢失、无错误、无失序、无重复到达。就如同上图,TCP 能将“孩子”(数据包)十分安全地传送给接收者。

  • UDP是一种无连接、不可靠、快速传输的传输层通信协议。快速传输,是 UDP 的最大特点,主要体现在:数据发送前,不需要提前建立连接,能更高效地传输数据,但可靠性无法保证。就如同上图,UDP 只负责把“孩子”(数据包)送出去,不管接收者有无收到。

直观感受了 TCP 协议与 UDP 协议的区别后,咱们来看看 TCP 协议是如何工作的?

02、TCP 是如何工作的?

TCP 通信的连接管理机制 总结为:三次握手建立连接,四次挥手断开连接。

lt;三次握手建立连接gt;

TCP 是面向连接的协议,所以每次发出的请求都需要对方进行确认。TCP 客户端与 TCP 服务器在通信之前需要完成三次握手才能建立连接。

第一次握手

目的:这是一个请求建立连接的数据包,客户端先向服务器发送一个同步数据包。

数据包的 TCP 首部内容:

  • 同步 SYN=1

  • 序号 seq=x

第二次握手

目的:服务器收到客户端发送的第一个数据包后,判断出为主动建立连接的数据包。若服务器同意连接,则服务器发送一个数据包进行回应。

数据包的 TCP 首部内容:

  • 同步 SYN=1

  • 确认标记 ACK=1

  • 序号 seq=y

  • 确认号 ack=x+1

第三次握手

目的:客户端收到服务器的确认之后,再给服务器发送一个数据包。

数据包的 TCP 首部内容:

  • 同步 SYN=1

  • 确认标记 ACK=1

  • 序号 seq=x+1

  • 确认号 ack=y+1

Tips

在客户端与服务器端传输的 TCP 数据中,双方的序号 seq 和确认号 ack 的值,都是在彼此 seq 和 ack 值的基础上进行计算的,这样做保证了 TCP 数据传输的连贯性。一旦出现某一方发出的 TCP 数据丢失,便无法继续 "握手",以此确保了 "三次握手" 的顺利完成。

lt;四次挥手断开连接gt;

聚散终有时,当数据传输完成后,TCP 客户端与 TCP 服务器需要通过四次会话断开连接,这个过程我们称之为四次挥手。

第一次挥手

目的:客户端向服务器发送连接释放的请求数据包,并停止发送数据。

在连接释放数据包的 TCP 首部中:

  • 终止 FIN=1

  • 序号 seq=x

第二次挥手

目的:服务器在收到连接释放的报文之后,给客户端发送确认报文。因此,客户端到服务器方向上的连接释放,TCP 连接此时处于半关闭状态。半闭因为客户端已无法发送数据给服务器,半开因为服务器仍可以发送数据给客户端并被其接收。

在服务器发送给客户端确认报文的 TCP 首部中:

  • 确认标记 ACK=1

  • 确认号 ack=x+1

  • 序号 seq=y

第三次挥手

目的:若服务器已停止向客户端发送的数据,则释放连接,并向客户端发送确认报文。

在确认报文的 TCP 首部中:

  • 终止 FIN=1

  • 确认标记 ACK=1

  • 确认号 ack=x+1

  • 序号 seq=z

第四次挥手

目的:客户端收到服务器的连接释放报文段后,向服务器发出确认报文。

在确认报文的 TCP 首部中:

  • 终止 FIN = 1

  • 确认标记 ACK=1

  • 确认号 ack=z+1

  • 序列号 seq=x+1

了解完 TCP 后,再来了解一下 UDP 是如何工作的~

03、UDP 是如何工作的?

UDP 协议是面向无连接的,即发送数据之前不需要建立连接,发送数据就是简单的把数据包封装一下,然后从网卡发出去,数据包之间并没有状态上的联系。UDP 协议基本上是 IP 协议与上层协议的接口,UDP 协议使用 IP 层提供的服务将应用层得到的数据从一台主机的某个应用进程传递到另一台主机的某个应用进程。

举个栗子~

当传输层从 IP 层收到 UDP 数据报文时,根据 UDP 数据报文首部中的目的端口,把 UDP 数据报文通过相应的端口传递给应用进程,如下图所示。

如上图中应用进程 4 与端口 2,如果接收方 UDP 发现收到的报文中的目的端口号不正确 ,则丢弃该报文,并由 ICMP 发送“端口不可达 " 差错报文给发送方。

Tips

ICMP是 TCP / IP 协议簇的一个子协议,用于在 IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

04、总结一下

数据传输看似简单,其实非常智慧~

TCP 和 UDP 服务的是程序,但程序和人是一样的,可以你来我往进行交流,也可以一股脑的倾诉。TCP 就是彼此之间坦诚交流。消息有没有收到,收到的信息是否一致,都可以有及时的反馈。

优点:可靠。

缺点:传输速率慢。

适用场景:通信软件的账户登录、支付等相关功能,采用可靠的 TCP。

UDP 就是倾诉,我不管你有没有听进去,不管你有无反馈,我就要不停地说。

优点:传输速率快。

缺点:不可靠。

TCP 和 UDP 各有优缺点,就看你实际需求啦~

更多 TCP 干货,请戳三次握手,四次挥手,原来 TCP 这么有礼貌!

05、小问答

如何让 UDP 由不可靠传输转为可靠传输?

TCP 为什么是三次握手,而不是两次或者四次?

为什么是四次挥手而不是三次?

声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多企业信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。投资有风险,需谨慎。

推荐阅读

 ,当下许多电脑和手机的面板都带有“自适应刷新率”功能,即在“屏幕内容保持不变的情况下,降低刷新率来降低功耗,起到省电的效果”。而AMD最近为其Linux内核显卡

2023-06-20 14:17

 ,雷柏VT3S无线游戏鼠标开售,抢购价269元,截至6月20日23:59。 雷柏VT3S采取人体工学左右对称设计,支持抓/捏/趴三种不同握姿,适合中大手用户;

2023-06-20 14:17

 感谢IT之家网友华南吴彦祖的线索投递! ,传音Infinix宣布与总部位于纽约沃登克里弗的特斯拉科学中心合作,推出了一款限量版InfinixNote30Pro

2023-06-20 14:17

 南方财经全媒体记者喻淑琴郑玮广州报道 2023年,预制菜首次列入中央一号文件,培育乡村新产业和消费新业态,正涌现更多实践和探索。在发展过程中,预制菜装备化、智

2023-06-20 14:17

 ,苏宁易购发布618趋势家电榜,5月23日-6月14日,集成灶销售同比增长91%,老板集成灶位居榜首。据了解,老板、火星人、亿田、森歌、法迪欧分别同比增长20倍

2023-06-20 14:17

 宇宙学界的一个热门研究主题是多元宇宙的概念。如果我们生活在一个多元宇宙中,这意味着存在多个完全独立于我们熟悉的宇宙。为什么科学家会认为多元宇宙可能存在?为此,我

2023-06-20 14:17

 ,投行摩根大通引用Wave7Research公布的2023年4月数据,基于对美国运营商的调查,iPhone14标准版销量已经超过iPhone14ProMax,成

2023-06-20 14:17

 北京交通大学国家经济安全研究院与社会科学文献出版社6月18日联合发布了《经济安全蓝皮书:中国产业链供应链安全发展报告(2022~2023)》(以下简称蓝皮书报告

2023-06-20 14:17

金融之家
关注我们
foot01
foot02
ewm
foot03
foota footb footc footd foote footf