【TCP/IP】TCP的三次握手,四次挥手过程详解

TCP是一个面向连接的可靠传输协议,通过三次握手建立连接,确保连接的可靠性。在连接建立后,TCP通过序列号、确认、重传等机制保证数据的有序和无丢失传输。在数据传输完成后,通过四次挥手终止连接,防止半开连接。TCP还包含流量控制,通过通告窗口动态调整接收数据量,防止缓冲区溢出。此外,介绍了socket函数的使用,bind函数用于绑定端口,listen函数用于监听连接请求,并定义了最大连接队列长度。
摘要由CSDN通过智能技术生成

TCP传输控制协议

  TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字是一种流套接字,TCP关心确认、超时和重传之类的细节。

  首先,TCP提供客户与服务器之间的连接。TCP客户先与某个给定服务器建立一个连接,再跨该连接与那个服务器交换数据,然后终止这个连接。

可靠性

  其实TCP还提供了可靠性。当TCP向另一端发送数据时,他要求对端返回一个确认,如果没有收到确认,TCP就自动重传数据并等待更长时间。在数次重传失败后,TCP才放弃,如此在尝试发送数据上所花的总时间一般为4-10分钟。

动态估算时间

  TCP含有用于动态估算客户和服务器之间的往返时间——round-trip time,即RTT的算法,以便知道等待一个确认需要多少时间,举例来说,RTT在一个局域网上大概是几毫秒,跨越一个广域网可能需要几秒钟。

排序

  TCP通过给其他每个字节关联一个序列号对所发送的数据进行排序。
举例来说:

  如果一个应用进程写2048字节到一个TCP套接字,导致TCP发送2个分节:第一个分节所含数据的序列号为1~1024,第二个分节所含数据的序列号为1025~2048。

  那么假如这两个分节非顺序到达,即第二个分节先到达,那么接收端TCP将先根据它们的序列号重新排序,再把结果数据传递给接受应用。

  如果接收端TCP接收到来自对端的重复数据,他可以根据序列号判断数据是重复的,从而丢弃重复数据。

流量控制

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值