TCP/IP的三次握手四次挥手

TCP/IP笔记

一般可用的虚拟端口:1024-49151。
虚拟端口范围是:1-65535
TCP/IP协议的特点:
1、面向连接
2、可靠的
3、基于字节流传输的协议
4、效率较慢
5、具有端口号的概念
6、只可点对点
7、使用系统资源较多
UDP协议的特点:
1、无连接的
2、不可靠的
3、面向数据报得传输层协议
4、实时性好
5、具有端口号的概念
6、可一对多,多对一,多对多交互通信
7、使用系统资源少

TCP/IP三次握手
在这里插入图片描述 客户端发送链接请求,
(1)发送SYN=1;seq=x;
服务端接收到后,把它带来的同步信号(SYN=1)和序列号(seq=x)转换成
(2)SYN=1 ACK=1 seq=y,ack=x+1;
相当于:请求我做事,我还在原来的基础上给你加一份礼物
(3)客户端接收到请求确认之后我在让你发送连接确认,此时SYN同步信号消失了,因为我是要服务端进行确认,发送的是ACK=1,seq=x+1,ack=y+1;
服务端接确认之后,就开始传送数据了。

在这里插入图片描述

TCP/IP四次挥手
(1)客户端主动释放
发送希望断开信号(FIN=1),seq=u
(2)服务器接收到后
发送ACK=1,seq=v,ack=u+1
即自己收到了,在客户端给的u上加个1,还带确认信号(ACK=1),seq=v,少了FIN=1
相当于说,再我收到了,等等处理我还有其它任务要完成。
(3)服务器完成自己的工作后,再发送
Fin=1,ACK=1,seq=w,ack=u+1;
把之前客户端给的Fin送回去。(即连接释放报文)
(4)客户端接收到后,再发出确认关闭报文,ACK=1,seq=u+1,ack=w+1,
(5)服务端接收到后,立即进入CLOSED状态

常见面试问题
问题1、为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

问题2如果已经建立了连接,但是客户端突然出现故障了怎么办?

TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

参考:

https://cnblogs.com/renyz/p/11233858.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
项目:– JavaScript 中的患者数据管理系统 患者数据管理系统是为医院开发的 node JS 项目。通过使用此系统,您可以轻松访问患者数据,它具有成本效益,可改善患者护理和数据安全性。不仅如此,它还减少了错误范围。在运行项目之前,您需要下载 node.js。 这个患者数据管理项目包含 javascript、node.js 和 CSS。我们必须让服务器监听端口 3000,并使用 JSON 在客户端和服务器之间交换数据。这个项目会不断询问您有关插件更新的信息,因此请保持互联网畅通。此系统允许您执行 crud 操作。在这里,您是系统的管理员。您还可以添加所需的员工人数。此外,您还可以更新患者记录。该系统功能齐全且功能齐全。 要运行此项目,您需要在计算机上安装NodeJS并使用现代浏览器,例如 Google Chrome、  Mozilla Firefox。ReactJS项目中的此项目可免费下载源代码。有关项目演示,请查看下面的图像滑块。 对于手动安装 1.将主项目文件夹解压到任意目录 2.从 cmd 设置项目目录的路径 3. 输入命令“npm install” 4.完成后输入命令“npm start” 5.现在,您将获得一个 localhost:portnumber,并转到该 URL 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值