计算机网络基础知识归纳总结整理

2023-11-09

计算机网络基础:

基础知识

1. 网络模型:

OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
每一层的协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

每一层的作用如下:

1.物理层:主要定义物理设备标准,他的主要作用是传输比特流,这一层的数据叫做比特

2.数据链路层:主要将从物理层接收到的数据进行mac地址的封装与解封装,这一层的数据叫做帧

3.网络层:主要将从下层接收到的数据进行IP地址的封装与解封装,常把这一层的数据叫做数据包

4.传输层:定义了一些传输数据的协议和端口号,主要是讲从下层接收的数据进行分段传输,这一层叫段

5.会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。

6.表示层:主要进行对接收的数据进行解释,加密与解密,压缩与解压缩等

7.应用层:终端应用

2. 常见状态码

200:请求成功

204:No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不包含实体的主体部分

206:表示客户端进行了范围请求,并且服务器执行了这部分GET请求,响应报文中包含Content-Range指定范围的实体内容

301:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改后的URL

302:临时重定向,表示请求的资源被分配了新的URL,希望本次使用更改后的URL

303:表示请求的资源被分配了新的URL,并明确表示使用GET方式获取资源

304:服务端已经执行了GET,但文件未变化。

307:临时重定向,与303有着相同的含义,307会遵守浏览器标准,不会从POST编程GET

400:表示请求报文中有语法错误

401:未经许可,需要http认证

403:服务器拒绝该访问(访问权限出现问题)

404:找不到

500:表示服务器在执行请求时发生错误

503:服务器暂时处于超负荷或正在停机的状态

3. 输入url后执行的流程

1.URL地址解析

2.DNS域名解析

3.客户端与服务端建立TCP 连接(三次握手)

4.把客户端信息(携带cookies)传递给服务端(发送HTTP请求)

5.服务端得到并处理请求(HTTP响应内容)

6.客户端渲染服务器返回的内容

7.和服务端断开TCP连接(四次挥手)

4. DNS解析过程

1.首先在本地域名服务器中查询IP地址

2.如果没有找到的情况下,本地域名服务器会向根域名服务器发送一个请求

3.如果根域名服务器也不存在该域名时,本地域名会向com顶级域名服务器发送一个请求,依次类推下去。

4.直到最后本地域名服务器得到google的IP地址并把它缓存到本地,供下次查询使用。

DNS缓存:

浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。

关于http

Http原理

介绍:无状态(客户机和服务器之间不需要建立持久的连接),请求->响应->关闭

4.4.1输入url后的解析:http://localhost.com:8080/index.html

1.从中分解出:协议号,主机名,端口,对象路径等部分

​ 协议号:http 主机名:localhost 端口:8080 对象路径:/index.html

​ 需要DNS解析域名localhost.com,得到主机的IP地址

2.封装HTTP请求数据包

​ 把以上部分结合本机信息,封装成一个HTTP请求的数据包

3.封装成TCP包,建立TCP连接包

​ 封装成TCP包,建立TCP连接(TCP的三层握手)

4.客户机发送请求命令

​ 建立连接后,客户机发送一个请求给服务器,请求格式为:

​ 统一资源标识符,协议版本号,MIME信息(请求修饰符,客户机信息和可内容)

5.服务器响应

​ 服务器给予响应信息,其格式为一个状态行,包括:

​ 信息的协议版本号,一个成功或错误的代码,MIME(服务器信息,实体信息,可能的内容)

6.服务器关闭TCP连接

​ 服务器关闭TCP连接后,如果浏览器或者服务器在其头信息加入了Connection:keep-alive,TCP连接在发送后仍然将仍然保持打开状态,这样浏览器可以继续通过相同的连接发送请求。保持连接节省了每个请求建立新连接所需要的时间,还节约了带宽

HTTPS的原理

介绍:以安全为目标的HTTP通道,简单讲是HTTP安全版。既在HTTP下加入SSL层,HTTPS的安全基础是SSL,其所用的端口号是443

特点:主要依赖于三类基本算法:散列函数 、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性

过程:

​ 1.客户端先发起一个https请求,端口是443

​ 2.服务器端把实现配置好的公钥证书返回给客户端

​ 3.客户端验证公钥证书:比较是否在有效期内,证书的用户是不是匹配Client请求的站点,是不是在CRL吊销列表里面,他的上一级证书是否有效,这是一个递归过程,知道验证到根证书(操作系统内置的root证书或者client内置的root证书)。如果验证通过则继续,不通过则显示警告信息

