自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 代码随想录 链表章节总结

每次cur是需要操作的两个节点的其中一个节点。每次记录下cur->next和cur->next->next->next。使用快慢指针,快指针先走n步,然后快慢指针同时走,直到快指针下一个是null,在慢指针这个位置slow->next = slow->next->next。需要用临时变量temp记录下一个需要操作的节点,左边那个尾pre,右边那个是cur,到了cur是nullptr的时候结束。首先求出两个链表的长度,求出二者之差为n,把长的链表头指针移动n步,然后两个头指针同时移动,相等的时候中断返回。

2024-07-09 09:54:30 946

原创 代码随想录数组专题知识总结

注意循环不变量原则!必须要掌握左闭右闭和左闭右开的方法!可以一个首一个尾,也有可能同起点。右边左边都有可能变化。

2024-07-06 10:46:42 178

原创 移动性:mobility

让网络(路由器)处理移动性:路由器通过常规路由表发送交换节点的永久地址路由器互相交换各自移动节点位置信息,路由系统定期会通告自己这边新移动过来的移动设备信息端系统不变化问题:路由器过载, scalability比较差让端系统处理:移动管理功能体现在边缘indirect routing:通信者到移动节点的通信通过归属代理,然后转达到远端的移动节点移动的节点仍然把数据发给归属网,由归属网的代理交给目标网络最后交给目标移动性节点。

2024-06-07 14:33:09 535

原创 无线:wireless

PGW是核心网络与外部网络(如互联网)的边界网关,负责终止数据包的隧道封装,执行必要的策略控制(如计费、过滤),并将数据包最终发送到目的地。随着技术的发展,3G网络逐渐演进到了更先进的版本,如HSPA+和DC-HSDPA,提供了更快的速度和更低的延迟。再往右看,有一个蓝色的长方形盒子,上面写着“MSC”,这就是移动交换中心(Mobile Switching Center),它是整个网络的核心部分,负责处理所有呼叫和数据传输任务。:尽管在核心网络中没有改变,但在3G网络中,语音网络和数据网络开始平行运行。

2024-06-07 11:34:03 957

原创 无线和移动网络

multiple hops(经过一跳达不到,需要路由)

2024-06-06 21:40:45 243

原创 <计算机网络自顶向下> 通用转发和SDM

网络层功能为例的数据平面和控制平面:网络层功能:转发——对于从某个端口到来的分组转发到合适的输出端口路由——决定分组从源端到目标端的路径(依靠路由算法)

2024-04-29 14:04:23 971

原创 <监督和无监督学习>Introduction to Machine Learning

α是要根据坡度变化而变化的!

2024-04-28 19:16:06 1032

原创 <计算机网络自顶向下> Internet Protocol

默认网关是一个设备的IP地址,用于指示发送到其他网络的数据包应该发送到哪个路由器。源设备将数据包发送到默认网关,然后默认网关将根据自己的路由表将数据包发送到适当的下一跳。:head的长度(头部长度字段(IHL)指定了头部的长度,以32位字(4字节)为单位计算。所以,如果IHL字段的值为5,那么头部长度就是5 * 4 = 20字节,IP数据包头部最小长度是20所以这个headlen字段最小的值是5)(Default Gateway):是一个设备(通常是路由器)的IP地址,用于将数据包发送到其他网络。

2024-04-25 18:22:00 973 1

原创 <计算机网络自顶向下> 路由器组成

当数据报从交换机构的到达比传输速率快就需要输出端口缓存。由调度规则选择排队的数据报进行传输。

2024-04-24 22:12:50 672

原创 <计算机网络自顶向下>网络层导论

在计算机网络中,网络层包括数据平面和控制平面,它们分别负责网络数据转发和网络路由控制。综上所述,数据平面负责实际的数据传输和转发,而控制平面负责管理网络中的路由信息和路由选择算法,以便数据平面能够执行正确的数据包转发。控制平面和数据平面之间的分离使得网络能够更好地实现灵活性、可扩展性和管理性。

2024-04-24 21:11:38 877

原创 <计算机网络自顶向下> TCP拥塞

超时:CongWin降低为1MSS,进入SS(Slow Start)阶段然后再倍增到CongWIN/2(每个RTT),从而进入CA(Congestion Avoidance)阶段(是超时的话就先把窗口降到1MSS,然后每一个RTT翻倍,直到到达原窗口的一半,开始每个RTT增加1MSS)在拥塞发送时如何动作,降低速率:轻微拥塞和拥塞的时候如何降低。原因1:网络拥塞(某个路由器缓冲区没空间了,被丢弃)概率大。CongWin是动态的,是感知到的网络拥塞程度的函数。在拥塞缓解的时候如何动作,增加速率。

