Chapter3
2017-01-07 16:26:08 0 举报
AI智能生成
Chapter3是故事的转折点,主角开始面对前所未有的挑战。他的生活发生了剧变,从一个平静的小镇青年变成了一个必须拯救世界的英雄。他的决定和行动不仅影响了他自己,也改变了他周围人的命运。这个章节充满了紧张和冲突,但也充满了希望和勇气。主角的成长和转变让读者对他充满了期待,同时也对接下来的故事充满了好奇。这一章的结尾留下了悬念,让人迫不及待地想要翻开下一章,看看主角将如何面对接下来的挑战。
作者其他创作
大纲/内容
Multiplexing & Demultiplexing
Port Number
16bit
类型
熟知端口号
0~1023
登记端口号
1024~49151
客户(短暂)端口号
49152~65535
Demultiplexing
步骤
host receives IP Datagrams
host use IP Address & Port Number direct segment to approciate socket
conectionless
UDP socket
dest IP address
dest port number
connetion-oriented
TCP socket
src IP address
src port number
dest IP address
dest port number
web server
have different socket for each connecting client
non-persistent:different socket for each request
principles of reliable data transfer
reliable channel
no data bits are corrupted
no data are lost
all data are delivered in order in which they were sent
不可靠信道的特点决定了可靠数据传输协议的复杂性
Automatic Repeat reQuest (ARQ) protocol
error detection : checksum
lost packet
Acknowlegement (ACK)
Timeout
Retransmit
Stop-and-wait
发送一个分组,等待接收方确认后,再发送下一个
处理错误分组
Negative Acknowlegement (NAK)
处理分组丢失
Timeout
定时器
处理重复分组
序列号
U(utilization) = (L/R) / (RTT + L/R)
Pipelined
Go-back-N
sender
传送N个分组
为最早的分组开启一个计时器
receiver
发送累计确认
缺点
重传时必须把已经正确传送的分组进行重传,降低传输速率
Selective Repeat
sender
传送N个分组
为每一个未确认分组维护一个计时器
receiver
为每一个分组发送ACK
提高协议性能的措施
捎带确认
累计确认
Sliding-window protocol
发送窗口
没有收到确认的情况下,能够连续发送的分组的序号表
大小 = 上界 - 下界
序号大于上界的不允许发送
下界表示未得到确认的分组的最小序号
大小表示没收到确认的情况下,可以发送的最大数量
每接受到一个确认,就向前滑动一次
接收窗口
上界:允许接收的序号最大的分组
下界:希望接收的下一个分组
序号=下界的分组被正确接收,上界&下界+1,接收窗口向前滑动
ARQ协议窗口大小
principles of congestion control
拥塞
对资源需求的总和 > 可用资源
资源
链路容量
交换节点中的缓存
处理机速度
产生原因
低带宽线路
多个输入对应一个输出
节点缓存容量太小
结点处理机速度不高
表现
lost packet
buffer overflow at routers
long delay
queueing in router buffers
拥塞控制的策略
决不只针对某个因素进行改善
网络性能曲线
TCP congestion control
congestion window : cwnd
发送方维持
发送窗口 <= 拥塞窗口
LastByteSent - LastByteACKed <= cwnd
sending rate = cwnd / RTT
4种算法
Slow Start
初始: cwnd = 1MSS
增大cwnd
收到1个ACK,cwnd增加1MSS
经过一个传输轮次,cwnd加倍
乘法减小
出现超时,将慢开始门限ssthresh设置为当前拥塞窗口的一半
并将cwnd重置为1,重新执行慢开始算法
慢开始门限ssthresh
cwnd < ssthresh 使用慢开始
cwnd > ssthresh 使用拥塞避免
cwnd = ssthresh 两种均可
Congestion Avoidance
缓慢增大cwnd
经过一个RTT,cwnd加1
乘法减小
Fast Retransmit
接收方每次收到一个失序的报文段,发送重复确认
发送方接收到3个连续的重复确认,立即重传
Fast Recovery
收到3个连续的重复确认,“乘法减小”
ssthresh设置为当前拥塞窗口的一半
cwnd = 新的ssthresh
执行拥塞避免算法
Transport-layer service
protocol
send side
Transport-layer Multiplexing
Segment
receiver side
Transport-layer Demultiplexing
logical communication
end-to-end communication
relies on and enhances Network-layer service
vs Network-layer
Transport
between processes
Network
between hosts
protocal types
TCP
UDP
UDP
特点
best effort
segments may be lost/out of order
connectionless
no handshaking
each segment handle independently
why?
no connection establishment
simple:no connection state
small segment header
no congestion control
segment format
source port 16bit
dst port 16bit
length 16bit
checksum 16bit
Checksum
goal
detect error in transmitted segment
sender
treat segment as sequence of 16-bit integer
checksum = addition of segment contents
先进行二进制反码求和运算,再按位取反
puts checksum value into UDP checksum field
receiver
computer checksum of received segment
check if computed checksum equals checksum field value
NO
error detected
YES
no error detected
still may have error
pseudoheader
包括
protocol number
src IP address
dest IP address
UDP length
用途
验证message是在正确的端点间传送
计算校验和时,计算的是伪首部+UDP用户数据报
TCP
特点
point-to-point
reliable,in-order
pipelined
send & receive buffer
full duplex data
bi-directional data flow in same connection
MSS: maxium segment size
数据字段的最大长度
connection-oriented
flow controlled
其他特性
虚连接
根据窗口值与网络拥塞程度决定传送报文段包含多少字节
TCP segment structrue
结构
序号
本报文段的数据的第一个字节的序号
确认号
期望对方收到的下一个报文段的数据的第一个字节的序号
数据偏移
首部长度
UGR
置1表示紧急数据
ACK
ACK=1时确认号有效
PSH
PSH=1时应尽快交付
RST
RST=1说明出现严重差错,需重建连接
SYN
SYN=1表明是连接请求或连接接受报文
FIN
FIN=1表明报文段数据发送完毕,要求释放连接
窗口
单位为字节
紧急指针
表明紧急数据共多少字节
TCP timeout value
estimate RTT
sampleRTT
EstimatedRTT
= (1-α)EstimatedRTT + α * sampleRTT
指数加权移动平均
过去的样本指数级衰减来产生影响
典型值 α = 0.125
set timeout
timeout = EstimatedRTT + safety margin
DevRTT = (1-β) * DevRTT + β*|EstimatedRTT-sampleRTT|
典型值 β = 0.25
TimeoutInterval = EstimatedRTT + 4*DevRTT
TCP可靠数据传输
TCP连接每一端都设有发送窗口和接收窗口
可靠传输机制用字节的序号控制,所有确定都是基于序号
两端的四个窗口处于动态变化中
RTT不是固定不变的
发送缓存/接收缓存
发送缓存
准备发送的数据
已发送未收到确认的数据
接收缓存
按序到达、未被应用程序读取的数据
不按序到达的数据
重传计时器
对每一个TCP连接设立重传计时器
TCP flow control
让发送方的发送速率不要太快,使接收方来得及接收
speed-matching service
实现
变量
接收窗口rwnd
= RcvBuffer - [LastByteRcvd - LastByteRead]
RcvBuffer
接收缓存的大小
LastByteRead
从缓存中读取的数据的最后一个字节的编号
LastByteRcvd
放入接收缓存中的数据的最后一个字节的编号
limits # of unACKed bytes to rwnd
advertised window
接收端根据接收能力确定的窗口
接收端将通知窗口值放在报文首部发送给发送端
接收端根据资源情况调整对方的发送窗口大小
读取速度=数据到达速度
发送非零窗口通告
发送>接收
发送“零窗口”通告
发送方停止发送,直接接收非零窗口通告
Persistence Timer
发送方收到“零窗口”通告时启动
时间到期,发送零窗口探测报文
窗口仍然是0,则重新启动计时器
TCP connection manage
传输连接阶段
连接建立
数据传输
连接释放
连接建立
问题
要使每一方确知对方的存在
要允许双方协商一些参数
能够对传输实体资源进行分配
Handshaking
1.client host send TCP SYN segment to server
specifies initial seq # (x)
SYN = 1
no data
2.server host receive SYN, replies with SYNACK segment
server allocates buffers
specifies server initial seq # (y)
SYN = 1,ACK = 1
确认号 = 客户机初始序号x + 1
no data
3.client receive SYNACK,replies with ACK segment
may contain data
ACK = 1
确认号 = 服务器初始序号y + 1
连接释放
A发出连接释放报文段
FIN = 1, seq = u
B发出确认
ACK = 1, ack = u + 1, seq = v
A到B连接释放,TCP连接处于半关闭状态
B通知TCP释放连接
FIN = 1, ACK = 1, ack = u + 1, seq = w
A发出确认
ACK = 1,seq = u + 1, ack = w + 1
0 条评论
下一页