《图解TCP/IP》学习——第六章TCP与UDP

版权声明:扫我头像就可以向我提问,共同提高:) https://blog.csdn.net/u011436427/article/details/85626538

一、传输层的作用

1.传输层定义

(1)TCP提供可靠的通信传输,而UDP则常被用于广播和细节控制交给应用的通信传输。
(2)IP首部有一个协议字段,是用来标识网络层(IP)的上一层所采用的是哪一种传输层协议。
(3)传输层必须指出这个具体的程序,为了实现这一功能,使用端口号这样一种识别码。根据端口号就可以识别在传输层上一层的应用层中所要进行处理的具体程序。

2.通信处理

(1)TCP/IP的众多应用协议大多是以客户端/服务端的形式运行的。
(2)作为服务端的程序有必要提前启动,准备接收客户端的请求。否则,即使有客户端的请求发过来,也无法做到相应的处理。
(3)以一个HTTP请求为例,
在这里插入图片描述

说明:
(a)在UNIX系统中,这些服务端程序称之为:守护进程
eg:HTTP的守护进程是httpd,SSH的守护进程是sshd。
(b)在Unix中并不要将这些守护进程逐个启动,而是启动一个可以代表它们接收客户端请求的inetd服务程序即可(互联网守护进程),即超级守护进程。该守护进程收到客户端请求以后会创建fork新的进程,并转换exec为sshd等各个守护进程。

3.传输层协议TCP与UDP

(1)TCP
当应用程序采用TCP发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。因此,在TCP通信中,发送端应用可以在自己缩招发送的消息中设置一个表示长度或间隔的字段信息。

(2)UDP
UDP中,消息长度的数据也会被发送到接收端,在发送的消息中,不需要设置一个表示消息长度或间隔的字段信息。

4.TCP与UDP的区分

(1)TCP与UDP的优缺点无法简单地、绝对地去做比较。应该是按照应用目的来按需使用。
TCP优势在于:在传输层有必要应用实现可靠传输的情况。面向连接、并具备顺序控制、重发机制等。
UDP的优势在于:对于高速传输和实时性要求较高的通信或者广播通信。多播通信与广播通信使用的是UDP

(2)套接字socket的简单介绍
在这里插入图片描述

二、端口号

1.端口号的定义

(1)数据链路和IP中的地址,分别指的是MAC地址和IP地址。前者用来识别同一链路中的不同计算机,后者用来识别TCP/IP网络中互连的主机和路由器。
(2)端口号用来识别同一台计算机中进行通信的不同的应用程序,也称之为程序地址。

2.根据端口号识别应用

在这里插入图片描述

3.通过IP地址、端口号、协议号进行通信识别

(1)直接看识别多个请求的eg:
在这里插入图片描述

说明:
在这里插入图片描述

(2)TCP/IP或UDP/IP通信中采用,5个信息来识别一个通信,包括:源IP地址、目标IP地址、协议号、源端口号、目的端口号。
只要其中某一项不同,则被认为是其它通信

4.端口号如何确定

(1)标准既定的端口号:知名端口号
在这里插入图片描述

TCP具有代表性的知名端口号
在这里插入图片描述
在这里插入图片描述

UDP具有代表性的知名端口号
在这里插入图片描述

(2)时序分配法
(a)服务端有必要确定监听端口号,但是接收服务的客服端没必要确定端口号
在这里插入图片描述

(b)
在这里插入图片描述

5.端口号与协议

(1)端口号是由使用的传输层协议决定的,因此,不同的传输协议可以使用相同的端口号。eg:TCP与UDP可以使用同一个端口号,因为即使是同一个端口号,由于传输协议是各自独立地进行处理的,因此相互之间不会受到影响。
(2)知名端口号与传输层协议并无关系,只要端口号一致,都将分配到同一种程序进行处理。
在这里插入图片描述

三、UDP

(1)UDP的特点:UDP不提供复杂的控制机制。它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。
(2)如果需要这些细节控制,那么不得不交由采用UDP的应用程序去处理。UDP有点类似于用户说什么听什么的机制,so,UDP按照“制作程序的那些用户的指示行事”。
(3)UDP经常用于以下几个方面:
(a)包总量较少的通信(DNS、SNMP等);
(b)视频、音频等多媒体通信(即时通信);
(c)限定于LAN等特定网络中的应用通信;
(d)广播通信(广播、多播);

四、TCP

1.TCP的特点及目的

(1)TCP作为一种面向有连接的协议,只有在确认通信对端确实存在时才会发送数据,从而可以控制通信流量的浪费。
(2)TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输

2.通过序列号与确认应答提高可靠性

(1)在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一个已收到消息的通知。这个消息叫做确认应答(ACK)
(2)正常的数据传输的eg如下,
在这里插入图片描述

(3)数据包丢失的一个eg,如下:
在这里插入图片描述

(4)确认应答丢失的情况的一个例子,如下
在这里插入图片描述

(5)为了防止接收端反复收到相同的数据,就引入了一种机制,它能够识别是否已经接收数据,也能判断是否需要接收数据。
上述这些确认应答处理、重发控制以及重复控制等功能都可以通过序列号实现
在这里插入图片描述

(6)eg如下
在这里插入图片描述

3.如何确定超市重发的时间??

(1)TCP要求无论网络拥塞情况发送何种变化,它在每次发包时都会以计算往返时间及其偏差

在这里插入图片描述

(2)
在这里插入图片描述

4.连接管理

(1)TCP面向有连接的通信传输,指的是在数据通信开始之前先做好通信两端之间的准备工作。
在通信前,通过TCP首部发送一个SYN包作为建立连接的请求等待确认应答;
在通信结束时,会进行断开连接的处理(FIN包)。

