自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络层 - IP协议

网络层:定义:网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间功能:A主机经过路径选择将数据传到B主机路径选择:在众多网路中找到B主机所在网络(局域网)。在目标网络中找到目标主机。需要通过传输层协议(TCP协议)检验IP报文是否正确的从A->B。ps:网络协议:IP + TCP(保证报文正确的从A主机传到B主机)IP协议基本概念:主机:有IP地址,...

2019-07-26 15:21:38 241

原创 TCP协议详解

什么是TCP协议?TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP报头TCP是如何分离和分用的?分离:4位首部有效长度确定报头,剩下的属于有效载荷分用:与UDP相同,通过目的端口号确实交付给上层哪个协议1.端口号:1.源端口号:接收到的数据从哪个端口来2.目的端口号:要把本报文发到哪个端口2.序号:1.序号:2.确认序号3.确认...

2019-07-24 21:13:19 812

原创 UDP协议详解

引言:上一篇文章,我们已经学会了应用层的HTTP协议,今天就让我们学习传输层两个最重要的协议之一的UDP协议,这个简单的协议能帮助我们更好的了解传输层。什么是UDP协议?UDP(用户数据报协议),是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务.UDP报头:如何分离?报头格式是定长的,通过UDP长度-固定报头长度,可以得到有效载荷如何分用?通过目的端口号,确认将有效载...

2019-07-21 20:15:12 1518

原创 什么是端口号?

在谈论端口号之前我们必须先明白了解运输层的作用:运输层:为相互通信的应用程序提供逻辑通信我们都知道,在IP层协议能够把源主机A发出的分组,按照源IP地址,送到目的IP地址,那么,传输层是做什么的呢?从网络层来说,通信的是两个主机(两个局域网),IP数据报的首部明确标志了这两台主机的IP地址,但这是两台主机的沟通远远不够,因为真正需要通信的是两台主机上的进程。IP协议仅仅能够把数据传到目的...

2019-07-21 19:27:51 16371 1

原创 HTTP协议详解(响应与请求)

引言:在网络基础中我们了解到了网络是分层的(OSI模型),因此如果我们想深入理解网络,想要了解信息是如何从一台主机传到另外一台主机上,打开浏览器是如何申请,服务器又是如何通过申请的话,我们就必须深入了解OSI模型,今天我们就从最上层的“应用层”开始了解。应用层:通俗易懂的来说,应用层是提供一个给我们程序员解决一个个实际问题,满足我们日常需求的平台。只要能够保证我们在一端构造的信息,能够在另...

2019-07-20 19:20:26 1673

原创 System V 共享内存

引言:再上一章中,我们知道了可以通过管道进行进程间通信,但是管道通信要经过进程->内核->进程,一共两次拷贝,效率偏低。而今天我们要学习的System V 共享内存将是最快的通信方式。共享内存示意图过程:当一个进程(A)申请共享空间之后,操作系统会在物理内存中开辟一片资源,通过页表映射到A,B进程的地址空间(共享区)中,实现实时通信。共享内存的特点:1.共享内存是最...

2019-07-19 17:48:54 346

原创 什么是管道?(详解进程间是如何通过管道通信的)

引言:我们都知道,进程运行时是具有独立性的,要让两个进程进行通信是一件很困难的事情。因此两个进程通信的前提条件是,需要让两个进程看到同一份资源(物理内存)。进程通信分类管道:1.匿名管道pipe(有“亲情”关系(多用于父子进程)的进程进行通信)2.命名管道(实现不相关进程之间的通信)System V IPCSystem V 消息队列System V 共享内存System V...

2019-07-17 20:43:09 6215 1

原创 系统IO

引言:我们之前已经学过了C的IO流,这两者语言层面的IO相较于系统的IP流是较为上层的,C中的FILE*就封装有系统底层的文件操作,今天就让我们学习linux系统层面的输入输出流,从底层开始认识基础IO。...

2019-07-15 21:15:10 167

原创 最简单的TCP协议实现

