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

408第三季part2 - 计算机网络 - 传输层

理解

也就是说网络层只能知道传哪个电脑,但不知道该传哪个软件

传输层可以

比如AP1想发给AP3,AP2想发给AP4,复用就是主机A干的事情,分用就是主机B干的事情

了解了解就行

到了传输层就变成端口了

题目

虽然UDP也有检验,但它不会去修复,只会告诉你

源端口号是复用

再次理解

TCP段看一下

看右上的图,序号就是100

确认号这里就是300

A发送了100B給B,B的接受窗口是1000B,占了100B,还剩900B会告诉A,它还剩900B可以接受

看一下吧

第一次握手SYN=1说明是建立连接,这个死记

然后因为全双工,A发送数据,B也要发送数据

并且有属于他们的独立的编号

第二次握手

seq是序号,ack是确认号,确认号就是下一个字段的序号,就是x+1

ACK=1,只有大写的ACK是1小写的ack才生效

第三次握手

seq是x+1有2种理解,一个是上一个是x,那下一次发送就是x+1,另一个理解就是上一个确认号想要的就是x+1,那序号就是x+1

然后ack下一个想要的就是y+1

A如果突然不想发了

FIN=1释放一个连接,seq=u说明之前序号是u

然后第二步正常做

A不会给B发了,但B还会给A发

等哪一天B也不想发了就会有第三步

注意第三步这里seq变成w了,因为seq经过数据传送,seq早该变了

那ack为什么仍然是u+1?

因为A发送完一个数据之后再也没有新的数据发送了,B一直在苦苦等待u+1

然后A为了确认开始也回复给了B

题目

确认号是序号的下一个阶段即11221

第二次握手seq是任意的一个序号,并不知道是多少

有ack就有ACK=1

SYN第一次发送要建立连接

第3个字段序号是900

所以第二个字段会是500 - 899

第三个字段是200 - 499

又因为TCP是按顺序接受的,所以确认号是想要第二个字段的序号,即500

b

如果是一般人会以为下一次的序号会是上一次的确认号,即501

那很蠢了

因为看图可以知道乙还没收到甲的信息,这确认号还隔着舔着b脸要501呢

所以2者冲突的话,应该以之前的序号往后走701为主

接收窗口是500B,甲发了200B乙还没收到

所以下一次就只能发300B,

所以范围是701 - 1000

c

这里如果ack_seq = 701,然后下一个的seq优先是以之前的序号往后走701为主,发现他们都是701,说明甲发送的乙已经收到了

然后答案就会是701-1200

http://www.xdnf.cn/news/14920.html

相关文章:

  • C++高频知识点(二)
  • std::vector<bool>有什么特殊的吗
  • 植物大战僵尸杂交重制版1.0,经典焕新,重燃策略塔防之火
  • 极简的神经网络反向传播例子
  • Vue计算属性(computed)全面解析:原理、用法与最佳实践
  • Web攻防-XMLXXE上传解析文件预览接口服务白盒审计应用功能SRC报告
  • 【Python】文件应用: 查找读取的文件内容
  • list和list中的注意事项
  • 使用ADSL接入Internet,用户端需安装什么协议?
  • Kubernetes 集群相关规范
  • 手机电工仿真软件更新了
  • 让你的asp.net网站在调试模式下也能在局域网通过ip访问
  • NLP之文本纠错开源大模型:兼看语音大模型总结
  • bottles安装网易云出现的问题01中文出现乱码问题
  • JavaScript基础语法之运算符和控制流
  • 程序员在线接单
  • 记录一点开发技巧
  • 七牛云前端面试题及参考答案 (上)
  • 隐马尔可夫模型(HMM):观测背后的状态解码艺术
  • 动手学深度学习-学习笔记【二】(基础知识)
  • 编程中的英语
  • 【C语言刷题】第十一天:加量加餐继续,代码题训练,融会贯通IO模式
  • cloudflare配合github搭建免费开源影视LibreTV一个独享视频网站 详细教程
  • HarmonyOS学习2---工程目录UIAbility
  • rk3128 emmc显示剩余容量为0
  • C++ 模板参数匹配、特化
  • openai和chatgpt什么关系
  • 11_架构演进:从单体到云原生的蜕变
  • 查看linux 系统中 支持哪些 ssh negotiate 算法
  • webpack+vite前端构建工具 -11实战中的配置技巧