本章重难点分析
1.理解传输层提供的基本服务。
2.理解复用与分解的基本概念以及典型传输层协议实现复用与分解的基本方法。
3.掌握UDP的特点以及UDP的数据报结构。
4.掌握可靠数据传输的基本原理、停-等协议、典型滑动窗口协议(GBN以及SR协议)。
5.理解TCP的段结构、掌握TCP连接建立与断开的过程、TCP序列号以及确认序列号、TCP可靠数据传输的机制。
6.理解拥塞控制基本原理与方法、掌握TCP拥塞控制方法。
传输层功能、传输层寻址
不可靠传输信道的表现,可靠数据传输原理
停-等协议(ARQ)与滑动窗口协议(GBN、SR)
用户数据报协议(UDP)
TCP特点及TCP连接管理(三次握手连接、四次挥手断开连接)
TCP可靠数据传输
TCP拥塞控制(慢启动、拥塞避免、快速重传、快速恢复)
第一节:传输层的基本服务
知识点1 传输层功能
1、传输层的核心任务:
应用进程之间提供端到端的逻辑通信服务。
比如:你和你的朋友邮件通信、聊微信、聊QQ。
2、传输层的功能
1)对应用层报文进行分段和重组 (了解)
2)面向应用层实现复用与分解(第2节)
3)实现端到端的流量控制(第5节)
4)拥塞控制(第5节)
5)传输层寻址(后续内容)
6)对报文进行差错检测 (第3节提到,第五章详解)
7)实现进程间的端到端可靠数据传输控制(第3节)
3、并不是所有的传输层协议都要实现所有的功能,大部分传输层协议只实现其中一部分的功能。
例如:internet的传输层(TCP、UDP)
4、从传输层的角度看,通信的真正端点不是主机,而是在主机中运行的应用进程。端到端之间的通信是应用进程之间的通信。
例如:一个主机上,用户在使用浏览器浏览网页的同时、也在发邮件。
怎么确保各客户进程不出差错?复用与分解!(第二节)
知识点2 传输层寻址与端口
1、单个计算机中,不同应用进程用进程标识符(进程ID)来区分。
传输层就是为了支持不同的主机,不同操作系统上的应用程序之间的通信,必须要使用统一的寻址方法对应用进程进行标识。
TCP/IP网络体系结构的解决方法:
在传输层使用协议端口号,通常简称为端口(port)。
在全网范围内利用“IP 地址+端口号”唯一标识一个通信端点。
2、传输层端口号为16位整数,可以编号65536个(2的16次方)
3、常用的端口号
知识点3 无连接服务与面向连接服务
第二节:传输层的复用与分解
知识点1 复用与分解的基本概念
1、多路复用与多路分解:
支持众多应用进程共用同一传输层协议,能准确的将接收的数据交付给不同的应用进程,称为传输层的多路复用与多路分解。
2、多路复用:
在源主机,传输层协议从不同的套接字收集应用进程发送的数据块,并为每个数据块封装上首部信息(包括用于分解的信息)构成报文段,然后将报文段传递给网络层。
同一主机,多个进程同时利用同一个传输层协议。
3、多路分解:
在目的主机,传输层协议读取报文段中的字段,标识出接收套接字,进而通过该套接字,将传输层的报文段中的数据交付给正确的套接字。
对接收到报文段(封装了不同应用进程的数据)分解,交付给正确的进程。
实现复用与分解的关键:传输层协议能够唯一识别一个套接字。
知识点2 无连接的多路复用与多路分解
Internet传输层提供无连接服务的传输层协议是用户数据报协议(User Datagram Protocol, UDP) 。
1、为UDP套接字分配端口号的两种方法:
1)创建一个UDP套接字时,传输层自动为该套接字分配一个端口号(1024-65535之间),该端口号当前未被该主机中任何其他UDP套接字使用。
2)在创建一个UDP套接字后,通过调用bind()函数为该套接字绑定一个特定的端口号。
2、UDP套接字二元组:
知识点3 面向连接的多路复用与多路分解
1、传输控制协议 (Transmission Control Protocol,TCP) :Internet提供面向连接服务的传输层协议。
TCP套接字四元组:
第三节:停-等协议与滑动窗口协议
知识点1 可靠数据传输基本原理
1、internet传输层的两个协议:TCP 、UDP。
TCP:可靠数据传输服务。将报文段交给IP传送,而IP只能提供“尽力”服务,也就是不可靠的服务。必须采取措施才能使其在基于不可靠的网络层上实现可靠传输。
2、不可靠传输信道的不可靠性主要表现在以下几方面:
1)比特差错:
1100——0110
2)乱序(先发的数据包后到达,后发的数据包先到达):
发送:1、2、3、4、5
接收:2、1、5、4、3
3)数据丢失(中途丢失,不能达到目的地):
发送:1、2、3、4、5
接收:1、3、4、5
3、基于不可靠信道实现可靠数据传输采取的措施(5种):
1)差错检测:
利用差错编码实现数据包传输过程中的比特差错检测(甚至纠正)。(第五章详细介绍)
2)确认:
接收方向发送方反馈接收状态。
ACK(肯定确认);NAK(否定确认)
肯定确认:Positive Acknowledgement,正确接收数据。
否定确认:Negative Acknowledgement,没有正确接收数据。
3)重传:
发送方重新发送接收方没有正确接收的数据。
发送方接收到NAK,表示接收方没有正确接收数据,则将出错的数据重新向接收方发送。
4)序号:
确保数据按序提交。
对数据包进行编号。可以避免由于重传引起的重复数据被提交的问题。
5)计时器:
解决数据丢失问题。
发送方发送数据后启动计时器,如超时还未收到接收方的确认。主动重发数据包,从而纠正数据丢失问题。
4、有效、合理地综合应用上述措施,可以设计实现可靠数据传输的协议:
例如:停-等协议与滑动窗口协议。
知识点2 停-等协议
1、自动请求重传(ARQ)
差错检测、确认、重传、序号、计时器
2、停-等协议的特点:
每发送一个报文段后就停下来等待接收方的确认。
3、停-等协议的工作过程:
1)发送方发送经过差错编码和编号的报文段,等待接收方的确认。
2)接收方如果差错检测无误且序号正确,则接收报文段,并向发送方发送ACK,否则丢弃报文段,并向发送方发送NAK。
3)发送方如果收到ACK,则继续发送后续报文段,否则重发刚刚发送的报文段。
4、几点细节讨论
1)差错控制:报文段、ACK、NAK数据包均需要进程差错编码以便进行差错控制。
2)序列号:只需要1位就够了(区分是新发的报文还是重传的报文)。
3)ACK和NAK:利用重复ACK代替NAK。(对上一个正确接收的报文段再次进行确认)
4)ACK和NAK差错:有错推断。
5、只使用ACK(不使用NAK)的停-等协议示例。
知识点3 滑动窗口协议
停-等协议的不足:性能差、信道利用率低。
1、流水线协议(管道协议):
允许发送方在没有收到确认前连续发送多个分组。从发送方向接收方传送的系列分组可以看成是填充到一条流水线(管道)中。
最典型的流水线协议:滑动窗口协议。
2、流水线协议实现可靠数据传输,做如下改进:
1)增加分组序号(多位)。
2)发送方和接收方可以缓存多个分组。
3、滑动窗口协议的工作特点:
发送方依序按流水线方式发送分组,接收方接收分组,按序向上提交。
发送方对于已发送未收到确认的分组,必须缓存,必要时重发。
发送方可以连续发送多个未收到确认的分组(取决于缓存能力)。
接收方对未按序到达的分组,必须缓存或者丢弃并确认(取决于缓存能力)。
4、滑动窗口协议的窗口:
发送窗口(Ws):发送方可以发送未被确认分组的最大数量;
接收窗口(Wr):接收方可以缓存的正确到达的分组的最大数量;
5、 滑动窗口协议的示例
6、滑动窗口协议,根据窗口的大小,两种代表性的滑动窗口协议:
1)回退N步协议:
GBN协议(Go-Back-N)
2)选择重传协议:
SR协议(Selective Repeat)
1)GBN协议
发送窗口WS≥1 ,接收窗口Wr=1。
发送端缓存能力高,可以在没有得到确认前发送多个分组。
接收端缓存能力很低,只能接收1个按序到达的分组,不能缓存未
按序到达的分组。
GBN发送方响应的3类事件:
1、上层调:窗口未满,用“下一个可以序号”编号并发送分组,否则拒绝发送新的数据。
2、收到1个ACKn。GBN采用累积确认方式,即发送方收到ACKn时,表明接收方正确接收序号n以及序号小于n的所有分组。
3、计时器超时。发送方只使用一个计时器,对“基序号”指向的分组计时。如超时,重发当前发送窗口中所有已发送但未确认的分组,即“回退N步”,因为接收方Wr=1,无缓存能力。
GBN的接收方操作:
Wr=1,只能接收“基序号”所指向的分组。如接收方正确接收到序号为基序号,则发送一个ACKn,接收窗口滑动到序号n+1的位置。接收到的序号不是n或者分组差错等,则发送ACKn-1。
GBN协议发送窗口示例:
发送方如果收到6-10号的确认,则发送窗口便可滑动;如果计时器超时,重发6-10号分组,共5个分组。
GBN协议总结:
在差错较低的情况下,信道利用率会得到很大提高。如果信道误码率或者丢包率较高,导致大量重发,信道传输能力降低。
GBN适合低误码率、低丢包率、带宽高时延积信道,且对接收方缓存能力要求低。
2)SR协议
选择重传(SR)通过让发送方仅重传那些未被接收确认(出错或者丢失)的分组,避免了不必要的重传。
发送窗口WS>1,接收窗口Wr>1。很多SR协议WS 、Wr大小相等。
发送端缓存能力高。
接收端缓存能力高。
SR发送方响应事件:
1、上层调用,请求发送数据:检查“下一个可用序号”,位于发送窗口内则发送,否则缓存或者返回给上层。
2、计时器超时。发送方对每个分组进行计时,超时则重发该分组。
3、收到ACKn。SR协议对n进行判断。如n在当前窗口内,则标记已接收(刚好是基序号,窗口向右滑动到最小未被确认序号处);其他情形不做响应。
SR接收方主要操作:
1、正确接收到序号在接收窗口范围内的分组PTKn,发送ACKn,窗口滑动。
2、正确接收到序号在接收窗口左侧的分组PTKn,这些分组在之前已经正确接收并提交,丢弃PTKn,并发送ACKn,窗口不滑动。
3、其他情况,直接丢弃分组,不做任何响应。
第四节:用户数据报协议(UDP)
知识点1 UDP基本知识
1、用户数据协议(User Datagram Protocol,UDP):
Internet传输层协议,提供无连接、不可靠、数据报尽力传输服务。
通信进程间没有握手过程;
UDP没有拥塞控制机制;
实现了复用与分解以及简单的差错检测;
DNS是一个使用UDP的应用层协议的例子。
2、许多应用选择UDP的原因(UDP特点):
1)应用进程容易控制发送什么数据以及何时发送。可能会出现分组的丢失和重复。
2)无需建立连接。DNS运行在UDP上的主要原因。
3)无连接状态。UDP无连接,无需维护连接状态。
4)首部开销小,只有8个字节。TCP报文段需要20字节的首部开销。
知识点2 UDP数据报结构
1、UDP首部四个字段:每个字段长度都是2个字节,共8个字节。
源端口号和目的端口号:UDP实现复用和分解。
长度:指示UDP报文段中的字节数(首部和数据的总和)。
校验和:接收方使用来检测数据报是否出现差错
知识点3 UDP校验和
1、UDP校验和:
提供差错检测功能。
UDP的校验和用于检测UDP报文段从源到目的地传送过程中,其中的数据是否发生了改变。
2、UDP校验和计算规则:
1)所有参与运算的内容按16位对齐求和。
2)求和过程中遇到溢出(即进位)都被回卷(即进位与和的最低位再相加)。
3)最后得到的和取反码,就是UDP的校验和,填入UDP数据报的校验和字段。
3、UDP校验和计算的内容包括3部分:
UDP伪首部、UDP首部、应用数据。
源IP地址、目的IP地址、协议号:对应封装UDP数据报的IP分组的字段。
4、UDP计算校验和示例:
数值1:0110 0110 0110 0000
数值2:0101 0101 0101 0101
数值3:1000 1111 0000 1100
1)三个数值之和
2)溢出回卷
3)取反码
5、UDP校验和总结:
UDP提供差错检测,但是它没有差错恢复能力,只是简单地丢弃差错报文段,或者将受损的报文段交给应用程序并给出警告,由应用程序处理出错报文。
第五节:传输控制协议(TCP)
1、传输控制协议(Transmission Control Protocol ,TCP):
Internet传输层协议。提供面向连接、可靠、有序、字节流 传输服务。
2、TCP特点:
1)应用进程先建立连接,该连接只供通信双方(两个端点)使用。
2)传输数据:无差错,不丢失,不重复,按序到达。
3)面向字节流:字节序列。应用程序和TCP的交互是一个个数据块,TCP把他们看做是无结构字节流。
4)全双工通信:通信双方进程在任何时候都能发送和接收数据。
3、最大报文段长度(Maximum Segment Size , MSS):
报文段中封装的应用层数据的最大长度。
知识点1 TCP报文段结构
1、TCP报文段由首部字段和一个数据字段组成。(将文件划分成长度为MSS的块,最后一块除外),一个块封装成一个TCP报文段。
1)源端口号字段,目的端口号字段:
占16位。复用和分解上层应用的数据。
2)序号字段、确认序号字段:占32位。
序号字段:TCP的序号是对每个应用层数据的每个字节进行编号;
确认序号字段:期望从对方接收数据的字节序号,即该序号对应的字节尚未收到;
TCP采用累计确认机制。
3)首部长度字段:占4位。指出TCP段的首部长度,以4字节为计算单位。
该字段值为5时,表示TCP段的首部长度时20字节。
4)保留字段:占6位。保留为今后使用,目前值为0
5)URG、ACK、PSH、RST、SYN、FIN各占1位。为标志位字段,各占1位,
共占6位。取值为0或1;
紧急URG=1,紧急指针字段有效,优先传送。
确认ACK=1,确认序号字段有效;ACK=0时,确认序号字段无效。
推送PSH=1,尽快将报文段中的数据交付接收应用进程,不要等缓存满了再交付。
复位RST=1,TCP连接出现严重差错,释放连接,再重新建立TCP连接。
同步SYN=1,该TCP报文段是一个建立新连接请求控制段或者同意建立新连接的确认段。
终止FIN=1,TCP报文段的发送端数据已经发送完毕,请求释放连接。
6)接收窗口字段:占16位。向对方通告我方接收窗口的大小。实现TCP的流量控制。
7)校验和字段:占16位。计算方法与UDP校验和的计算方法相同。
8)紧急指针字段:占16位。
URG=1时,才有效。指出在本TCP报文段中紧急数据共有多少个字节。
9)选项字段长度可变,最短为0字节,最长为40字节。
10)填充字段,取值全为0,目的是为了整个首部长度是4字节的整倍数。
知识点2 TCP连接管理
1、TCP连接管理:
连接建立与连接拆除。
三次握手!
2、主机A与主机B建立TCP连接
(1)主机 A 的 TCP 向主机 B 发出连接请求 SYN 报文段(第一次握手)SYN=1;seq=x;
(2)一旦包含 SYN 报文段的 IP 数据报到达主机 B,SYN 报文段被从数据报中提取出来,主机 B 的 TCP 接到连接请求段后,如同意建立连接,则发回确认的SYNACK 报文段(第二次握手)。
SYN=1,ACK=1;ack_seq=x+1;seq=y;
(3)主机 A 收到 SYNACK 报文段后,给该连接分配缓存和变量,并向主机 B 发确认报文段(第三次握手),该报文段是对主机 B 的同意报文段进行确认。
SYN=0,ACK=1;seq=x+1;ack_seq=y+1;
3、主机A与主机B断开TCP连接(4次挥手)
(1)主机 A 向主机B发送释放连接报文段。FIN=1,seq=u。
(2)主机B向主机A发送确认段ACK=1,确认序号ack_seq=u+1,序号seq=v。
(3)主机B向主机A发送释放连接报文段FIN=1,seq=w,ack_seq=u+1。
(4)主机A向主机B发送确认段ACK=1,seq=u+1,ack_seq=w+1。
4、以客户机上的一个应用进程与服务器上的一个应用进程建立一条TCP连接为例。
三次握手!
1)第一次握手:
客户机向服务器发送连接请求段:(SYN=1,seq=x)
SYN=1:建立连接请求控制段
seq=x(seq表示序号的意思):表示传输的报文段的第1个数据字节的序列号是x,此序列号代表整个报文段的序号。
主机A进入SYN_SEND(同步发送)
2)第二次握手:
服务器发回确认报文段:(SYN=1,ACK=1,seq=y, ack_seq=x+1)
SYN=1:同意建立新连接的确认段
ACK=1:确认序号字段有效
seq=y:服务器告诉客户机确认报文段的序列号是y。
ack_seq=x+1:表示已经收到了序列号为x的报文段,准备接收序列号为x+1的报文段。
主机B由LISTEN进入SYN_RCVD(同步收到)
3)第三次握手:
客户机对服务器的同意连接报文段进行确认:(ACK=1,seq=x+1,ack_seq=y+1)
ACK=1:确认序号字段有效
seq=x+1:客户机此次的报文段的序列号是x+1。
ack_seq=y+1:客户机期望接收服务器序列号为y+1的报文段。
当客户机发送ACK时,进入ESTABLISHED状态;
当服务器收到ACK后,也进入ESTABLISHED状态;
第三次握手可携带数据。
为什么需要三次握手?
第一次握手:客户发送请求,此时服务器知道客户能发。
第二次握手:服务器发送确认,此时客户知道服务器能发能收。
第三次握手:客户发送确认,此时服务器知道客户能收。
3、连接拆除(4次挥手)
1)第一次挥手:
客户向服务器发送释放连接报文段:(FIN=1,seq=u)
FIN=1:发送端数据发送完毕,请求释放连接。
seq=u:传输的第一个数据字节的序号是u
客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待1状态)
2)第二次挥手:
服务器向客户发送确认段:(ACK=1,seq=v,ack_seq=u+1)
ACK=1:确认字号段有效。
ack_seq=u+1:服务器期望接收客户数据序号为u+1。
seq=v:服务器传输的数据序号是v。
服务器状态由ESTABLISHED进入CLOSE_WAIT(关闭等待)
客户端收到ACK段后,由FIN_WAIT_1进入FIN_WAIT_2
3)第三次挥手:
服务器向客户发送释放连接报文段:(FIN=1,ACK=1,seq=v+1,ack_seq=u+1)
FIN=1:请求释放连接
ACK=1:确认字号段有效。
ack_seq=u+1:表示服务器期望接收客户数据序号为u+1。
seq=v+1:表示自己传输的第一个数据字节的序号是v+1。
服务器状态由CLOSE_WAIT进入LAST_ACK(最后确认状态)
4)第四次挥手:
客户向服务器发送确认段:(ACK=1,seq=u+1,ack_seq= v+1+1 )
ACK=1:确认字号段有效。
ack_seq=v+1+1:表示客户期望接收服务器数据序号为v+1+1。
seq=u+1:表示客户传输的数据的序号是u+1。
客户端状态由FIN_WAIT_2进入TIME_WAIT,等待2MSL时间,进入CLOSED状态。
服务器在收到最后一次ACK后,由LAST_ACK进入CLOSED。
知识点3 TCP可靠数据传输
1、可靠数据传输
保一个进程从缓冲区读出的字节流与发送方发出的字节流是完全一样的。无差错,无缺失,无冗余,无乱序等。
2、TCP实现可靠数据传输服务的工作机制(6点):
1)应用层数据被分割成TCP认为最适合发送的数据块(MSS),封装成TCP段,传递给IP。
最大报文段长度(Maximum Segment Size,MSS):报文段中封装的应用层数据的最大长度。
2)计时器,发出一个段启动一个计时器,解决数据丢失问题。
3)TCP首部设有校验和字段,检测数据在传输过程中是否发生错误。
4)序号,发送方对发送的数据包进行编号,确保数据按序提交给接收方。
5)接收方根据序号丢弃重复的报文段。
6)TCP能够提供流量控制。分配一定大小的接收缓冲空间。
3、TCP发送方与发送和重传有关的三个事件
1)从上层应用程序接收数据。发送窗口未满则发送,否则缓存数据,暂不发送。
2)定时器超时。重传超时的报文段。RTT是重要参考值。
3)收到ACK。
4、TCP发送数据、确认以及重传的例子。
5、TCP接收方生成ACK的4种策略
1)具有所期望序号的报文段按序到达,所有在期望序号及以前的报文段都已被确认。TCP延迟500ms发送ACK。
例如:接收方收到1、2,且返回对1、2的确认。这时,3来了。
则接收方等待500ms,再返回ACK4。
2)具有所期望序号的报文段按序到达、且另一个按序报文段在等待ACK传输,TCP接收方立即发送单个累计ACK,确认以上两个按序到达报文段。
例如:接收方刚刚收到3,正准备返回ACK4。此时4来了。
则接收方返回ACK5。
3)拥有序号大于期望序号的失序报文段到达,TCP接收方立即发送重复
ACK,指示下一个期望接收字节的序号。
例如:接收方返回ACK5。但是6到了。
则接收方返回三次重复的ACK5,表示期望收到序号为5的报文段。
4)收到一个报文段,部分或完全填充接收数据间隔(缺失)。
例如:接收方收到1、2,且返回对1、2的确认。
后来又收到了4、5。说明报文段3缺失,则接收方返回重复的ACK3。
如果3来了。则接收方返回ACK6,累积确认。
6、TCP快速重传示例
每接收到一个失序的报文后立即发出重复确认以便更早通知发送端有丢包情况。
知识点4 TCP流量控制
1、流量控制:
协调发送方与接收方的数据发送与接收速度。
避免发送方发送数据太快,超出接收方的数据接收能力和处理能力。
TCP实现流量控制也是利用窗口协议,但不是简单的滑动窗口协议。
2、实现机制
建立连接,双方固定大小的缓冲空间。
接收端通过接收窗口字段(16位),向对方通告接收窗口大小(剩余空间)。
发送端控制发送的数据量不超过最近一次接收端通告的接收窗口大小。
知识点5 TCP拥塞控制
1、拥塞的概念
太多的主机以太快的速度向网络中发送太多的数据,超出了网络处理能力,导致大量数据分组拥挤在中间设备队列中等待转发,网络性能显著下降的现象。
2、拥塞的后果
1)数据分组通过网络的时间显著增加
2)队列满导致大量分组被丢弃
3、拥塞控制
通过合理调度、规范、调整向网络中发送数据的主机数量、发送速率、数据量,以避免拥塞或消除已发生的拥塞。
4、TCP拥塞控制的算法
窗口调整的基本策略 (Additive Increase,Multiplicative Decrease ,AIMD):
网络未发生拥塞时,逐渐“加性”增大窗口。
网络拥塞时“乘性”减小窗口。
TCP拥塞控制的算法
1)慢启动
建立连接时,使用慢启动拥塞控制算法调整拥塞窗口。
RTT:发送端发出一个报文段到接收这个报文段的确认单时间间隔。
每经过1个RTT时间,拥塞窗口增加。不是跳跃式,而是连续式增长,每次收到一个ACK,就增加一个MSS。
2)拥塞避免
为了防止拥塞窗口增长而引起的网络拥塞。设置一个拥塞窗口阈值。
当拥塞窗口大于等于阈值时,每经过1个RTT,拥塞窗口的值加1。
当前拥塞窗口中所有报文段全部发送并且接收并成功确认,拥塞窗口的值加1。“加性增加”。
假设阈值是16MSS。
当发生计时器超时(网络拥塞),怎么解决?
当前拥塞窗口为24MSS,当前阈值为16MSS。
新的阈值:为当前拥塞窗口的一半 24MSS÷2=12MSS
新的拥塞窗口:直接调整为1MSS。
调整好新的阈值和新的拥塞窗口后,重新执行慢启动算法。“乘性减小”。
3)快速重传
接收端收到3次重复确认,则推断被重复确认的报文段已经丢失,于是立即发送被重复确认的报文段。
4)快速恢复算法
当发生3次重复确认时,网络拥塞程度不是很严重。
阈值和拥塞窗口的调整方法:不再重新从慢启动阶段开始,而是直接从新的阈值开始,直接进入拥塞避免阶段。
快速恢复配合快速重传,具体做法:
发生3次重复确认时,当前拥塞窗口为24MSS,当前阈值为16MSS。
新的阈值:为当前拥塞窗口的一半24MSS÷2=12MSS
新的拥塞窗口:调整为新的阈值,即12MSS
调整好新的阈值和新的拥塞窗口后,使用拥塞避免算法增加拥塞 窗口大小。
讲解归纳与举例:
本章小结:
1、传输层功能、传输层寻址(“IP 地址+端口号”)
1)对应用层报文进行分段和重组
2)面向应用层实现复用与分解(第2节)
3)实现端到端的流量控制(第5节)
4)拥塞控制(第5节)
5)传输层寻址
6)对报文进行差错检测
7)实现进程间的端到端可靠数据传输控制
2、可靠数据传输的基本原理
基于不可靠信道实现可靠数据传输采取的措施(5种):
1)差错检测
2)确认
3)重传
4)序号
5)计时器
3、停-等协议与滑动窗口协议
4、用户数据报协议(UDP)
Internet传输层协议,提供无连接、不可靠、数据报尽力传输服务。
5、TCP特点及TCP连接管理
Internet传输层协议。提供面向连接、可靠、有序、字节流 传输服务。
6、TCP可靠数据传输
1)应用层数据被分割成TCP认为最适合发送的数据块(MSS),封装成TCP段,传递给IP。
2)计时器,发出一个段启动一个计时器,解决数据丢失问题。
3)TCP首部设有校验和字段,检测数据在传输过程中是否发生错误。
4)序号,发送方对发送的数据包进行编号,确保数据按序提交给接收方。
5)接收方根据序号丢弃重复的报文段。
6)TCP能够提供流量控制。分配一定大小的接收缓冲空间。
7、TCP拥塞控制