网站域名使用费多少,合肥瑶海区医院,公司做网站,要准备哪些素材,安逸花借款app下载安装引言 TCP#xff08;传输控制协议#xff09;#xff0c;不像之前的UDP那样#xff0c;因为这个协议要将很多复杂的东西#xff0c;所以这次的特性是简单的特性#xff0c;后续会讲一些复杂难懂的知识#xff0c;这次先说一些TCP明显的特性 面向连接 TCP提供了对连接的管…引言 TCP传输控制协议不像之前的UDP那样因为这个协议要将很多复杂的东西所以这次的特性是简单的特性后续会讲一些复杂难懂的知识这次先说一些TCP明显的特性 面向连接 TCP提供了对连接的管理和维持机制通信基于连接进行。那是什么连接管理机制呢那就是著名的TCP三次握手。 在正式描述三次握手顺序前先举个例子。 你约你女朋友去吃饭于是发消息 你在吗今天去吃饭啊 女朋友在吗我在这。可以去吃饭那今天几点去啊 你我在。我看到你说可以去吃饭的消息了咱们6点去吧 当然可能发生你女朋友就没给你回话也有可能发生女朋友跟你回复的话和“今天晚上去楼下吃饭”毫无关系这都代表通信失败别舔了。 你可能觉得上面的通信有点繁琐有时候我们微信对话都是很简洁怎么这么复杂每次发完信息还要对他上面发的信息说“我收到了”。其实我们是发出去的信息有回复就是默认收到了。但是计算机不是人它很笨而且这种复杂更是体现了TCP的细上加细。好了下面就来看看吧
先解释下几个词
1.Seq序号占32位是用来标识从TCP源端向目的端发送的字节流发起方发送数据时对此进行标记。
2.Ack序号占32位只有ACK标志位为1时确认序号字段才有效AckSeq1。
3.SYN同步序列编号(Synchronize Sequence Numbers)。
以下是三次握手的简易流程 A与B建立TCP连接时首先A向B发SYN然后B回复SYNACK最后A回复ACK确认这样TCP的一次三次握手的过程就完成了。
再来看看详细流程 第一次握手建立连接时,客户端发送syn包(syn1)到服务器其中携带Seq(seqx)序号,并进入SYN_SEND状态,等待服务器确认 第二次握手服务器收到syn包,回复一个相同的SYN表示我们在同一个序列上并用ACK确认我收到了你的SYN信息。随后服务器发来它的seqy序列号并用ACKx1表示我收到了你上面发来的seqx的信息。此时服务器进入SYN_RECV状态。 第三次握手客户端收到服务器的SYN和ACK包,向服务器发送一个ACK1表示你上面的ACK我收到了随后seq发送之前的ackx1确认包回复之前的SeqyACK(acky1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 华为教案对TCP握手的图示 就好比假设对方给你发送了数据12345但是你就收到1后居然收到了5ack并不会理会这个5他只知道在1之后没有收到数据会要求对方继续发送后续数据。 这和UDP不同UDP不会管你是否收到了数据它只管发出去就不管了但是TCP很负责它不仅要保证自己收到了信息也要保证发来的顺序必须一致否则拒绝接收后续报文要求你重复刚才没有发到的数据。 点对点的全双工通信
TCP仅能通过点对点方式进行通信连接的双方只有两端。不过它拥有点对点的全双工通信能力。每个端口维护和收/发两个缓存队列各自管理。
可靠交付与面向字节 TCP是可靠交付而且面向字节流通信不像UDP玩命的发送数据它对数据的流量有控制能力而且他非常的细致发来的数据会以字节流的方式不断地进行发送接收。也就是他将报文拆分成了很多字节流但是每个字节流都有相应的顺序顺序不对不会接受后续流量也因为该特性她并不保留边界。消息由字节流的重组是由应用层处理。TCP可以支持任何大小的流量对他而言都是一串串字节而已。他还有差错控制以及窗口的拥塞机制 接下来我们将向其中的特性细致的讲解。