总结:比如在他的简历中,他基于协议开始了物联网通信协议。 包头中的网络传输层提供面向连接的字节流的可靠传输。 位标志的工作原理如下: 该标志指示紧急指针是否有效。 携带标识的报文段称为确认报文段。 该标志表示已通知对方连接将被终止。
# TCP 和 UDP
一个 ,分析 TCP 和 UDP 消息
TCP 和 UDP 是位于 OSI 模型传输层的两个协议。
(1)UDP消息头:
如上图:基本UDP的配置包括16位源端口号和目的端口号+数据。
通过源端口号和目的端口号进行传输。 数据部分是存储的具体内容
UDP的特点:
1、通信简单,不需要处理逻辑和数据结构。
2. 没有建立连接,但它监视这个位置,接收每个人的数据,也向其他人发送数据。
3.二路子不管数据传输后丢包还是拥塞;
基于UDP的实现示例
①直播,直播因为广播由于实时性要求比较高,宁愿不丢包、不冻包,很多直播应用都基于UDP实现了自己的视频传输协议。
②实时游戏,实时性高也是一个特点。,在这种情况下,使用自定义的可靠 UDP 协议和自定义重传策略可以帮助最大限度地减少延迟并减少网络问题对您游戏的影响。
③物联网。 另一方面,物联网领域的中断资源很少,可能需要非常小的嵌入式系统,而且 TCP 协议的维护成本太高。 另一方面,物联网对实时性能也有特别高的要求。 例如,谷歌子公司Nest Thread Group推出了基于UDP协议的物联网通信协议Thread。
(2)TCP Header
在网络传输层,TCP It面向连接且可靠的字节流传输。
使用 TCP 协议通信的双方必须首先建立连接,并为该连接分配必要的内核资源,以便管理该连接的状态以及通过该连接传输的数据。 TCP 是全双工的。 这意味着双方可以通过单个连接读取和写入数据。 数据交换完成后,通信双方应断开连接以释放系统资源。
TCP协议的这种连接是一对一的,其字节流服务是多对多的,所以它是基于广播和组播(针对多个)。 我是。 主机地址)无法使用 TCP 服务。 无连接 UDP 非常适合这种类型的广播和多播。
从上到下看消息结构,分析如下:
首先,您会注意到它是 16 位的。 源端口号和目的端口号。 。 与UDP相同
数据包序列号:解决乱序、先到先服务的问题。
32位确认号(acknowledgment number):用作响应。 对方发送的TCP报文段。 它的值是接收到的TCP报文段的序列号值加一。
6 位标志的工作原理如下。
URG标志:表示紧急指针是否为紧急指针。 有效的。
ACK标志:表示确认号是否有效。 我就叫你嘉莉A吧。由CK标识的TCP报文段是确认报文段。
PSH标志:请求接收应用程序必须立即从TCP接收缓冲区中读取数据,以便为接收后续数据腾出空间(如果应用程序一旦读取数据,则保留在 TCP 接收缓冲区中)。
RST 标志:指示对等方应重新建立连接。 带有RST标志的TCP报文段称为重置报文段。
SYN标志:表示连接建立请求。 带有SYN标志的TCP报文段称为同步报文段。
FIN标志:表示通知对方你正在断开连接。 带有FIN标志的TCP报文段称为终止报文段。
状态位。 SYN发起连接,ACK响应,RST重连,FIN终止连接。
TCP是面向连接的,所以双方都必须维护连接状态。 否则,双方连接状态的改变将直接导致错误。
设置窗口大小、流量控制和识别当前处理能力。 这告诉另一端本地TCP接收缓冲区可以容纳多少字节的数据,这样另一端就可以控制发送数据的速率。
然后,TCP顺序问题、丢包问题、流量控制等都是通过滑动窗口来解决的。
拥塞控制也是通过拥塞窗口来解决的。
一些常见讨论问题的扩展:排序问题、拥塞控制、丢包问题、连接维护、流量控制
二、TCP 3双向握手
首先,建立连接。 连接后,需要进行连接维护。 同时我们也会讲解如何按顺序发送数据包,即如何使用数据包序列号。
TCP连接建立名称 三次握手,简单来说就是邻居之间的日常问候。 ① 老张对老李说:“你吃饭了吗?” ②老李看到老张的消息,回复:“你玩够了吗?” 我还需要吃夜宵。 没有;③老张收到老李的消息。 “好,开始吧。”
明白了,老张发出了请餐请求,收到了老张的请求。据此,老李收到了老张的请求消息,并回复了老张的请求。 你会在两者之间来回切换,就像打太极拳一样。
具体分析过程详细说明
分析图中特定字段的含义:闭合(未连接) )、listen(监听)、SYN-SENT(同步发送)、SYN-RCVD(同步接收)、ESTABLISHED(连接建立)
分析处理:
①初始状态,客户端服务器和服务器都处于CLOSED状态,服务器主动监听特定端口,处于LISTEN状态。
② 客户端主动发起连接SYN(请求建立连接),进入SYN-SENT状态,被服务器监听。
③ 服务器收到客户端发起的连接,返回SYN(连接建立请求),ACKs(确认)客户端的SYN,并进入SYN-SENT状态。
④ 客户端收到服务器发送的SYN和ACK,确认服务器的请求,即ACK,并转换到ESTABLISHED状态。 然后它发送一条消息以确认与服务器的连接。
⑤服务器收到客户端的ACK,进入ESTABLISHED状态。 至此,两兄弟建立了友谊。
4、TCP和UDP的区别
TCP是针对连接的,UDP是针对无连接的UDP程序结构简单,TCP程序结构是针对字节流的,UDP是基于数据报的,TCP保证数据的准确性,UDP会丢包,TCP是数据保证有序的,UDP保证数据的有序性
五、为什么说TCP能够提供可靠的连接?
(一)排队,一一到来,一步一步有条不紊地进行。 TCP 标头中的序列号确保 TCP 数据按顺序到达。确保传输的数据无错误、不丢失、不重复、按顺序到达。
(2)要明确谁迟到、谁没到。 消息头中的确认序列号可以保证不丢包,具有累积确认功能和超时重传机制。
(3)始终控制饮食量。 否则,肉体就会开始拥抱你。 消息头中的窗口大小用于流量控制,标识当前的处理能力。 这告诉对方本地TCP接收缓冲区还可以容纳多少字节的数据,从而允许对方控制发送数据的速率。
学习后有什么建议,我们可以一起讨论
我们一步一步往上走吧~
评论前必须登录!
注册