您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

TCP/IP-运输层-你需要知道的运输层概念

时间:2020-02-24 17:21:00  来源:  作者:
TCP/IP-运输层-你需要知道的运输层概念

 

运输层向它上面的应用层提供通信服务. 两个主机进行通信就是两个主机中的应用进程互相通信. 从运输层的角度看, 通信的真正端点并不是主机而是主机的进程运输层提供应用进程间的逻辑通信. 运输层之间的通信好像是沿水平方向传输数据.但事实上这两个运输层之间并没有一条水平方向的物理连接.要传送的数据是沿着图中的虚线向(经过多个层次)传送的 .

5.1 运输层协议概述

5.1.1 进程之间的通信

  • 网络层是为了主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信.
  • 运输层向高层用户屏蔽了下面网络核心的细节,它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道.
  • 当运输层采用面向连接的TCP协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可信信道.
  • 采用UDP协议时,这种逻辑通信信道仍然是一条不可靠信道.

5.1.2 运输层的两个主要协议.

  1. UDP(User Datagram Protocol)[RFC 768]
  2. TCP(Transmission Control Protocol)[RFC793] UDP在传送数据之间不需要先建立连接. TCP 提供面向连接的服务.

5.1.3 运输层的端口.

通过端口解决通信的目的地.虽然通信的终点是应用进程,但我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付给目的进程)就由TCP来完成. 在协议栈层间的抽象的协议端口是软件端口,软件端口是应用层的各种协议进程与运输试题进行层间交换的一种地址 . 端口号只具有本地意义.

5.2 UDP

5.2.1 UDP概述

  1. 无连接
  2. 尽最大努力交付.
  3. 面向报文.
  4. 没有拥塞控制.
  5. 支持1对1,1对n,n-1和n-n交互通信.
  6. 首部开销小. 只有8个字节.

5.2.2 UDP的首部格式

  1. 源端口
  2. 目的端口
  3. 长度
  4. 校验和

5.3 TCP

5.3.1 TCP最主要的特点 TCP 是TCP/IP体系中非常复杂的一个协议.

  1. 面向连接的运输层协议.也就是说,应用程序在使用TCP协议之前,必须先建立TCP连接.在传送数据完毕后,必须释放已经建立的TCP连接.
  2. 每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点.
  3. TCP提供可靠交付的服务.
  4. TCP提供全双工通信. TCP允许通信双方的应用进程在任何时候都能发送数据.TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据.在发送时,应用程序在把数据传送给TCP的缓存后,就可以做自己的事,而TCP在合适的时候吧数据发送出去.在接受时,TCP把收到的数据放在缓存,上层的应用进程在合适的时候读取缓存中的数据.
  5. 面向字节流. TCP中的流(stream指的是流入到进程或从进程流出的字节序列. 虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序叫下来的数据看成仅仅是一连串的 无结构的字节流. TCP并不知道所传送的字节流的含义.TCP不保证接收方应用程序锁收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系(例如,发送方应用程序交给发送方的TCP供10个数据块,但接收方的TCP可能只用了4个数据块就把收到的字节流交付给了上层的应用程序).但接收方应用程序收到的字节流必须和发送方应用程序发送的字节流完全一样.当然接收方的应用程序必须有能力识别收到的字节流,把它还原成有意义的应用层数据.

5.3.2 TCP的连接

TCP把连接作为最基本的抽象. 每一条TCP连接有两个端点. TCP 连接的端点叫做套接字(socket)或者插口. 根据RFC793的定义:端口号拼接到(conatenated with)IP地址即构成了套接字.

5.4 可靠传输的工作原理

理想的传输条件有以下两个特点:

  1. 传输信道不产生差错.
  2. 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据. 在以上理想传输条件下,不需要采取任何措施就能够实现可靠传输

5.4.1 停止等待协议

  1. 无差错情况.
  2. 出现差错情况.
  3. 确认丢失和确认迟到
  4. 信道利用率

5.4.1 连续ARQ协议

滑动窗口协议比较复杂,是TCP协议的精髓所在.

5.5 TCP报文段的首部格式.

TCP虽然是面向字节流的,但TCP传送的数据单元确实报文段.一个TCP报文段分为首部和数据两个部分.

首部不顶部分个字段的意义

  1. 源端口和目的端口
  2. 序号
  3. 确认号
  4. 数据便宜
  5. 保留
  6. 紧急URG
  7. 确认ACK
  8. 推送PSH
  9. 复位RST
  10. 同步SYN
  11. 终止FIN
  12. 窗口
  13. 校验和
  14. 紧急指针
  15. 选项

5.6 TCP可靠传输的实现

5.6.1 以字节为单位的滑动窗口

5.6.2 超时重传时间的选择

TCP采用自适应算法,记录一个报文段发出的时间,以及受到相应的确认的时间.这两个时间之差就是报文段的往返时间RTT.TCP保留了RTT的一个加权平均往返时间RTTs.

5.6.3选择确认SACK

 

5.7TCP的流量控制

5.7.1 利用滑动窗口实现流量控制.

流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接受. 发送方的发送窗口不能超过接收方给出的接受窗口的数值.

5.9TCP的运输连接管理

连接建立,数据传送 连接释放. TCP连接建立过程中要解决以下三个问题:

  1. 要使每一方能够确知对方的存在.
  2. 要允许双方协商一些参数(如最大窗口值,是否使用窗口扩大选项和时间戳选项及服务质量等)
  3. 能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配. TCP连接的建立采用客户服务器方式.主动发起连接建立的应用进程叫做客户(client).而被动等待连接建立的应用进程叫做服务器(server).

5.9.1 TCP连接的建立

为什么A还要发送一次确认呢,这主要是为了防止已失效的连接请求报文段突然又传送到了B,而产生错误. A发出的第一个连接请求报文没有丢失,滞留在网络上,延误到连接释放以后的某个时间才到达B.本来这个是早已失效的报文段.但是B收到此失效的连接请求报文段后,就误认为是A有发出一次新的连接请求.于是就向A发出确认报文段,同意建立连接.假定不采用三次握手,那么只要B发出确认,新的连接就建立了. 由于现在A并没有发出建立连接的请求,因此不会理财B的确认.也不会向B发送数据.但是B却以为新的运输连接已经建立了,并一直等待A发送数据.B的许多资源就这样白白浪费的.

5.9.2TCP的连接释放

数据传输结束后,通信的双方都可释放连接.



Tags:TCP/IP-   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
运输层向它上面的应用层提供通信服务. 两个主机进行通信就是两个主机中的应用进程互相通信. 从运输层的角度看, 通信的真正端点并不是主机而是主机的进程. 运输层提供应用...【详细内容】
2020-02-24  Tags: TCP/IP-  点击:(120)  评论:(0)  加入收藏
▌简易百科推荐
以京训钉开发平台接口文档为例,使用HttpClient类请求调用其接口,对数据进行增删改查等操作。 文档地址: https://www.yuque.com/bjjnts/jxd/bo1oszusing System;using System.C...【详细内容】
2021-12-28  Wednes    Tags:HttpClient   点击:(1)  评论:(0)  加入收藏
阿里云与爱快路由安装组网教程一、开通好阿里云轻量服务器之后在服务器运维-远程连接处进行远程 二、进入控制台后在root权限下根据需要安装的固件位数复制下面命令。32位:wg...【详细内容】
2021-12-28  ikuai    Tags:组网   点击:(1)  评论:(0)  加入收藏
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(5)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(3)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(35)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(10)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(22)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(31)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条