构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

回顾:

Transport(传输层):会话的复用、分段、流控(当需要时)、面向连接(但需要时)、可靠性(当需要时)

TCP与UDP都是传输层的协议

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

TCP具有一定的校验功能,数据包的发送若是没有回应,TCP协议会重新发送,所以可靠,相比UDP就不可靠;所以一般email文件等对可靠性要求高的用TCP协议,而更看重效率的多媒体用UDP较多。

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

 

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

无论是TCP还是UDP的端口号都是1-65535;其中0-1023不可使用,程序可以使用到的是1024-49151,49152-65535之间的是动态专用端口。

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

 

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

 

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

 电脑要建立连接时

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

TCP协议中每次握手会有相应的***,握手成功之后向后移一位,如图100-101

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

(图中为sender在发送给包时,receiver缓存区满,并没有返回三个包都接受的信息时,sender进行二次包的传送;ACK意为acknowledge)

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

 也可以捆绑发送,只返回一个数字表示传送成功

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

 当三个包只成功接受两个,receiver可以改变窗口的大小为2,以后都进行两个包的传输,以获得更好的性能(捆绑发送多个包而只进行一次确认)

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

构建简单的网络_理解TCPIP的传输层_TCP与UDP区别

 总结:

1.传输层的目的是隐藏来自应用层的网络需求。

2.面向连接的传输提供可靠的传输,无连接的传输提供尽力传输。

3.UDP是工作在传输层的协议,为应用程序提供到网络层的访问,并且没有可靠性机制(如TCP)带来的额外开销。UDP是无连接,尽力传输的协议。

4.TCP是工作在传输层的协议,为应用程序提供到网络层的访问。TCP是面向连接的、提供错误检测、可靠的数据传输、全双工的工作模式、并提供数据恢复功能。

5.TCP/IP支持许多应用,包括FTP(支持双向的二进制和ASCII文件传输)、TFTP(传输配置文件和Csico IOS映像)和Telnet(提供远程访问其他计算机的功能)等。

6.在IP报头中使用协议号来标识它所携带的数据包的类型。

7.端口号用于映射第4层到应用程序。

8.流控可以避免发送主机造成接收主机缓冲区溢出以及网络性能降低等问题。

9.TCP提供数据分段的***和数据包接收的确认号。当一个分段被发送后,发送主机接收确认并发送下一个分段。

10.在发生拥塞或丢包时,TCP的窗口减少,使得传输速率下降,直到拥塞和数据丢失不再发生。TCP窗口大小是指发送方在得到确认前能够允许发出的数据量;固定窗口的窗口尺寸不会改变。

11.TCP滑动窗口尺寸可以动态改变,从而适应数据流的传输。

12.TCP通过TCP头部的序号和确认号提供对分段的排序。