运输层

运输层

进程之间的通信

1. 概述:通过网络层可以把IP数据报传输到相应主机上,但实际上,端到端的通信是进程与进程之间的通信。还需要将主机中的IP数据报传输到进程中。总而言之,网络层为主机提供逻辑通信,运输层为进程之间提供逻辑通信。 2. 运输层还要对收到的报文进行差错检测。 3. 面向连接的TCP协议,相当于一条全双工的可靠信道。不提供广播或多播 4. 无连接的UDP协议。不需要建立连接,不需要回复。 5. 运输层的端口:运输层的复用和分用功能依赖端口来完,端口号只具有本地意义,只是为了标识本计算机应用层的各进程。 服务器端使用的端口号:熟知端口(共1024个,0到1023),登记端口 客户端使用的端口,又叫做短暂端口。

UDP协议

1. UDP 只在 IP 的数据报服务之上增加了很少一点功能:分用和复用,差错检测。 2. UDP 是无连接的,UDP 使用尽最大努力交付, UDP 是面向报文的, UDP 没有拥塞控制,UDP 支持一对一、一对多、多对一和多对多的交互通信,UDP 的首部开销小,只有 8 个字节。 3. UDP首部格式:源端口,目的端口,长度,检验和。UDP的检验和是把首部和数据都一起检验。在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。检测了UDP数据报的源端口、目的端口,数据部分,IP数据报的源地址和目的地址。

TCP协议

1. TCP连接的叫套接字(IP地址:端口号),每一条TCP连接唯一的被通信的两个套接字所确定。同一个IP可以有多个TCP连接,同一个端口也是一样。 2. 连接的三次握手:先发送 SYN=1,SEQ=x,接收到 SYN=1,ACK=1,ack=x+1,SEQ=y,再次发送ACK=1,ack=y+1,seq=x+1。SYN为同步位。 3. TCP释放,4次握手:FIN=1,seq=u,;ACK=1,seq=y,ack=u+1(此时,从A到B的连接就关闭了,只能从B发送到A了),FIN=1,ACK=1,ack=u+1,seq=w,(B);ACK=1,ack=w+1,seq=u+1. A 必须等待2MSL(最长报文段寿命)的时间 , 第一为了保证 A 发送的最后一个 ACK 报文段能够到达 B,第二,防止 “已失效的连接请求报文段”出现在本连接中。 4. TCP格式:TCP 报文段首部的前 20 个字节是固定的,因此首部的最小长度是20.TCP首部的最大长度是60字节。
源端口和目的端口字段——各占 2 字节。端口是运输层与应用层 的服务接口。运输层的复用和分用功能都要通过端口才能实现。
序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
确认号字段:希望对方下一个报文段的数据的第一个字节序号。
若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到。
数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。
紧急 URG —— 当 URG = 1 时,表明紧急指针字段有效。
确认 ACK —— 只有当 ACK = 1 时确认号字段才有效
推送 PSH (PuSH) —— 接收方 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
复位 RST
同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文。 在连接建立时用来同步序号。
终止 FIN (FINish) —— 用来释放一个连接
窗口字段 —— 占 2 字节,用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。窗口字段明确指出了现在允许对方发送的数据量。
检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。伪首部格式与UDP的一样,但应把第4个字段的17改为6。
MSS (Maximum Segment Size)是 TCP 报文段中的数据字段的最大长度,TCP报文长度是数据报+首部长度。
选项字段 —— 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS MSS 与接收窗口值没有关系。
因此,MSS 应尽可能大些,只要在 IP 层传输时不需要再分片就行。

5. 停止等待协议:就是每发送完一个分组就停止发送,等待对方的确认。收到确认后再发送。 超时重传:设定一个时间,如果在规定时间内,没有收到ACK,就重新传输,所以需要保留一个副本。
确认丢失:B丢弃M1后,什么也不做。A 在超时计时器到期后就要重传 M1
确认重复:A 会收到重复的确认,B 仍然会收到重复的 M1
自动重传请求 ARQ: 表明重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组
  1. 信道利用率;
    停止等待协议的优点是简单,缺点是信道利用率太低。

    流水线传输就是发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。

  2. 连续 ARQ 协议
    发送方维持的发送窗口,它的意义是:位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。这样,信道利用率就提高了.

    连续 ARQ 协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
    Go-back-N(回退N):需要回退回来,重发已经发送过的N个分组。
    发送窗口的最大值:发送窗口 W T &lt; 2 n − 1 WT &lt; 2^n - 1 WT<2n1时,连续 ARQ 协议才能正确运行.
    当n=3时,发送窗口的最大值是 7 而不是 8。
    接收窗口的尺寸超过 2 n / 2 2^n/2 2n/2造成帧的重叠
    必须满足 W T + W R &lt; = 2 n WT + WR &lt;= 2^n WT+WR<=2n 且 WR <= WT, WR为接收窗口,WT为发送窗口。
    小窗口ARQ:发送方在发送完 n 帧后需等待对第1帧的确认后才能再发送新的帧。
    n*Td/(Td+RTT+Ta).
    nTD >=(TD + RTT + TA),利用率=1.

  3. 滑动窗口协议
    滑动窗口协议是停等协议和连续ARQ协议的折中,允许发送方连续发送多个分组而不需要等待应答,一次连续发送未经确认的分组的个数是有限的,发送端和接收端分别设定发送窗口和接收窗口
    停止等待协议的WT =1,连续ARQ协议的WT非常大。
    只有落到接收窗口的分组才是可以接收的。
    在连续 ARQ 协议中,接收窗口的大小 WR=1
    TCP 的滑动窗口是以字节为单位的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值