介绍一下 TCP/IP 模型和 OSI 模型的区别
OSI 是理论上的国际标准,是七层协议体系结构,从上至下分别是应用层,表示层,会话层,运输层,网络层,数据链路层,物理层; TCP/IP 是实际上的工业标准,是更具实用性的四层体系结构,从上至下分别是应用层,运输层,网络层和网络接口层。 TCP/IP 模型的应用层对应 OSI 的应用层、表示层和会话层,将这3层合并后让应用程序自行管理数据格式会更高效。应用层负责应用进程间的交互来完成特定的网络应用,其协议定义的是应用进程间通信和交互的规则,其中的协议有很多,如 DNS, HTTPS 和 SMTP 等等。 TCP/IP 的运输层对应的 OSI 的运输层,负责向两台主机的进程间的通信提供通用的数据传输服务,主要使用 TCP 和 UDP 两种协议。 TCP 提供面向连接的可靠的数据传输服务;而 UDP 提供的是无连接的不可靠的数据传输服务。 TCP/IP 的网络层对应 OSI 的网络层,使用的是无连接的 IP 协议,根据 IP 地址为分组交换网上的不同主机提供通信服务。而 OSI 同时提供面向连接和无连接的通信服务。在对连接服务的支持上, TCP...
vs 使用笔记
记录常用 vscode 快捷键
数据结构笔记:二叉树
二叉搜索树与二叉平衡树
算法笔记:滑动窗口
滑动窗口通用模板
数据结构笔记
杂记
数据结构笔记:堆
堆的定义 是完全二叉树:只允许最后一行不为满,且最后一行必须从左往右排序,最后一行元素之间不可以有间隔。特性适合数组存储。 层序遍历给节点编号,元素存入数组对应下标,下标节点为 i ,其子节点则为 2i+1 2i+2 。 堆的基本操作上滤(上浮) / 下滤(下沉) 下滤根节点向下调整 若(根)节点元素小于其最大子节点,则交换,直至该元素所在节点大于其所有子节点或移动到底部(无子节点),形成大根堆。 复杂度为 O(logN) 。自下而上建堆,从倒数第二行父节点开始向下调整,复杂度为 O(N) 。 上滤子节点向上调整 与父节点比较,大于父节点则交换,直到无法上移。 主要用于插入新元素到堆尾,复杂度为 O(logN) 。自顶向下建堆,每次插入到堆尾后向上调整,复杂度为 O(NlogN) 。 堆的应用优先队列 priority_queue默认为最大堆弹出堆顶元素后,堆尾元素移至根节点,重新进行上滤或下滤操作直至有序。 堆排序就是把优先队列元素依次弹出,为降低空间复杂度,实际排序时堆顶弹出的元素与堆尾元素交换并存放,最终形成的树做层序遍历便是有序...
计网作业1
Question (a) What the packet traces tell you about the initial fetch of the http version of the page?(b) What the “-L” flag does and why it is useful here?(c) Anything else interesting that you have seen. (a) From the packet trace, I can see the client(172.22.54.16) establishes a TCP connection to the web server(45.76.35.230) on port 80. The three-way handshake (SYN, SYN-ACK, ACK) occurs, followed by an HTTP GET request. Then the server responds with “HTTP/1.1 301 Moved Permanently”, ...
运算符重载与函数对象
函数对象:使用方式看上去像函数,但实际是类的一个对象;是因为类重载了“()”运算符,所以让对象使用的方式看起来是函数,即对象后面的括号像函数一样调用。 12345struct Adder { // 1. 类重载了 operator() int operator()(int a, int b) const { return a + b; }};Adder add; // 2. 函数对象int r = add(3, 4); // 调用函数对象 友元函数不是类的成员函数,但它可以访问类的私有和保护成员,为操作符重载提供了灵活性。 123friend std::ostream& operator<<(std::ostream& os, const Student& s) { return os << '[' << s.id << ','...
windows 和 office 激活
打开 powershell(管理员) 输入 irm https://get.activated.win | iex

