7. TCP可靠传输的实现

文章目录
1. 运输层概述
(1)、前情回顾
计算机网络体结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互连起来所面临的问题,实现了主机到主机的通信 。
(2)、为什么需要运输层?
但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程 。如何运行在不同的主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称端到端协议,因为运输层的作用范围是端到端 。
(3)、运输层的相关说明
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道 。
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP 。2. 运输层端口号、复用与分用
(1)、为什么需要端口号?
运行在计算机上的进程使用进程标识符PID来标志 。因特网上的计算机并不是使用统一的操作系统,不同的操作系统又使用了不同格式的进程标识符 。为了使运行不同操作系统的计算机的应用进程之间能够进行通信,就必须使用统一的方法对TCP/IP体系的应用进程进行标识 。
(2)、端口号简介
端口号使用16比特,取值范围0~65535 。端口号只有本地意义,即端口号只是为了标识本地计算机应用层中的各进程在因特网中,不同计算机中的相同端口号是没有任何联系的 。
分类
数值端口号: 0~1023,IANA把这些端口号指派给了TCP/IP体系中最重要的一些应用协议 。登记端口号:1024~49151,为没有熟知端口号的应用程序使用 。使用这类端口号必须在IANA按照规定的手续登记 。短暂端口号:49152~65535,留给客户端进程选择暂时使用 。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号 。通信结束后 。这个端口号可供其他客户进程使用 。
(3)、发送方的复用
应用进程的应用报文向下传递,有的被UDP协议封装成UDP数据报,有的被TCP协议封装成TCP报文段,然后再往下传输,被IP协议封装成IP数据报进行运输 。
(4)、接收方的分用
IP数据报被接收方接收进行IP分用,如果IP数据报的协议字段为17,则将IP数据报中的数据载荷部分的UDP数据报向上传递给运输层,如果IP数据报的协议字段为6,则将IP数据报中的数据载荷部分的UDP数据报向上传递给运输层 。
(5)、常见的协议
UDP(RIP:520,DNS:53,TFTP:69,SNMP:161,DHCP:67/68)TCP(SMTP:25,FTP:20/21,BGP:179,HTTP:80,HTTPS:443)
3. TCP(传输控制协议)与UDP(用户数据报协议)的对比 UDP支持一对一,一对多,多对一和多对多交互通信;TCP只能是一对一通信
UDP是无连接的(即发送方随时都可以发送数据报),TCP是面向连接的(在发送数据报之前必须建立连接,发送完毕后必须释放连接) 。
UDP是面向应用报文的,TCP是面向字节流的 。
UDP向上提供无连接不可靠传输服务(如果数据报出现误码或丢失,不进行任何处理);TCP向上提供面向连接可靠传输服务(发送方发送什么,接收方就接受到什么) 。
UDP首部开销小仅8字节,TCP首部最少20字节,最大60字节 。
4. 流量控制
【7. TCP可靠传输的实现】(1)、为什么需要流量控制?
一般来说,我们总是希望数据传输得更快一些 。但是如果发送方发送得过快,接收方就可能来不及接收,这就会造成数据的丢失 。
(2)、流量控制