世界超算排行榜:太湖之光!

IT教程学习网

网站建设

TCP协议与TCP数据包格式

文章来源:深腾网   作者:静岳   浏览量:
  传输控制协议TCP(Transmission Control Protocol)协议被称为一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收数据以及终止连接。

TCP协议的封装过程

  应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
 

TCP协议的主要特点 

  • TCP是一种面向连接的、可靠的传输层协议;
  • TCP协议建立在不可靠的网络层IP协议之上,IP不能提供任何可靠性机制,TCP的可靠性完全由自己实现。
TCP采用的最基本的可靠性技术是:
  • 确认与超时重传;
  • 流量控制。

TCP协议端口和套接字

  UDP和TCP都使用了应用层接口处的端口与上层的应用进程进行通信,为了识别不同的应用进程,TCP协议中引进了端口和套接字的概念,每个端口有一个16位标识符,称为端口号。当传输层收到了互联网络层提交上来的数据时,就要根据其首部中的端口号来决定通过哪一个端口把数据上交给接收此数据的应用进程。
  从网络整体看来,端口号是由不同的主机上的TCP协议独立分配的,所以不可能全局唯一。网络上具有唯一性的IP地址和端口号结合在一起,才构成唯一能识别的标识符套接字。
  一个TCP连接由通信双方的套接字确定。而且套接字为通信双方的输入和输出所用,因而是全双工的。
 

TCP数据包格式与字段含义

 
TCP协议数据包格式 

TCP只有一种类型的PDU,叫做TCP段,段头的格式字段如下

源端口(16位):说明源服务访问点
目标端口(16位):表示目标服务访问点
发送顺序号(32位):本段中第一个数据字节的顺序号
应答顺序号(32位):捎带应答的顺序号,指明接收方期望的下一个数据字节顺序号。
偏置值(32位):传输头中32位字的个数。因为传输头有任选部分,长度不固定,所以需要偏置值。
保留字段(6位):示用,所有实现必须把这个字段置全0
URG 紧急指针( u rgent pointer)有效
ACK 确认序号有效。
PSH 接收方应该尽快将这个报文段交给应用层。
RST 重建连接。
SYN 同步序号用来发起一个连接。这个标志和下一个标志将在第 1 8章介绍。
FIN 发端完成发送任务。 
窗口(16位):为流控分配的信贷数
检查和(16位):段中所有16位字按模216-1相加的和,然后取1的补码
紧急指针(16位):从发送顺序号开始的偏置值,指向字节流中一个位置,此位置之前的数据是紧急数据。
任选项(长度可变):目前只有一个任选项,即建立连接时指定的最大段长。
补丁:补齐32位边界。

分享到:

  • Copyright © 2014-2026 深腾网 版权所有:静岳互联网咨询工作室
  • 冀ICP备16020878-1