Articles are paginated with only three posts here for example. You can set the number of entries to show on this page with the “pagination” setting in the config file.

网络安全初探

写在最前面

  网络安全是个很大的话题,它包括了网络加密、数据真实性认证、终端身份认证、防火墙等技术,而网络加密、数据真实性验证,终端身份认证,则是网络安全中的重要一环,学习和掌握它具有重要意义,通过学习网络安全的相关知识,有助于我们理解生活中一些关于网络安全方面的现象。这样也可以做到知其然,并且知其所以然。最近一段时间,我发现自己对这块的掌握并不牢靠,于是参阅了一些资料和论文,主要的参阅资料是《Computer Networking A Top-Down Approach》的第八章Secure In Computer Networks,也包含了多篇paper。本文主要阐述网络加密、数据验证、身份验证的一些基本知识,并不涉及网络安全的其他方面。由于本人水平有限,有不正确的地方,欢迎批评指正,最后原创不易,转载请注明出处。

[Read More]

数据链路层漫谈

前言

  数据链路层,负责网络上,两个节点之间的数据帧通信,是最贴近硬件的一层。掌握数据链路层的知识,对我们理解网络中的一些现象具有极大的意义。这篇Blog,首先会介绍数据链路层的作用,以及基本结构和基本运作流程;紧随其后,我们将探讨数据链路层的转发设备,以及不同的设备构建的局部网络,数据帧传输的基本运作流程;最后我们将介绍在广播Channel中使用的链路层协议(Multi-Access Protocol)。本文的知识和观点主要来自于《Computer Networking A Top-Down Approach》一书,本Blog也将会大量引用该书的图文。
  本Blog的主要功能是对数据链路层知识进行梳理,而非对Top-Down中Link-Layer这一章节的翻译,而是经过自己的梳理而写的文章。最后由于本人水平有限,如有不当的地方,欢迎大家批评指正,大家可以将建议或者意见发到我的邮箱中1518986465@qq.com。

[Read More]

数据包在网络层中的传输

前言

好久没有写blog了,近一年来,不断在学习网络相关的东西,最近看了许多书籍和paper,觉得是时候该写一篇有关网络层相关的文章,来梳理一下自己所学的知识点。在写这篇文章之前,我大概看过《计算机网络(谢希仁著)》、《网络是怎样连接的》和《Computer Networking A Top-Down Approach》等几本书。早在刚开始决定学习一下网络原理之初,我选择了《TCP/IP详解 卷1》来看,不过结合个人的学习经历,相比于Top-Down,个人认为这本书其实并不适合刚入门的初学者看,它略过了太多的细节,相反《Computer Networking A Top-Down Approach》这本,不论在内容编排上,还是在内容阐述上都非常合理、清晰,循序渐进,对于想入门计算机网络的人来说,是绝佳的经典教程。
按照我自己的习惯,每经历一个阶段的学习,我就会进行一次知识的梳理和总结,今天写的这篇目的是通过阐述数据包在网络层中的流转,梳理网络层的整体结构,运作流程。最终串联各个知识点。本文将通过3个数据包流转的例子(其中一个是在一个很小的局域网内的传输,一个是在AS内的传输,还有一个是跨AS的传输),来逐步展现网络层的基本组成成分,以及不同规模情况下的基本运作流程。网络层数据包协议主要有IPv4和IPv6两种,目前广泛运用的仍然是IPv4,为了解决IPv4地址耗尽的问题,专家们提出了IPv6。本文探讨的内容,主要针对IPv4,不对IPv6作深入探讨。
本文旨在梳理网络层的基本结构和运作流程,并不涉及到网络层的方方面面,文章也会大量引用《计算机网络》、《网络是怎样连接的》、《Computer Networking A Top-Down Approach》以及其他一些论文的论述和插图,最后本人学识水平有限,如有疏漏,欢迎大家批评指正。

[Read More]

skynet源码赏析

写在最前面

skynet是目前使用比较广泛的服务端框架,虽然目前网上资料众多,但是从自己的学习和使用经历来看,缺乏能够让自己系统了解该框架底层机制的资料,这段时间,趁着自己有时间,阅读了skynet底层的一些代码,现在将自己理解的部分总结并记录下来,以备日后使用。本文旨在捋清skynet框架的结构和主要流程,并不会涉及skynet的方方面面,一些论述,我贴上了一些源码加以论证,并在引用的源码里加入了一些注释。

[Read More]
skynet 

《TCP/IP详解》数据链路层总结

数据链路层概述

  • 计算机网络的形成
    计算机最初只是孤立的一个运算机器,随着业务需求的不断发展,单台孤立的计算机已经不能够满足我们的需求,因此人们把一个区域内的多台计算机连接成一个网络即局域网,然而这些小的网络并不能满足对计算机日益增长的需求,因此把不同的局域网连接成一个全球性质的网络,我们称之为互联网,互联网就是把不同的局域网通过路由器连接起来的网络。

[Read More]

计算机漫游

Overview

我们的计算机能够运作起来,是我们将源代码编译成机器能够识别的二进制机器指令后,打包进可执行文件,并存入磁盘中。当我们运行一个程序的时候,首先会将磁盘内的二进制文件加载到内存中,然后通过CPU来解释和运行。为了能够做到,通过统一的方式使用不同型号的硬件,并且防止失控的程序滥用硬件资源,人们则通过操作系统来处理这些事情。此外操作系统还负责不同进程间的上下文切换,以实现多任务执行(分时调度不同的进程)。

[Read More]

mutex lock,spinlock,rwlock和condlock的理解

Mutex Lock

概述

互斥锁,一条线程加锁锁住临界区,另一条线程尝试访问改临界区的时候,会发生阻塞,并进入休眠状态。

具体说明

假设一台机器上的cpu有两个核心core0和core1,现在有线程A、B、C,此时core0运行线程A,core1运行线程B,此时线程B使用Mutex锁,锁住一个临界区,当线程A试图访问该临界区时,因为线程B已经将其锁住,因此线程A被挂起,进入休眠状态,此时core0进行上下文切换,将线程A放入休眠队列中,然后core0运行线程C,当线程B完成临界区的流程并执行解锁之后,线程A又会被唤醒,core0重新运行线程A

[Read More]
lock 

《TCP/IP详解》运输层总结

运输层协议公有特征

应用进程之间的通信

  • 两台主机之间的通信,实际上是两台主机上应用进程之间的通信
  • 主机上所有使用网络功能的应用进程,共享操作系统内核提供的网络通信功能
  • 因为操作系统上应用进程众多,因此为了将数据包准确交付给目标机器上的指定进程,因此需要通过端口号来区分不同的进程
  • IP+Port能够将数据包发送到指定机器上的指定进程
  • 运输层位于内核通信服务的最高层,接收应用进程交付的数据包,同时将收到的数据包交付给应用进程
  • IP层负责将数据包交付给目标机器,而运输层则负责将数据包交付给指定应用进程,部分运输层协议(如TCP协议)实现可靠数据交付,流量控制,拥塞控制和连接状态控制等。

[Read More]

《TCP/IP详解》网络层总结

IP协议层概述

通过数据包的目标IP地址,不断得找出通往该IP地址的路由器(下一跳路由器地址),并最终将数据包送到目标机器上的协议层。本质的功效是导航数据包去往目标机器。

[Read More]

Git使用总结

远程分支

  • 项目开发,需要使用版本控制器,来控制开发流程,一般有一台公用服务器用于存放远程分支

[Read More]
git