2024-04-20 20:10:19 1999

原创 <计算机网络自顶向下> 拥塞控制原理

纵坐标输出,横坐标输入:刚开始没有发生拥塞的时候,输入速率增加,输出速度正比例往上增加。当开始拥塞的时候,随着速率继续增加,输出速率的加速度漫漫减小,然后最后超级超级拥塞,反而速率会下降,最终造成死锁,没有一个包到达目标主机。网络拥塞如果不加控制会加速变快。2. 场景2.2: 丢包但是掌握丢失信息。目的:在不发生拥塞的前提下尽量增加发送速率。

2024-04-20 16:52:41 486

原创 <计算机网络自顶向下> 面向连接的传输:TCP

点对点一个发送方,一个接收方可靠的、按顺序的字节流不出错,不重复,不丢失,不失序没有报文边界:发多个报文(MSS小)对方可能收到更多小报文或者几个大报文(MSS大)管道化(流水线)在未经确认的情况下,发送方可以给接收方发送连续很多TCP段(应用进程往下交的报文要被TCP根据MMS的大小分成多个TCP段,每个段加上头部信息)TCP拥塞控制和流量控制设置窗口大小发送和接收缓存发送端缓冲区为了检错重发,超时重传接收端缓冲区为了平衡接收和发送速度全双工数据。

2024-04-20 14:30:22 2544

原创 <计算机网络自顶向下> 可靠数据传输的原理

在互联网等大范围网络中,往返延迟可能会受到多种因素的影响,如网络拥塞、路由器处理延迟、数据包丢失等,导致数据包的传输时间波动较大,难以准确预测。因此,传输层通常采用自适应的超时时间设置策略,如 TCP 中的拥塞控制算法(如慢启动、拥塞避免)和快速重传机制,以根据网络状况动态调整超时时间,从而提高数据传输的效率和可靠性。因此,链路层的定时器一般采用固定的超时时间,以适应这种相对稳定的网络环境。这是stop and wait (停等协议):发送方发送一个分组(一次只发送一个分组),然后等待接收方的应答。

2024-04-18 22:22:18 993

原创 <计算机网络自顶向下> 无连接传输UDP

UDP:User Datagram Protocol“尽力而为”的服务 报文可能丢掉或者乱序 好处: 效率高(不建立连接+无拥塞控制和流量控制【应用->传输的速率=主机->网络的速率】) 报文段的头部很小(开销小) UDP被用于 流媒体(丢失不敏感,速率敏感,应用可控制传输速率) DNS SNMP 无连接,每个数据单元是独立发送的所以叫数据报协议,但是IP也是数据报所以要根据上下文区分 在UDP上可以实现可靠传输 在应用层增加可靠性 应用特定的差错

2024-04-18 16:07:32 696

原创 <计算机网络自顶向下> 多路复用与解复用

目标主机收到的时候到网络层把IP地址拿出来变为TCP段,然后路过传输层将端口号拿出来(其实就是传输层解析数据报头部),然后把IP地址啥的传上去传输层,传输层解析端口号,把端口号传上去,达到应用层之前查询socket,把数据发送给正确的应用进程。UDP:应用层到传输层要传message,socket和自己的的端口号和IP地址,然后下面和TCP一样的方式封装,解复用的部分也和TCP基本一致。TCP:源端口和源IP,目标IP和目标端口都必须一样才是同一个进程。UDP:只要目标一样就可以到同一个进程。

2024-04-17 22:05:34 298

原创 <计算机网络自顶向下> 概述和传输层服务

传输层提供的是远程的进程和进程之间以message(报文)为单位的逻辑通信 ,看起来建立socket后通过sockeet api传输出去,对方通过socket api的receive或者read接收回来,实际上报文通过层间的接口到传输层,然后通过它们的相互配合由对方的传输层实体传输给对方的应用层,在传输层,tcp或者udp把报文分成报文段,形成本层协议数据单元pdu,tcp的pdu就是tcp的segment(段),以段为单位数据传输,对方收到后,把报文段的头部信息去掉然后以字节流的形式交给上层。

2024-04-15 08:16:17 227

原创 <计算机网络自顶向下> TCP&UDP套接字编程

应用实现:源端的应用进程交换报文实现应用协议,来实现各种各样的网络应用(dash,email, etc)而应用层通信不可以直接通信,需要借助下层的服务才可以进行,通过层间接口交给下层,通过下层的服务传输传输层在TCP/IP提供的就是socket API服务,传输报文之前建立socket,借助于socket收发,使用完成了以后关掉(socket就像一个门,接和收都一样)

2024-04-14 17:54:28 913 1

原创 <计算机网络自顶向下> CDN

