运输层(Transport Layer)&&传输控制协议TCP

运输层(Transport Layer)&&传输控制协议TCP缓存

 

TCP的字段名称以及表示意义

源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要经过端口才能实现。  服务器

序号字段——占 4 字节。TCP 链接中传送的数据流中的每个字节都编上一个序号。‍序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。网络

确认号字段——占 4 字节,是指望收到对方的下一个报文段的数据的第一个字节的序号。 socket

数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。  spa

保留字段——占 6 位,保留为从此使用,但目前应置为 0。 操作系统

紧急 URG —— 当 URG = 1 时,代表紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(至关于高优先级的数据)。 指针

确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。 接口

推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而再也不等到整个缓存都填满了后再向上交付。  进程

复位 RST (ReSeT) —— 当 RST = 1 时,代表 TCP 链接中出现严重差错(如因为主机崩溃或其余缘由),必须释放链接,而后再从新创建运输链接。 资源

同步 SYN —— 同步 SYN = 1 表示这是一个链接请求或链接接受报文。 

终止 FIN (FINis) —— 用来释放一个链接。FIN = 1 代表此报文段的发送端的数据已发送完毕,并要求释放运输链接。 

窗口字段 —— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。

检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。

紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。  

选项字段 —— 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“个人缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。” 

填充字段 —— 这是为了使整个首部长度是 4 字节的整数倍。 

 

进程之间的通讯

  • 两个主机进行通讯实际上就是两个主机中的应用进程互相通讯。 

  • 应用进程之间的通讯又称为端到端的通讯。 

  • 运输层的一个很重要的功能就是复用和分用。应用层不一样进程的报文经过不一样的端口向下交到运输层,再往下就共用网络层提供的服务。

  • “运输层提供应用进程间的逻辑通讯”。“逻辑通讯”的意思是:运输层之间的通讯好像是沿水平方向传送数据。但事实上这两个运输层之间并无一条水平方向的物理链接。

 

运输层协议和网络层协议的主要区别

 

运输层的主要功能

  • 运输层为应用进程之间提供端到端的逻辑通讯(但网络层是为主机之间提供逻辑通讯)。

  • 运输层还要对收到的报文进行差错检测。

  • 运输层须要有两种不一样的运输协议,即面向链接的 TCP 和无链接的 UDP。

 

两种不一样的运输协议

  • 运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通讯信道。

  • 当运输层采用面向链接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通讯信道就至关于一条全双工的可靠信道

  • 当运输层采用无链接的 UDP 协议时,这种逻辑通讯信道是一条不可靠信道。 

TCP&&UDP

  • 两个对等运输实体在通讯时传送的数据单位叫做运输协议数据单元 TPDU (Transport Protocol Data Unit)。

  • TCP 传送的数据单位协议是 TCP 报文段(segment)

  • UDP 传送的数据单位协议是 UDP 报文或用户数据报。 

  • UDP 在传送数据以前不须要先创建链接。对方的运输层在收到 UDP 报文后,不须要给出任何确认。虽然 UDP 不提供可靠交付,但在某些状况下 UDP 是一种最有效的工做方式。

  • TCP 则提供面向链接的服务。TCP 不提供广播或多播服务。因为 TCP 要提供可靠的、面向链接的运输服务,所以不可避免地增长了许多的开销。这不只使协议数据单元的首部增大不少,还要占用许多的处理机资源。  

  • 运输层的 UDP 用户数据报与网际层的IP数据报有很大区别。IP 数据报要通过互连网中许多路由器的存储转发,但 UDP 用户数据报是在运输层的端到端抽象的逻辑信道中传送的。

  • TCP 报文段是在运输层抽象的端到端逻辑信道中传送,这种信道是可靠的全双工信道。但这样的信道殊不知道究竟通过了哪些路由器,而这些路由器也根本不知道上面的运输层是否创建了 TCP 链接。 

 

运输层的端口

  • 运行在计算机中的进程是用进程标识符来标志的。

  • 运行在应用层的各类应用进程却不该当让计算机操做系统指派它的进程标识符。这是由于在因特网上使用的计算机的操做系统种类不少,而不一样的操做系统又使用不一样格式的进程标识符

  • 为了使运行不一样操做系统的计算机的应用进程可以互相通讯,就必须用统一的方法对 TCP/IP 体系的应用进程进行标志。 

端口号(protocol port number)

  • 虽然通讯的终点是应用进程,‍‍但咱们能够把端口想象是通讯的终点,由于咱们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工做(即最后交付目的进程)就由 TCP 来完成。‍‍

三类端口

  • 熟知端口,数值通常为 0~1023。

  • 登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。

  • 客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通讯结束后,这个端口号可供其余客户进程之后使用。 

 

TCP的主要特色:

  • 面向链接的

  • 提供可靠的数据传输服务

  • 提供流量控制。TCP可以控制进程发送数据的速率,保证另外一端不被大量的数据“淹没”而出现溢出。

  • 提供拥塞控制。当网络出现拥塞的时候,TCP可以减少向网络注入数据的速率和数量,缓解拥塞。

  • 提供全双工通讯。TCP提供双向的数据传输服务。TCP容许通讯双方的应用进程在任什么时候候发送数据TCP链接的两端都设有发送缓存和接收缓存,用来临时存放双向通讯的数据。

  • TCP是面向字节流的。TCP中的“流”是指流入到进程或从进程流出的字节序列。

 

TCP协议概述

  • TCP 链接是一条虚链接而不是一条真正的物理链接。

  • TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的

  • TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。

  • TCP可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去。 

 

TCP 的链接

  • TCP 把链接做为最基本的抽象。

  • 每一条 TCP 链接有两个端点。

  • TCP 链接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是运输层的协议端口。TCP 链接的端点叫作套接字(socket)或插口。

  • 端口号拼接到(contatenated with) IP 地址即构成了套接字。   

TCP链接的端点——套接字

套接字 socket = (IP地址: 端口号) 

TCP 链接 ::= {socket1, socket2}  = {(IP1: port1), (IP2: port2)} 

========================END========================

相关文章
相关标签/搜索