没有合适的资源?快使用搜索试试~ 我知道了~
首页计算机网络超全笔记.pdf
资源详情
资源评论
资源推荐

2020年2⽉29⽇ 星期六
计算机⽹络
•
传输层:TCP 和 UDP"
-
三次握⼿(three-way handshake)"
1. 第⼀次握⼿: Client将SYN置1,随机产⽣⼀个初始的序列号seq发送给Server,进⼊
SYN_SENT状态"
2. 第⼆次握⼿: 收到SYN为1之后,知道客户端请求建⽴连接,将⾃⼰的SYN置为1,ACK
置为1,产⽣⼀个acknowledge number = sequence number + 1,并随机产⽣⼀个⾃
⼰的初始序列号,发送给客户端,进⼊SYN_RCVD状态"
3. 第三次握⼿: 客户端检查acknowledge number是否为序列号+1,ACK是否为1,检
查正确之后将⾃⼰的ACK置为1,产⽣⼀个acknowledge number=服务器发的序列
号+1,发送给服务器;进⼊ESTABLISHED状态;服务器检查ACK为1和
acknowledge number为序列号+1之后,也进⼊ESTABLISHED状态;完成三次握
⼿,连接建⽴。"
1

2020年2⽉29⽇ 星期六
•
TCP不能建⽴连接考研两次握⼿的原因
-
本来的样⼦ :Client发出的第⼀个链接请求报⽂段并没有丢失,⽽是在某个⽹络结点⻓
时间滞留了,以⾄于延误到丽娜姐释放后的某个时间到达server,但在他收到⼀脚的报
⽂段后误以为C端⼜发了⼀个新的链接请求,于是向C端发出确认报⽂段,同意建⽴连
接."
-
具体的过程 :假设不采取,只要S端确认,新的链接就建⽴了.由于C端并没有发出建⽴
链接的请求,因此不会理睬S的确认,也不会向S端发送数据,但S端却以为新的运输链
接已经建⽴,于是⼀直等待C端发来数据.S的很多数据就浪费掉了."
-
简单来说 :C不会向S的确认发出确认,S由于得不到确认,就认为C端没有要求建⽴连
接."
•
可以采⽤四次握⼿吗?
可以.但是会降低传输的效率.第四次握⼿是指:"
第⼆次握⼿:S端whiffsACK和acknowledge number,⼆S端的SYN和初始化序列在第三
次时发送,原来协议中的第三次变成第四次握⼿. 出于优化⽬的,⼆三次可以合并"
•
第三次握⼿中,如果客户端的ACK未送达服务器,会怎样?
由于S端没接受到ACK确认,因此会重发之前的SYN+ACK(默认五次之后⾃动关闭连接)"
C端收到后会重新传ACK给S端."
如果C端向服务器发送数据,服务器会以RST包响应."
•
如果已经建⽴了连接,客户端出现了故障怎么办
服务器没收到⼀次客户端的请求后都会重新复位⼀个计时器,时间通常是2⼩时,弱之后
还没有收到客户端的任何数据,服务器就会发送⼀个探测报⽂段,每隔75秒发送⼀个探
测报⽂段,10个之后还是没有反应,就认为是故障了,关闭连接."
•
初始序列号是什么
TCP连接的⼀⽅A,随机选择⼀个32位的序列号(Sequence Number)作为发送数据
的初始序列号(Initial Sequence Number,ISN),⽐如为1000,以该序列号为原
点,对要传送的数据进⾏编号:1001、1002...三次握⼿时,把这个初始序列号传送给
另⼀⽅B,以便在传输数据时,B可以确认什么样的数据编号是合法的;同时在进⾏数
据传输时,A还可以确认B收到的每⼀个字节,如果A收到了B的确认编号
(acknowledge number)是2001,就说明编号为1001-2000的数据已经被B成功接
受。"
2

2020年2⽉29⽇ 星期六
•
什么是四次挥⼿"
第⼀次挥⼿ C端将FIN置1,发送⼀个序列号seq给Server; 进⼊FIN_WAIT——1 状态"
第⼆次挥⼿ 收到之后发送⼀个ACK= 1,acknowledge number = 收到的序列号+1;进
⼊CLOSE_WAIT状态。此时客户端已经没有要发送的数据了,但仍可以接受服务器发
来的数据。次挥⼿"
第三次挥⼿ Server将FIN置1,发送⼀个序列号给Client;进⼊LAST_ACK状态;"
第四次挥⼿ C端收到服务器 FIN后,进⼊TIME_WAIT状态;接着将ACK置1,发送⼀个
acknowledge number=序列号+1给服务器;服务器收到后,确认acknowledge
number后,变为CLOSED状态,不再向客户端发送数据。客户端等待2*MSL(报⽂段
最⻓寿命)时间后,也进⼊CLOSED状态。"
•
为什么不能吧服务器发给ACK和FIN合并起来,变成第三次挥⼿
因为服务器收到客户端断开连接的请求时,可能还有⼀些数据没有发完,这时先回复
ACK,表示接收到了断开连接的请求。等到数据发完之后再发FIN,断开服务器到客户
端的数据传送.(CLOSE_WAIT状态意义是什么?)"
如果第⼆次挥⼿时服务器的ACK没有送达客户端会怎么样"
客户端没有收到ACK确认,会重新发送FIN请求"
3
剩余10页未读,继续阅读










安全验证
文档复制为VIP权益,开通VIP直接复制

评论0