TCP 状态机 理解TCP重要的环节

简介: 原文:http://www.kumouse.com/?p=5261. 问:TCP使用有限长的字段来记录流序号。研究协议规范,找出在两台机器之间允许任意长度流传输的方法  答:目前我只知道使用,时间戳选项来解决这个问题,具体的还不太清楚,有待提高 2. 问:TCP有一个选项允许接收方指明它愿意接受的最大报文段长度。

原文:http://www.kumouse.com/?p=526



tcp 状态机


1. 问:TCP使用有限长的字段来记录流序号。研究协议规范,找出在两台机器之间允许任意长度流传输的方法

  答:目前我只知道使用,时间戳选项来解决这个问题,具体的还不太清楚,有待提高

 

2. 问:TCP有一个选项允许接收方指明它愿意接受的最大报文段长度。在TCP已具有窗口通告机制的情况下,为什么还要支持这个选项来规定最大报文段长度?

  答:第一,最大报文段长度规定了最大报文的长度,避免在物理网络上对TCP数据报进行分组,以提高传输效率。

    第二,在避免糊涂窗口综合证时还使用了最大报文段长度做为量度。

 

3. 问:在什么样的时延,带宽,负载以及分组丢失率情况下,TCP没有必要重传大量的数据?

  答:时延低且稳定,带宽高,负载低,分组丢失率低的情况下(我不太明白这题的意思,可能不太对 :) )

 

4. 问:一个丢失的TCP确认并不一定会导致重传,试解释原因。

  答:第一种,TCP采用累积确认,如果发送方确认丢失也不会重传。

    第二种,两台主机通信,主机1主动关闭发送FIN,主机2 发送确认,但是确认丢失。主机2被动关闭发送FIN,ACK.主机1确定,并进入TIMED_WAIT,这个丢失的确认不用重传,因为主机2发送关闭时,包含有主机1发送的信息,所以已经可以确定收到。

 

5. 问:考虑检验和的计算。假设报文段中的检验和字段并未置零,而检验和计算的结果却是零。你能从中得出什么结论?

  答:结论是这次的检验和应该是上一次检验和减1

 

6. 问:如果两个程序使用TCP来发送数据,但每次只发送含一个字符的报文段,那么它们的数据最多有多大的网络带宽利用率?

  答:首先是多层封装,TCP封在IP报里,IP报封在帧中。

    帧:最少要6octet 源地址,6octet 目的地址,2octet帧类型,和4octet的CRC,一共是18octet (1octet=8bit)

    IP数据报与TCP数据报的报头最少都是20byte,两种加起来是40byte,加上18byte+1byte的数据。

    1/(40+18+1)=0.016949 约合1.7%


tcp 状态机

1. 问:TCP使用有限长的字段来记录流序号。研究协议规范,找出在两台机器之间允许任意长度流传输的方法

  答:目前我只知道使用,时间戳选项来解决这个问题,具体的还不太清楚,有待提高

 

2. 问:TCP有一个选项允许接收方指明它愿意接受的最大报文段长度。在TCP已具有窗口通告机制的情况下,为什么还要支持这个选项来规定最大报文段长度?

  答:第一,最大报文段长度规定了最大报文的长度,避免在物理网络上对TCP数据报进行分组,以提高传输效率。

    第二,在避免糊涂窗口综合证时还使用了最大报文段长度做为量度。

 

3. 问:在什么样的时延,带宽,负载以及分组丢失率情况下,TCP没有必要重传大量的数据?

  答:时延低且稳定,带宽高,负载低,分组丢失率低的情况下(我不太明白这题的意思,可能不太对 :) )

 

4. 问:一个丢失的TCP确认并不一定会导致重传,试解释原因。

  答:第一种,TCP采用累积确认,如果发送方确认丢失也不会重传。

    第二种,两台主机通信,主机1主动关闭发送FIN,主机2 发送确认,但是确认丢失。主机2被动关闭发送FIN,ACK.主机1确定,并进入TIMED_WAIT,这个丢失的确认不用重传,因为主机2发送关闭时,包含有主机1发送的信息,所以已经可以确定收到。

 

5. 问:考虑检验和的计算。假设报文段中的检验和字段并未置零,而检验和计算的结果却是零。你能从中得出什么结论?

  答:结论是这次的检验和应该是上一次检验和减1

 

6. 问:如果两个程序使用TCP来发送数据,但每次只发送含一个字符的报文段,那么它们的数据最多有多大的网络带宽利用率?

  答:首先是多层封装,TCP封在IP报里,IP报封在帧中。

    帧:最少要6octet 源地址,6octet 目的地址,2octet帧类型,和4octet的CRC,一共是18octet (1octet=8bit)

    IP数据报与TCP数据报的报头最少都是20byte,两种加起来是40byte,加上18byte+1byte的数据。

    1/(40+18+1)=0.016949 约合1.7%

目录
相关文章
|
网络协议
TCP/IP协议三次握手与四次挥手流程解析
一、TCP报文格式   TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图: 图1 TCP报文格式   上图中有几个字段需要重点介绍下:   (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
1467 0
|
2月前
|
存储 网络协议 算法
更深层次理解传输层两协议【UDP | TCP】【UDP 缓冲区 | TCP 8种策略 | 三次握手四次挥手】
UDP和TCP各有所长,UDP以其低延迟、轻量级的特点适用于对实时性要求极高的应用,而TCP凭借其强大的错误检测、流量控制和拥塞控制机制,确保了数据的可靠传输,适用于文件传输、网页浏览等场景。理解它们的工作原理,特别是UDP的缓冲区管理和TCP的8种策略,对于优化网络应用的性能、确保数据的高效和可靠传输至关重要。开发者在选择传输层协议时,应根据实际需求权衡利弊,合理利用这两项关键技术。
85 5
|
4月前
|
网络协议
TCP连接释放过程
【8月更文挑战第20天】
128 3
|
7月前
|
网络协议 算法 Linux
TCP教程:详解TCP连接过程
TCP教程:详解TCP连接过程
852 0
|
网络协议
TCP 协议四次挥手&状态变迁
TCP 协议四次挥手&状态变迁
61 0
|
网络协议
TCP协议三次握手的执行流程,tcp的交互模式
TCP协议三次握手的执行流程,tcp的交互模式
168 0
|
网络协议
TCP通信简单梳理
一、什么是TCP协议 TCP协议是一种面向连接的可靠的通信协议,最重要的两个特点:连接、可靠。 二、TCP是如何进行通信的 TCP通过三次握手建立连接后客户端服务端的内核都分别开辟资源,这时候开始进行数据传输,最终通过四次挥手断开连接,释放资源,整体流程如下: 1、三次握手 三次握手流程如下: 1)
254 0
|
机器学习/深度学习 JSON 缓存
TCP协议学习笔记、报文分析
TCP(Transmission Control Protocol传输控制协议)协议是基于IP协议,面向连接的、可靠的、基于字节流的传输层通信协议。
TCP协议学习笔记、报文分析
|
网络协议
简述TCP三次握手流程
TCP三次握手流程
211 0
|
网络协议
简述TCP四次挥手过程
TCP四次挥手过程
345 0