TCP协议详解(一) TCP服务的特点和TCP头部结构

重点内容四方面来讨论TCP协议:

1:TCP头部信息。TCP头部信息出现在每个TCP报文段中,用于指定通信的源端端口号、目的端端口号、管理TCP连接,控制两个方向的数据流。
2:TCP状态转移过程。TCP连接的任意一端都是一个状态机。在TCP连接从建立到断开整个过程中,连接两端的状态机将经历不同的状态变迁。
3:TCP数据流 通过分析TCP数据流,我们就可以从网络应用程序外部来了解应用层协议和通信双方交换的应用程序数据。将讨论两种类型的TCP数据流:交互数据流成块数据流 TCP数据流中有一种特殊的数据,称为紧急数据。
4:TCP数据流的控制 为了保证可靠传输和提高网络传输质量,内核需要对TCP数据流进行控制。这一部分将讨论TCP数据流控制的两个方面:超时重传和拥塞控制

TCP服务的特点

传输层协议主要有两个:TCP协议和UDP协议。TCP相对与UDP协议的特点是:面向连接、字节流和可靠传输

面向连接 : TCP协议的这种连接是1对1的,所以基于广播和多播(目标是多个主机地址)的应用程序不能使用TCP服务。而无连接协议UDP则非常适合广播和多播。还有我觉得:面向连接,我的理解是 双方都在内核维护了一些状态。
字节流服务 : 字节流服务和数据报服务的主要区别对应到实际编程中,则体现为通信双方是否必须执行相同次数的读、写操作(表现形式)
例如: 当发送端应用程序连续执行多次写操作时,TCP模块先将这些数据放入TCP发送缓冲中,发送缓冲区中这些等待发送的数据可能被封装成一个或多个TCP报文发出。因此TCP模块发送出的TCP报文段的个数和应用程序执行写操作次数之间没有固定的数量关系。 同理,应用程序执行的读操作次数和TCP模块接收到的TCP报文段个数之间没有固定的数量关系

这里写图片描述

TCP传输是可靠的 TCP协议采用发送应答机制,即发送端发送的每个TCP报文段都必须得到接收方的应答,才认为TCP报文段传输成功。其次,TCP协议采用超时重传机制,发送端在发送出一个TCP报文段之后启动定时器,如果在定时时间内未收到应答,它将重发该报文段。最后,因为TCP报文段最终是以IP数据报发送的,而IP数据报达到接收端可能乱序、重复,所以TCP协议还会对收到的TCP报文进行重排、整理、在交付给应用层。

IP头部结构

这里写图片描述

TCP头部结构

这里写图片描述

这些字段代表的意义都可以在课本上找到,我们抓取一个tcp报文进行分析。

在一个客户端监听环回端口,然后在另外一个端口使用telnet登陆。

分析抓取到的第一个tcp报文。

这里写图片描述

首先分析前20个字节(IP头部):

十六进制数十进制数IP头部信息
0x44IP版本号
0x55头部长度为5个32bit即20字节
0x10TOS选项中最小延时服务被开始
0x003c60数据报总长度为60
0xdc9416位标识
0x4设置了禁止分片的标识
0x0000分片位移(因为第一个报文所以偏移为0)
0x4064TTL值为64,则生存周期为64
0x066协议字段为6,表示上层协议为TCP协议
0x6015IP头部校验和
0x7f000001源端IP地址为127.0.0.1
0x7f000001目的端IP地址为127.0.0.1

然后分析后面20个字节

十六进制数十进制数IP头部信息
0xbf7449012源端口号
0x001721目的端口号
0xc311b84e327271841432位序号
0x000000000确认号
0xa104位头部长度(头部长度为40个字节)
0xaaaa43960接收通告窗口大小
0xfe30头部校验和(不仅包括头部还包括数据部分)
0x0000没设置URG标识,所以紧急指针无意义
0x0204最大报文段长度选项的kind值和length值
0xffd765495(65535-40)最大报文长度
0x0402允许SACK选项
0x080a时间戳选项的kind值和length值
0x54cefb4b1422850891时间戳
0x000000000回应时间戳
0x01空操作选项
0x0303窗口扩大因子的kind和length值
0x077窗口扩大因为为7

下一节将介绍TCP连接的建立和关闭。、

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值