第17章TCP 基本概念

TCP提供面向连接的、可靠的字节流服务。

可靠性

① 应用数据被分隔成TCP认为最合适发送的数据块。信息单位为“报文段”Segment

② 当TCP发出一个报文段后,它将启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个保温段。

③ 当TCP收到来自TCP连接另一端的数据,它将发送一个确认。

④ 首部和数据的检验和,覆盖整个数据报文段。

⑤ 流量控制,有固定大小的缓冲空间。

 

两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。称为字节流服务(byte stream service)。

TCP对字节流的内容不作任何解释。它不知道传输的数据字节流是二进制数据还是ASCII字符或者其他类型数据,对字节流的解释由TCP连接双方的应用层解释。

 

TCP首部


Socket 插口IP地址 端口号

Socket Pair 插口对 : 客户IP地址、客户端口号、服务器IP地址、服务器端口号 。这个四元组可以唯一确定互联网络中的每个TCP连接双方。

Sequence Number 序号 :标识从TCP发端向收端发送的数据字节流,标识这个报文段中的第一个数据字节。序号是32bit无符号数,到达后从0重新开始。

ISN 初始序号 :建立TCP连接所发送的第一个包所用的序号。此时该包的SYN标识为1

6个标识比特

l URG 紧急指针 urgent pointer 

l ACK 确认序号

l PSH 接受方应该尽快进这个报文段交给应用层。

l SYN 同步序号用来发起一个连接

l FIN 发端完成发送任务

 

MSS 最长报文大小Maximum Segment Size):指明本段所能接受的最大程度的报文段。当一个连接建立时,连接的双方都要通告各自的MSSMSS不是双方一定得协商的,可以使用默认值536字节(这个默认值允许20字节的IP首部和20字节的TCP首部以是和576字节的IP数据报)。大多数MSS512的倍数

 

TCP选项:

 

下面是18章内容添加至此。

呼入连接请求队列:一个并发服务器调用一个新的进程来处理每个客户请求。

(1)正等待连接请求的一端有一个固定长度的连接队列,该队列中的连接已被TCP接受(即三次握手成功),但是还没有被应用层所接受。注意区分TCP接受一个连接是将其放入队列,而应用层接受连接是将其从该队列中移出

(2)应用层将指明该队列的最大长度,这个值通常被称为积压值backlog。取值方范围是【0,5

(3)当一个连接请求SYN到达时,TCP使用一个算法,根据当前连接队列中的连接数来确定是否接受这个连接。 注:积压值说明的是TCP监听的端点已被TCP接受而等待应用层接受的最大连接数,这个积压值对系统所允许的连接数或者并发服务器所能并发处理的客户数没有影响。

(4)如果对于新的连接请求,TCP监听的端点的连接队列中还有空间,TCP模块将对SYN进行确认并完成连接的建立。但应用层只有在三次握手的第三个报文段收到后才会知道这个连接。另外,当客户进程主动打开成功但服务器的应用层还不知道这个行的连接时,它可能会认为服务器进程已经准备好接收数据了,这是服务器仅将接受到的数据放在缓冲队列中。

(5)如果对于新的连接请求,连接队列中已经没有空间,TCP将不会理会收到的SYN,也不发回任何报文段。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值