python 在一个非套接字上尝试了一个操作_Python网络编程笔记(二):TCP

本文介绍了TCP在IP层的作用,包括多路复用和可靠传输,并详细讲解了TCP的工作原理,如序列号、流量控制和连接建立。此外,文章还讨论了何时选择TCP以及TCP套接字的类型,如被动套接字和主动套接字,并提供了简单的TCP客户端和服务器代码示例。
摘要由CSDN通过智能技术生成

IP层需要解决两个问题:

通过多路复用,区分不同应用程序的数据包

通过可靠传输,修复错误

两个主要协议:用户数据包协议(UDP)、传输控制协议(TCP),UDP用端口多路复用,解决问题一。TCP可以同时解决这两个问题。

TCP

TCP工作原理

每个TCP数据包都有一个序列号,接收方通过序列号排序,和发现丢失数据包。

序列号不是整数,使用计数器。新序列号 = 旧序列号 + 数据包长度

初始序列号随机

不锁步通信,无需等待响应一口气发送多个数据包。某一时刻发送方希望同时传输的最大数据量叫做TCP窗口(window)的大小

接收方的TCP可以通过控制发送方的窗口大小来减缓或暂停连接,即流量控制(flow control)

如果包被丢弃,TCP会假定网络很拥挤,会减少发送量。对于无线网这种噪声很大的环境来说,TCP是个灾难。

何时使用TCP

几乎所有情况下。

例外:

如果客户端只需向服务器发送单个较小请求,并且请求完成后无需通信,不需长连接,此时使用TCP大材小用了。

TCP建立连接至少三个包(SYN, SYN-ACK, ACK),结束连接三或四个包(FIN,FIN-ACK,ACK)。这样单个请求至少6个包。

如果短时间内发送许多单独请求,可以用TCP。这时建立连接的开销可以被平均掉。

当丢包发生时,如果应用程序有比TCP重传更聪明的做法时。比如音频信号,一直重传丢失的1秒数据毫无必要。

TCP套

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值