【计网复习随手记】(一)

149 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天,点击查看活动详情 这也是第28篇文章

计算机网络模型概述

image.png 注:OSI(open system interconnect)

各层的PDU(protocol data unit

image.png

数据链路层

滑动窗口

在滑动窗口这个概念之下,延伸出了三个协议:

  • 滑动窗口协议(停等协议) 针对数据收发过程中出现错误要进行处理的问题:
  • 回退n帧协议
  • 选择性重传

上述三类协议的比较

  • 滑动窗口协议(停等): 发送方和接收方窗口大小均为1
类型回退n帧选择性重传
Ws<最大序列号(2^n-1)<Wr
Wr1(最大序列号+1)/2
缓冲区发送方接收方
适用情况错误率低错误率高

UDP

头部: image.png

Q:UDP length最大能多大?

A:65515(由于IP分组长度限制比2^16略小)

伪首部:

image.png

  • protocol: UDP:17

TCP:6

  • 伪首部如何用?
    • 发送方:将每两个字节按位求和,最后取得校验和,并写入校验和字段
    • 接收方:伪首部+datagram,按位求和并取反算出和
    • 当无差错时结果全为1

UDP应用——RPC(remote procedure call)

image.png

  • 指针不能传过去,但是可以通过传旧值,在server端用指针把值改了,把新值(地址也已经不同)传回来。但这种方法不适合复杂的数据结构,如 图 。
  • 装箱编号时无法确定参数大小
  • 有时无法确定参数类型
  • 若被调用的进程被搬至新的远程主机,全局变量就不能用了 一些注意事项:
  • 超时重传,要有一个计时器timer
  • 不需要分别对每条请求回应
  • 当传递的参数或返回的结果大于UDP分组大小时,应借助一些协议
  • 如果多个请求和应答可重叠,应有标识符(id)来匹配它们
  • 对于非幂等(即重复不一定安全)的操作,需要强语义保证它不会被执行多次,这时候TCP比UDP更合适

Q:为什么会有非幂等?

A:比如有自增计数器