学习自极客时间《趣谈网络协议》 作者:刘超
4.socket套接字4.1 什么是socket?在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。
4.2 socket的通讯方式在网络层,Socket 函数需要指定到底是 IP...
学习自极客时间《趣谈网络协议》 作者:刘超
1. UDP协议1.1 TCP 和 UDP的区别
TCP 是面向连接的,UDP 是面向无连接的。
所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性。
TCP提供可靠交付,通过 TCP 连接传输的数据,无差错、不丢失、不重复、并且按序到达。UDP 继承了 IP 包的特性,不保证不丢失,不保证按顺序到达。
TCP是面向字节流的,而 UDP 继承了 IP 的特性,基于数据报的,一个一个地发,一个一个地收。
TCP 是可以有拥塞控制的。它意识到包丢弃了或者网...
合并K个排序链表力扣第23题:https://leetcode-cn.com/problems/merge-k-sorted-lists/
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6
暴力算法把N个数放到一个数组里,再一起排序,O(NlogN)。
12345678910111213141516class Solution(object): def merge...
最长上升子序列力扣第300题:https://leetcode-cn.com/problems/longest-increasing-subsequence/
给定一个无序的整数数组,找到其中最长上升子序列的长度。
示例:
输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:
可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?
1. 动态规划一看到最字,首先想到的是动态规划和贪心算法。这道...
写给自己的一些话昨晚收到了人生的第一份面试邀请,头条的邀请,心情真的很激动,但是更多的也是紧张。倒也不是说自己的技术不行吧,而是,在几个月前,对于腾讯头条阿里这种像是珠穆朗玛峰那种我想都不敢想的大厂,我竟然能收到面试。
高中, 那个自傲的自己高中生活三年,当时在学校成绩一直还算可以,起初是蹦着中科大和复旦去的,最差也得有个华工吧哈哈,当时成绩确实还可以,但是有点飘了哈。当我高考成绩出来后,我懵了,真的当时就整个人飘忽忽的,看着这个成绩单,我知道自己再也不是那个当初自傲的自己了。大伯劝我复读,说什么算过我的命今天考试不行,明年清华都能上(当时高考前大伯就叮嘱我要我复读了),但是我不信命,我...
学习自极客时间《趣谈网络协议》 作者:刘超
4. 网关的实现4.1 怎么样在宿舍上网有两种方式:
有一台电脑需要两张网卡,一张网卡的线插到交换机上,另一张网卡的线插到校园网的网口。而且,这张新的网卡的 IP 地址要按照学校网管部门分配的配置,不然上不了网。这种情况下,如果你们宿舍的人要上网,就需要一直开着那台电脑。
买个家庭路由器,家庭路由器会有内网网口和外网网口。把外网网口的线插到校园网的网口上,将这个外网网口配置成和网管部的一样。内网网口连上所有的电脑。这种情况下,如果你有人要上网,就需要一直开着路由器。
其实家庭路由器和电脑的功能一样,只不过是嵌入式系统而已。
其他电脑...
最长公共子序列力扣第1143题:https://leetcode-cn.com/problems/longest-common-subsequence/
给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,”ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。
若这两个字符串没有公共子序列,则返回 0。
示例 1:
...
岛屿的最大面积力扣第695题:https://leetcode-cn.com/problems/max-area-of-island/
给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。
找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)
示例 1:
[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0], [0,1,0,0...
学习自极客时间《趣谈网络协议》 作者:刘超
1. 从物理层到MAC层1.1 物理层主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换),这一层的数据叫做比特,单位是bit比特。集线器(hub):和交换机不同,集线器没有大脑,它完全在物理层工作。它会将自己收到的每一个字节,都复制到其他端口上去。这是第一层物理层联通的方案。
1.2 数据链路层1.2.1 解决三个问题Hub 采取的是广播的模式,如果每一台电脑发出的包,局域网的每个...
详解restful架构1. web服务我们在浏览器中能看到的每个网站,都是一个web服务。这种”互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。
目前主流的三种web服务交互方案:
– REST ( Representational State Transfer)表述性状态转移...