【socket】socket介绍-TCP协议

本文主要介绍了TCP协议的基础知识,包括TCP头部的构成,TCP序号和确认号字段的作用,以及TCP报文段的切分原理。详细阐述了TCP连接的建立与断开过程,如三次握手和四次挥手,帮助理解TCP如何确保数据的有序性和完整性。
摘要由CSDN通过智能技术生成

 TCP/IP协议是网络七层协议中最重要的两个协议,一个负责传输层的数据传输,一个负责网络层的数据传输。它的重要程度之高导致有时候七层协议直接称为TCP/IP协议。所以对TCP/IP协议的了解将决定了在服务器端开发、调试中是否能快速定位到问题,程序优化方向是否正确。在这篇文章中主要是针对TCP的协议格式与链接、断开过程进行简单分析。

  1:基础介绍

  TCP(Transimission Control Protocol)负责传输层的数据传输,并保证数据的完整性与有序性,是面向链接、字节流传输(UDP面向无连接、数据包传输)。它是在协议栈的第四层传输层使用到的协议,通过IP协议传输。因为在IP网络层是点对点,随机选择路由进行跳转转发的,没有办法保证任何一个IP数据包都可以正常准时到达对端。因此在IP层是无法保证数据的完整性,只能依靠更高层的协议保证。TCP是如何保证数据的有序与完整性的那,那需要对TCP协议进行介绍。

首先对TCP的头部进行一个简单的介绍说明。

 1.1:TCP头部简介


  通过上图可以看到,一般情况下,TCP的头部是20个字节,最后一个四个字节记录检验和与紧急指针。那么TCP的头部是如何解决了数据的有序性与完整性的那?在回答问题之前还要对有序性再多说一句。这里的有序性并不是指的一端发送数据,另一端是有序接收到。不是指发送端先发包A,又发送了包B,而接收端就一定是先接收到A,再接受到B。这里的有序性可以理解成数据最终有序性。因为网络的问题,无论什么协议都不可能保证数据有序接收。因为TCP数据流会以往网络层的IP包来传输,而IP是随机选择路由的(其实也不是随机),不可能保证先后发送的IP报可以先后被对端接收到。虽然TCP接受端不能有序接受到数据,但是它可以有其他机制来保证数据最终有序。下面就对头部简单介绍来分析它是如何保证有序和完整性的。

 1.2:TCP序号和确认号字段

  从上图可以看到TCP头部有各种字段,网络上都可以看到各个的含义,所以在此我们不对每个字段进行说明。上面我们提到两个问题是TCP如何保证最终有序和数据完整的那,这里我们就分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值