​ 4.客户端使用伪随机数生成器生成加密所使用的对称密钥,然后用证书的公钥加密这个对称密钥,发给服务端

​ 5.服务端使用自己的私钥解密这个信息,得到对称密钥。

​ 6.服务端使用对称密钥加密“明文内容A”,发送给客户端

​ 7.客户端使用对称密钥解密响应密文,得到“明文内容A”

​ 8.Client再次发起HTTPS的请求,使用对称密钥加密请求的“明文内容B”,然后Server使用对称密钥解密密文,得到“明文内容B”。

http和https有什么区别?

  1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。所以说,HTTP 安全性没有 HTTPS高,但是 HTTPS 比HTTP耗费更多服务器资源。
  5. HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。

关于tcp

tcp的原理

tcp协议是端到端的传输控制协议,之所以"端对端"的协议,是因为路由是由IP协议负责的,TCP协议负责为两个通信端点提供可靠性保证

三次握手四次挥手

  • 客户端–发送带有 SYN 标志的数据包–一次握手–服务端

  • 服务端–发送带有 SYN/ACK 标志的数据包–二次握手–客户端(确认序号为收到的序号加1 )

  • 客户端–发送带有带有 ACK 标志的数据包–三次握手–服务端(确认序号为收到的序号加1 )

  • 客户端-发送一个 FIN,用来关闭客户端到服务器的数据传送

  • 服务器-收到这个 FIN,它发回一 个 ACK,确认序号为收到的序号加1 。和 SYN 一样,一个 FIN 将占用一个序号

  • 服务器-关闭与客户端的连接,发送一个FIN给客户端

  • 客户端-发回 ACK 报文确认,并将确认序号设置为收到序号加1

为什么连接关闭的时候是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

握手失败后的操作

1.首先查看tcp状态机变化

2.当失败时服务器会根据设定的重传定时器,重传ack报文

3.但是之后客户端的第三次握手的ack报文还是失败,超过了可允许重传的时间了

4.那么服务端就发送RTS报文段,自身进入CLOSED状态。

5.当客户端接收到RTS报文段后,也由established状态进入closed状态。这样做的目的是为了防止SYN洪泛攻击。

TCP 协议如何保证可靠传输

  1. 应用数据被分割成 TCP 认为最适合发送的数据块。
  2. TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
  3. 校验和: TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。
  4. TCP 的接收端会丢弃重复的数据。
  5. 流量控制: TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。 (TCP 利用滑动窗口实现流量控制)
  6. 拥塞控制: 当网络拥塞时,减少数据的发送。
  7. ARQ协议: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
  8. 超时重传: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

可靠性通过以下方式来保证

1.超时重传:TCP每发送出一个报文段后,都会启动一个定时器,对目的端传回的确认信息进行确认计时,超时后便重传。

2.确认信号:当TCP收到一个来自TCP的报文段后,便会发送回一个确认信号。

3.校验和:TCP将始终保持首部和数据的检验和,如果收到的报文段的检验和有差错,便将其丢弃,希望发送端超时重传。

4.重新排序:由于IP数据报的达到可能失序,因此TCP将会数据进行重新排序,以正确的顺序交给应用层。

5.丢弃重复:由于IP数据报有可能重复,因此TCP将会丢弃重复的数据。

6.流量控制:TCP连接的两端都有固定大小的缓冲区空间,TCP接受端只允许对端发送本端缓冲区能容纳的数据。

拥塞控制算法

  1. 慢启动算法

    1. 设定一个慢启动阀值:ssthresh
    2. 在刚加入网络开始传输数据的时候,cwnd=mss
    3. 每当收到一个新的ack确认报文段cwnd+=mss
    4. 每当过了一个RRT(发送接收的一个来回时间),cwnd=cwnd*2,成指数增长;
    5. 当cwnd超过ssthresh的时候,进入拥塞避免算法。
  2. 拥塞避免算法

    1. cwnd按线性增长,每经过一个RTT,cwnd+=mss;
  3. 快重传(这里第三节里已经讲过)

  4. 快恢复(配合快重传使用)

    1. 设置cwnd = sshthresh + 3 * MSS

    2. 重传Duplicated ACKs指定的数据包

    3. 如果再收到 duplicated Acks,那么cwnd = cwnd +1 (继续慢增长,等待是否有新的ack或者超时)

    4. 如果收到了新的Ack,那么,cwnd= sshthresh ,然后就进入了拥塞避免的算法了(说明已经进入网络正常阶段了)