引言:上一篇文章中,我们学习了UDP协议,在传输层中,出了UDP之外,TCP协议也是经常被提起的,今天让我们写一个最简单的TCP服务端和客户端UDP和TCP对比:不可靠传输和可靠传输无连接和有连接面向数据流和面向字节流在服务端方面:TCP要建立监听(listen)和接收链接(accept) 。在客户端方面:要接收链接(connect)实现最简单的TCP服务端和客...

2019-07-12 14:36:58 649

原创 实现最简单的UDP协议(客户端和服务端)

IP和端口号:1.IP地址:IP数据报的头部有两个IP地址,分别叫做IP源地址和IP目标地址。2.端口号:传输协议的内容大小:2字节16位的整数端口号用来标识一个进程,告诉操作系统,这个数据要交给哪一个进程处理。IP地址 + 端口号:能够标识网络上的某一台主机的某一进程(套接字)特点:1.标识唯一一个进程 2.不能被多个进程绑定与PID的区别:不一定每一个进程都有端口号(只有要联...

2019-07-10 15:40:09 2335

原创 进程基础1

引言上一次,我们已经学习过了什么是进程和进程与程序的区别,这次我们要学习如何创建,终止,等待进程。1.进程创建1.1 fork函数初识头文件:#include<unistd.h>pid_t fork(void);返回值:自进程返回0,父进程返回子进程id,出错返回-1。当系统调用fork的时候,内核要做:1.分配新的内存块和内核数据结构给子进程。2.将父进程部分数...

2019-07-09 17:54:09 144

原创 网络基础

计算机网络背景:1.网络发展:1.独立模式:计算机之间相互独立,一个个主机独立工作2.网络互连:多台计算机连接在一起,完成数据共享。存在可靠性(数据丢失问题)3.局域网LAN:计算机网络数量更多,通过交换机和路由器连接在一起。两种模式:令牌环网和以太网每一台主机都有一个MAC地址,由48bit位控制。MAC(标识)->网卡(标识)->主机地址。出现了关于碰撞的问题。...

2019-07-09 16:31:06 173

原创 linux空间详解

引言我们在之前C++和C中学过了C的地址空间,从上到下分为内核空间,命令行参数环境变量,栈,共享区,堆,未初始化数据,初始化数据,正文代码8个部分。但是这仅仅是C中的地址空间,在Linux中,这种地址被叫做虚拟地址空间,今天我们要学习的是Linux中的地址空间。程序地址空间让我们看看下面的代码:#include<stdio.h>#include<unistd.h>...

2019-07-03 15:24:51 197

原创 初识环境变量

引言当我们想要运行某个程序的时候,我们要在前面加上./,是为了告诉操作系统我们想要运行的程序处于当前文件中。但是在我们使用ls , pwd等变量的时候却不需要,为什么?这就是因为我们接下来要讲的环境变量。环境变量1.基本概念:概念:操作系统中用来指定操作系统运行环境的一些参数特性:具有全局性2.常见的环境变量:PATH:制定命令的搜索路径。PWD:查看当前步骤所处位置。3...

2019-07-03 11:40:45 162

原创 进程基础

/ 程序:硬盘上的一个普通文件,里边包含着代码和数据。进程:把程序运行起来,加载到内存中,操作系统为了管理进程,会创建一个PCB将进程描述起来,再通过一个链表将多个进程组织起来。1.进程基本概念:课本概念:程序的一个执行实例,正在执行的程序。内核观点:担当分配系统资源(CPU时间,内存)的实体如何管理进程呢:先将进程描述起来,再将进程组织起来。#0# 描述进程:进程信息被放在一个...

2019-07-02 13:06:41 281

原创 初识linux操作系统

冯诺依曼体系结构无论是我们常见的(笔记本)还是不常见的(服务器)大多都遵循冯诺依曼原则,如下图:存储器:内存,出了存储器之外的设备都可以被称为外设。输入设备,输出设备:也就是我们常说的外设,有具体情况判定是什么输入还是输出。运算器和控制器:中央处理区(CPU)。重点:1.存储器指内存。2.不考虑缓存情况,这里的CPU能且只能对内存惊醒读写,不能访问外设。3.外设要输入或者输出数...

2019-07-01 17:42:18 154

空空如也

空空如也

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

TA关注的人

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