计算机网络————运输层

这篇具有很好参考价值的文章主要介绍了计算机网络————运输层。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

从IP层看,通信双方是两个主机。

但真正进行通信的实体是在主机中的进程,是这个主机中的一个进程和另一个主机中的一个进程在交换数据。

所以严格的讲,两个主机进行通信就是两个主机中的应用进程互相通信。

IP协议能把分组送到主机,但分组还停留在主机的网络层而没有交付给主机中的应用进程。


从运输层看,通信的真正端点并不是主机而是主机中的进程。即,端到端的通信是应用进程之间的通信。在一个主机中经常有多个应用进程同时分别和另一个主机中的多个应用进程通信。

运输层的重要功能:

  • 复用:在发送方不同的应用进程都有可以使用同一个运输层协议传送数据
  • 分用:接收方的运输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程

协议

两个主要协议:

  • 用户数据报协议UDP(User Datagram Protocol) | RFC 768 | UDP用户数据报
  • 传输控制协议TCP(Transmission Control Protocol) | RFC 793 | TCP报文段

UDP在传送数据之前不需要先建立连接,远程主机的运输层收到UDP报文后,不需要给出任何确认。

TCP提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。

一些应用和应用层协议主要使用的运输层协议:
计算机网络————运输层


运输层的端口

因特网上使用的计算机的操作系统种类很多,不同的操作系统又使用不同格式的进程标识符。为了使运行不同操作系统的计算机的应用进程能够互相通信,必须使用统一的方法对TCP/IP体系的应用进程进行标志,这种方法必须与特定操作系统无关。

但把一个特定机器上运行的特定进程指明为因特网上通信最后的终点还是不可行的。这是因为进程的创建和撤销都是动态的,通信的一方几乎无法识别对方机器上的进程。
另外,往往需要利用目的主机提供的功能来识别终点,而不需要知道具体实现这个功能的进程是哪一个。

解决方法是在运输层使用协议端口号,简称为端口(port)。也就是说,虽然通信的终点是应用进程,但只要把传送的报文交到目的主机的某一个合适的目的端口,剩下的工作就由TCP来完成。

TCP/IP的运输层用一个16位端口号来标志一个端口。端口号只具有本地意义,只是为了标志本计算机应用层中的各个进程在运输层交互时的层间接口。在因特网的不同计算机中,相同的端口号是没有关联的。16位的端口号可允许有65535个不同的端口号。


两个计算机中的进程互相通信,不仅需要对方的IP地址,还需要知道对方的端口号。

因特网上的计算机通信是采用客户-服务器方式,客户在发起通信请求时,必须知道对方服务器的IP地址和端口号。运输层的端口号分为两大类:
1、服务器端使用的端口号:又分为两类

  • 熟知端口号或系统端口号,数值0~1023,可在www.iana.org查到,指派给TCP/IP最重要的应用程序,让所有的用户都知道。
    计算机网络————运输层
  • 登记端口号,数值1024~49151。 是为没有熟知端口号的应用程序使用的。这类必须在IANA登记,以防止重复。

2、客户端使用的端口号,数值1024~65535。这类端口号仅在客户进程运行时动态选择,又叫短暂端口号。通信结束就不存在了。

UDP

在IP之上增加很少的功能:

  • 复用
  • 分用
  • 差错检测

主要特点:

  • 无连接,减少了开销和发送数据之前的时延
  • 尽最大努力交付,即不保证可靠交付
  • 面向报文,发送发的UDP对应用程序交下来的报文,添加首部后就向下交付给IP层。既不合并,也不拆分,保留这些报文的边界。
    计算机网络————运输层
  • 无拥塞控制
  • 支持一对一、一对多、多对一、多对多交互通信
  • 首部开销小,只有8字节,TCP有20字节

首部格式

数据字段和首部字段

首部字段由四个字段组成,每个字段的长度都是两个字节:
1、源端口 : 在需要回信时选用,不需要可全用0
2、目的端口 : 终点交付报文
3、长度 : UDP用户数据报的长度,最小值是8
4、检验和 : 检测UDP用户数据报在传输时是否有错,有错就丢弃
计算机网络————运输层

如果接收方UDP发现收到的报文中的目的端口号不正确,就丢弃该报文,并由ICMP发送“端口不可达”差错报文给发送方

UDP的检验和是把首部和数据部分一起都检验,IP数据报的检验和只检验IP数据报的首部

TCP