简述 tcp 和 udp的区别?

tcp 和 udp 是 OSI 模型中的运输层中的协议。tcp 提供可靠的通信传输,而 udp 则常被用于让广播和细节控制交给应用的通信传输。

两者的区别大致如下:

  • tcp 面向连接,udp 面向非连接即发送数据前不需要建立链接;
  • tcp 提供可靠的服务(数据传输),udp 无法保证;
  • tcp 面向字节流,udp 面向报文;
  • tcp 数据传输慢,udp 数据传输快;

关于 socket:

socket

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

​ 前人已经给我们做了好多的事了,网络间的通信也就简单了许多,但毕竟还是有挺多工作要做的。以前听到Socket编程,觉得它是比较高深的编程知识,但是只要弄清Socket编程的工作原理,神秘的面纱也就揭开了。
​ 一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。 生活中的场景就解释了这工作原理,也许TCP/IP协议族就是诞生于生活中,这也不一定。

WebSocket

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。

HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络基础知识归纳总结整理 的相关文章

  • java本地时间格式不带年份

    我喜欢将本地时间格式格式化为不带年份的字符串 目前我可以显示包含年份的本地格式 java text DateFormat df java text DateFormat getDateInstance java text DateForma
  • Java如何删除设置了IMMUTABLE位的文件

    正在开发一个 Java 8 项目 我从外部源复制文件 在这些源之一中 文件设置了不可变位标志 In OSX这是这样设置的 sudo chflags schg path to file In Linux chattr i path to fi
  • Junit Mockito 测试一切

    我现在正在寻找更多时间但没有结果 请帮忙 这是我要测试的课程 public class DBSelectSchema extends Database private static final Logger LOG Logger getLo
  • 我该如何解决? KnapSack - 值完全相同,但每个对象都有三个权重

    我在解决我的练习时遇到问题 我读到了动态规划和算法 我认为我的练习是 特定背包问题 我用暴力法解决了它 但我无法用动态规划解决它 我有一艘重300吨的船 背包 有些晶体本身含有 3 种物质 X Y Z 每种物质都有重量 并且所有晶体都具有相
  • 为什么使用 Response 设置后,Request 中的 Cookie 立即可用?

    在页面加载中 如果您立即在下一行中执行 Response Cookies Add 您可以通过 Request Cookies 访问该 cookie 我知道在幕后 cookie 是由 net 添加到 Request Cookies 中的 但原
  • 运行单个 Java 线程的双核 CPU 利用率[重复]

    这个问题在这里已经有答案了 可能的重复 多线程 Java 应用程序能否很好地利用多核机器 https stackoverflow com questions 1649402 would a multithreaded java applic
  • 使用 google-api-java-client 的 2 足 OAuth

    有谁知道如何将 2 legged OAuth 与 google api java client 一起使用 我正在尝试访问 Google Apps 配置 API 以获取特定域的用户列表 以下不起作用 HttpTransport transpo
  • 具有最小刻度的图表的漂亮标签算法

    我需要手动计算图表的刻度标签和刻度范围 我知道漂亮刻度的 标准 算法 参见 我也知道这个Java实现 http erison blogspot nl 2011 07 algorithm for optimal scaling on char
  • 通过 JDBC 连接到 DB2 时的用户和密码

    我正在尝试连接到本地 DB2 10 5 Express C 服务器 这是一个测试环境 所以我不关心安全性 我能够连接到命令行处理器 在 Windows 上运行 并且我更改了配置设置AUTHENTICATION CLIENT and TRUS
  • 向 JList 添加滚动条? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何将 JList 添加到 JScrollPane 把你的JList in a JScrollPane JScrollPane scrol
  • 使用 Hibernate 和 Apache DBCP 的 MySQL 连接池问题

    看来我的应用程序有问题 当应用程序在启动后闲置很长时间 我不确定确切的时间 时 我会在日志中收到以下错误消息 我使用 Spring Hibernate MySQL 和 ApacheDBCP 进行连接池 ERROR org hibernate
  • 如何使 ScheduledExecutorService 在计划任务取消时自动终止

    我正在使用一个ScheduledExecutorService如果网络连接已打开超过几个小时 则关闭该连接 然而 在大多数情况下 网络连接在超时之前就关闭了 所以我取消了ScheduledFuture 在这种情况下 我还希望执行程序服务终止
  • 在 Java Swing 元素中使用 HTML 样式是不好的做法吗?

    使用 HTML 设置 Swing 元素的样式被认为是不好的做法吗 举个例子 如果我想让标签变大并变红一次 我有两个选择 使用 API 调用 JLabel label new JLabel This is a title label setF
  • Spring Boot 多部分文件始终为 null

    我正在使用 Spring Boot version 1 4 0 RC1 和 Spring Boot Stormpath 1 0 2 我正在尝试使用分段文件上传 但控制器中的 MultipartFile 始终为空 当我使用 RequestPa
  • Elasticsearch NodeBuilder 与 TransportClient

    对于其他 Elasticsearch 开发人员来说 这可能是一个非常简单 而且愚蠢 的问题 这两者之间有什么区别 我正在从 Java Web 应用程序连接到远程 Elasticsearch 服务器 到目前为止我一直在使用 Transport
  • Java 泛型:将 Object o 的类与 进行比较

    假设我有以下课程 public class Test
  • Java 空值检查

    我有一个thread1 if object null object play 和另一个thread2可以写null into object随时参考 我将同时运行这些线程 我知道thread2可以重写object后参考null检查并会抛出Nu
  • 有没有办法处理Java堆空间异常[重复]

    这个问题在这里已经有答案了 我正在寻找将文件输入流转换为大文件 文件大小为 100MB 并且抛出 java lang OutOfMemoryError Java Heap space import java io FileInputStre
  • Java 中 .NET 的 Lambda 表达式

    我最近 再次 从 C 迁移到 Java 但我非常怀念 lambda 表达式和 C 的 IEnumerable Foreach 之类的东西 所以我正在寻找Java中的lambda表达式库 有比这更好的图书馆吗LambdaJ http code
  • 将 JSON 发送到 Spring MVC 控制器

    我正在尝试将 JSON 发送到 Spring MVC 控制器 在 Spring MVC 方面 一切都配置正确 下面是代码 但似乎没有运行

