一。三次握手
1.建立合适的拓扑
2.配置IP
切换到Simulation模式,打开客户端Web Browser,输入192.168.1.254,观察报文的发送情况。因为HTTP服务是基于TCP的,所以当请求访问网页时会先建立TCP链接。
观察报文
TTP服务的TCP端口号80,报文序号为0,确认序号为0,SYN同步标志为1,接着继续观察TCP
TCP段包含源端和目的端的端口号,序号标识从TCP发端向TCP收端发送的数据字节流,建立一个新的连接时,SYN标志变为1。TCP为应用层提供全双工服务
TCP连接的释放
1、客户端主动打开连接,服务端被动打开连接
2、为何需要“第三次握手”做确认,按照一般的逻辑你发送我确认就可以了,不需要再次确认。这里主要是为了防止已经失效的报文又传给服务端:
下面以只有两次握手举例:
client第一次发送连接请求给server,但是由于网络情况,超时,于是client再次发送连接请求给server
server接收到client第二次发送的连接请求,于是发送确认连接报文给client,这样按照两次握手的协议,连接建立。过会,连接释放,client和server关闭连接。
这个时候,client第一次发送的连接请求报文经过辗转周折到达了server,server一看是client发送的,以为client又再次发送建立连接请求,于是正常的发送确认报文给client,连接建立。但是,实际上这个时候,client已经不需要建立连接了,对于server发送的确认报文就不理不睬(丢弃),这样就造成了server端连接打开,资源被占用得不到释放的情况。所以为了防止这种情况,在client收到server发送过来的确认报文后,client会再次发送一次确认报文给server。
3、整个过程,server端进入收听状态,client发送连接建立请求报文,并进入同步-已发送状态,server收到报文同意建立请求,向client发送连接建立确认报文,并进入同步收到状态,client收到报文后发送确认报文给server并已建立连接状态,server收到client发送的确认报文也进入已建立连接状态。