计算机网络--传输层(四)


知识结构:

  1. 传输层服务
    1. 传输层功能
    2. 寻址与端口
    3. 无连接与面向连接
  2. UDP
    1. UDP数据报
    2. UDP校验
  3. TCP
    1. TCP段
    2. 连接管理
    3. 可靠传输
    4. 流量控制与拥塞控制

传输层:提供进程间的通信,端到端;复用和分用;差错检测;两种协议

端口的作用:传输层的端口,网络层的IP,数据链路层的MAC,都是为了唯一标识某些对象

套接字 = IP + 端口号

TCP

 

 

 l  源端口:标识发送该TCP报文段的应用进程

 

l  目的端口:标识接收该TCP报文段的应用进程

 

n  端口号占16 bit,范围0-65535

 

n  套接字 Socket:(IP地址: 端口号)

 

n  TCP连接::={socket1, socket2} = {(IP1: PORT1), (IP2, PORT2)}

 

l  序号

 

n  表示本报文段TCP数据的第一个字节的序号

 

n        4字节,序号范围[0, -1],可表示4GB数据

 

n  一条TCP连接的初始序号(SYN),初始序号随机产生

 

l  确认号

 

n  确认号是接收方对收到数据的确认

 

n  确认号=N,表示到序号N-1为止的所有数据都已正确收到,期望接收序号为N的数据

 

n  确认标志位ACK=1,确认号才有效

 

l  数据偏移

 

n  即指TCP首部长度

 

n  4 bit,并以4字节为单位

 

l  保留和控制位

 

n  SYN,连接建立

 

n  FIN,连接释放

 

n  ACK,确认包,确认号有效

 

n  RST,复位连接

 

n  PSH,无需等待缓存填满尽快交付给应用层,交互式通信,希望对方立即回复,telnet/rlogin

 

n  URG,紧急报文,紧急指针有效(Control+C)

 

l  窗口

 

n  指接收端的接收窗口大小,用来控制对方发送的数据量。也就是后面需要讲的滑动窗口的窗口大小。

 

n  由于TCP的头部窗口字段只有16bit,最多表示65535字节,为了表示更大的窗口,使用了可选的放大倍数。

 

n  Synoption带上放大的windows scale

 

l  检验和

 

n  16 bit,检查范围包括TCP报文段首部和数据载荷部分

 

n  在计算校验和时,要在TCP报文段的前面加上12字节的伪首部

 

l  紧急指针

 

n  紧急标志位URG=1时,紧急指针才有效

 

n  16 bit,以字节为单位,用来指明紧急数据的长度

 

l  选项

 

n  长度可变,最大40字节。TCP章节的最后会介绍几种常见选项字段

 

n  填充

 

n  由于选项的长度可变,因此使用填充来确保报文段首部总长度能被4整除

 

小结:

l  一个TCP连接需要四个元组来表示是同一个连接(src_ip, src_port, dst_ip, dst_port准确说是五元组,还有一个是协议。但因为这里只是说TCP协议,所以,这里只说四元组。

l  TCP首部的四个重要部分:

n  Sequence Number是包的序号,用来解决网络包乱序(reordering)问题。

n  Acknowledgement Number就是ACK,用于确认收到,用来解决不丢包的问题。

n  Window又叫Advertised-Window,也就是著名的滑动窗口(Sliding Window),用于解决流控的。

n  TCP Flag ,也就是包的类型,主要是用于操控TCP的状态机的。

l  TCP连接建立的目的

n  通信双方确认对方的存在 

n  双方确定自己的初始序列号,并通知对方

n  允许双方协商一些参数(最大报文段长度、窗口大小等) 

n  对传输实体资源进行分配

l  TCP连接建立的方式

 

n  采用客户端服务器方式(C/S),主动发起连接建立的应用进程叫做客户端,被动等待连接建立的叫服务器端。

 

 

l  粗实线----Client

l  粗虚线----Server

 

l  细线----异常

可靠传输:

  •       停止等待协议ARQ
  •       连续ARQ协议

 

 发送窗口根据接收方的接收窗口和网络的拥塞情况设置

接收窗口取决于接收方的应用、系统、硬件的限制,和自身处理能力有关

拥塞控制

拥塞控制作用于点到点的网络层

l  慢开始:指数增长

l  拥塞避免:线性增长

l  快重传:收到3个同样的确认就立刻重传,不等到超时

 

l  快恢复:cwnd不是从1重新开始

 

 

 

 接收端窗口rwnd,又称通知窗口(awnd),是接收端根据目前的接收缓存大小所许诺的最新窗口值,是来自接收端的流量控制。

拥塞窗口cwnd是发送端根据自己估计的网络阻塞程度而设置的窗口值,是来自发送端的流量控制。

 

UDP:

 

 

 

 

 

 

UDP

TCP

无连接

面向连接

支持一对一/一对多/多对多的交互通信

支持一对一

面向报文(无分段,大小要合适)

面向字节流

尽最大努力交付,不可靠

可靠交付

无拥塞控制(恒定速率,允许丢失数据,不允许太大时延,IP电话/实时视频会议)

有拥塞控制/流量控制

首部开销小,仅8个字节

首部最小20字节,最大60字节

 

 

 

l  细线----异常Ø  源端口:标识发送该TCP报文段的应用进程

Ø  目的端口:标识接收该TCP报文段的应用进程

Ø  端口号占16 bit,范围0-65535

Ø  套接字 Socket:(IP地址: 端口号)

Ø  TCP连接::={socket1, socket2} = {(IP1: PORT1), (IP2, PORT2)}

 

 

序号

Ø  表示本报文段TCP数据的第一个字节的序号

Ø      4字节,序号范围[0, -1],可表示4GB数据

Ø  一条TCP连接的初始序号(SYN),初始序号随机产生

 

确认号

Ø  确认号是接收方对收到数据的确认

Ø  确认号=N,表示到序号N-1为止的所有数据都已正确收到,期望接收序号为N的数据

确认标志位ACK=1,确认号才有效

 

Ø  数据偏移

ü  即指TCP首部长度

ü  4 bit,并以4字节为单位

 

Ø  保留和控制位

ü  SYN,连接建立

ü  FIN,连接释放

ü  ACK,确认包,确认号有效

ü  RST,复位连接

ü  PSH,无需等待缓存填满尽快交付给应用层,交互式通信,希望对方立即回复,telnet/rlogin

ü  URG,紧急报文,紧急指针有效(Control+C)

 

Ø  窗口

ü  指接收端的接收窗口大小,用来控制对方发送的数据量。也就是后面需要讲的滑动窗口的窗口大小。

ü  由于TCP的头部窗口字段只有16bit,最多表示65535字节,为了表示更大的窗口,使用了可选的放大倍数。

ü  Synoption带上放大的windows scale

 

Ø  检验和

ü  16 bit,检查范围包括TCP报文段首部和数据载荷部分

ü  在计算校验和时,要在TCP报文段的前面加上12字节的伪首部

 

Ø  紧急指针

ü  紧急标志位URG=1时,紧急指针才有效

ü  16 bit,以字节为单位,用来指明紧急数据的长度

Ø  选项

ü  长度可变,最大40字节。TCP章节的最后会介绍几种常见选项字段

ü  填充

ü  由于选项的长度可变,因此使用填充来确保报文段首部总长度能被4整除

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM