TCP安全可靠!!!!!!!

1. TCP和UDP有什么区别??

(1)TCP是一个面向连接的可靠的传输层协议,UDP是面向无连接不可靠的传输层协议 (2)TCP速度慢,可靠,UDP速度快,容易丢失数据 (3)TCP用的是SOCK_STREAM流式套接字,UDP用的是SOCK_DGRAM数据报套接字

2. 为什么TCP安全可靠???

(1)三次握手(发送在连接的时候),四次挥手(发生在断开连接的时候) (2)重传确认

(1)TCP在连接的时候,需要三次握手(请详细解释一下三次握手过程) connect ---- accept 三次握手 连接的时候用的是SYN位,确认的时候用的是ACK位 syn --> 发送序号 ack --> 确认序号 第一次握手: 客户端发送的序号假设是200,将SYN置1,代表连接请求 syn = 200 (书上的syn = j) 第二次握手: 服务器端发送的序号假设是500,将SYN置1和ACK置1,代表确认 syn = 500(syn = k) ack = 201(ack=j+1) 第三次握手: 客户端给服务器应答,将ACK置1,确定要连接 发送序号 syn = 201, ack = 501(ack = k+1) 什么ACK攻击?? 发生在第三次握手的时候,第二次握手之后,服务器需要得到客户端的一个应答,来确认连接服务器,此时 客户端,不进行第三次握手,不给ACK确认,所以造成服务等待,浪费资源 (2) TCP在断开连接的时候,需要四次挥手(请详细解释一四次挥手过程) 断开连接的时候 close()函数,用的FIN位 和 ACK位 第一次挥手: 发起端将FIN置1,请求断开的请求 假设 syn = 200 第二次挥手: 应答端将ACK置1,允许断开连接 syn = 500 ack = 201 第三次挥手: 应答端将FIN置1,请求同时断开连接, sys = 501 第四次回收: 发起端将ACK置1,允许同时断开 syn = 201 ack = 502 (3)重传确认

重点

1.3 tcp连接的过程(accept 和 connect怎么搭配的)

1.4 tcp 4次挥手

练习1: 客户端连接服务器时发送( c )包,服务器收到客户端连接请求发送(d )包

A ACK B FIN C SYN D SYN+ACK

练习2: 客户端和服务器的初始序号为(2000, 4000), 那么客户端SYN包序号为( a ), 服务器的SYN包序号为( c)

//服务器端第二次握手的确认序号(B) 客户端第三次握手的确认序号(D) A 2000 B 2001 C 4000 D 4001

经验分享 程序员 微信小程序 职场和发展