主要特点:
1、面向连接
2、每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
3、提供可靠交付。无差错、不丢失、不重复、按序到达

  • 停止等待协议

    • 无差错情况,发送-确认-发送-确认······
      计算机网络————运输层

    • 出现差错

      • 计算机网络————运输层

      • A超过一段时间仍没有收到确认,就认为刚才发送的分组丢失了,重传前面发送过的分组,这叫做超时重传。

      • 要实现超时重传,要在发送完一个分组设置一个超时计时器,如果在超时计时器到期之前收到了对方的确认,就撤销以设置的超时计时器

    • 确认丢失和确认迟到

      • 计算机网络————运输层
      • B发送的确认丢失,A重传数据,B又收到数据,会采取丢弃重复数据,向A发送确认 。
      • B对分组的确认迟到,A会收到重复的确认,丢弃即可,B还会收到重复数据,同样丢弃,重传确认
  • 连续ARQ协议

    • 发送方维持发送窗口,位于发送窗口的分组都可以连续发送出去,不需要等待对方的确认,可提高信道利用率
    • 连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置,然后可以继续发送新覆盖的分组。
    • 接收方一般采用累计确认的方式,接收方不必逐个发送确认,而是可以在收到几个分组后,对按序到达的最后一个分组发送确认,这样就表示,到这个分组为止的所有分组都正确收到了
    • 优点:容易实现,确认丢失也不必重传
    • 确定:不能向发送方反映出接收方已经正确收到的所有分组的信息

4、提供全双工通信。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据
5、面向字节流。“流”是指流入到进程或从进程流出的字节序列。TCP把应用程序交下来的数据堪称仅仅是一连串的无结构的字节流,不知道字节流的含义。


TCP连接的端点叫做套接字或插口

端口号拼接到IP地址即构成了套接字

套接字的表示方法是在点分十进制的IP地址后面写上端口号,中间用冒号或逗号隔开,例:192.3.4.5:80

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

每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定,即:

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


首部格式

计算机网络————运输层

TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项。最小20,最大60

1,2、源端口和目的端口:各占2字节。
3、序号:4字节。范围是 [ 0 , 2 32 − 1 ] [0,2^{32}-1] [0,2321]。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。序号字段值指的是本报文段所发送的数据的第一个字节的序号,也称作“报文段序号”
4、确认号:4字节。期望收到对方下一个报文段的第一个数据字节的序号。如B正确收到A发送的报文段,序号字段为501,数据长度为200,则数据序号分别为501~700,表明B正确收到A发送的到700为止的数据,因此B期望收到A的下一个数据序号为701。

确认号=N,就表明:到序号N-1为止的所有数据都已正确收到

5、数据偏移:4位。指出TCP报文段的数据起始处距离TCP报文段的起始处有多远,即指出TCP报文段的首部长度。
6、保留,6位。保留为今后使用,目前置为0
7、紧急URG,当URG=1,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不按原先排队顺序来传送。
8、确认ACK,仅当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,连接建立后的所有传送报文段都必须把ACK置1。
9、计算机网络————运输层10、复位RST,当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接。RST置1还用了拒绝一个非法的报文段或拒绝打开一个连接。
11、同步SYN,连接建立时用来同步序号。SYN=1而ACK=0时,表明是一个连接请求报文段。如果对方同意建立连接,响应报文段中使SYN=1和ACK=1。所以,SYN置1表示这是一个连接请求或连接接受报文。
12、终止FIN,用来释放一个连接。FIN=1,表示此报文段的发送方的数据已发送完毕,并要求释放运输连接。
13、窗口,2字节。是 [ 0 , 2 16 − 1 ] [0,2^{16}-1] [0,2161]的整数。指发送本报文段的以方的接收窗口。窗口值告诉对方:从本报问段首部中的确认号算起,接收方目前运行对方发送的数据量。
14、检验和,2字节。检验和字段检验的范围包括首部和数据两部分。
15、紧急指针,2字节。仅在URG=1时才有意义,指出本报文段中的紧急数据的字节数。即使窗口为0也可以发送紧急数据。
16、选项,长度可变,最大40字节。

连接管理

三个阶段:连接建立、数据传送、连接释放

连接建立

计算机网络————运输层
B的TCP服务器进程先创建传输控制块TCB,准备接受客户端进程的连接请求,然后就处于listen的状态。

A的TCP客户进程也是首先创建传输控制模块TCB,然后向B发送连接请求报文。