(2)TCP的建立与断开如下所示,
(a)使用TCP首部用于控制的字段来管理TCP连接;
(b)一个连接的建立与断开,正常过程至少需要来回发送7个包才能完成
(c)建立一个TCP连接需要发送3个包,这个过程也称作是三次握手

在这里插入图片描述

5.TCP以段为单位发送数据

(1)在建立TCP连接的同时,也可以确定发送数据包的单位,及最大消息长度(MSS:Maximum Segment Size),最大消息长度也是IP中不会被分片处理的最大数据长度。
(2)MSS是在三次握手的时候,在两端主机之间被计算得到的。
在这里插入图片描述
eg:
在这里插入图片描述

6.利用窗口控制提高速度

(1)若TCP以1个段为单位,包的往返时间越长通信性能就越低。
(2)用滑动窗口并行处理
在这里插入图片描述

(3)这个机制实现了使用大量的缓冲区,可以对多个段同时进行确认应答。
(4)滑动窗口机制:窗口大小的值是由接收端主机决定的。
在这里插入图片描述
在这里插入图片描述

7.窗口控制与重发控制:在窗口控制中,出现段丢失咋办?

(1)使用窗口控制,某些确认应答即便丢失也无需重发。
(2)当多个报文段丢失时候
在这里插入图片描述

(3)某个报文段丢失:使用高速重发控制
在这里插入图片描述

在这里插入图片描述

8.流控制

(1)原因:
在这里插入图片描述
(2)解决办法:TCP提供了一种机制可以让发送端根据接收端的实际接受能力来控制发送端发送的数据量。这就是流控制
(3)具体操作是:接收端主机向发送端主机通知自己可以接收数据的大小,于实发送端会发送不超过这个限度的数据。该大小限度就被称之为窗口大小
(4)
在这里插入图片描述

(5)流控制的具体eg如下,表示:根据窗口大小来控制流量的过程
在这里插入图片描述
说明:
在这里插入图片描述

9.拥塞控制

(1)如果在通信刚开始的时候,就发送大量数据,可能会引发其它问题。在网络出现拥堵时,如果突然发送一个较大量的数据,极有可能会导致整个网络的瘫痪。
(2)TCP为了防止上述问题,在通信一开始的时候,就会通过一个叫慢启动算法得出的数值,对发送数据量进行控制
(3)具体过程如下:
在这里插入图片描述
说明:
(a)
在这里插入图片描述

(b)补充:有时候,有时候会将慢启动的初始值设置为大于1MSS的值。
若MSS的值小于1095字节,应该设置最大为4MSS;
若小于2190字节时,应该设置最大为4390字节;
若超过2190字节时,应该设置最大值大于2MSS;
以太网的标准MSS值为1460字节,因此慢启动的初始值从4380字节(3MSS)开始就可以了

(c)慢启动阈值
在这里插入图片描述

(4)TCP窗口变化
在这里插入图片描述

说明:
(a)拥塞窗口越大,确认应答的数目也会增加。
(b)TCP的通信开始时,并没有设置相应的慢启动阈值,而是在超时重发时,才会设置为当时拥塞窗口一半的大小。
(c)可以比较图中重复确认应答超时这两种的拥塞窗口的大小,重复确认应答相较于超时而言,会要求至少3次的确认应答的数据段到达对方主机后,才会触发,所以它的网络拥塞要轻一点
(d)在重复确认应答中,进行高速重发控制时,慢启动阈值的大小被设置为当时窗口大小的一半,然后将窗口的大小设置为该慢启动阈值+3个数据段的大小。
(e)窗口越大,越会形成高吞吐量的通信。

10.提高网络利用率的规范

(1)Nagle算法:基本不用
在这里插入图片描述

(2)延迟确认应答
(a)原因:接收数据的主机如果每次都立刻回复确认应答的话,可能会返回一个较小的窗口。那是因为刚接收完数据,缓冲区已满。
当某个接收端收到这个小窗口的通知后,会以它为上限发送数据,从而又降低了网络的利用率(又称之为糊涂窗口综合征)。
(b)so,引进了延迟一段时间的机制。包括以下两种情况:
在这里插入图片描述(c)延迟确认应答的eg如下:
在这里插入图片描述

(3)捎带应答
(a)TCP的确认应答回执数据可以通过一个包进行发送。这种方式叫做:捎带应答(PiggyBack Ackknowledgement),该机制可以使收发的数据量减少
(b)捎带应答的要求: 以及启用延迟确认应答与捎带应答的关系,如下:
在这里插入图片描述
(c)具体例子如下:
在这里插入图片描述

11.使用TCP的应用

在这里插入图片描述

五、其它传输层协议

1.UDP-Lite:轻量级的用户数据报协议

在这里插入图片描述

2.SCTP:流控制传输协议

在这里插入图片描述

SCTP的应用:
在这里插入图片描述
在这里插入图片描述

SCTP的特点:
在这里插入图片描述

3.DCCP:数据报拥塞控制协议

在这里插入图片描述

说明:
相比较TCP的窗口控制,TFRC(TCP的友好升级控制)是针对声频和视频等多媒体的一种控制机制。

六、TDP首部的格式

(1)TCP数据段格式如下:
在这里插入图片描述

(2)TCP中没有表示包长度的数据长度的字段。
可由IP层获知TCP的包长
由TCP的包长可知数据的长度

(3)具体介绍
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用校验和的目的
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、UDP首部格式:先看比较好

(1)UDP数据报格式
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

为啥要用校验和计算和来计算UDP伪首部的原因如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u011436427/article/details/85626538