运输层
TCP
三次握手
TCP是面向连接的运输层协议,其建立连接的过程叫做握手。
握手要在客户端和服务器之间交换三个TCP报文段
其目的是为了防止已失效的连接请求报文段,突然又传送到了,因而产生错误
三次握手的过程如下图所示:
其中SYN=1代表请求连接
seq为当前传输报文段的序列号
ACK为应答,ACK=1表示收到消息了。
ack为应答号,ack=x+1 表示告诉对方:喂!你刚刚发的序列号为x的消息俺收到了!
第一次握手:客户端向服务器发送连接请求
第二次握手:服务器收到请求后,向客户端发送连接请求,ack=1表示服务器说:我收你刚刚发的请求了。(此时,服务器已经能够确认客户端是具有发送信息能力的,不是个哑巴。)
第三次握手:客户端收到了来自服务器的响应,再给服务器发送一条消息,ack=1表示客户端说:哦,我也收到了你回给我的消息了,来唠嗑吧。(第三次握手客户端这边就能够确认服务器的收发功能是健全的,服务器收到了第三个报文段时也就确定了客户端不是个聋子,可以开始唠嗑了。)
四次挥手
四次挥手是断开TCP连接的方式,下面将举例由客户端发起的断开连接的过程。
四次挥手如下图所示!
这里补充一个姿势:FIN是一个终止连接的请求,当FIN=1时表示:俺不想聊了哈
第一次挥手: 客户端说“俺不想聊天了!”(FIN=1)(seq = u)
第二次挥手: 服务器收到后说:“好,收到(ack = u+1) ”(seq=v)
第三次挥手: 服务器说:“我准备关了哈!(FIN=1)”(seq = w)
第四次挥手: 客户端说:“好(ACK=1),关吧(ack=w+1)!”然后,服务器就挂了,客户端眼巴巴的看着服务器是不是真的不理他了,一段时间后死心了,也挂了。
网络层
IP地址分类
以下内容搬运自BILIBILI