TCB(Transmission Control Block)存储了每一个连接中的一些重要信息,如:TCP连接表,到发送和接收缓存的指针,到重传队列的指针,当前的发送和接收序号等等。

1、A发送连接请求:SYN=1,选择一个初始序号seq=x
2、B收到连接请求,如同意建立连接,向A发送确认:
SYN=1,ACK=1,seq=y,确认号ack=x+1
3、A收到B的确认,向B给出确认。ACK=1,确认号ack=y+1,主机的序号seq=x+1

连接释放

计算机网络————运输层1、A的应用进程先向其TCP发出连接释放报文段,并停止发送数据,主动关闭TCP连接。连接释放报文段首部:FIN=1,seq=u,序号等于前面已传送过的数据的最后一个字节的序号加1。
2、B收到连接释放报文段后即发出确认,确认号ack=u+1,seq=v,等于B前面已传送过的数据的最后一个字节的序号加1。
从A到B方向的连接就释放了

3、A收到B的确认后,等待B发出连接释放报文段
B连接释放报文段FIN=1,ack=u+1
4、A收到连接释放报文段,A确认,ACK=1,ack=w+1,seq=u+1


计算机网络————运输层文章来源地址https://www.toymoban.com/news/detail-513802.html

到了这里,关于计算机网络————运输层的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第五章 运输层【计算机网络】

    2023-7-7 16:44:24 以下内容源自《【计算机网络】》 仅供学习交流使用 第四章 网络互联【计算机网络】 5.1.1 进程之间的通信 5.1.2运输层的两个主要协议 5.1.3运输层的端口 5.2.1UDP概述 5.2.2UDP的首部格式 5.3.1TCP最主要的特点 5.3.2TCP的连接 5.4.1停止等待协议 5.4.2连续ARQ协议 5.6.1以字节

    2024年02月12日
    浏览(52)
  • 【计算机网络】第五章·运输层

    目录 1.运输层概述 1.1.进程间基于网络的通信 1.2.TCP/IP体系结构运输层中的两个重要协议 1.3.运输层端口号、复用、分用 2.传输控制协议TCP 2.1.TCP报文段的首部格式 2.2.TCP的运输连接管理 \\\'三报文握手\\\'建立TCP连接和\\\'四报文挥手\\\'释放TCP连接 2.3.TCP流量控制和拥塞控制 2.4.TCP的四种拥

    2024年02月20日
    浏览(53)
  • 计算机网络 第5章(运输层)

    计算机网络 第1章(概述) 计算机网络 第2章(物理层) 计算机网络 第3章(数据链路层) 计算机网络 第4章(网络层) 计算机网络 第5章(运输层) 计算机网络 第6章(应用层) 进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务, 它属于

    2024年01月25日
    浏览(47)
  • 【计算机网络 - 第三章】运输层

    目录 一、多路复用和多路分解 1、运输层端口号 2、概述 3、原理  1、无连接的多路复用与多路分解 - UDP 2、面向连接的多路复用与多路分解 - TCP 二、无连接运输——UDP用户数据报协议 1、UDP概述 2、UDP的优点 三、可靠数据传输原理 1、概述 2、rdt1.0——可靠信道上的可信数据

    2024年02月11日
    浏览(52)
  • 计算机网络-笔记-第五章-运输层

    一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 五、第五章——运输层 1、运输层概述 2、运输层端口号、复用、分用 (1)熟知端口号、登记端口号、短暂端口号

    2024年02月11日
    浏览(47)
  • 计算机网络习题——第5章 运输层

    5-01运输层在协议栈中的地位和作用。运输层的通信和网络层的通信有什么重要的区别?为什么运输层是必不可少的? 运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务。 运输层为应用进程之间提供端到端的逻辑通信,但网络层是

    2024年02月09日
    浏览(38)
  • 计算机网络 运输层端口号,复用、分用

           

    2024年02月13日
    浏览(43)
  • 计算机网络——运输层(1)暨小程送书

    我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络 自顶向下 方法而整理的,包括各大高校教学都是以此顺序进行的。 面向群体:在

    2024年01月18日
    浏览(38)
  • 计算机网络——运输层(2)暨小程送书

    我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络 自顶向下 方法而整理的,包括各大高校教学都是以此顺序进行的。 面向群体:在

    2024年01月22日
    浏览(44)
  • 计算机网络 运输层 UDP和TCP对比

             

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包