当前位置: 首页 > news >正文

【计算机网络】难点、易遗忘点总结

文章目录

  • 1. 单工通信、半双工通信和全双工通信
  • 2. TCP的三次握手和四次挥手

1. 单工通信、半双工通信和全双工通信

  • 主要区别在于信息传输的方向和时间安排
  • 单工通信是指信息只能在一个方向上传输的通信方式。
  • 半双工通信允许信息在两个方向上传输,但在任何给定的时间,只有一个方向上的设备可以发送信息
  • 全双工通信是指在任何给定的时间,通信的双方都可以同时发送和接收信息

2. TCP的三次握手和四次挥手

  • 三次握手是为了建立TCP连接,其具体过程如下:
    • 第一次握手(发送连接请求):客户端发送SYN包(SYN=1,seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认。
    • 第二次握手(确认收到请求):服务器收到SYN包,必须确认客户端的SYN(ACK=1,ack=x+1),同时自己也发送一个SYN包(SYN=1,seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。
    • 第三次握手(确认收到请求的确认):客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=1,ack=y+1,seq=x+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
  • 四次挥手是为了终止TCP连接,具体过程如下:
    • 第一次挥手(客户端发送终止请求,主动关闭TCP连接):客户端发送一个FIN报文,报文中会指定一个序列号,并停止再发送数据,主动关闭TCP连接,进入FIN-WAIT-1(终止等待1)状态,等待服务端的确认。
    • 第二次挥手(服务端确认收到请求):服务端收到FIN之后,会发送ACK报文,且把客户端的序列号值+1作为ACK报文的序列号值,表明已经收到客户端的报文了,此时服务端处于CLOSE_WAIT(关闭等待)状态。客户端收到服务端的确认后,进入FIN-WAIT-2(终止等待2)状态,等待服务端发出的连接释放报文段。
    • 第三次挥手(服务端发送终止请求,等待最后确认):如果服务端也想断开连接了,和客户端的第一次挥手一样,发给FIN报文,且指定一个序列号。此时服务端处于LAST_ACK(最后确认)的状态。即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。
    • 第四次挥手(客户端确认收到请求,服务端关闭连接):客户端收到FIN之后,一样发送一个ACK报文作为应答,且把服务端的序列号值+1作为自己ACK报文的序列号值,此时客户端处于TIME_WAIT(时间等待)状态。需要过一阵子以确保服务端收到自己的ACK报文之后才会进入CLOSED(关闭)状态。服务端收到ACK报文之后,就处于关闭连接了,处于CLOSED状态。即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。
http://www.lryc.cn/news/283597.html

相关文章:

  • 谷达冠楠科技:抖音开网店新手小白可以卖的产品
  • 爬虫案例—根据四大名著书名抓取并存储为文本文件
  • 阿里云容器服务助力万兴科技 AIGC 应用加速
  • STM32F103标准外设库——认识STM32(一)
  • 设计模式——1_5 享元(Flyweight)
  • kafka系列(二)
  • Ubuntu20.04安装配置OpenCV-Python库并首次执行读图
  • 经典目标检测YOLO系列(二)YOLOV2的复现(2)正样本的匹配、损失函数的实现及模型训练
  • 半波整流电路原理详解+参数与计算公式
  • GZ036 区块链技术应用赛项赛题第3套
  • LeetCode142.环形链表II
  • 触摸按键控制LED灯
  • QT自定义控件0-360°刻度尺
  • c语言0基础笔记
  • Vue 中 Element UI 的 el-table 组件实现动态表头和内容
  • 安装sqlserver后—无法连接到 127.0.0.1,1433\sqlexpress
  • Python JSON解析校验格式,输出错误信息的工具
  • 物联网网关与plc怎么连接?
  • HANA:存储过程(Procedures) DEBUG
  • Oracle行转列函数,列转行函数
  • 线程同步--生产者消费者模型
  • React hook+AntD pro实现Form表单的二次封装
  • python异步切片下载文件(内置redis获取任务 mongo更新任务状态等)
  • 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(10)-Fiddler如何设置捕获Firefox浏览器的Https会话
  • 阿里云云原生弹性方案:用弹性解决集群资源利用率难题
  • Spring-BeanPostProcessor PostConstruct init InitializingBean 执行顺序
  • 【算法】递归
  • DC-1靶机刷题记录
  • rust跟我学七:获取外网IP地址
  • 华为:交换机忘记console密码重置