随机推荐

  • Inkscape插入LaTeX公式

    Inkscape插入LaTeX公式 Inkscape软件自身没有插入公式的功能 在一些需要公式配合的图片 Inkscape无法正常制图 为了解决该问题 本文采用Inkscape中安装TexText扩展的方法 使得Inkscape在制图过程中
  • 在阿里云的生产环境下:nginx同一域名下配置多个静态页面

    背景说明 这两天公司前端开发工程师提出要求 在公司的主业务域名中加一个静态页面进去 在这里我就不透露公司的域名是什么 我们把域名估且为www ganbing com 这种需求很多公司是经常有的 写一个重定向啊 加个静态页面啊 实现跨域访问啊
  • java的值传递

    java中只有值传递 1 对于基本数据类型 改变形参的值不会影响实参的值 2 对于引用类型 改变形参的值会不会影响实参的值 这个我们得分情况 情况1 修改的是形参的指向的话就不改变原来实参的值 情况2 修改的是形参的值的话就会改变原来实参的
  • 使用three.js渲染第一个场景和物体

    一 效果图 二 渲染场景和物体的步骤 创建场景 Scene 在 three js 中创建场景通过调用 THREE Scene 方法 然后将其赋值给变量 var scene new THREE Scene 创建相机 Camera 在 thre
  • ThreadLocal与InheritableThreadLocal及线程池的影响

    在web开发中使用了ThreadLocal本地线程存储拦截器解析的用户信息 方便在下文代码中调用 但是在springboot中使用 Async开启异步操作时 就会造成 子线程无法拿到父本地线程数据 拿到一些脏数据 1 Inheritable
  • 为什么超凡先锋显示未选择服务器,超凡先锋画质不太流畅怎么弄 游戏画质设置方法介绍_超凡先锋...

    超凡先锋是一款逃离塔科夫玩法的射击游戏 这款游戏对玩家的手机配置需求还是比较高的 那么超凡先锋画质不太流畅怎么弄呢 下面我们就一起来看一下游戏画质设置方法介绍吧 一 画质设置步骤介绍 超凡先锋的优化制作的还是非常不错的 大家如果配置不足或者
  • c语言求阶乘和的流程图_Introduction to CSAPP(十四):流程控制指令与 C 语言条件判断与循环

    条件码 在之前的内容中 我们提到EFLAGS 寄存器中有一些条件码 这些条件码为流程控制的跳转提供了一定的能力 CF 进位标识 最近的操作使得最高位产生的了进位 ZF 零标识 最近的操作所得的结果为0 SF 符号标识 最近的操作所得的结果为
  • 。。。闯关

    还没写到难的地方 不过主要还是猜 前面过于简单后面感觉又太难 不太适合我这种菜鸟 不过还是可以学到东西的 先不写了 这里只是帮我简单记录一下思路 并非想破坏游戏体验 1 url 2 源码链接 3 源码链接 4 源码最底下或F12 5 根据提
  • idea远程调试线上jar包

    有时候本地代码没问题但在线上运行会报错 这时候可以使用idea的remote功能调试线上jar包 步骤1 步骤2 新建remote 步骤3 配置服务器ip和端口 并复制生成的JVM参数供之后使用 步骤4 打jar包 并将生成的jar包放到服
  • GPT-4:模型架构、训练方法与 Fine-tuning 详解

    本文将详细介绍 GPT 4 的模型结构 训练数据准备和微调方法 我们将深入了解 Transformer 架构 并学习如何准备训练数据和微调 GPT 4 模型 同时 我们还提供了相关代码示例以帮助您更好地理解和实践这些概念 希望本文能为您在使
  • Java EE 企业级应用 复习 Spring中Bean的管理

    Bean的实例化 什么是Bean的实例化 Spring容器自动地帮助我们生成对应的Bean对象 Bean的实例化方法 构造方法实例化 静态工厂实例化 实例工厂实例化 构造方法实例化 package com itheima public cl
  • http-server安装成功后,提示command not found

    版权声明 本文为博主原创文章 未经博主允许不得转载 http server安装成功后 提示command not found 如图所示 解决方法 执行vim zshrc 加上红框框住的内容 然后在项目目录下执行http server就可以了
  • 操作系统-在分页式管理方式下采用位示图来表示主存分配情况,实现主存空间的分配和回收。

    实验六 一 实验题目 在分页式管理方式下采用位示图来表示主存分配情况 实现主存空间的分配和回收 二 实验内容 1 分页式存储器把主存分成大小相等的若干块 作业的信息也按块的大小分页 作业装入主存时可把作业的信息按页分散存放在主存的空闲块中
  • UIUC同学Jia-Bin Huang收集的计算机视觉代码合集(ZZ)

    转自 http www cnblogs com idaidai archive 2012 03 01 2375800 html UIUC的Jia Bin Huang同学收集了很多计算机视觉方面的代码 链接如下 https netfiles
  • django2.x报错No module named 'django.core.urlresolvers'

    解决方法就是 from django urls import reverse 最近从django1 9迁移到django2 0中出现一个意外的报错 这个报错的原因在stack overflow上有很直接的解释 但是百度上并没有直接的答案 简
  • 华为OD机试真题--解压原始报文JavaScript

    1 题目 为了提升数据传输的效率 会对传输的报文进行压缩处理 输入一个压缩后的报文 请返回它解压后的原始报文 压缩规则 n str 表示方括号内部的 str 正好重复 n 次 注意 n 为正整数 0 lt n lt 100 str只包含小写
  • Python 字符串Ⅱ

    Python 字符串格式化 Python 支持格式化字符串的输出 尽管这样可能会用到非常复杂的表达式 但最基本的用法是将一个值插入到一个有字符串格式符 s 的字符串中 在 Python 中 字符串格式化使用与 C 中 sprintf 函数一
  • Python之算法与时间复杂度

    目录 一 算法的概念 1 1 算法是计算机处理信息的本质 二 时间复杂度T n 2 1 程序执行的基本操作与时间复杂度 2 3 大O记法 2 4 常见时间复杂度 2 5 时间复杂度的几条基本计算规则 重点 2 6 python内置类型时间复
  • Palindrome(补全回文串+最长公共子序列的应用)hdu1513+poj1159+动态规划

    Palindrome Time Limit 4000 2000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 4277 Accepted S
  • 计算机网络基础知识归纳总结整理

    计算机网络基础 基础知识 1 网络模型 OSI分层 7层 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP IP分层 4层 网络接口层 网际层 运输层 应用层 五层协议 5层 物理层 数据链路层 网络层 运输层 应用层 每