数据段的 TCP 报头中为什么包含端口号?
发布网友
发布时间:2022-04-26 16:59
我来回答
共2个回答
热心网友
时间:2023-10-15 19:34
TCP(Transmission Control Protocol)传输控制协议
TCp协议位于第四层。其代表的含义是传输控制协议(Transmission Control protocol)。TCP 在端点间建立连接或虚拟电路进行可靠通信。当一个数据包被封装之后,第三层当然有个Ip协议头,紧接着就是这个TCp协议头。TCp协议头成为了Ip协议头中的“数据”。就像其它协议都有自己的术语一样,TCp协议也有自己的专门术语,如以太网帧、Ip数据报和现在的TCp段等。你可以把它们都当作数据包。但是,当它们之间在进行通讯的时候,一定要使用正确的术语。由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这是通过使用 TCP 的“端口号”完成的。网络 IP 地址和端口号结合成为唯一的标识 , 我们称之为“套接字”或“端点”。
TCp协议是一种端对端的协议。使用TCp没有任何广播或类似的概念。TCP 通过面向连接的、端到端的可靠数据报发送来保证可靠性。TCP 在字节上加上一个递进的确认序列号来告诉接收者发送者期望收到的下一个字节。如果在规定时间内,没有收到关于这个包的确认响应,重新发送此包。TCP 的可靠机制允许设备处理丢失、延时、重复及读错的包。超时机制允许设备监测丢失包并请求重发。
要用TCp协议与另一台计算机通信,两台机之间必须像打电话一样连接在一起,每一端都都为通话做好准备。“流传输”(Stream delivery)是谈到TCp时的另一个常用词语。这个短语的含义是TCp协议主要用来处理数据流,可以正确处理乱序的数据包。TCp协议甚至还允许存在丢失的或者损坏的数据包,最终它可以再次得到这些数据包。你很可能听一位程序员在谈论“流”的概念。他指的是这样一个事实:数据到底是在什么时候发送的是很难说清楚的,你也可以在TCp流中发送非结构化数据。TCp协议以它自己的方式缓存数据。不过,其缓存过程对程序员和用户是透明的。 关于流数据传输 ,TCP 交付一个由序列号定义的无结构的字节流。 这个服务对应用程序有利,因为在送出到 TCP 之前应用程序不需要将数据划分成块, TCP 可以将字节整合成字段,然后传给 IP 进行发送。
TCp协议每发送一个数据包将会收到一个确认信息。这种发送/应答模式是提供可靠的协议的唯一方法:你必须让对方知道你否收到了数据。当然,这也会造成一些性能损失,而人们需要改善系统效率不高的状况。所以引入了“捎带确认(piggybacking ACKs)”的方法。TCp协议之所以是全双工的就是因为这个“捎带确认”信息,因为它允许双方同时发送数据。这是通过在当前的数据包中携带以前收到的数据的确认信息方式实现的。从提高网络利用率的角度看,这比单纯发送一个通知对方“信息已收到”的数据包要好得多。最后,还有一个批量确认的概念:也即一次确认一个以上的数据包,表示“我收到了包括这个数据包在内的全部数据包”。
在Ip协议中,我们处理的单个数据包是一个更大的数据报的一部分。请记住,一个TCp段就是一个单个的TCp数据包。TCp是一个数据流,因此,除了“连接”之外,没有任何需要真正担心的其它概念。最大报文段长度(MSS)是在连接的时候协商的,但是,它总是在不断地改变。默认的最大报文段长度是536字节,这是576字节(Ip协议保证的最小数据包长度)减去用于Ip头的20个字节和用于TCp头的20个字节以后的长度。TCp协议要设法避免在Ip级别上的分段。因此,TCp协议总是从536字节开始的。
TCp协议最有魅力的功能仍然保留着。这就是滑动窗口协议。这个窗口实际上是已经发出的“没有签收确认的”数据总数。这个窗口可以根据意愿放大和缩小。这是很有趣的。下一讲将介绍这方面的内容。
一个TCp数据包的头是20个字节,就像一个Ip数据包一样。如果使用一些选项,Ip和TCp数据包头都可以放大。TCp头不包含Ip地址,它仅需要知道要连接哪一个端口。不过,你不要被这弄晕了。TCp工作时要一直跟踪状态表中的端对端的连接。这个状态表包含Ip地址和端口。这就是说,只是TCp头不需要Ip信息,因为它来自于Ip头。
把一个数据包设想为一个字节跟着一个字节的数据流是很容易的。很多人都想要一个显示TCp头的表格。但是,这常会把事情搞乱。TCp头从第一位开始依次是下面这些内容:
�6�1源端口,16位:用于这次连接的本地TCp端口。
�6�1目的地端口,16位:通讯目标机器的TCp端口。
�6�1序列号,32位:用来跟踪数据包顺序的号码。
�6�1确认编号,32位:我们确认的以前收到的序列号。
�6�1头长度,4位:报头中的32位字(words)的数量。如果不使用选项,这个值设定为5。
�6�1保留,6位:为将来的使用保留的字节。
�6�1标记,一共6位:每一个标记一个字节(开或者关)
-URG:紧急字段指针。
-ACK:本数据包是(或者包含)一个确认信息。
-pSH:推送功能(没有使用)。
-RST:重置,或者中断本次连接。
-SYN:同步数据包,也就是开始连接。
-FIN:最后一个数据包,开始挂断序列。
�6�1窗口尺寸,16位:从接收方将收到的确认字段开始。
�6�1校验和,16位:TCp头和数据的校验和。
�6�1应急指针,16位:指向跟在URG数据后面的数据的序列号的偏移值。
�6�1选项:MSS、窗口比例等等。我们在关于TCp协议的下一讲中将重点介绍这个部分。
TCp连接的两端使用两对Ip地址和端口识别这个连接,并且向监听这个端口的应用程序发送数据。
热心网友
时间:2023-10-15 19:34
socket通讯实际是进程通讯,区别只是在不同机器而已,一个数据包到达一台设备上以后需要知道是哪个进程的收发的,端口号就告诉你数据包该给哪个进程
数据段的 TCP 报头中为什么包含端口号?
TCp协议头成为了Ip协议头中的“数据”。就像其它协议都有自己的术语一样,TCp协议也有自己的专门术语,如以太网帧、Ip数据报和现在的TCp段等。你可以把它们都当作数据包。但是,当它们之间在进行通讯的时候,一定要使用正确的术语。由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的...
ip 池 - StormProxies
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,StormProxies还提供多种API参数,以账密管理方式提取IP,保证了安全性。StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球20...
tcp报头中的序列号有什么作用
回答:TCP报头 TCP报文段的报头有10个必需的字段和1个可选字段。报头至少为20字节。报头后面的数据是可选项。 1、源端口号(16位) 标识发送报文的计算机端口或进程。一个TCP报文段必须包括源端口号,使目的主机知道应该向何处发送确认报文。 2、目的端口号(16位) 标识接收报文的目的主机的端口或进程。 ...
TCP/IP的各种协议都有端口号码?
不都有,只有应用层协议才有。因为应用层到传输层会加上一个传输层报头,其中包含端口号。TCP/IP协议分四层(五层也可),其中应用层识别进程,协议当中会包含进程号;传输层负责端到端传输,会为上层协议加上报头,其中包含端口号;网络层主要负责传输路径,所以包含IP地址;数据链路层负责无错误透明传...
简述TCP三次握手原理
在TCP 报头中的序列编号栏包括了TCP 分段中第一个字节的序列编号。FIN:结束标志 带有该标志置位的数据包用来结束一个TCP 回话,但对应端口仍处于开放状态,准备接收后续数据。服务端处于监听状态,客户端用于建立连接请求的数据包(IP packet)按照TCP/IP 协议堆栈组合成为TCP 处理的分段(segment)。分析报...
端口号码是什么?
为什么呢?因为数据是用端口号来通知传输层协议送给哪个软件来处理的,数据是没有智慧的,如果很多的程序共用一个端口来接受数据的话,那么当外界的一个数据包送来后传输层就不知道该送给哪一个软件来处理,这样势必将导致混乱。 上一次提到提到在一个经过OSI第四层传输层封装的数据段的第四层报头里包含两个端口号,既...
常见端口号及TCP UDP 详解
UDP报头简洁,仅包含源端口、目的端口、长度和可选的校验和,如图中的UDP报头示例,192.168.1.2发往163.177.69.40,源端口1028,目的端口8000,固定长度178字节,校验和为0x627f,数据部分则为170字节。多宿主多流的新兴选择:SCTP SCTP(流控制传输协议,IP号132)源自RFC 2960,专为多宿主机和多...
tcp首部数据包中序列位和确认位详解。
在TCP报头中的序列编号栏包括了TCP分段中第一个字节的序列编号。ACK:确认标志 确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1,Figure-1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。RST:复位标志 复位标志有效...
TCP/IP和UDP报文结构和报头包含的内容!
因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。一般来说,大于49151的端口号都代表动态端口。TCP包 每个tcp都包含源端口号和目标端口号,加上ip头中的源ip和目的ip,唯一确定一个tcp连接。序号用来标识从tcp发端向tcp收端发送的数据字节流,它表示在这个报文段中的第一个数据...
tcp包头结构?
回答:TCP协议头最少20个字节,包括以下的区域 TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。源端口和源IP地址的作用是 标示报问的返回地址。 TCP目的端口(Destination port):16位的目的端口域定义传输的目的。这个端口指明报文接收计算 机上的应用程序地址接口。 TCP序列号(序列码,Sequ...
TCP协议数据段格式:与可靠传输有关的字段有哪些?与连接管理有关的字段...
在TCP的报头中,与可靠传输有关的字段包括:序列号、确认号、校验和;与连接管理有关的字段包括:源端口号、目的端口号、序列号、确认号、标志位;与流量控制有关的字段包括:窗口大小