计算机网络---第五章传输层知识总结(一)

传输层提供的服务

传输层是5层参考模型中的第四层,它向上层提供通信服务,为两台主机提供应用进程之间的通信,称为端到端通信

传输层的功能

  1. 提供应用进程之间的逻辑通信(网络层提供主机之间的逻辑通信
  2. 差错检测
    对收到的报文的首部和数据部分都进行差错检测(网络层只检查IP数据报首部,并不检查数据部分
  3. 提供无连接或者面向连接的服务
    传输层有两种不同的传输协议,面向连接的TCP和无连接的UDP,TCP提供了一种可靠性较高的传输服务,UDP则提供一种高效率的但不可靠的传输服务.
    4.复用和分用
    复用是指发送方不同的应用进程都可以使用同一个传输层协议传输数据,
    分用是指接收方的传输方在剥去报文的首部后能够把这些数据正确交付到目的的应用进程.

端到端通信与点到点通信

一般来说端到端信道是由一段一段的点到点的信道构成,

端到端协议是建立在点到点协议上的,提供进程之间的通信手段.

端到端传输是指在数据传输之前,经过各种各样的交换设备,在两端设备之间建立一条链路,就像是直接联通的,链路建立后,发送端就可以发送数据,直到数据发送完毕,接收端确认接收成功.

端到端的优势是链路建立后,发送端知道接收设备一定能收到,而且经过中间交换设备时不需要存储转发,因此传输时延小,
端到端的缺点是直到接收端收到数据为止,发送端的设备一直要参与传输.如果时延很长,那么对发送端的设备造成很大的浪费,第二个缺点是接收设备关机或者故障的话,端到端传输不可能实现.

点到点系统是指发送端把数据传送给与他相连的设备,这台设备又在下一个合适的时间给与另一台设备,通过一台一台的设备传送到接收端.
来看点到点的优势:发送端数据传输出去后就不用再参与到整个的传输中了,不会浪费发送端设备的资源.
即使设备关机或者故障也可以进行存储转发
点到点的缺点是发送端发送数据后,不知道接收端是否能收到数据.

传输层寻址与接口

数据链路层按照MAC地址寻址,网络层按照IP地址寻址,而传输层是按照端口号寻址的,
端口是传输层服务的访问点,端口能让应用层的各种应用进程将其数据通过端口向下交付给传输层以及让传输层知道应当其报文段中的数据向上通过端口交付给应用层的相应进程.
2.端口号,由于一台主机上会有大量的网络应用进程在运行,所以需要大量的端口号来标识不同的进程.
端口用一个16位端口号来标识,共允许2^16=65535个端口号,端口号只是为了标识计算机应用层的各进程.
主机都端口号可以分为3种:

(1). 熟知端口(保留端口):数值一般为0~~1023
| 应用程序| FTP | TELNET| SMTP | DNS | TFTP | HTTP |SNMP |
| 熟知端口| 21,20 | --23---- | --25 – | -53-- | – 69-- | – 80- |–161—|

(2).登记端口:数值为1024~49151
为没有熟知端口号的应用程序使用的,使用这类端口必须在IANA登记

(3)**客户端端口或短暂端口:**数值为49152~~65535
由于这类端口号仅在客户端进程运行时才动态选择,所以称为短暂端口或者临时端口.
在这里插入图片描述

无连接服务与面向连接服务

运送层提供两种类型的服务,无连接服务与面向连接服务,相应的实习分别是用户数据报(UDP)与传输控制协议(TCP).当采用UDP时,传输层向上提供一条不可靠的逻辑信道.
在这里插入图片描述

1.UDP的主要特点:
(1)传送数据前无需建立连接,数据到达后也无需确认
(2)不可靠交付
(3)报文头部短,传输开销小,时延较短
2.TCP的主要特点:
(1)面向连接, 不提供广播或者多播服务.
(2)可靠交付
(3)报文段头部长,传输开销大.

UDP数据报

在这里插入图片描述
UDP和TCP的最大区别在于它是无连接的,UDP其实是在IP的数据报服务上增加了端口的功能和差错检测的功能.
虽然UDP用户数据报只能提供不可靠的交付,但在UDP在某方面有特殊的特点.
(1)发送数据之前不需要建立连接.
(2)UDP的主机不需要维持复杂的连接状态表.
(3)UDP用户数据包只有8个字节的首部开销.
(4)网络出现的拥塞不会使源主机的发送速率降低.这对某些实时应用是很重要的.
(5)UDP支持一对一,一对多,多对多的交互通信.

UDP的首部格式
在这里插入图片描述

TCP(重点)

TCP报文段

这部分知识相对繁琐,容易忘记
TCP报文段分为首部和数据两个部分.
报文的首部默认为20B(如果没有特别的说明),一个IP数据报的首部也为20B
在这里插入图片描述

TCP连接管理(三次握手与四次挥手)

TCP的传输连接分为3个阶段:连接建立,数据传送,连接释放.TCP传输连接的管理就是使传输的建立和释放都能正常地进行.
建立连接阶段的三次发送请求报文段称为三次握手,三次握手也是面试题中考的一个点.
TCP的连接和建立都是采用客户/服务器的方式.主动发起连接建立的应用进程叫做客户(Client),被动等待建立连接的应用程序叫做服务器(server).
三步握手
第一步:客户机A的TCP向服务器B发出连接请求报文段,其首部的同步位:SYN=1(TCP规定,SYN报文段不能携带数据,但要消耗一个序号,)并选择序号seq=x,表明传送数据时的第一个数据字节的序号是X.
第二步:服务器收到了数据报,并从SYN=1知道是一个建立连接的请求,如果同意,则发回确认.B在确认报文段中应使SYN=1,ACK=1,其确认号为:ack=x+1,自己选择的序号为seq = y(SYN=1,不能带数据).
第三步:A收到此报文段后向B给出确认,其ACK=1,其确认号ack=x+1.A的TCP通知上层的应用进程,连接已经建立.B的TCP收到主机A的确认后,也通知其上层应用进程,此时TCP连接已经建立,ACK报文可以携带数据(没有SYN字段),如果不携带数据则不消耗序号.
1.三次握手后确认双方的接收能力和发送能力是否正常.
2.指定自己的初始化序列号,为后面的可靠传输做准备.

四次挥手:
第一步.数据传输结束后,通信双方都可释放连接,现在的A应用进程先向发出连接释放报文段,并停止再发送数据.主动关闭TCP连接.A将连接释放报文段的首部的FIN置1,其序号seq=u,等待B的确认,这里要注意,因为TCP是双工的,也就是说,可以想象一对TCP连接上有两条数据通路.当发送FIN报文时,发送FIN的一段就不能发送数据了,也就是关闭了其中的一条数据通路,但是对方还是发送数据的
第二步:B发出确认,从A到B的这个方向的连接就释放了,TCP连接处于版关闭的状态.B若发送数据,则A仍要接收.
**第三步:**若B已经没有必要向A发送的数据,其应用进程就通知TCP释放连接.
第四步:A收到连接释放报文后,必须发出确认,在确认报文段中,ACK=1,确认号ack=w+1,自己的序号为seq = u+1;

原创文章 8 获赞 14 访问量 588

猜你喜欢

转载自blog.csdn.net/weixin_43950187/article/details/106093143