视频服务挑战规模性 异构性:不同用户有不同的能力(比如有线接入和移动用户;贷款丰富和受限用户) 解决方法是:分布式的应用层面的基础设施CDN多媒体:视频视频是固定速度显示的一系列图像的序列,图像又是一系列像素点的序列 视频占的带宽太大所以不经过压缩就在网络上传输基本是不可能的 压缩的基础 空间的冗余度:一个帧当中一些范围的像素点颜色一样,空间描述的时候可以说某个像素点在那一范围出现 时间上的冗余度:一些相邻的帧的像素点颜色一样,传输的时候仅仅把动的对象传输即可 CBR (con

2024-04-14 10:36:23 630 1

原创 <计算机网络自顶向下> P2P应用

退出节点的过程:分别告诉邻居自己要退出了。邻居知道他要离开了以后找一个新的节点以维持平衡。

2024-04-14 08:47:22 814 1

原创 <计算机网络自顶向下> DNS

互联网最核心的功能比如DNS不是在网络核心实现的而是在网络边缘的主机的传输层及以上实现的。

2024-03-27 21:12:23 634

原创 <计算机网络自顶向下> EMail

HTTP(超文本传输协议)主要是一个拉协议(pull protocol),也就是说,当你在浏览器中输入一个网址时,你的浏览器(客户端)会向服务器发送一个请求,要求服务器发送回网页的内容。相反,SMTP(简单邮件传输协议)主要是一个推协议(push protocol),也就是说,当你发送一封电子邮件时,你的邮件服务器会把邮件推送到收件人的邮件服务器。总的来说,"拉"和"推"是描述数据传输方向的术语,"拉"是由接收方发起请求,"推"是由发送方发起传输。

2024-03-27 10:11:30 1943

原创 <计算机网络自顶向下> FTP

FTP文件传输协议把本地文件系统的内容上载到服务器某个目录之下也可以通过服务器某个目录下载问文件。 客户端服务器模式 客户端:发起传输的一方 服务器:远程主机 RFC 999 (Request For Comments(RFC),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件) FTP服务器:端口号是21 过程:FTP服务器守候在TCP21端口等客户端与他建立连接(这里建立的连接是FTP控制连接),在控制连接上,通过FTP协议用户认证,通过T

2024-03-27 07:12:24 464

原创 <计算机网络自顶向下> Web和HTTP

本来写了一堆可是保存了那个版本消失了,心态爆炸,遂直接看中科大郑老师的ppt整理笔记,内容基本和ppt重合,解释啥的可能比之前的粗糙很多。那笔记可是我花了一上午时间写的啊啊啊,真的暴风哭泣。。。。。

2024-03-26 22:23:25 712

原创 <计算机自顶向下> 应用层原理

在计算机操作系统中,当你打开一个文件时,操作系统会为该文件创建一个句柄,并返回给程序使用1。句柄(Handle)是一个抽象的概念,它是操作系统分配给进程用来标识和访问特定文件的唯一标识符。程序后续通过这个句柄对文件进行读写操作、控制文件指针位置等,而不是直接使用文件路径或名称。这个函数会返回一个文件句柄,你可以将其存储在一个变量中。然后,你可以使用这个句柄来读取文件的内容,移动文件指针,或者写入新的内容。当你完成了对文件的操作后,你需要调用另一个函数(如C语言中的。首先,你会调用一个函数(如C语言中的。

2024-03-26 06:57:03 934

原创 <计算机网络自顶向下> 历史(最休闲的一节)

互联网出现,起初以NCP协议指导。

2024-03-23 15:00:19 729

原创 <计算机网络自顶向下> 协议层次和服务模型

网络功能繁杂,而且计算机网络的构成元素和组成设备很多:主机、路由器、链路、协议、软硬件、应用。

2024-03-23 12:03:21 1147

原创 <计算机网络自顶向下> 分组延迟、丢失和吞吐量

Linux的transroute和windows的tracert是诊断程序,通过从源端经过路由器到达目的地的延时测量。沿着目的地的路径对每个路由器发送三个探测分组,路由器i将向发送方返回一个分组,发送方对发送和回复之间间隔计时。

2024-03-19 21:25:09 259 1

原创 <计算机网络自顶向下> Internet结构和ISP

ISP是提供网络的,ICP是提供上层业务的。ICP仍然需要接入ISPs。关系比较密集的在一个运营商的网络叫做一个网络:比如中国教育科研网,这里面有交换链路和主机等这个子系统叫做一个ISP的网络,而互联网就是通过这些ISP网络(ISP可能还包括小的ISP)通过路由器连接而成的,所以Internet是网络的网络。也会合作,通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联网的结算关系(对等互联网是指两个或者多个互联网服务提供商之间直接连接其网络,一遍彼此之间交换数据流量而不需要经过第三方网络)

2024-03-18 22:13:48 377

原创 <计算机网络自顶向下> 接入网和物理媒体

路由器AP(Access Point)的功能可以接入家里无线设备,在计算机网络中,AP是一种网络设备,用于提供无线网络接入。非对称,首先数字化,有线电视信号线缆双向改造,部分带宽传输上行数据,部分带宽传输下行数据(原有的线缆只能传下行),头端发给千家万户数据使用下行带宽(共享),上行数据用户通过modem接入然后通过接入控制的方式使用上行带宽(专用)。通过交换机的级联,通过AP可以把这些设备连接起来,接入到交换机的端口,交换机的端口再通过交换机的级联,经过机构的路由器接入到互联网。在两个节点之间传播比特。

2024-03-17 15:09:00 345 1

原创 <计算机网络自顶向下> 网络核心

详细解释一下就是:分组传输虽然有共享性但是不代表两个资源可以同时在一条路传输,实际上一条路还是只能传输一个,电路传输是专用的,一个资源在传输的时候经历很多个节点和链路,这一整条路径在那个资源传输的时候都是不可以用的,但是由于分组传输存储转发,只要不是同一对中间节点连接的相同链路,直到子链路不重合就可以传输 比如电路传输路径1->2->3在传输过程中三个节点两个链路,此时是被占用的状态,即使资源已经达到了2->3,1->2仍然不能用 但是分组传输在过了1->2后1->2可以被其他资源占用。

2024-03-17 10:29:50 620 1

原创 <计算机网络自顶向下> 网络边缘

1. CS模式:主要的是服务器,守护在端口等待客户端请求,服务器被动的回应客户端的请求,客户端发出请求是主动的,服务器相应,所有的资源在服务器。客户端比服务器后运行起来。(例:Web浏览器/服务器、email客户端/服务器)2. peer-peer模式:分布式应用进程。把一个文件分片段,每个节点都是服务器和客户端。随着peer节点增多,请求的节点越来越多,但是服务节点也越来越多(例:迅雷)分布式应用+支持应用通讯的基础设施=端系统=主机。

2024-03-13 06:36:51 446

原创 <计算机网络自顶向下> 什么是Internet

支撑互联网工作最重要的标准,厂商按照协议制作生产网络设备,这些网络设备就可以互操 作(对等层实体在通信过程当中应该遵守的规则的集合,包括语法语义和时序)互联网(大写的Internet):协议TCP/IP协议为之称的网络(一堆网络通过网络互联的设备相互连接,每个网络可能还包括小网络)是网络的网络。交换机(链路层):通过分组从一个端口进来转出去。主机节点:比如笔记本ipad,联网的冰箱等等。计算机网络:联网的计算机由节点和边构成的系统。网络:节点和边构成的和大小无关的拓补。

2024-03-12 13:23:59 332 1

原创 leetcode简单数组题【二】(977, 209, 59)

最后的最后,跳出外层for循环后,我们已经完成转圈插入的过程了,需要处理的是当n是奇数的时候插入中间的值,在本例中就是那个9,因为我们一直在增加startx和starty,虽然for循环结束了,startx和starty已经累加到第三圈起始点(这一“圈”只有一个值),之前最后一次插入值的时候count也已经累加1了,就直接作等result[starty][startx] = count即可,返回result数组,题目结束。接下来开始遍历从左到右的行,我们习惯写[i][j],所以刚开始是写j的for循环。

2024-03-09 22:19:46 883

原创 Dev C++常见问题

修改gcc和c++行后面写上-std=c++11即可。2. 单步调试的过程中遇到endl停住。工具-编译选项-程序。

2024-03-07 16:35:12 238

原创 Leetcode简单题 209. 长度最小的子数组

1.当add等于target的时候,如果仅仅移动end的话是无意义的,后面数组的长度一定比之前的大,如果仅仅移动start也是无意义的,因为移动start以后add一定会小于target(因为移动之前已经等于target了,减去新的值就一定小于,已知所有数字都是正整数)所以同时移动start和end,此时注意end移动后是否超出索引范围,如果超出了,因为我们没办法再次更新length了,需要返回值,在这里我们直接break,到最后再处理。如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。

2024-03-03 20:32:01 300

原创 leetcode 27:移除元素(自用)

你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。慢指针决定下一个可用元素放置的位置,快指针找到下一个可用元素,找到一个换一个,不需要交换。你不需要考虑数组中超出新长度后面的元素。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中。的元素,并返回移除后数组的新长度。

2024-03-03 10:58:50 236

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除