TCP协议

TCP协议的特点:

 1.面向连接:

  在数据流传输之前,源进程和目的进程必须建立一条逻辑链路,连接建立之后,两个进程之间就可以传输数据。

 2.全双工通信:
  建立连接之后,在TCP的链路上可以双向传输数据。

    3.高可靠性:

        TCP对已经发送和接受的数据进行跟踪记录以确保所有的数据都能到达自己的目的地。

     4.支持多点连接和端口识别

         每台主机可以能同时连接多台主机的TCP连接链路,每条链路相互独立,不产生矛盾。

      5.支持流传输

      6.提供流量控制和拥塞控制

         TCP采用大小可变的滑动窗口进行流量控制。TCP给出慢开始、拥塞避免等 4 种算法进行拥塞控制

TCP的连接管理:

TCP报文:

   TCP的数据传输单元是报文段,每一个TCP报文段由TCP首部和数据部分组成。

TCP连接的建立(三握):

       1.客户机的TCP向服务器发送一个报文,这个报文数据部分不包含应用层数据,在报文的首部的SYN标识为 1 ,所以这个报文称为SYN报文段,另外客户机会产生一个随机选择起始序列号client_n,该client_n放置在SYN报文的序列号字段,SYN报文被封装在IP数据报中传送给服务器。SYN报文的意思是" 我的序列号是client_n,希望和你建立TCP连接"。

        2.报文到达服务器之后,服务器从IP数据报的数据部分取出TCP的SYN报文段,为该TCP连接分配一个TCP连接的缓存和变量,并向客户机的TCP发送允许连接的报文段,也不包含应用层数据,包含了三个重要信息:一个是SYN字段为1,另一个是首部的确认号字段为client_n+1,再一个是服务器选择一个初始序列号server_n放在报文段的序列号字段。这个报文段称为SYNACK报文段,它的意思" 我收到连接请求,我同意与你建立连接,希望下次收到你的client_n+1报文段,我的序列号为server_n"。

        3.客户机收到SYNACK报文段,客户机也要为该连接分配缓存和变量;客户机还要向服务器发送一个报文段,对服务器发来的另一个方向的连接表示确认,在这个报文段设置确认号字段为server_n+1,SYN字段置为0。 

      

为什么三握:

       但是采用三握的方式,就可以解决这种问题:当失效的请求报文到达服务器,服务器确认该连接报文段到达客户机后,客户机不会对服务器的确认报文予以确认,服务器由于收不到确认报文,等待一定时间后,服务器就知道该连接不能建立。

TCP连接的释放(四挥):

      1.客户机向服务器发送一个释放请求报文段,称为FIN报文段,其中FIN字段为1,序列号(seq)client_x是最后一个数据报文段序列号+1的值。该报文段的数据部分不包括应用程序的数据。该报文段的含义是客户机请求和服务器断开TCP的连接。

  2.服务器收到FIN报文段后通知上面的应用进程,并发送确认报文段允许该方向的TCP连接的释放,报文段中ACK为1,确认号(ack)为client_x+1,序列号(seq)为client_y。至此,从客户机到服务器方向的TCP连接就释放了,等待某一时刻完成第三部和第四步就可以释放从服务器到客户机的TCP连接。

  3.服务器向客户机发送请求释放的TCP报文段,其中FIN字段1,序列号(seq)为server_z,数据部分不携带数据。说明服务器请求释放和客户机的TCP连接。

        4.客户机给服务器一个确认该方向连接释放的报文段,其中ACK字段置为1,确认号(ack)为server_z+1。等待一个固定的时间,真正关闭TCP的连接。

 

为什么四挥:

 

https://blog.csdn.net/weixin_41910694/article/details/91960815

https://blog.csdn.net/magic_1024/article/details/102676075

https://blog.csdn.net/hyg0811/article/details/102366854

https://blog.csdn.net/qq_39322743/article/details/79700863

https://blog.csdn.net/justloveyou_/article/details/78303617

https://blog.csdn.net/qq_38950316/article/details/81087809 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值