tcp协议简介

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内[1]  另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

        

TCP是因特网中的传输层协议,使用 三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答
TCP的三次握手 TCP的三次握手
SYN+ACK  [1]   ,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。  [1]  
TCP三次握手的过程如下:
  1. 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
  2. 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入 SYN_RECV状态。
  3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

连接终止

建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。
TCP服务的特点  (面向连接、字节流、可靠传输) 
1.传输层主要的两个协议 、 UDP协议 和 TCP协议 
2.TCP协议通信,双方必须建立连接,才开始数据读写。双方要为该链接分配必要的内核资源,用来管理连接的状态和连接上数据的传输。TCP连接是全双工的(双方数据读写可以通过一个连接),完成后,断开连接,释放系统资源。 
3.TCP是一对一连接的,广播多播不能使用TCP服务。 UDP适合哦 
4.TCP模块发送的TCP报文段个数和应用程序执行写操作没有数量关系》》》》可能发送的数据分片处理啊~~~ 
5.应用程序读的次数和TCP报文段个数也没关系。读的大小,取决于读缓冲区的大小,TCP按照报文段的序号排好依次放入TCP接受缓冲区中哒。 
6.根据第四条和第五条,得出字节流概念》》》》应用程序对数据的发送和接受是没有边界限制的~。UDP发送一次就要读一次,否则要丢包的,没有足够大小的读缓冲区,那UDP数据会被截断// 
7.TCP采用发送应答机制,即发送端发送的每个TCP报文段必须得到接收方的应答,才认为TCP报文段传输成功。 
8.TCP采用超时重传机制,发送一个TCP报文段后启动定时器,在定时器时间内未收到应答,则再次发送。 
9.TCP报文段最终是以IP数据报发送的,而IP数据报到接收端很大可能是无序的重复的,TCP协议将对TCP报文重排,整理,再交给应用层。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值