计算机网络——运输层

来源:互联网 发布:薪酬数据分析哪些内容 编辑:程序博客网 时间:2024/05/22 00:30

计算机网络——运输层

一、概述:


运输层的作用主要是负责向上面的应用层提供通信服务,我们知道下三层的通信只是负责将IP数据报送到目的主机,但是具体的通信是怎样实现的未知,实际上就是运输层来完成,其是通过两台主机的应用进程互相通信,所以对象是主机的进程。

网络层与运输层区别:网络层是负责主机之间的逻辑通信,但是运输层主要负责的是应用进程之间的端到端的逻辑通信。



二、主要协议:

说到运输层自然而然会想到两个重要的协议,传输控制协议TCP以及用户数据报协议UDP,与之相关的传送数据单位分别叫做TCP报文段UDP用户数据报。
下面的图是使用两种协议的应用层协议:


【1】运输层的端口(两种端口号):


又称为协议端口号(16位即65536个端口号),运输层的端口是用来标识进程的,计算机中进程很多,通信时需要用一个标识符来确定那个进程通信,端口号就是这个作用。与硬件端口不同的是,软件端口是应用层的各种协议进程与运输层进行层间交互的一种地址。

1)、服务器端使用的端口号:


1、熟知端口号,数值一般为0~1023。如FTP、DNS等这些协议。
2、登记端口号,数值一般是1024~49151,为不熟知的端口号应用进程使用,使用前需登记。


2)、客户端使用的端口号:


数值为49152~65535。留给客户进程选择暂时使用。




【2】用户数据报协议UDP

UDP 是一种无连接的,不可靠的并且缺乏流量控制和差错控制的协议。它使用端口号对来自应用层的数据实现多路复用

1)、特性


1、无连接,即发送数据之前是不需要简历连接的
2、尽最大努力交付,即不可靠的传输,可能会有所丢失
3、面向报文,这里要理解一下UDP的首部结构,因为首部结构只有8个字节,也就是说UDP只负责进行对应用层的数据进行首部装载或者拆卸,不进行其他操作。
4、没用拥塞控制,为了保证速度,如视频电话,即使丢失一些数据也没关系,但是必须保证速率,所以不进行拥塞控制。
5、支持一对多,一对一,多对一,多对多。
6、首部开销比起TCP来说(20字节)很小。



2)、首部格式


用户数据报 UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。 

在计算检验和时,临时把“伪首部”和 UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。

伪首部只是做一个计算检验和的作用而已,不向上想下传递,校检和的计算与它是否包含在用户数据报中是可选择的.。





【3】传输控制协议TCP

1)、特性


1、TCP 是面向连接的运输层协议。
2、每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)。 
3、TCP 提供可靠交付的服务。
4、TCP 提供全双工通信。
5、面向字节流。  
6、发送方的发送速度不得超过接收方的处理速度。



2)、TCP的连接(套接字)


每一条TCP的连接有两个端点,TCP连接的断点叫做套接字(socket),socket的格式:(IP地址:端口号)
TCP的连接::={socket1,socket2}={(IP1:port1),{IP2:port2}}



【4】可靠传输的工作原理

1)、停止等待协议


1】、无差错情况
正常情况之下,当收到发来的信息时,会返回一个确认表示已收到信息

2】、出现差错

当出现差错时,有两种情况,第一种是B发现差错但是直接丢弃,另一种是B收不到,无论那种情况之下,A都收不到确认,因此会有一个超时重传的情况,设置一个超时计时器,如果在时间到之前收到确认则取消计时,否则就重发一次,这也就要求有几个点要注意,


一、必须保留副本,二、对分组和确认分组进行编号,才能明确对应关系,三、重发的数据倒计时会长一点。


3】、确认丢失和确认迟到(自动重传请求ARQ)

确认丢失:当A计时器到之后就要重传,B收到数据,B可能是直接丢弃或者向A发送确认

确认迟到:就是传输有延迟,到时超时重发后,B会收到两次一样的数据,然后B会发送两次确认,这就是确认迟到。

也正是利用这个方式来保证不可靠的网络实现可靠的通信


4】、信道利用率
因为停止等待机制对于信道的利用率太低,因此需要更高的利用,就有了连续ARQ协议滑动窗口协议


2)、连续ARQ协议

(Go—back—N)简单来说就是一个连续的发送几个数据,然后一个个确认收到,但是这里有个坏处就是可能需要不断重传,但传输5个数据,但是只收到前两个的确认,那么就需要不断的重传后面三个数据直到按序到达。


另一种方法就是选择重发ARQ,意思就是在发现出错后,未收到的等待重发,而已经接收的则缓存下来,等待拼接。




【5】滑动窗口机制


流量控制:所谓流量控制就是调整发送信息的速率,接收结点能够及时处理它们的一个过程。流量控制是为了防止网络出现拥挤及死锁而采取的一种措施。流量控制的另一目的是使业务量均匀地分配给各个网络结点。


1.TCP使用窗口机制进行流量控制

2.什么是窗口? 连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端。接收方发送的确认信息中包含了自己剩余的缓冲区尺寸剩余缓冲区空间的数量叫做窗口



1)发送窗口和接收窗口

发送窗口。发送窗口是指发送方允许连续发送分组的序号表。发送方在不等待应答而连续发送的最大分组数称为发送窗口的尺寸
接收窗口。接收窗口是指接收方允许接收分组的序号表。凡是发送到接收窗口内的分组,才能被接收方所接收,在窗口外的其它分组将被丢弃。
窗口滑动。发送方每发送一分组,窗口便向前滑动一个格,直到发送分组数等于最大窗口数目时便停止发送。 


2)窗口的滑动过程

发送窗口的大小(宽度)规定了发送方在未接到应答的情况下,允许发送的数据单元数。也就是说,窗口中能容纳的逻辑数据单元数,就是该窗口的大小



【6】TCP连接(三次握手)


运输连接就有三个阶段,即:连接建立数据传送连接释放


过程:
1、ATCPB发出连接请求报文段,其首部中的同步位SYN= 1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x
2、BTCP收到连接请求报文段后,如同意,则发回确认。 B在确认报文段中应使SYN= 1,使ACK= 1其确认号ack=x+ 1,自己选择的序号seq=y
3、A收到此报文段后向B给出确认,其ACK= 1确认号ack=y+ 1ATCP通知上层应用进程,连接已经建立。   BTCP收到主机A的确认后,也通知其上层应用进程:TCP连接已经建立。以后就可以传送数据了。


【7】tcp释放


1、
数据传输结束后,通信的双方都可释放连接。现在 A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。
A把连接释放报文段首部的 FIN = 1,其序号seq = u,等待 B 的确认。
2、
B发出确认,确认号 ack = u+1,而这个报文段自己的序号 seq = v。TCP 服务器进程通知高层应用进程。从 A 到 B 这个方向的连接就释放了,TCP连接处于半关闭状态。B 若发送数据,A 仍要接收。
3、
若B已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接。 




其他文章
>[计算机网络知识](http://blog.csdn.net/wzhworld/article/details/73359741)
>[计算机网络——数据链路层](http://blog.csdn.net/wzhworld/article/details/73456259)
>[计算机网络——运输层](http://blog.csdn.net/wzhworld/article/details/73849221)
>[计算机网络——网络层(1)IP](http://blog.csdn.net/wzhworld/article/details/73528115)
>[计算机网络——网络层(2)IP](http://blog.csdn.net/wzhworld/article/details/73530116)
>[计算机网络——应用层](http://blog.csdn.net/wzhworld/article/details/73921824)
原创粉丝点击