前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机网络基础知识整理--运输层

计算机网络基础知识整理--运输层

原创
作者头像
黄桂期
修改2018-05-11 21:27:23
2K2
修改2018-05-11 21:27:23
举报
文章被收录于专栏:土豆专栏土豆专栏土豆专栏

小编最近正在复习计算机网络基础,整理出一些我认为比较重要的知识,后续会更新~

1,运输层为相互通信的应用进程提供逻辑信息

从IP层来说,通信的两端是两个主机。IP数据报的首部明确地标志了这两个主机的IP地址。我们需要知道,真正进行通信的实体是在主机中的进程,是这个主机中的一个进程和另一个主机中的进程在交换数据(即通信)。因此严格地讲,两个主机进行通信就是两个主机中的应用进程进行通信。IP协议虽然等把分组送到目的主机,但是这个分组还停留在主机的网络层而没有交付主机中的应用进程。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。也就是说,端到端的通信是应用进程之间的通信

图1-1 运输层为相互通信的应用进程提供了逻辑通信
图1-1 运输层为相互通信的应用进程提供了逻辑通信

可以这样理解逻辑通信:沿水平方向直接传送数据,但事实上这两个运输层之间并没有一条水平方向的物理连接。数据的传送是沿着图中的虚线方向(经过多个层次)传送的

可以从上图中看出,网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。

2,端口和套接字

硬件端口是不同硬件设备进行交互的接口,而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。在协议栈层间的抽象的协议端口是软件端口。

TCP/IP的运输层用一个16位的端口号来标志一个端口,但需要注意的是,端口号只具有本地含义,它只是为了标志本计算机应用层中的各个进程和运输层进行交互时的层间接口,在因特网不同计算机中,相同的端口号是没有任何关联的。

接下来再介绍两类端口号

  • 服务器端使用的端口号 这里又分两类,最重要的一类叫做熟知端口号或系统端口号,数值为0~1023。IANA(互联网数字分配机构)把这些端口号指派给了TCP/IP最重要的一些应用程序,让所有用户都知道。当一种新的应用程序出现以后,IANA必须为它指派一个熟知端口,否则因特网上的其他应用进程就无法和它进行通信。另一类叫做登记端口号,数值为1024~49151.这类端口号必须在IANA按照规定的手续等级,以防止重复。
  • 客户端使用的端口号 数值为49152~65535 。由于这类端口号仅在客户进程运行时才动态选择,因此又叫做短暂端口号。这类端口号是留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的端口号,因而可以把数据发送给客户进程。通信结束后,刚才已使用过的客户端口号就不复存在,这个端口号就可以供其他客户进程使用

套接字:TCP把连接作为最基本的抽象,每一条TCP连接有两个端点,TCP连接的端点就是套接字(socket)或插口。根据RFC793的顶替工艺:端口号拼接到IP地址即构成了套接字。

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

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

3,无连接的UDP(User Datagram Protocol)

远地主机的运输层在收到UDP报文后,不需要给出任何确认。虽然UDP没提供可靠交付,但在某些情况下UDP却是一种最有效的工作方式。

4,面向连接的TCP协议((Transmission Control Protocol)

提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。如确认、流量控制、计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。

5,在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议

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

  • 传输信道不产生差错
  • 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。

在这样理想传输条件下,不需要采取任何措施就能够实现可靠传输。但一般实际的网络都不具备以上两个特点。

停止等待协议

每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组

只有收到序号正确的确认帧 ACKn 后,才更新发送状态变量 V(S)一次,并发送新的数据帧。接收端接收到数据帧时,就要将发送序号 N(S) 与本地的接收状态变量 V(R) 相比较。若二者相等就表明是新的数据帧,就收下,并发送确认。否则为重复帧,就必须丢弃。但这时仍须向发送端发送确认帧 ACKn,而接收状态变量 V(R) 和确认序号 n 都不变。连续出现相同发送序号的数据帧,表明发送端进行了超时重传。连续出现相同序号的确认帧,表明接收端收到了重复帧。

发送端在发送完数据帧时,必须在其发送缓存中暂时保留这个数据帧的副本。这样才能在出差错时进行重传。只有确认对方已经收到这个数据帧时,才可以清除这个副本。

发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为ARQ(Automatic Repeat reQuest),自动请求重传。

连续ARQ协议:

图5-1 连续ARQ协议的工作原理
图5-1 连续ARQ协议的工作原理

连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。上图表示发送方收到了对第一个分组的确认,于是就把发送窗口向前移动一个分组的位置。如果原来已经发送了前五个分组,那么现在就可以发送窗口内的第六个分组的。

接收方一般都是采用累积确认的方式。也就是说,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组的确认,这就表示:到这个分组位置的所有分组都已正确收到了。

注:TCP和UDP后续会重点讲解,在这里就先简略介绍啦~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,运输层为相互通信的应用进程提供逻辑信息
  • 2,端口和套接字
  • 3,无连接的UDP(User Datagram Protocol)
  • 4,面向连接的TCP协议((Transmission Control Protocol)
  • 5,在不可靠的网络上实现可靠传输的工作原理,停止等待协议和ARQ协议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档